:root{--bg:#f7f7f5;--surface:#fff;--surface-2:#f0f0ec;--text:#1c1c1a;--muted:#5e5e58;--border:#dcdcd4;--accent:#1f5f4a;--accent-contrast:#fff;--danger:#a3261f;--warn:#8a5a00;--ok:#1f6b3a;--info:#24527a;--radius:8px;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121311;--surface:#1a1b19;--surface-2:#232421;--text:#ecece6;--muted:#a3a39b;--border:#34352f;--accent:#5fbf98;--accent-contrast:#0c1a14;--danger:#f0786f;--warn:#e0b04f;--ok:#6fcf8e;--info:#79b0e0;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:15px / 1.5 var(--sans);margin:0;padding:0}a{color:var(--accent)}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0 0 .75rem}code,pre,.mono{font-family:var(--mono);font-size:.85em}pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);max-height:28rem;padding:.75rem;overflow:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip{position:absolute;top:0;left:-999px}.skip:focus{background:var(--surface);z-index:10;padding:.5rem;top:.5rem;left:.5rem}.shell{grid-template-columns:15rem 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);height:100vh;padding:1rem .75rem;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:.02em;align-items:center;gap:.4rem;margin:0 .5rem 1rem;font-weight:700;display:flex}.brand small{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 .4rem;font-size:.7rem;font-weight:500}.nav-group{margin-bottom:.9rem}.nav-group h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 .5rem .25rem;font-size:.7rem}.nav-group a{color:var(--text);border-radius:6px;justify-content:space-between;padding:.3rem .5rem;font-size:.92rem;text-decoration:none;display:flex}.nav-group a[aria-current=page]{background:var(--surface-2);font-weight:600}.nav-group a:hover{background:var(--surface-2)}.nav-group a .mods{color:var(--muted);font-size:.7rem}.main{min-width:0;padding:1.25rem 1.75rem 3rem}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.topbar .who{color:var(--muted);font-size:.85rem}.menu-toggle{display:none}@media (width<=860px){.shell{grid-template-columns:1fr}.sidebar{z-index:20;transition:transform .15s;position:fixed;inset:0 30% 0 0;transform:translate(-105%);box-shadow:0 0 2rem #00000040}.sidebar.open{transform:none}.menu-toggle{display:inline-flex}.main{padding:1rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem 1.1rem}.card>header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;display:grid}.stat{font-size:1.8rem;font-weight:700}.muted{color:var(--muted)}.small{font-size:.82rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stack>*+*{margin-top:.75rem}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:.3rem;padding:.35rem .8rem;font-size:.88rem;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--surface-2)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}button.danger{border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.55;cursor:not-allowed}label{margin-bottom:.25rem;font-size:.85rem;font-weight:600;display:block}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;padding:.45rem .6rem}textarea{font-family:var(--mono);resize:vertical;min-height:9rem;font-size:.82rem}.field{margin-bottom:.75rem}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.86rem}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.45rem .6rem}th{background:var(--surface-2);white-space:nowrap;font-weight:600}tr:last-child td{border-bottom:0}td .cell{text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:26rem;display:-webkit-box;overflow:hidden}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.badge{white-space:nowrap;border:1px solid;border-radius:999px;padding:.05rem .45rem;font-size:.72rem;font-weight:600;display:inline-block}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.danger{color:var(--danger)}.badge.info{color:var(--info)}.badge.muted{color:var(--muted)}.notice{border-left:4px solid var(--info);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:1rem;padding:.6rem .8rem}.notice.error{border-color:var(--danger)}.notice.warn{border-color:var(--warn)}.notice.ok{border-color:var(--ok)}.drawer{background:var(--surface);border-left:1px solid var(--border);z-index:30;width:min(44rem,100%);padding:1.25rem;position:fixed;inset:0 0 0 auto;overflow-y:auto;box-shadow:-1rem 0 2rem #0000002e}.backdrop{z-index:25;background:#00000040;position:fixed;inset:0}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--border);padding:0 0 .6rem .8rem;position:relative}.timeline li:before{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:.35rem;left:-6px}.landing{max-width:64rem;margin:0 auto;padding:3rem 1.5rem}.landing .hero h1{max-width:40rem;font-size:2.2rem}.landing .hero p{color:var(--muted);max-width:42rem;font-size:1.1rem}.landing .modules{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;margin-top:1.5rem;display:grid}.landing .modules div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.auth-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:24rem;margin:10vh auto;padding:1.5rem}button.backdrop{cursor:default;border:0;border-radius:0;padding:0}button.backdrop:hover{background:#00000040}
