:root{color-scheme:dark;--bg: #1b2d1d;--panel: #112213;--border: rgba(155, 255, 180, .12);--text: #edf7ee;--muted: #a6d4ab;--accent: #4ade80;--success: #7ef0a4}*{box-sizing:border-box}html,body{width:100%;min-width:320px;min-height:100%;margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#132816;color:var(--text)}body{min-height:100vh;display:flex;justify-content:center;padding:24px;background:radial-gradient(circle at top,rgba(74,222,128,.16),transparent 32%),var(--bg)}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{width:min(1500px,100%);height:calc(100vh - 48px);min-height:620px;display:flex;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--bg);box-shadow:0 26px 48px #00000061}.server-bar{width:74px;flex:0 0 74px;display:flex;flex-direction:column;align-items:center;gap:13px;padding:14px 0;background:var(--panel);border-right:1px solid var(--border)}.server-logo,.nav-button{width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:15px;background:#1b3821;color:var(--muted);font-size:1.25rem;font-weight:700;transition:transform .18s ease,border-radius .18s ease,background .18s ease}.server-logo{background:linear-gradient(135deg,#4ade80,#15803d)}.server-logo img{width:28px;height:28px;object-fit:contain}.server-logo:hover,.nav-button:hover{transform:translateY(-1px);border-radius:20px}.nav-button.active{background:#295933;color:var(--text)}.server-divider{width:30px;border-top:1px solid var(--border)}.nav-spacer{flex:1}.settings-link{font-size:1.15rem}.server-bottom{position:relative;margin-top:2px}.current-user-avatar{width:42px;height:42px;display:block;border:2px solid rgba(126,240,164,.5);border-radius:50%;background:#18311c;object-fit:cover}.current-user-status{position:absolute;right:-1px;bottom:-1px;width:13px;height:13px;border:3px solid var(--panel);border-radius:50%;background:var(--success)}.app-view{min-width:0;flex:1;background:var(--bg)}.app-view iframe{width:100%;height:100%;display:block;border:0;background:var(--bg)}.auth-screen[hidden],.app-shell[hidden]{display:none!important}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(420px,100%);padding:34px;border:1px solid var(--border);border-radius:20px;background:#112213e6;box-shadow:0 28px 70px #00000059}.auth-logo{width:46px;height:46px;margin-bottom:23px;object-fit:contain}.auth-eyebrow{margin:0 0 8px;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.auth-card h1{margin:0;font-size:1.8rem;letter-spacing:-.04em}.auth-copy,.auth-footnote{color:var(--muted);font-size:.82rem;line-height:1.55}.auth-copy{margin:8px 0 23px}#auth-form{display:grid;gap:9px}#auth-form label{margin-top:7px;color:var(--text-soft);font-size:.75rem;font-weight:700}#auth-form input{width:100%;min-height:43px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:#122515;color:var(--text)}#auth-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.auth-submit{min-height:43px;margin-top:13px;border:0;border-radius:9px;background:var(--accent);color:#10321a;font-weight:800;cursor:pointer}.auth-submit:hover{background:#69ee96}.auth-error{margin:4px 0 0;color:#faa;font-size:.76rem}.auth-switch{display:flex;flex-wrap:wrap;gap:5px;margin:19px 0 0;color:var(--muted);font-size:.75rem}.auth-switch button{padding:0;border:0;background:none;color:var(--success);font-size:inherit;font-weight:700;cursor:pointer}.auth-footnote{margin:24px 0 0;padding-top:15px;border-top:1px solid var(--border);font-size:.68rem}.logout-button{position:relative;display:block;padding:0;border:0;background:transparent;cursor:pointer}.logout-button:hover .current-user-avatar{filter:brightness(1.15)}[hidden]{display:none!important}@media(max-width:760px){body{padding:0}.app-shell{height:100vh;min-height:520px;border:0;border-radius:0}.server-bar{width:60px;flex-basis:60px;gap:10px}.server-logo,.nav-button{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important}}
