@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Syne:wght@400;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base: #0d1117;--bg-surface: #161b22;--bg-elevated: #1c2330;--bg-hover: #21262d;--bg-active: #1f4068;--border: rgba(255,255,255,.08);--border-active: rgba(255,255,255,.2);--accent: #2dd4bf;--accent-dim: rgba(45, 212, 191, .12);--accent-glow: rgba(45, 212, 191, .25);--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #484f58;--text-accent: #2dd4bf;--sidebar-width: 240px;--header-height: 56px;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5)}body{font-family:var(--font-body);background:var(--bg-base);color:var(--text-primary);line-height:1.6;font-size:14px;-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left .3s ease;background:var(--bg-base)}.sidebar-closed .main-content{margin-left:60px}.page-wrapper{padding:32px;max-width:1200px}.page-header{margin-bottom:28px}.page-title{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.page-subtitle{color:var(--text-secondary);font-size:14px;margin-top:4px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.card-title{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .15s ease}.btn-primary{background:var(--accent);color:#0d1117}.btn-primary:hover{background:#5eead4;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500}.badge-accent{background:var(--accent-dim);color:var(--accent)}.badge-muted{background:var(--bg-hover);color:var(--text-secondary)}.badge-success{background:#22c55e1f;color:#4ade80}.badge-warning{background:#fbbf241f;color:#fbbf24}.badge-danger{background:#ef44441f;color:#f87171}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}input,textarea,select{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:14px;padding:8px 12px;outline:none;transition:border-color .15s;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.stat-number{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--text-primary);line-height:1}.stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px}@media (max-width: 768px){.main-content{margin-left:0}.page-wrapper{padding:16px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.sidebar{position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .3s ease;z-index:100;overflow:hidden}.sidebar.collapsed{width:60px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 12px;border-bottom:1px solid var(--border);min-height:60px}.sidebar-logo{display:flex;align-items:center;gap:8px}.logo-mark{width:28px;height:28px;background:var(--accent);color:#0d1117;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:16px;flex-shrink:0}.logo-text{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--text-primary);letter-spacing:-.5px}.toggle-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s}.toggle-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar.collapsed .sidebar-header{justify-content:center}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 8px;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.nav-section{margin-bottom:8px}.nav-group-label{font-size:10px;font-weight:600;color:var(--text-muted);letter-spacing:1px;padding:8px 8px 4px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:var(--radius-sm);background:none;border:none;color:var(--text-secondary);cursor:pointer;text-align:left;font-family:var(--font-body);font-size:14px;transition:all .15s ease;position:relative;white-space:nowrap;min-height:36px}.sidebar.collapsed .nav-item{justify-content:center;padding:8px}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-dim);color:var(--accent)}.nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px}.nav-label{flex:1}.nav-active-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;flex-shrink:0}.sidebar-footer{padding:12px;border-top:1px solid var(--border)}.user-chip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.user-chip:hover{background:var(--bg-hover)}.user-avatar{width:28px;height:28px;background:var(--accent-dim);border:1px solid var(--accent-glow);color:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:13px;flex-shrink:0}.user-name{font-size:13px;font-weight:500;color:var(--text-primary)}.user-role{font-size:11px;color:var(--text-muted)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;transition:border-color .2s}.stat-card:hover{border-color:var(--border-active)}.stat-accent{border-color:var(--accent-glow);background:var(--accent-dim)}.stat-accent .stat-number{color:var(--accent)}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.link-btn{background:none;border:none;color:var(--text-accent);font-size:12px;font-family:var(--font-body);cursor:pointer;transition:opacity .15s}.link-btn:hover{opacity:.8}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.photo-thumb{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.photo-thumb:hover{opacity:.8}.events-list{display:flex;flex-direction:column;gap:12px}.event-item{display:flex;align-items:flex-start;gap:10px}.event-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.event-title{font-size:13px;font-weight:500;color:var(--text-primary)}.event-meta{font-size:11px;color:var(--text-muted);margin-top:2px}.project-list{display:flex;flex-direction:column;gap:10px}.project-row{display:flex;align-items:center;justify-content:space-between}.project-name{font-size:13px;font-weight:500;color:var(--text-primary)}.project-right{display:flex;align-items:center;gap:10px}.project-updated{font-size:11px;color:var(--text-muted)}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:12px;transition:all .15s}.quick-action-btn:hover{background:var(--accent-dim);border-color:var(--accent-glow);color:var(--accent)}.qa-icon{font-size:18px}@media (max-width: 900px){.stats-row{grid-template-columns:1fr 1fr}.dash-grid{grid-template-columns:1fr}}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.album-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s}.album-card:hover{border-color:var(--border-active);transform:translateY(-2px);box-shadow:var(--shadow-md)}.album-cover{aspect-ratio:4/3;position:relative;display:flex;align-items:flex-start;justify-content:flex-end;padding:10px}.shared-badge{background:var(--accent-dim);color:var(--accent);font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;border:1px solid var(--accent-glow)}.album-info{padding:12px}.album-name{font-weight:500;font-size:14px;color:var(--text-primary);margin-bottom:6px}.album-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-muted)}.album-members{display:flex;gap:3px}.mini-avatar{width:20px;height:20px;background:var(--bg-hover);border:1px solid var(--border);color:var(--text-secondary);border-radius:50%;font-size:9px;font-weight:600;display:flex;align-items:center;justify-content:center}.back-btn{background:none;border:none;color:var(--text-secondary);font-family:var(--font-body);font-size:13px;cursor:pointer;padding:4px 0;transition:color .15s}.back-btn:hover{color:var(--text-primary)}.album-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.album-photo{aspect-ratio:1;border-radius:var(--radius-sm);position:relative;overflow:hidden;cursor:pointer}.photo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;display:flex;align-items:flex-end;justify-content:flex-end;padding:8px;transition:background .15s}.album-photo:hover .photo-overlay{background:#0006}.photo-action{background:#0009;border:none;color:#fff;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;opacity:0;transition:opacity .15s}.album-photo:hover .photo-action{opacity:1}.album-upload-tile{aspect-ratio:1;border-radius:var(--radius-sm);border:2px dashed var(--border-active);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .15s}.album-upload-tile span:first-child{font-size:24px;font-weight:300}.album-upload-tile:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-elevated);border:1px solid var(--border-active);border-radius:var(--radius-lg);padding:24px;width:400px;max-width:90vw}.modal-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.modal-text{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.modal-label{font-size:12px;color:var(--text-muted);font-weight:500;margin-bottom:8px}.share-link-row{display:flex;align-items:center;gap:8px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px}.share-link{flex:1;font-family:Courier New,monospace;font-size:12px;color:var(--text-secondary)}.member-chips{display:flex;gap:8px;flex-wrap:wrap}.member-chip{display:flex;align-items:center;gap:6px;background:var(--bg-hover);border:1px solid var(--border);border-radius:20px;padding:6px 12px;font-size:13px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);transition:all .15s}.member-chip:hover{border-color:var(--accent);color:var(--accent)}.album-quick-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px;opacity:.6;transition:opacity .15s,background .15s}.album-quick-btn:hover{opacity:1;background:var(--bg-hover)}.photo-select{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#0d1117;font-size:11px;font-weight:700;opacity:0;transition:opacity .15s}.album-photo:hover .photo-select,.album-photo:hover .photo-action{opacity:1}.form-label{font-size:11px;color:var(--text-secondary);font-weight:600;letter-spacing:.3px}.cal-layout{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:start}.cal-sidebar{position:sticky;top:20px}.member-toggle{display:flex;align-items:center;gap:8px;padding:7px 4px;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s}.member-toggle:hover{background:var(--bg-hover)}.member-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;transition:opacity .2s}.member-name{font-size:13px;color:var(--text-muted);flex:1;transition:color .2s}.member-name.active{color:var(--text-primary)}.no-events{font-size:13px;color:var(--text-muted);padding:8px 0}.event-detail{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px}.event-color-bar{width:3px;height:36px;border-radius:2px;flex-shrink:0}.event-detail-title{font-size:13px;font-weight:500;color:var(--text-primary)}.event-detail-time{font-size:11px;color:var(--text-muted);margin-top:2px}.cal-main{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cal-month-title{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text-primary)}.cal-nav-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s}.cal-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);padding:6px 0;letter-spacing:.5px}.cal-cell{min-height:70px;padding:6px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;border:1px solid transparent}.cal-cell.empty{cursor:default}.cal-cell:not(.empty):hover{background:var(--bg-hover)}.cal-cell.today .cal-day-num{background:var(--accent);color:#0d1117;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}.cal-cell.selected{background:var(--accent-dim);border-color:var(--accent-glow)}.cal-day-num{font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:4px;display:block}.cal-day-events{display:flex;gap:3px;flex-wrap:wrap;align-items:center}.cal-event-dot{width:7px;height:7px;border-radius:50%}.cal-more{font-size:9px;color:var(--text-muted)}.connect-options{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.connect-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:14px;cursor:pointer;transition:all .15s}.connect-btn:hover{border-color:var(--border-active);background:var(--bg-elevated)}@media (max-width: 900px){.cal-layout{grid-template-columns:1fr}.cal-sidebar{position:static}}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.proj-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;max-width:400px}.proj-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-tabs{display:flex;gap:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}.filter-tab{background:none;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:12px;padding:4px 10px;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-tab:hover{color:var(--text-primary)}.filter-tab.active{background:var(--bg-hover);color:var(--text-primary)}.projects-list{display:flex;flex-direction:column;gap:10px}.project-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;transition:all .2s}.project-card:hover{border-color:var(--border-active)}.project-card.pinned{border-color:var(--accent-glow)}.project-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.proj-name{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--text-primary)}.pin-badge{font-size:12px}.proj-actions{display:flex;align-items:center;gap:8px}.proj-link{font-size:12px;color:var(--text-accent);text-decoration:none;padding:3px 8px;background:var(--accent-dim);border-radius:4px;transition:opacity .15s}.proj-link:hover{opacity:.8}.icon-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:2px;opacity:.5;transition:opacity .15s}.icon-btn:hover{opacity:1}.proj-desc{font-size:13px;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.proj-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tech-chips{display:flex;gap:5px;flex-wrap:wrap;flex:1}.tech-chip{background:var(--bg-hover);color:var(--text-muted);font-size:11px;padding:2px 8px;border-radius:4px;font-family:Courier New,monospace}.ai-tools{display:flex;gap:5px}.ai-chip{background:var(--accent-dim);color:var(--accent);font-size:10px;padding:2px 7px;border-radius:4px;font-weight:600;border:1px solid var(--accent-glow)}.proj-updated{font-size:11px;color:var(--text-muted);white-space:nowrap}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-label{font-size:12px;color:var(--text-secondary);font-weight:500}.ai-selector{display:flex;gap:6px;flex-wrap:wrap}.ai-select-btn{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-body);font-size:12px;padding:5px 12px;cursor:pointer;transition:all .15s}.ai-select-btn:hover{border-color:var(--border-active);color:var(--text-primary)}.ai-select-btn.selected{background:var(--accent-dim);border-color:var(--accent-glow);color:var(--accent)}.modal-wide{width:560px}.terminal-wrapper{background:#0d1117;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;height:calc(100vh - 280px);min-height:400px}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.terminal-body{flex:1;padding:8px;overflow:hidden}.terminal-body .xterm{height:100%}.terminal-body .xterm-viewport{border-radius:0}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base)}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px;width:360px;max-width:90vw}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:6px}.login-subtitle{color:var(--text-muted);font-size:13px;margin-bottom:28px}.login-form{display:flex;flex-direction:column;gap:14px}.login-error{color:#f87171;font-size:13px;background:#f871711a;border:1px solid rgba(248,113,113,.2);border-radius:var(--radius-sm);padding:8px 12px}.login-btn{width:100%;justify-content:center;padding:10px;font-size:14px;margin-top:4px}
