:root{color-scheme:dark;--bg: #141416;--surface: #1c1c1e;--surface-alt: #242426;--border: rgba(255, 255, 255, .08);--text: rgba(255, 255, 255, .94);--text-dim: rgba(255, 255, 255, .55);--accent: #0a84ff;--green: #30d158;--red: #ff453a;--amber: #ff9f0a;--dock-bg: rgba(40, 40, 45, .38);--dock-border: rgba(255, 255, 255, .14);--glass-light: rgba(255, 255, 255, 1);--glass-dark: rgba(0, 0, 0, 1);--shadow: rgba(0, 0, 0, .4)}@media (prefers-color-scheme: light){:root{color-scheme:light;--bg: #f2f2f7;--surface: #ffffff;--surface-alt: #f7f7f9;--border: rgba(0, 0, 0, .06);--text: rgba(0, 0, 0, .92);--text-dim: rgba(0, 0, 0, .5);--accent: #007aff;--green: #34c759;--red: #ff3b30;--amber: #ff9500;--dock-bg: rgba(255, 255, 255, .42);--dock-border: rgba(0, 0, 0, .08);--shadow: rgba(0, 0, 0, .15)}}*{box-sizing:border-box}html,body{margin:0;padding:0;background-color:var(--bg);background-image:radial-gradient(circle,color-mix(in srgb,var(--text) 14%,transparent) 1px,transparent 1px);background-size:22px 22px;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif}code,.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.dim{color:var(--text-dim)}.spinner{display:inline-block;vertical-align:middle;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 20%,transparent);border-top-color:currentColor;animation:spinner-spin .7s linear infinite}@keyframes spinner-spin{to{transform:rotate(360deg)}}@keyframes modal-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem}.auth-card{width:100%;max-width:340px;text-align:center;background:var(--dock-bg);border:1px solid var(--dock-border);border-radius:24px;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 1px 1px color-mix(in srgb,var(--glass-light) 30%,transparent),inset 0 -1px 3px color-mix(in srgb,var(--glass-dark) 15%,transparent),0 20px 60px var(--shadow);padding:2.2rem 2rem;animation:modal-pop .35s cubic-bezier(.34,1.56,.64,1)}.auth-logo{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);margin-bottom:1rem}.auth-card h1{margin:0 0 .2rem;font-size:1.2rem}.auth-card>.dim{margin:0 0 1.4rem;font-size:.85rem}.auth-form{display:flex;flex-direction:column;gap:.9rem;text-align:left}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;color:var(--text-dim)}.auth-form input,.auth-form select{width:100%;font-family:inherit;background:color-mix(in srgb,var(--surface-alt) 75%,transparent);border:1px solid var(--border);color:var(--text);padding:.6rem .8rem;border-radius:12px;font-size:.85rem;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--glass-dark) 6%,transparent),inset 0 1px color-mix(in srgb,var(--glass-light) 18%,transparent);transition:border-color .2s ease,box-shadow .2s ease}.auth-form input:focus,.auth-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 1px 2px color-mix(in srgb,var(--glass-dark) 6%,transparent)}.auth-error{margin:0;font-size:.78rem;color:var(--red)}.save-btn{font-family:inherit;font-weight:700;font-size:.85rem;padding:.7rem;border-radius:999px;border:none;cursor:pointer;color:#fff;background:linear-gradient(to bottom,color-mix(in srgb,var(--accent) 92%,white),var(--accent));box-shadow:inset 0 1px 1px color-mix(in srgb,var(--glass-light) 35%,transparent),0 4px 16px color-mix(in srgb,var(--accent) 35%,transparent);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.save-btn:hover{transform:scale(1.03)}.save-btn:disabled{opacity:.6;cursor:default;transform:none}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;animation:modal-pop .2s ease}.confirm-dialog{width:100%;max-width:360px;margin:0 1.5rem;padding:1.4rem;background:var(--dock-bg);border:1px solid var(--dock-border);border-radius:24px;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 1px 1px color-mix(in srgb,var(--glass-light) 30%,transparent),inset 0 -1px 3px color-mix(in srgb,var(--glass-dark) 15%,transparent),0 20px 60px var(--shadow);animation:modal-pop .3s cubic-bezier(.34,1.56,.64,1)}.confirm-dialog h3{margin:0 0 .5rem;font-size:1rem;font-weight:700}.confirm-dialog p{margin:0 0 1.2rem;font-size:.85rem;color:var(--text-dim);line-height:1.4}.confirm-actions{display:flex;gap:.6rem}.confirm-cancel,.confirm-ok{flex:1;font-family:inherit;font-weight:700;font-size:.85rem;padding:.7rem;border-radius:999px;border:none;cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.confirm-cancel:hover,.confirm-ok:hover{transform:scale(1.03)}.confirm-cancel{background:color-mix(in srgb,var(--surface-alt) 75%,transparent);color:var(--text);border:1px solid var(--border)}.confirm-ok{color:#fff;background:linear-gradient(to bottom,color-mix(in srgb,var(--accent) 92%,white),var(--accent))}.confirm-ok-danger{background:linear-gradient(to bottom,color-mix(in srgb,var(--red) 85%,white),var(--red))}.admin-app{min-height:100vh;display:flex;flex-direction:column}.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;border-bottom:1px solid var(--border)}.admin-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.05rem}.admin-brand .title-icon{color:var(--accent);display:flex}.admin-logout{font-family:inherit;font-size:.8rem;font-weight:600;padding:.45rem .9rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer}.admin-logout:hover{border-color:var(--accent);color:var(--accent)}.admin-body{flex:1;display:flex;max-width:1100px;width:100%;margin:0 auto;padding:1.5rem;gap:1.5rem}.admin-nav{display:flex;flex-direction:column;gap:.3rem;min-width:180px}.admin-nav-item{display:flex;align-items:center;gap:.6rem;font-family:inherit;font-size:.85rem;font-weight:600;text-align:left;padding:.6rem .9rem;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .2s ease,color .2s ease}.admin-nav-item:hover{background:var(--surface);color:var(--text)}.admin-nav-item.is-active{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent)}.admin-view{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.2rem}.admin-view h2{margin:0;font-size:1.1rem}.glass-card{background:var(--dock-bg);border:1px solid var(--dock-border);border-radius:20px;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:inset 0 1px 1px color-mix(in srgb,var(--glass-light) 30%,transparent),inset 0 -1px 2px color-mix(in srgb,var(--glass-dark) 12%,transparent),0 12px 30px var(--shadow);padding:1.4rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.9rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:.9rem 1rem}.stat-card .stat-label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.stat-card .stat-value{font-size:1.3rem;font-weight:700}.status-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;padding:.3rem .7rem;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.status-pill-dot{width:7px;height:7px;border-radius:50%}.status-pill.is-online .status-pill-dot{background:var(--green)}.status-pill.is-offline .status-pill-dot{background:var(--red)}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim);padding:0 .7rem .5rem;font-weight:600}.data-table td{padding:.6rem .7rem;border-top:1px solid var(--border)}.data-table tr:hover td{background:color-mix(in srgb,var(--surface-alt) 60%,transparent)}.role-chip{display:inline-block;font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.role-chip.role-admin{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.role-chip.role-user{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.role-chip.role-observer{background:color-mix(in srgb,var(--text-dim) 18%,transparent);color:var(--text-dim)}.locked-chip{font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;background:color-mix(in srgb,var(--red) 18%,transparent);color:var(--red);text-transform:uppercase}.icon-btn-sm{font-family:inherit;font-size:.75rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;margin-right:.35rem}.icon-btn-sm:hover{border-color:var(--accent);color:var(--accent)}.icon-btn-sm.is-danger:hover{border-color:var(--red);color:var(--red)}.admin-form-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end}.admin-form-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.72rem;color:var(--text-dim)}.admin-form-row input,.admin-form-row select{font-family:inherit;background:color-mix(in srgb,var(--surface-alt) 75%,transparent);border:1px solid var(--border);color:var(--text);padding:.5rem .7rem;border-radius:10px;font-size:.82rem}.admin-fieldset{border:none;padding:0;margin:0 0 1.2rem;display:flex;flex-direction:column;gap:.7rem}.admin-fieldset legend{font-size:.85rem;font-weight:700;padding:0 0 .5rem}.admin-fieldset label{display:flex;flex-direction:column;gap:.3rem;font-size:.75rem;color:var(--text-dim)}.admin-fieldset input{font-family:inherit;background:color-mix(in srgb,var(--surface-alt) 75%,transparent);border:1px solid var(--border);color:var(--text);padding:.55rem .75rem;border-radius:10px;font-size:.82rem}.chat-layout{display:flex;gap:1rem;height:480px}.chat-threads{width:220px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;gap:.3rem}.chat-thread-item{font-family:inherit;text-align:left;padding:.6rem .7rem;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;font-size:.82rem}.chat-thread-item:hover{background:var(--surface)}.chat-thread-item.is-active{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.chat-thread-item .dim{display:block;font-size:.7rem;margin-top:.15rem}.chat-conversation{flex:1;display:flex;flex-direction:column;min-width:0}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding-right:.3rem}.chat-bubble{max-width:75%;padding:.5rem .8rem;border-radius:14px;font-size:.82rem;line-height:1.4}.chat-bubble.from-admin{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-bubble.from-user{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-composer{display:flex;gap:.5rem;margin-top:.8rem}.chat-composer input{flex:1;font-family:inherit;background:color-mix(in srgb,var(--surface-alt) 75%,transparent);border:1px solid var(--border);color:var(--text);padding:.55rem .8rem;border-radius:999px;font-size:.82rem}.chat-composer button{font-family:inherit;font-weight:700;font-size:.8rem;padding:.5rem 1.1rem;border-radius:999px;border:none;cursor:pointer;color:#fff;background:var(--accent)}.audit-list{display:flex;flex-direction:column;gap:.4rem;max-height:480px;overflow-y:auto}.audit-row{display:flex;gap:.7rem;align-items:baseline;padding:.5rem .7rem;border-radius:10px;background:var(--surface);border:1px solid var(--border);font-size:.8rem}.audit-row .audit-action{font-weight:600}.audit-row .audit-time{margin-left:auto;font-size:.7rem;color:var(--text-dim);white-space:nowrap}
