:root{--bg-primary:#0a0e17;--bg-secondary:#111827;--bg-tertiary:#1a2234;--bg-elevated:#1e293b;--bg-hover:#243044;--bg-active:#2d3c54;--bg-surface:#1e293b99;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-faint:#475569;--accent:#8b5cf6;--accent-hover:#7c3aed;--accent-light:#a78bfa;--accent-bg:#8b5cf61f;--accent-bg-hover:#8b5cf633;--accent-glow:#8b5cf640;--success:#22c55e;--success-bg:#22c55e1f;--error:#ef4444;--error-bg:#ef44441f;--warning:#f59e0b;--warning-bg:#f59e0b1f;--info:#3b82f6;--info-bg:#3b82f61f;--border:#94a3b81f;--border-light:#94a3b833;--border-focus:var(--accent);--radius-xs:6px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 2px #00000026;--shadow:0 2px 8px #0003, 0 1px 3px #00000026;--shadow-md:0 4px 16px #00000040, 0 2px 6px #00000026;--shadow-lg:0 8px 32px #00000059, 0 4px 12px #0003;--shadow-glow:0 0 20px var(--accent-glow);--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.6}.app{background:var(--bg-primary);height:100vh;display:flex}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;width:300px;min-width:300px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.sidebar-collapsed{border-right:none;width:0;min-width:0;overflow:hidden}.sidebar-logo{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.sidebar-logo-left{align-items:center;gap:10px;display:flex}.sidebar-collapse-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--text-faint);border-radius:var(--radius-xs);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.sidebar-collapse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.repo-selector{flex-direction:column;flex:1;display:flex;overflow:hidden}.repo-selector-header{justify-content:space-between;align-items:center;padding:16px 18px 10px;display:flex}.repo-selector-title{color:var(--text-secondary);font-size:13px;font-weight:700}.repo-selector-count{color:var(--text-faint);margin-left:6px;font-size:11px;font-weight:500}.repo-selector-actions{gap:4px;display:flex}.repo-search{padding:0 14px 10px;position:relative}.repo-search-icon{color:var(--text-faint);pointer-events:none;position:absolute;top:10px;left:24px}.repo-search-input{border:1px solid var(--border);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:var(--radius);outline:none;padding:9px 12px 9px 36px;font-size:13px;transition:all .25s cubic-bezier(.4,0,.2,1)}.repo-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);background:var(--bg-tertiary)}.repo-search-input::placeholder{color:var(--text-faint)}.repo-list{flex:1;padding:4px 10px 16px;overflow-y:auto}.repo-loading,.repo-empty{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 16px;font-size:13px;display:flex}.repo-item{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;margin-bottom:4px;padding:12px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.repo-item:hover{background:var(--bg-hover);border-color:var(--border);transform:translate(2px)}.repo-item:active{transform:scale(.98)}.repo-item.active{background:linear-gradient(135deg,#8b5cf61a,#8b5cf60d);border-color:#8b5cf640;box-shadow:0 0 12px #8b5cf614,inset 0 0 0 1px #8b5cf61a}.repo-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:20%;bottom:20%;left:0}.repo-item-icon-wrapper{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.repo-item:hover .repo-item-icon-wrapper{border-color:var(--border-light)}.repo-item.active .repo-item-icon-wrapper{background:var(--accent-bg);border-color:#8b5cf64d}.repo-item-icon{color:var(--text-muted);flex-shrink:0}.repo-item.active .repo-item-icon{color:var(--accent-light)}.repo-item-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.repo-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;transition:color .15s;overflow:hidden}.repo-item.active .repo-item-name{color:var(--accent-light)}.repo-item-owner{color:var(--text-faint);font-size:11px}.repo-item.active .repo-item-owner{color:var(--text-muted)}.repo-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:8px;flex-shrink:0;padding:2px 7px;font-size:9px;font-weight:700}.repo-badge.private{color:var(--text-faint);background:#64748b1a;border:1px solid #64748b26}.repo-badge.public{background:var(--success-bg);color:var(--success);border:1px solid #22c55e26}.sidebar-bottom{border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px 14px;display:flex}.sidebar-open-btn{z-index:100;border:1px solid var(--border-light);background:var(--bg-secondary);width:36px;height:36px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow);justify-content:center;align-items:center;transition:all .2s;display:flex;position:fixed;top:14px;left:12px}.sidebar-open-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.main-area{background:var(--bg-primary);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:linear-gradient(90deg, var(--bg-secondary) 0%, #111827f2 100%);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0;align-items:center;gap:12px;min-height:56px;padding:10px 24px;display:flex}.topbar-toggle{border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);border-radius:var(--radius-xs);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:11px;transition:all .15s;display:flex}.topbar-toggle:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.topbar-context{align-items:center;gap:8px;display:flex}.topbar-repo{font-family:var(--font-mono);color:var(--accent-light);font-size:14px;font-weight:700}.topbar-sep{color:var(--text-muted);font-size:16px}.topbar-branch-select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--success);border-radius:var(--radius-xs);font-family:var(--font-mono);cursor:pointer;outline:none;padding:5px 10px;font-size:13px;font-weight:600;transition:all .15s}.topbar-branch-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.topbar-badge{letter-spacing:.3px;border-radius:10px;padding:3px 10px;font-size:10px;font-weight:700}.topbar-badge.private{background:var(--bg-active);color:var(--text-muted)}.topbar-badge.public{background:var(--success-bg);color:var(--success)}.topbar-empty{color:var(--text-muted);font-size:14px}.main-content{flex:1;min-height:0;display:flex;overflow:hidden}.chat-panel{background:linear-gradient(180deg, var(--bg-primary) 0%, #080c14 100%);flex-direction:column;width:100%;height:100%;display:flex;position:relative}.chat-messages{flex-direction:column;flex:1;gap:24px;padding:28px 10%;display:flex;overflow-y:auto}@media (width<=1200px){.chat-messages{padding:24px 32px}}.message{gap:14px;max-width:100%;display:flex}.message-avatar{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;margin-top:2px;display:flex}.message.user .message-avatar{background:var(--accent-bg);color:var(--accent-light);border:1px solid #8b5cf633}.message.assistant .message-avatar{background:0 0;border:none;padding:0}.message.system .message-avatar{background:var(--warning-bg);color:var(--warning);border:1px solid #f59e0b33}.message-body{flex:1;min-width:0}.message-content{word-wrap:break-word;overflow-wrap:break-word;font-size:15px;line-height:1.75}.message-content p{margin-bottom:10px}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:10px 0;padding-left:22px}.message-content li{margin-bottom:6px}.message-content a{color:var(--accent-light);font-weight:500;text-decoration:none}.message-content a:hover{text-decoration:underline}.message-content table{border-collapse:collapse;width:100%;margin:10px 0}.message-content th,.message-content td{border:1px solid var(--border);text-align:left;padding:8px 14px}.message-content th{background:var(--bg-tertiary);font-weight:600}.message-meta{color:var(--text-muted);font-size:12px;font-family:var(--font-mono);background:var(--bg-tertiary);border-radius:var(--radius-xs);gap:14px;width:fit-content;margin-top:10px;padding:6px 12px;display:flex}.code-block-wrapper{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);margin:10px 0;overflow:hidden}.code-block-header{background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.copy-code-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:4px;transition:all .15s;display:flex}.copy-code-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.inline-code{font-family:var(--font-mono);background:var(--bg-elevated);border-radius:var(--radius-xs);color:#e8ab6b;border:1px solid var(--border);padding:2px 8px;font-size:13px}.tool-steps{border-left:2px solid var(--border);flex-direction:column;gap:0;margin-bottom:12px;padding-left:2px;display:flex}.timeline-segment{margin-bottom:4px}.timeline-text{padding-left:6px;position:relative}.timeline-tools{border-left:2px solid #8b5cf626;margin:6px 0 10px 12px;padding-left:14px}.timeline-tools .tool-step{margin-left:0}.timeline-tools .tool-step-dot{margin-left:-16px}.timeline-flow{border-left:2px solid var(--border);margin-bottom:8px;padding-left:2px}.tool-step{cursor:default;font-size:13px;transition:background .15s;position:relative}.tool-step-line{align-items:center;gap:8px;min-height:30px;padding:5px 12px;display:flex}.tool-step-dot{background:var(--bg-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-left:-12px;display:flex}.tool-step.running .tool-step-dot{color:var(--warning)}.tool-step.done .tool-step-dot{color:var(--success)}.tool-step-icon{color:var(--text-muted);flex-shrink:0}.tool-step.running .tool-step-icon{color:var(--warning)}.tool-step-label{color:var(--text-secondary);flex-shrink:0;font-size:13px;font-weight:500}.tool-step.running .tool-step-label{color:var(--warning)}.tool-step-summary{font-family:var(--font-mono);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.tool-step-expand{color:var(--text-muted);flex-shrink:0;display:flex}.tool-step.done{cursor:pointer}.tool-step.done:hover{background:var(--bg-hover);border-radius:var(--radius-xs)}.tool-step-output{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);max-height:200px;margin:0 12px 8px 22px;overflow-y:auto}.tool-step-output pre{font-family:var(--font-mono);color:var(--text-secondary);white-space:pre-wrap;word-break:break-all;margin:0;padding:10px 12px;font-size:12px;line-height:1.5}.tool-step-progress{background:var(--bg-tertiary);border-radius:2px;height:2px;margin:2px 12px 4px 30px;position:relative;overflow:hidden}.tool-step-progress:after{content:"";background:linear-gradient(90deg, var(--warning), var(--accent));border-radius:2px;width:40%;height:100%;animation:1.5s ease-in-out infinite progress-slide;position:absolute;top:0;left:0}@keyframes progress-slide{0%{left:-40%}to{left:100%}}.chat-input-area{background:0 0;padding:16px 10% 24px}@media (width<=1200px){.chat-input-area{padding:16px 32px 20px}}.chat-input-wrapper{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md), 0 0 0 1px #0000001a;align-items:flex-end;gap:10px;padding:12px 16px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.chat-input-wrapper:focus-within{border-color:var(--accent);box-shadow:var(--shadow-lg), 0 0 20px var(--accent-glow);transform:translateY(-1px)}.chat-input{color:var(--text-primary);font-family:var(--font-sans);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:26px;max-height:200px;font-size:15px;line-height:1.5}.chat-input::placeholder{color:var(--text-muted)}.chat-input-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.model-select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.3px;outline:none;padding:6px 10px;font-size:12px;font-weight:600;transition:all .2s}.model-select:hover{border-color:var(--border-light);color:var(--text-primary)}.model-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.send-btn{background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:38px;height:38px;box-shadow:0 2px 8px var(--accent-glow);border:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.send-btn:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-hover), #6d28d9);box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.send-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.chat-input-hint{color:var(--text-faint);text-align:center;opacity:.7;margin-top:8px;font-size:11px}.drop-overlay{border:2px dashed var(--accent);border-radius:var(--radius);z-index:50;color:var(--accent-light);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#8b5cf614;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex;position:absolute;inset:0}.attach-btn{width:38px;height:38px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.attach-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.attach-btn:disabled{opacity:.35;cursor:not-allowed}.attachment-bar{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.attachment-preview{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;max-width:240px;padding:8px 10px;display:flex}.attachment-thumb{object-fit:cover;border-radius:var(--radius-xs);flex-shrink:0;width:42px;height:42px}.attachment-file-icon{background:var(--bg-active);border-radius:var(--radius-xs);width:42px;height:42px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.attachment-info{flex-direction:column;flex:1;min-width:0;display:flex}.attachment-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.attachment-size{color:var(--text-muted);font-size:11px}.attachment-remove{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.attachment-remove:hover{background:var(--error-bg);color:var(--error)}.message-attachments{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.msg-attachment-img{border-radius:var(--radius-sm);border:1px solid var(--border);object-fit:contain;cursor:pointer;max-width:320px;max-height:260px;transition:all .15s}.msg-attachment-img:hover{border-color:var(--accent);box-shadow:var(--shadow)}.msg-attachment-file{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.msg-attachment-size{color:var(--text-muted);font-size:11px}.icon-btn-sm{border:1px solid var(--border);width:30px;height:30px;color:var(--text-muted);border-radius:var(--radius-xs);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:flex}.icon-btn-sm:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cursor-blink{color:var(--accent);font-weight:700;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.app-loading{height:100vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:15px;display:flex}.app-loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.topbar-user{align-items:center;gap:8px;margin-left:auto;display:flex}.topbar-user-name{font-size:13px;font-weight:600}.topbar-user-role{background:var(--accent-bg);color:var(--accent-light);text-transform:uppercase;letter-spacing:.5px;border:1px solid #8b5cf626;border-radius:10px;padding:3px 8px;font-size:9px;font-weight:700}.topbar-admin-btn{border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;padding:6px 14px;font-size:12px;font-weight:600;transition:all .2s}.topbar-admin-btn:hover{border-color:var(--accent);color:var(--accent-light);background:var(--accent-bg)}.topbar-logout{color:var(--text-faint);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 10px;font-size:12px;transition:all .15s}.topbar-logout:hover{color:var(--error)}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative}.auth-bg{background:radial-gradient(at 30% 20%,#8b5cf61a 0%,#0000 60%),radial-gradient(at 70% 80%,#22c55e0f 0%,#0000 50%),radial-gradient(#3b82f60a 0%,#0000 70%);position:absolute;inset:0}.auth-card{z-index:1;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);width:460px;max-width:92vw;box-shadow:var(--shadow-lg);padding:40px;position:relative}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo-icon{background:var(--accent-bg);width:64px;height:64px;color:var(--accent);border-radius:var(--radius-lg);box-shadow:0 0 24px var(--accent-glow);border:1px solid #8b5cf633;justify-content:center;align-items:center;margin-bottom:16px;display:inline-flex}.auth-title{letter-spacing:-.5px;margin:0;font-size:28px;font-weight:800}.auth-subtitle{color:var(--text-muted);margin-top:6px;font-size:15px}.auth-tabs{background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border);gap:4px;margin-bottom:24px;padding:4px;display:flex}.auth-tab{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.auth-tab.active{background:var(--accent-bg);color:var(--accent-light);box-shadow:var(--shadow-sm);font-weight:600}.auth-tab:hover:not(.active){color:var(--text-primary)}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-field label{color:var(--text-secondary);letter-spacing:.3px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.auth-field input{border:1px solid var(--border);background:var(--bg-tertiary);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);outline:none;padding:12px 14px;font-size:15px;transition:all .2s}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.auth-field input::placeholder{color:var(--text-muted)}.auth-pw-wrapper{position:relative}.auth-pw-wrapper input{padding-right:44px}.auth-pw-toggle{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:4px;transition:all .15s;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.auth-pw-toggle:hover{color:var(--text-primary)}.auth-error{background:var(--error-bg);border-radius:var(--radius-sm);color:var(--error);border:1px solid #ef44444d;padding:10px 14px;font-size:14px}.auth-success{background:var(--success-bg);border-radius:var(--radius-sm);color:var(--success);border:1px solid #22c55e4d;padding:10px 14px;font-size:14px}.auth-submit{background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:100%;box-shadow:0 2px 10px var(--accent-glow);letter-spacing:.3px;border:none;padding:14px;font-size:15px;font-weight:700;transition:all .2s}.auth-submit:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-hover), #6d28d9);box-shadow:0 4px 16px var(--accent-glow);transform:translateY(-1px)}.auth-submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.auth-note{color:var(--text-muted);text-align:center;margin-top:20px;font-size:13px;line-height:1.5}.adm{background:var(--bg-primary);height:100vh;display:flex}.adm-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;width:260px;min-width:260px;padding:16px 12px;display:flex}.adm-back{border:1px solid var(--border);width:100%;color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.adm-back:hover{border-color:var(--accent);color:var(--accent-light);background:var(--accent-bg)}.adm-nav{flex-direction:column;gap:2px;display:flex}.adm-nav-item{width:100%;color:var(--text-muted);border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:11px 16px;font-size:14px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.adm-nav-item:before{content:"";background:var(--accent);border-radius:0 4px 4px 0;width:3px;height:0;transition:height .25s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:0;transform:translateY(-50%)}.adm-nav-item:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.adm-nav-item.active{color:var(--accent-light);background:linear-gradient(135deg,#8b5cf61f,#8b5cf60f);border-color:#8b5cf633;font-weight:600;box-shadow:0 0 12px #8b5cf614}.adm-nav-item.active:before{height:60%}.adm-nav-item:active{transform:scale(.98)}.adm-nav-badge{background:var(--warning-bg);color:var(--warning);border:1px solid #f59e0b33;border-radius:12px;margin-left:auto;padding:2px 10px;font-size:11px;font-weight:700}.adm-content{flex:1;padding:36px 44px;overflow-y:auto}.adm-section-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.adm-title{letter-spacing:-.5px;margin:0 0 24px;font-size:26px;font-weight:800}.adm-subtitle{color:var(--text-muted);margin:-18px 0 28px;font-size:15px;line-height:1.6}.adm-stats-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:32px;display:grid}.adm-stat-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:8px;padding:28px;transition:all .2s;display:flex}.adm-stat-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.adm-stat-val{letter-spacing:-1.5px;font-size:42px;font-weight:800}.adm-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:600}.adm-grid-2{grid-template-columns:1fr 1fr;gap:22px;margin-bottom:28px;display:grid}.adm-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);box-shadow:var(--shadow-sm);padding:24px;transition:all .2s}.adm-card:hover{border-color:var(--border-light);box-shadow:var(--shadow)}.adm-card h3{letter-spacing:-.2px;margin:0 0 16px;font-size:17px;font-weight:700}.adm-card-lg{padding:32px}.adm-card-icon{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;display:flex}.adm-kv{border-bottom:1px solid var(--border);justify-content:space-between;padding:12px 0;font-size:14px;display:flex}.adm-kv:last-child{border-bottom:none}.adm-kv span:first-child{color:var(--text-muted)}.adm-kv span:last-child{color:var(--text-primary);font-weight:600}.adm-muted{color:var(--text-muted);font-size:13px}.adm-mono{font-family:var(--font-mono);font-size:13px}.adm-connection-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 0;font-size:14px;display:flex}.adm-connection-row:last-child{border-bottom:none}.adm-conn-ok{color:var(--success);font-weight:600}.adm-conn-err{color:var(--error)}.adm-conn-status{border-radius:20px;align-items:center;gap:6px;margin-bottom:16px;padding:6px 16px;font-size:13px;font-weight:600;display:inline-flex}.adm-conn-status.connected{background:var(--success-bg);color:var(--success);border:1px solid #22c55e33}.adm-conn-status.disconnected{background:var(--error-bg);color:var(--error);border:1px solid #ef444433}.adm-table{border-collapse:collapse;width:100%;font-size:14px}.adm-table th{text-align:left;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:2px solid var(--border);background:var(--bg-secondary);padding:14px 18px;font-size:11px;font-weight:700}.adm-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:16px 18px}.adm-table tr:hover td{background:var(--bg-hover)}.adm-table-users tr.pending td{border-left:3px solid var(--warning)}.adm-table-users tr.suspended td{opacity:.5}.adm-user-cell{align-items:center;gap:12px;display:flex}.adm-avatar{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:2px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:14px;font-weight:700;display:flex}.adm-avatar-sm{border-radius:var(--radius-xs);background:var(--bg-tertiary);border:2px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.adm-user-name{font-size:14px;font-weight:600}.adm-inline-select{text-transform:uppercase;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;outline:none;padding:6px 12px;font-size:13px;font-weight:700;transition:all .15s}.adm-inline-select:hover{border-color:var(--border);background:var(--bg-tertiary)}.adm-status-badge{border-radius:14px;align-items:center;gap:6px;padding:5px 14px;font-size:12px;font-weight:600;display:inline-flex}.adm-status-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.adm-role-tag{text-transform:uppercase;letter-spacing:.3px;font-size:12px;font-weight:700}.adm-actions{gap:8px;display:flex}.adm-act{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);background:0 0;align-items:center;gap:5px;padding:7px 14px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.adm-act:hover{background:var(--bg-hover);color:var(--text-primary)}.adm-act.approve{border-color:var(--success);color:var(--success)}.adm-act.approve:hover{background:var(--success-bg)}.adm-act.suspend{border-color:var(--warning);color:var(--warning)}.adm-act.suspend:hover{background:var(--warning-bg)}.adm-act.delete{border-color:var(--error);color:var(--error)}.adm-act.delete:hover{background:var(--error-bg)}.adm-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:24px;display:flex}.adm-search-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-tertiary);align-items:center;gap:10px;min-width:260px;padding:10px 16px;transition:all .2s;display:flex}.adm-search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.adm-search-box input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-size:14px}.adm-search-box input::placeholder{color:var(--text-muted)}.adm-search-box svg{color:var(--text-muted);flex-shrink:0}.adm-filter-btn{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.adm-filter-btn:hover{border-color:var(--border-light);color:var(--text-primary)}.adm-filter-btn.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-light)}.adm-filter-count{opacity:.7;font-size:11px}.adm-btn-sm{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:7px;padding:9px 18px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.adm-btn-sm:hover{border-color:var(--accent);color:var(--text-primary);background:var(--bg-hover)}.adm-perm-tags{flex-wrap:wrap;gap:5px;display:flex}.adm-perm-tag{border:1px solid;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:600}.adm-perm-more{color:var(--text-muted);padding:3px 8px;font-size:11px}.adm-repo-edit{flex-direction:column;gap:10px;display:flex}.adm-repo-select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}.adm-repo-checkboxes{background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;gap:4px;max-height:200px;padding:12px;display:flex;overflow-y:auto}.adm-repo-check{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-xs);align-items:center;gap:10px;padding:8px 6px;font-size:14px;transition:all .15s;display:flex}.adm-repo-check:hover{background:var(--bg-hover);color:var(--text-primary)}.adm-repo-check input{cursor:pointer;width:18px;height:18px;accent-color:var(--accent)}.adm-roles-grid{grid-template-columns:repeat(2,1fr);gap:22px;display:grid}.adm-role-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);border-top:3px solid var(--border);box-shadow:var(--shadow-sm);transition:all .2s;overflow:hidden}.adm-role-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.adm-role-header{justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.adm-role-name{font-size:18px;font-weight:700}.adm-role-count{color:var(--text-muted);font-size:13px;font-weight:500}.adm-role-perms{padding:0 24px 22px}.adm-role-perm{color:var(--text-secondary);align-items:center;gap:10px;padding:6px 0;font-size:14px;display:flex}.adm-perm-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.adm-device-url{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent-light);font-family:var(--font-mono);word-break:break-all;padding:12px 16px;font-size:13px;text-decoration:none;transition:all .15s;display:block}.adm-device-url:hover{border-color:var(--accent);background:var(--accent-bg)}.adm-device-code{background:var(--bg-tertiary);border:2px dashed var(--accent);border-radius:var(--radius);font-family:var(--font-mono);letter-spacing:6px;color:var(--text-primary);text-align:center;margin:6px 0;padding:14px 28px;font-size:26px;font-weight:800;display:inline-block}.adm-device-raw{background:var(--bg-tertiary);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-muted);white-space:pre-wrap;border:1px solid var(--border);margin:10px 0;padding:10px 14px;font-size:12px}.adm-connect-btn{border-radius:var(--radius);cursor:pointer;color:#fff;letter-spacing:.3px;border:none;padding:12px 24px;font-size:14px;font-weight:700;transition:all .2s}.adm-connect-btn.gh{background:linear-gradient(135deg,#238636,#1a7f37);box-shadow:0 2px 8px #2386364d}.adm-connect-btn.gh:hover{background:linear-gradient(135deg,#2ea043,#238636);transform:translateY(-1px);box-shadow:0 4px 12px #23863666}.adm-connect-btn.claude{background:linear-gradient(135deg, var(--accent), var(--accent-hover));box-shadow:0 2px 8px var(--accent-glow)}.adm-connect-btn.claude:hover{background:linear-gradient(135deg, var(--accent-hover), #6d28d9);box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.adm-connect-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.adm-org-select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;outline:none;min-width:220px;padding:10px 14px;font-size:14px;transition:all .15s}.adm-org-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.adm-form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.adm-form-field{flex-direction:column;gap:6px;display:flex}.adm-form-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.adm-form-field input,.adm-form-field select{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);border-radius:var(--radius-sm);outline:none;padding:10px 14px;font-size:14px;transition:all .15s}.adm-form-field input:focus,.adm-form-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.adm-form-hint{color:var(--text-muted);font-size:12px;font-style:italic}.deploy-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;display:flex}.deploy-bar-info{align-items:center;gap:10px;font-size:13px;display:flex}.deploy-bar-project{color:var(--accent-light);font-size:14px;font-weight:700}.deploy-bar-sep{color:var(--text-faint)}.deploy-bar-branch{font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-xs);border:1px solid var(--border);padding:3px 10px;font-size:12px}.deploy-bar-actions{align-items:center;gap:10px;display:flex}.deploy-bar-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:7px;padding:7px 16px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.deploy-bar-btn.deploy{color:#fff;background:linear-gradient(135deg,#238636,#1a7f37);box-shadow:0 2px 6px #23863640}.deploy-bar-btn.deploy:hover{background:linear-gradient(135deg,#2ea043,#238636);transform:translateY(-1px)}.deploy-bar-btn.deploy:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.deploy-bar-btn.pr{background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;box-shadow:0 2px 6px var(--accent-glow)}.deploy-bar-btn.pr:hover{background:linear-gradient(135deg, var(--accent-hover), #6d28d9);transform:translateY(-1px)}.deploy-bar-link{color:var(--success);background:var(--success-bg);border:1px solid #22c55e33;border-radius:12px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:700;text-decoration:none;transition:all .15s;display:flex}.deploy-bar-link:hover{background:#22c55e33}.deploy-bar-status{border-radius:12px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:700;display:flex}.deploy-bar-status.building{background:var(--warning-bg);color:var(--warning);border:1px solid #f59e0b33}.deploy-bar-status.failed{background:var(--error-bg);color:var(--error);border:1px solid #ef444433}.deploy-bar-pr-form{border-radius:var(--radius);background:var(--bg-tertiary);border:1px solid var(--border);width:100%;margin-top:10px;padding:16px}.deploy-bar-pr-header{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.deploy-bar-pr-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:4px;transition:all .15s}.deploy-bar-pr-close:hover{color:var(--text-primary);background:var(--bg-hover)}.deploy-bar-pr-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);width:100%;color:var(--text-primary);outline:none;margin-bottom:10px;padding:10px 14px;font-size:14px;transition:all .15s}.deploy-bar-pr-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.deploy-bar-pr-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);width:100%;color:var(--text-primary);resize:vertical;outline:none;margin-bottom:10px;padding:10px 14px;font-family:inherit;font-size:13px;transition:all .15s}.deploy-bar-pr-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.deploy-bar-pr-actions{align-items:center;gap:12px;display:flex}.deploy-bar-pr-success{color:var(--success);align-items:center;gap:5px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.deploy-bar-pr-success:hover{text-decoration:underline}.deploy-bar-pr-error{color:var(--error);font-size:13px}.thinking-indicator{align-items:center;gap:12px;padding:10px 0;display:flex}.thinking-dots{gap:5px;display:flex}.thinking-dots span{background:linear-gradient(135deg, var(--accent), var(--accent-light));border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite thinking-bounce}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.15)}}.thinking-text{color:var(--text-muted);font-size:14px;font-style:italic}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}::selection{background:var(--accent-bg-hover);color:var(--text-primary)}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;animation:.2s ease-out modal-fade-in;display:flex;position:fixed;inset:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-xl);width:520px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-lg), 0 0 40px #0000004d;padding:32px;animation:.25s cubic-bezier(.4,0,.2,1) modal-slide-in;overflow-y:auto}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.modal-header h3{align-items:center;gap:10px;margin:0;font-size:18px;font-weight:700;display:flex}.modal-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:flex}.modal-close:hover{background:var(--error-bg);border-color:var(--error);color:var(--error)}.modal-body{flex-direction:column;gap:20px;display:flex}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;margin-top:24px;padding-top:16px;display:flex}.modal-btn-primary{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;cursor:pointer;box-shadow:0 2px 8px var(--accent-glow);border:none;align-items:center;gap:8px;padding:10px 24px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.modal-btn-primary:hover{box-shadow:0 4px 14px var(--accent-glow);transform:translateY(-1px)}.modal-btn-secondary{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.modal-btn-secondary:hover{border-color:var(--border-light);color:var(--text-primary);background:var(--bg-hover)}.access-cards{flex-direction:column;gap:12px;display:flex}.access-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:20px;padding:20px 24px;transition:all .2s;display:flex}.access-card:hover{border-color:var(--border-light);box-shadow:var(--shadow);transform:translateY(-1px)}.access-card-user{align-items:center;gap:14px;min-width:200px;display:flex}.access-card-avatar{border-radius:var(--radius);border:2px solid var(--border);background:var(--bg-tertiary);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:16px;font-weight:700;display:flex}.access-card-name{font-size:15px;font-weight:600}.access-card-email{color:var(--text-muted);margin-top:2px;font-size:12px}.access-card-role{min-width:110px}.access-card-perms{flex-wrap:wrap;flex:1;gap:6px;min-width:0;display:flex}.access-card-repos{flex-direction:column;gap:4px;min-width:140px;display:flex}.access-card-repos-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);font-size:11px;font-weight:700}.access-card-repos-value{font-family:var(--font-mono);color:var(--text-secondary);font-size:13px}.access-card-action{flex-shrink:0}.access-edit-btn{border:1px solid var(--accent);background:var(--accent-bg);color:var(--accent-light);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:7px;padding:9px 18px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.access-edit-btn:hover{box-shadow:0 0 12px var(--accent-glow);background:#8b5cf633;transform:translateY(-1px)}.modal-repo-list{background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;gap:4px;max-height:280px;padding:12px;display:flex;overflow-y:auto}.modal-repo-item{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:12px;padding:10px;font-size:14px;transition:all .15s;display:flex}.modal-repo-item:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.modal-repo-item.checked{background:var(--accent-bg);color:var(--text-primary);border-color:#8b5cf633}.modal-repo-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.modal-repo-name{font-weight:500}.modal-repo-owner{color:var(--text-muted);font-size:12px;font-family:var(--font-mono);margin-left:auto}.modal-field-label{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.modal-select{border:1px solid var(--border);background:var(--bg-tertiary);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;outline:none;padding:12px 16px;font-size:14px;transition:all .15s}.modal-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.adm-content>*{animation:.3s ease-out adm-section-in}@keyframes adm-section-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
