:root{--forrest:#014421;--moss:#0c6c3a;--lime:#40a671;--gold:#ffd858;--gold-dark:#e5b422;--ink:#231f20;--gray-1:#58595b;--gray-2:#808285;--gray-3:#bcbec0;--white:#fff;--danger:#dc2626;--font-ui:"Qanelas Soft", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif;--font-mono:Consolas, "SF Mono", Menlo, monospace;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-20:20px;--fw-reg:400;--fw-med:500;--fw-semi:600;--fw-bold:700;--fw-x:800;--bg-page:#f7f8f7;--bg-card:#fff;--bg-sunken:#f1f3f1;--border:#e3e6e3;--border-strong:var(--gray-3);--text:var(--ink);--text-secondary:var(--gray-1);--text-muted:var(--gray-2);--text-invert:#fff;--accent:var(--moss);--accent-hover:var(--forrest);--accent-soft:#0c6c3a14;--focus-ring:0 0 0 2px var(--bg-card), 0 0 0 4px var(--lime);--header-h:56px;--header-bg:#fff;--sidebar-w:220px;--sidebar-w-collapsed:64px;--sidebar-bg:var(--forrest);--sidebar-bg-hover:#ffffff0f;--sidebar-bg-active:#ffffff1a;--sidebar-text:#ffffffd9;--sidebar-text-active:#fff;--sidebar-accent:var(--lime);--list-pane-w:360px;--rail-w:300px;--msg-in-border:var(--gray-3);--msg-out-bg:#0c6c3a12;--msg-out-border:var(--moss);--status-success:var(--moss);--status-warn-bg:var(--gold);--status-warn-fg:var(--ink);--status-warn-text:var(--gold-dark);--status-danger:var(--danger);--status-neutral:var(--gray-2);--tier-major-bg:var(--forrest);--tier-major-fg:#fff;--tier-standard-bg:var(--accent-soft);--tier-standard-fg:var(--moss);--tier-tail-bg:var(--bg-sunken);--tier-tail-fg:var(--text-secondary);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-full:999px;--shadow-1:0 1px 2px #231f2014;--shadow-2:0 4px 16px #231f201f;--t-fast:.12s ease;--t-med:.2s ease;--z-sticky:10;--z-dropdown:100;--z-overlay:200;--z-toast:300}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--bg-page);color:var(--text);font-size:var(--fs-13);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-mono)}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--r-sm);outline:none}*{scrollbar-width:thin;scrollbar-color:var(--gray-3) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-3);background-clip:content-box;border:2px solid #0000;border-radius:5px}@keyframes lcg-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg-sunken) 30%, var(--bg-card) 45%, var(--bg-sunken) 60%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.8s linear infinite lcg-shimmer}@keyframes lcg-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-md);font-size:var(--fs-13);font-weight:var(--fw-semi);background:var(--bg-sunken);color:var(--text);transition:background var(--t-fast), color var(--t-fast);border:1px solid #0000;padding:8px 14px;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-invert)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-outline{background:var(--bg-card);border-color:var(--accent);color:var(--accent)}.btn-outline:hover:not(:disabled){background:var(--accent-soft)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-sunken);color:var(--text)}.btn-danger{background:var(--status-danger);color:var(--text-invert)}.btn-sm{font-size:var(--fs-12);padding:4px 10px}.btn-block{width:100%}.icon-btn{border-radius:var(--r-md);width:36px;height:36px;color:var(--text-secondary);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg-sunken);color:var(--text)}.chip{border-radius:var(--r-full);font-size:var(--fs-11);font-weight:var(--fw-semi);background:var(--bg-sunken);color:var(--text-secondary);vertical-align:middle;align-items:center;gap:4px;max-width:140px;padding:2px 8px;display:inline-flex}.chip>.chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip-major{background:var(--tier-major-bg);color:var(--tier-major-fg)}.chip-standard{background:var(--tier-standard-bg);color:var(--tier-standard-fg)}.chip-tail{background:var(--tier-tail-bg);color:var(--tier-tail-fg)}.chip-accent{background:var(--accent-soft);color:var(--accent)}.chip-outline{border:1px solid var(--border-strong);background:0 0}.chip-dashed{border:1px dashed var(--border-strong);background:0 0}.chip-mono{font-family:var(--font-mono);font-size:var(--fs-12);border-radius:var(--r-sm);max-width:none}.badge{border-radius:var(--r-full);background:var(--bg-sunken);min-width:18px;height:18px;color:var(--text-secondary);font-size:var(--fs-11);font-weight:var(--fw-bold);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.badge-danger{background:var(--status-danger);color:var(--text-invert)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-gold{background:var(--status-warn-bg);color:var(--status-warn-fg)}.avatar{background:var(--accent);color:var(--text-invert);font-weight:var(--fw-bold);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-3)}.card-title{font-size:var(--fs-11);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:var(--s-2)}.card-dashed{border-style:dashed}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:var(--fs-12);font-weight:var(--fw-semi);color:var(--text-secondary)}.field-hint{font-size:var(--fs-12);color:var(--text-muted)}.input{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-card);font-size:var(--fs-13);width:100%;padding:8px 10px}.input:focus-visible{border-color:var(--accent)}.segmented{border:1px solid var(--border-strong);border-radius:var(--r-md);display:inline-flex;overflow:hidden}.segmented>button{background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-13);font-weight:var(--fw-semi);border:0;padding:6px 14px}.segmented>button+button{border-left:1px solid var(--border)}.segmented>button[aria-pressed=true]{background:var(--accent);color:var(--text-invert)}.tabs{border-bottom:1px solid var(--border);display:flex}.tab{font-size:var(--fs-13);font-weight:var(--fw-semi);color:var(--text-secondary);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 12px;display:flex}.tab:hover:not(:disabled){color:var(--text)}.tab:disabled{color:var(--text-muted);cursor:not-allowed}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.tip{display:inline-flex;position:relative}.tip:after{content:attr(data-tip);background:var(--ink);color:var(--text-invert);font-size:var(--fs-12);font-weight:var(--fw-reg);border-radius:var(--r-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-fast);z-index:var(--z-overlay);box-shadow:var(--shadow-1);padding:4px 8px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tip:hover:after,.tip:focus-within:after{opacity:1}.popover-root{position:relative}.popover{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);min-width:200px;box-shadow:var(--shadow-2);z-index:var(--z-dropdown);position:absolute;top:calc(100% + 6px)}.popover[data-align=end]{right:0}.popover[data-align=start]{left:0}.menu{padding:var(--s-1) 0}.menu-header{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border);margin-bottom:var(--s-1)}.menu-item{align-items:center;gap:var(--s-2);text-align:left;width:100%;font-size:var(--fs-13);color:var(--text);background:0 0;border:0;padding:8px 12px;display:flex}.menu-item:hover{background:var(--bg-sunken);color:var(--text);text-decoration:none}.menu-sep{background:var(--border);height:1px;margin:var(--s-1) 0}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite lcg-spin}.spinner-lg{border-width:3px;width:28px;height:28px}.empty{justify-content:center;align-items:center;gap:var(--s-2);padding:var(--s-8);height:100%;color:var(--text-muted);text-align:center;flex-direction:column;display:flex}.empty-title{font-size:var(--fs-14);font-weight:var(--fw-semi);color:var(--text-secondary)}.status-screen{justify-content:center;align-items:center;gap:var(--s-3);text-align:center;height:100%;padding:var(--s-8);flex-direction:column;display:flex}.status-code{font-family:var(--font-mono);font-size:56px;font-weight:var(--fw-bold);color:var(--gray-3)}.alert-danger{color:var(--status-danger);font-size:var(--fs-12)}.saved-note{color:var(--status-success);font-size:var(--fs-12);transition:opacity var(--t-med)}.saved-note[data-fading=true]{opacity:0}.shell{grid-template-areas:"header header""sidebar main";grid-template-rows:var(--header-h) 1fr;grid-template-columns:var(--sidebar-w) 1fr;height:100dvh;transition:grid-template-columns .16s;display:grid}.shell[data-sidebar=collapsed]{--sidebar-w:var(--sidebar-w-collapsed)}.shell>.main{grid-area:main;min-width:0;min-height:0;overflow:hidden}.header{background:var(--header-bg);border-bottom:1px solid var(--border);padding-left:var(--s-4);padding-right:var(--s-3);align-items:center;gap:var(--s-2);grid-area:header;display:flex}.wordmark{align-items:center;gap:var(--s-2);flex:none;display:inline-flex}.wordmark:hover{text-decoration:none}.wordmark img{width:auto;height:24px}.wordmark .wordmark-hub{font-weight:var(--fw-bold);font-size:var(--fs-16);color:var(--accent)}.global-search{max-width:420px;margin-left:var(--s-6);flex:1;position:relative}.global-search .gs-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.global-search input{border-radius:var(--r-md);background:var(--bg-sunken);width:100%;font-size:var(--fs-13);border:1px solid #0000;padding:7px 12px 7px 34px}.global-search input:focus-visible{background:var(--bg-card);border-color:var(--accent)}.global-search input:disabled{color:var(--text-muted);cursor:not-allowed}.header-right{align-items:center;gap:var(--s-1);margin-left:auto;display:flex}.avatar-btn{border-radius:var(--r-full);background:0 0;border:0;padding:4px;display:inline-flex}.avatar-btn:hover{background:var(--bg-sunken)}.sidebar{background:var(--sidebar-bg);padding:var(--s-2);flex-direction:column;grid-area:sidebar;min-height:0;display:flex;overflow:hidden auto}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-item{height:36px;padding:0 var(--s-2);border-radius:var(--r-md);color:var(--sidebar-text);font-size:var(--fs-13);font-weight:var(--fw-semi);white-space:nowrap;align-items:center;gap:10px;display:flex;position:relative}.sidebar-item:hover{background:var(--sidebar-bg-hover);color:var(--sidebar-text-active);text-decoration:none}.sidebar-item.active{background:var(--sidebar-bg-active);color:var(--sidebar-text-active);box-shadow:inset 3px 0 0 var(--sidebar-accent)}.sidebar-item svg{flex:none}.sidebar-item .si-label{text-overflow:ellipsis;overflow:hidden}.sidebar-bottom{flex-direction:column;gap:2px;margin-top:auto;display:flex}.sidebar-sep{height:1px;margin:var(--s-2) 0;background:#ffffff1f}.sidebar-collapse{height:36px;padding:0 var(--s-2);border-radius:var(--r-md);color:var(--sidebar-text);font-size:var(--fs-13);font-weight:var(--fw-semi);white-space:nowrap;background:0 0;border:0;align-items:center;gap:10px;display:flex}.sidebar-collapse:hover{background:var(--sidebar-bg-hover);color:var(--sidebar-text-active)}.sidebar-collapse svg{transition:transform var(--t-fast);flex:none}.shell:not([data-sidebar=collapsed]) .sidebar-collapse svg{transform:rotate(180deg)}.shell[data-sidebar=collapsed] .sidebar-item,.shell[data-sidebar=collapsed] .sidebar-collapse{justify-content:center;padding:0}.shell[data-sidebar=collapsed] .si-label{display:none}.shell[data-sidebar=collapsed] .sidebar-item:after{content:attr(data-label);background:var(--ink);color:var(--text-invert);font-size:var(--fs-12);font-weight:var(--fw-reg);border-radius:var(--r-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-fast);z-index:var(--z-overlay);padding:4px 8px;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)}.shell[data-sidebar=collapsed] .sidebar-item:hover:after,.shell[data-sidebar=collapsed] .sidebar-item:focus-visible:after{opacity:1}.login-page{background:var(--bg-page);min-height:100dvh;padding:var(--s-4);justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-card);border-radius:var(--r-lg);width:100%;max-width:380px;box-shadow:var(--shadow-2);padding:var(--s-8) var(--s-6);align-items:center;gap:var(--s-3);flex-direction:column;display:flex}.login-card .login-mark{width:auto;height:64px}.login-title{font-size:var(--fs-20);font-weight:var(--fw-x)}.login-sub{color:var(--text-secondary);font-size:var(--fs-13)}.login-card .btn-block{margin-top:var(--s-2)}.login-divider{align-items:center;gap:var(--s-2);width:100%;color:var(--text-muted);font-size:var(--fs-11);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--s-2);display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-dev{gap:var(--s-2);flex-direction:column;width:100%;display:flex}.settings{background:var(--bg-card);height:100%;display:flex;overflow:hidden}.settings-nav{border-right:1px solid var(--border);width:180px;padding:var(--s-4) var(--s-2);flex-direction:column;flex:none;gap:2px;display:flex}.settings-nav-title{font-size:var(--fs-11);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 var(--s-2);margin-bottom:var(--s-2)}.settings-nav a{padding:7px var(--s-2);border-radius:var(--r-md);color:var(--text-secondary);font-size:var(--fs-13);font-weight:var(--fw-semi);display:block}.settings-nav a:hover{background:var(--bg-sunken);color:var(--text);text-decoration:none}.settings-nav a.active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.settings-content{min-width:0;padding:var(--s-6);flex:1;overflow-y:auto}.settings-content>.settings-inner{gap:var(--s-4);flex-direction:column;max-width:640px;display:flex}.settings-h1{font-size:var(--fs-16);font-weight:var(--fw-bold)}.kv-rows{flex-direction:column;display:flex}.kv-row{align-items:baseline;gap:var(--s-4);border-bottom:1px solid var(--border);padding:10px 0;display:flex}.kv-row:last-child{border-bottom:0}.kv-key{width:140px;color:var(--text-secondary);font-size:var(--fs-12);font-weight:var(--fw-semi);flex:none}.kv-val{gap:var(--s-1);flex-wrap:wrap;align-items:center;min-width:0;display:flex}.users-table{border-collapse:collapse;width:100%;font-size:var(--fs-13)}.users-table th{text-align:left;font-size:var(--fs-11);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:var(--s-2);border-bottom:1px solid var(--border-strong)}.users-table td{padding:var(--s-2);border-bottom:1px solid var(--border);vertical-align:top}.users-table tr:hover td{background:var(--bg-sunken)}.role-grid{flex-wrap:wrap;gap:6px 12px;display:flex}.role-grid label{font-size:var(--fs-12);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.role-grid input{accent-color:var(--accent)}.about-mission{border-left:3px solid var(--accent);padding:var(--s-2) var(--s-3);color:var(--text-secondary);font-size:var(--fs-13);font-style:italic}
