:root{--bg: #0b0d12;--bg-2: #12151d;--panel: #161a23;--panel-2: #1c212c;--border: #262c39;--text: #e6e9ef;--muted: #8b93a4;--accent: #5b8cff;--accent-2: #7aa2ff;--danger: #ff6b6b;--ok: #4ade80;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}h1{font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.05rem;margin:0 0 .5rem}.muted{color:var(--muted)}.boot{height:100vh;display:grid;place-items:center;font-size:3rem;color:var(--accent);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 600px at 50% -10%,#1a2237 0%,var(--bg) 55%)}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:2rem;display:flex;flex-direction:column;gap:.85rem}.login-brand{font-size:1.35rem;font-weight:650;display:flex;align-items:center;gap:.5rem}.login-sub{margin:0 0 .5rem;color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.login-card input{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:.6rem .7rem;color:var(--text);font-size:.95rem}.login-card input:focus{outline:2px solid var(--accent);border-color:transparent}.login-card button{margin-top:.4rem;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.7rem;font-weight:600;font-size:.95rem}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:var(--danger);font-size:.85rem}.login-warn{background:#2a2410;border:1px solid #4a3d12;color:#e8c766;border-radius:8px;padding:.6rem;font-size:.8rem}.login-foot{text-align:center;color:var(--muted);font-size:.8rem;margin:.25rem 0 0}.brand-mark{color:var(--accent)}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.shell-nav{background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.1rem .8rem}.brand{display:flex;align-items:center;gap:.55rem;font-weight:650;font-size:1.1rem;padding:0 .5rem 1.1rem}.shell-nav nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border-radius:8px;color:var(--muted);font-size:.9rem}.nav-item:hover{background:var(--panel);color:var(--text)}.nav-item.active{background:var(--panel-2);color:var(--text)}.nav-icon{width:1.1rem;text-align:center;color:var(--accent)}.nav-foot{margin-top:auto;padding:.8rem .6rem 0;color:var(--muted);font-size:.72rem}.shell-main{display:flex;flex-direction:column;min-width:0}.shell-header{height:58px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.3rem;background:var(--bg-2)}.header-title{font-weight:600}.header-right{display:flex;align-items:center;gap:1.1rem}.shell-content{padding:1.5rem 1.6rem;overflow:auto}.profile{display:flex;align-items:center;gap:.55rem;position:relative;cursor:pointer}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:.75rem;font-weight:600}.profile-email{color:var(--muted);font-size:.85rem}.profile-menu{position:absolute;top:42px;right:0;width:210px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.4rem;z-index:20}.profile-menu-head{padding:.5rem;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border)}.profile-menu-head span{color:var(--muted);font-size:.78rem}.profile-menu-item{width:100%;text-align:left;background:none;border:0;color:var(--text);padding:.55rem .5rem;border-radius:6px;font-size:.88rem}.profile-menu-item:hover{background:var(--panel-2)}.bell{position:relative;cursor:pointer;font-size:1.2rem;color:var(--muted)}.bell:hover{color:var(--text)}.bell-badge{position:absolute;top:-6px;right:-8px;background:var(--danger);color:#fff;font-size:.62rem;min-width:15px;height:15px;border-radius:8px;display:grid;place-items:center;padding:0 3px}.bell-panel{position:absolute;top:34px;right:0;width:300px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.4rem;z-index:20}.bell-head{display:flex;align-items:center;justify-content:space-between;padding:.45rem .55rem}.link-btn{background:none;border:0;color:var(--accent);font-size:.8rem}.bell-empty{padding:1rem .55rem;color:var(--muted);font-size:.85rem}.bell-item{padding:.55rem;border-radius:8px}.bell-item.unread{background:var(--panel-2)}.bell-item-title{font-size:.85rem;font-weight:600}.bell-item-body{font-size:.8rem;color:var(--muted)}.page{max-width:980px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin:1.3rem 0}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem}.stat-label{color:var(--muted);font-size:.82rem}.stat-value{font-size:1.9rem;font-weight:650;margin-top:.35rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.3rem;margin-top:1rem}.page{max-width:1100px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);margin-top:1rem}.tbl{width:100%;border-collapse:collapse;font-size:.85rem}.tbl thead th{text-align:left;padding:.6rem .8rem;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);background:var(--bg-2);white-space:nowrap}.tbl td{padding:.6rem .8rem;border-bottom:1px solid var(--border);vertical-align:top}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:hover{background:var(--panel-2)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.nowrap{white-space:nowrap}.reason{max-width:340px}.badge{display:inline-block;padding:.12rem .5rem;border-radius:20px;font-size:.72rem;font-weight:600;text-transform:capitalize}.badge-ok{background:#4ade8026;color:#4ade80}.badge-warn{background:#e8c76626;color:#e8c766}.badge-danger{background:#ff6b6b26;color:#ff6b6b}.badge-muted{background:var(--panel-2);color:var(--muted)}.badge-default{background:#5b8cff26;color:var(--accent-2)}.state{padding:2rem 1rem;text-align:center}.state.error{color:var(--danger)}.edge-list{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.4rem}.edge-list li{display:flex;align-items:center;gap:.6rem;font-family:ui-monospace,monospace;font-size:.82rem}.edge-arrow{color:var(--accent)}.edge-to{color:var(--muted)}.invite-form h2{margin-bottom:.8rem}.invite-row{display:flex;gap:.6rem;flex-wrap:wrap}.invite-row input,.invite-row select{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;color:var(--text);font-size:.9rem}.invite-row input[type=email]{flex:1;min-width:200px}.invite-row input[type=text]{flex:1;min-width:160px}.invite-row button{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.55rem 1rem;font-weight:600}.invite-row button:disabled{opacity:.6}.invite-ok{color:var(--ok);font-size:.85rem;margin-top:.7rem}.invite-err{color:var(--danger);font-size:.85rem;margin-top:.7rem}.btn-danger{background:#ff6b6b26;color:#ff6b6b;border:1px solid rgba(255,107,107,.3);border-radius:6px;padding:.3rem .65rem;font-size:.78rem;font-weight:600}.btn-danger:disabled{opacity:.5}.primary-btn{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.6rem 1rem;font-weight:600;margin-top:.8rem}.primary-btn:disabled{opacity:.6}.secret-key{font-family:ui-monospace,monospace;font-size:1.05rem;letter-spacing:2px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:.8rem;margin:.6rem 0;word-break:break-all}.totp-enroll-label{display:flex;flex-direction:column;gap:.4rem;margin-top:.8rem;color:var(--muted);font-size:.85rem}.totp-enroll-label input{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;color:var(--text);font-size:1rem;letter-spacing:3px;max-width:160px}a.profile-menu-item{display:block;text-decoration:none}
