:root{--bg:#0b0d10;--panel:#14181d;--border:#232a31;--text:#e6e9ec;--muted:#93a1ad;--accent:#5b9cff;--ok:#3ddc97;--ok-rgb:61,220,151;--warn:#ffb86b;--error:#ff6b6b;--sidebar:#10151b;--sidebar-w:208px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s8:48px;--tx-xs:12px;--tx-sm:13px;--tx-base:14px;--tx-md:16px;--tx-lg:20px;--tx-xl:28px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:999px}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent);text-decoration:none}.wrap{max-width:1200px;margin:0 auto;padding:40px 24px}.h1{font-size:28px;font-weight:700;margin:0 0 4px}.sub{color:var(--muted);margin:0 0 32px}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.card h3{margin:0 0 8px;font-size:14px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.tag{font-size:12px}.badge,.tag{color:var(--muted)}.badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border)}.badge.api{color:var(--ok);border-color:#1f5e44}.badge.auto{color:#ffb86b;border-color:#5e451f}.note{color:var(--muted);font-size:13px;margin-top:24px}.caps-warn{display:flex;align-items:center;gap:6px;margin-top:.5rem;font-size:.8rem;font-weight:600;color:#ffb86b}.caps-warn[hidden]{display:none}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:36px 32px;width:100%;max-width:420px}.auth-title{font-size:22px;font-weight:700;margin:0 0 6px;text-align:center}.auth-sub{color:var(--muted);font-size:14px;margin:0 0 24px;text-align:center}.auth-form{gap:16px}.auth-form,.auth-label{display:flex;flex-direction:column}.auth-label{gap:6px;font-size:13px;font-weight:500;color:var(--muted)}.auth-input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-size:14px;outline:none;transition:border-color .15s}.auth-input:focus{border-color:var(--accent)}.auth-hint{font-weight:400;font-size:11px}.auth-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.auth-btn:disabled{opacity:.5;cursor:default}.auth-error{color:#ff6b6b;font-size:13px;margin:0}.auth-links{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;font-size:13px;color:var(--muted)}.auth-sep{color:var(--border)}.auth-row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.app-shell{display:flex;flex-direction:row;min-height:100dvh}.app-main{flex:1 1;min-width:0}.app-side{width:var(--sidebar-w);min-height:100dvh;height:100dvh;background:var(--sidebar);border-right:1px solid var(--border);padding:var(--s3);flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;overflow-y:auto;z-index:20;scrollbar-width:thin}.app-side,.side-brand{display:flex;flex-direction:column}.side-brand{gap:2px;padding:6px 8px 12px}.side-logo{font-weight:700;font-size:15px;color:var(--text);letter-spacing:-.01em}.side-ws{font-size:11px;color:var(--muted)}.side-cta{display:flex;align-items:center;justify-content:center;gap:var(--s2);background:linear-gradient(180deg,#ffc579,#f59e0b);color:#1a1205;font-weight:700;font-size:var(--tx-sm);border:none;border-radius:var(--r-md);padding:9px 12px;margin-bottom:var(--s3);cursor:pointer;text-decoration:none;transition:opacity .15s}.side-cta:hover{opacity:.92;color:#1a1205}.side-zone-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:10px 8px 4px;margin-top:var(--s1)}.side-nav-link{display:flex;align-items:center;gap:var(--s2);padding:7px 10px;border-radius:var(--r-md);color:var(--muted);font-size:var(--tx-sm);font-weight:500;transition:color .15s,background .15s}.side-nav-link:hover{color:var(--text);background:hsla(0,0%,100%,.04)}.side-nav-link-active{color:var(--text);background:rgba(91,156,255,.12)}.side-spacer{flex:1 1}.side-user{border-top:1px solid var(--border);padding-top:var(--s3);margin-top:var(--s2);display:flex;flex-direction:column;gap:var(--s1)}.side-user-info{display:flex;align-items:center;gap:var(--s2);padding:6px 8px;border-radius:var(--r-md);color:var(--text);transition:background .15s}.side-user-info:hover{background:hsla(0,0%,100%,.04);color:var(--text)}.side-avatar{width:28px;height:28px;border-radius:var(--r-pill);background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex-shrink:0}.side-user-text{display:flex;flex-direction:column;gap:1px;min-width:0}.side-user-name{font-size:var(--tx-sm);font-weight:500;line-height:1.2}.side-user-email,.side-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user-email{font-size:10px;color:var(--muted)}.side-signout{background:none;border:none;text-align:left;padding:5px 10px;color:var(--muted);font-size:var(--tx-sm);cursor:pointer;border-radius:var(--r-md);transition:color .15s,background .15s}.side-signout:hover{color:var(--text);background:hsla(0,0%,100%,.04)}.side-topbar{display:none;align-items:center;gap:var(--s3);padding:0 var(--s4);height:52px;background:var(--sidebar);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:30}.side-topbar-brand{font-weight:700;font-size:15px;flex:1 1}.side-topbar-cta{font-size:var(--tx-xs);font-weight:700;background:linear-gradient(180deg,#ffc579,#f59e0b);color:#1a1205;padding:5px 10px;border-radius:var(--r-md);text-decoration:none}.side-ham{background:none;border:none;cursor:pointer;padding:4px;display:flex;flex-direction:column;justify-content:center;gap:5px;width:28px;height:28px}.side-ham span{display:block;height:2px;background:var(--muted);border-radius:2px;transition:opacity .15s}.side-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:19}@media (max-width:767px){.app-shell{flex-direction:column}.app-side{position:fixed;top:52px;left:0;bottom:0;height:auto;z-index:20;transform:translateX(-100%);transition:transform .22s ease}.app-side.app-side-open{transform:translateX(0)}.side-backdrop.side-backdrop-open{display:block}.side-topbar{display:flex}}.members-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.members-invite-btn{padding:8px 16px;font-size:13px}.members-table-wrap{overflow-x:auto}.members-table{width:100%;border-collapse:collapse;font-size:13px}.members-table th{text-align:left;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px}.members-table td,.members-table th{border-bottom:1px solid var(--border)}.members-table td{padding:12px;vertical-align:middle}.members-table tr:last-child td{border-bottom:0}.members-row-self td{background:rgba(91,156,255,.04)}.members-badge-pending{color:#ffb86b;margin-left:4px;cursor:default}.members-badge-you,.members-role-tag{color:var(--muted);font-size:11px}.members-role-tag{padding:2px 8px;border-radius:999px;border:1px solid var(--border);display:inline-block}.members-role-select{background:var(--bg);color:var(--text);padding:4px 8px}.members-remove-btn,.members-role-select{border:1px solid var(--border);border-radius:6px;font-size:12px;cursor:pointer}.members-remove-btn{background:none;color:#ff6b6b;padding:4px 10px;transition:border-color .15s}.members-remove-btn:hover{border-color:#ff6b6b}.members-never{color:var(--muted)}.members-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:100}.members-modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:36px 32px;width:100%;max-width:460px;max-height:90dvh;overflow-y:auto}.members-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.members-cancel-btn{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:14px;padding:10px 20px;cursor:pointer;transition:color .15s}.members-cancel-btn:hover{color:var(--text)}.members-manage-link{font-size:12px;padding:4px 10px;border:1px solid var(--border);border-radius:6px;color:var(--accent);transition:border-color .15s;white-space:nowrap}.members-manage-link:hover{border-color:var(--accent)}.settings-section{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:24px}.settings-section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.settings-section-title{font-size:16px;font-weight:600;margin:0}.settings-status{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid}.settings-status-ok{color:var(--ok);border-color:#1f5e44}.settings-status-missing{color:var(--muted);border-color:var(--border)}.settings-note{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px;color:var(--muted);line-height:1.6}.settings-note p{margin:0 0 8px}.settings-note p:last-child{margin-bottom:0}.settings-code{display:block;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 10px;margin:6px 0;font-size:12px;color:var(--accent);word-break:break-all;font-family:ui-monospace,monospace}.conn-connect-btn{padding:8px 16px;font-size:13px;text-decoration:none;display:inline-block}.conn-banner{border-radius:8px;padding:10px 16px;font-size:13px;margin-bottom:20px}.conn-banner-ok{background:rgba(61,220,151,.1);border:1px solid rgba(61,220,151,.3);color:var(--ok)}.conn-banner-error{background:hsla(0,100%,71%,.1);border:1px solid hsla(0,100%,71%,.3);color:#ff6b6b}.conn-empty{color:var(--muted);font-size:14px;line-height:1.8;padding:32px 0}.conn-label{font-weight:500}.conn-status{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}