:root{--bg:#f6f5f1;--paper:#fff;--ink:#222923;--muted:#7a8079;--line:#e5e8df;--green:#2a6949;--orange:#db733b;--pale:#f3eae0;--radius:13px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;transition:background .15s,transform .15s}button:disabled{cursor:wait;opacity:.55}button:hover:not(:disabled){filter:brightness(.96)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #dd9d6c;outline-offset:3px}button{border:0;background:none}input,select{border:1px solid #dce0d5;border-radius:7px;padding:10px 12px;color:var(--ink);background:#fff}input{min-width:0}input:focus,select:focus{border-color:var(--green)}label{font-weight:600;font-size:12px}h1,h2,h3,p{margin:0}h1{font-size:31px;letter-spacing:-1.15px;line-height:1.2;font-weight:600}h2{font-size:19px;letter-spacing:-.5px;font-weight:600}h3{font-size:14px;font-weight:600}p{line-height:1.65}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:600;color:var(--muted)}.primary,.secondary,.danger{padding:11px 17px;border-radius:7px;font-weight:550;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:14px}.primary{background:var(--ink);color:#fff}.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.danger{background:#f9e9e3;color:#9e3d26}.quiet{color:var(--muted);font-size:12px;padding:8px}.icon-button{font-size:22px;color:#555f55;padding:4px 9px}.fine{font-size:11px;color:var(--muted);line-height:1.6}.error{color:#a5442c;font-size:12px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:650;letter-spacing:-.6px;flex-wrap:wrap}.owl{display:inline-flex;background:var(--orange);color:#fff;letter-spacing:-4px;justify-content:center;align-items:center;padding-right:4px;font-size:18px;width:32px;height:34px;border-radius:10px 10px 13px 13px}.brand-sub{font-size:8px;letter-spacing:2.3px;color:#8c958c;margin-left:42px;margin-top:-8px;width:100%;font-weight:500}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-intro{background:#25332a;color:#f7f5ef;padding:54px 64px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-intro:after{content:'◉';position:absolute;font-size:650px;color:#ffffff03;right:-210px;bottom:-180px;pointer-events:none}.login-copy .eyebrow{color:#b8ba9e}.login-copy h1{font-size:clamp(40px,5vw,72px);letter-spacing:-3px;line-height:1.08;margin:22px 0}.login-copy p{color:#b2bcae;font-size:15px;line-height:1.9}.login-foot{font-size:10px;letter-spacing:2px;color:#91a08f}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:36px}.login-form{width:350px;display:grid;gap:16px}.login-form h2{font-size:32px;margin-top:10px}.login-form .muted{margin-bottom:14px;font-size:13px}.login-form input{padding:14px}.login-form button{padding:15px;justify-content:space-between}.login-form .fine{margin-top:8px}.shell{min-height:100vh;display:grid;grid-template-columns:232px 1fr}.sidebar{background:#f0f1eb;border-right:1px solid var(--line);padding:31px 21px;position:fixed;inset:0 auto 0 0;width:232px;display:flex;flex-direction:column;z-index:5}.workspace{display:flex;align-items:center;gap:10px;margin:37px 0 30px;padding:12px 9px;background:#e9ece3;border:1px solid #e0e4d8;border-radius:9px}.workspace-icon{height:31px;width:31px;display:grid;place-items:center;border:1px solid #d6ddcd;background:#fff;border-radius:7px;font-size:10px;color:#74816b;font-weight:600}.workspace strong{font-size:12px;font-weight:600}.workspace small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.nav-label{font-size:9px;letter-spacing:1.6px;color:#9a9f95;padding-left:12px;margin-bottom:14px}nav{display:grid;gap:5px}nav a{display:flex;align-items:center;gap:11px;padding:12px 13px;font-size:12px;color:#737c70;border-radius:7px}nav a>span{width:18px;font-size:18px;line-height:1}nav a.active{background:#dfe6d7;color:#314e32;font-weight:600}nav a:hover{background:#e5e9df}.sidebar-bottom{margin-top:auto;padding:24px 10px 0}.small-status{font-size:10px;color:#677260;display:flex;align-items:center;gap:6px}.dot{width:6px;height:6px;background:#6c9c62;border-radius:100%;display:inline-block}.sidebar-bottom p{font-size:11px;line-height:1.8;color:#929a8b;margin:14px 0 25px}.version{font-size:8px;color:#9ba28f;letter-spacing:1.5px}.main-wrap{grid-column:2;min-width:0}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:#fafaf7;font-size:11px;color:#90968b}.topbar strong{font-weight:500;color:#4a5548}.slash{margin:0 11px;color:#bfc5b8}.header-actions{display:flex;align-items:center;gap:13px}.header-actions #updated{font-size:10px}main#main{max-width:1400px;margin:auto;padding:39px 42px 36px;min-height:calc(100vh - 124px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:29px}.page-heading .eyebrow{display:block;margin-bottom:9px;font-size:9px}.page-heading p{color:var(--muted);font-size:12px;margin-top:10px}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:20px;font-size:10px;font-weight:500;padding:7px 11px;white-space:nowrap;background:#e8eee2;color:#4d7143}.badge.warning{background:#f8ebd9;color:#976325}.badge.neutral{background:#eef0ec;color:#6d786a}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px}.stat{background:var(--paper);border:1px solid var(--line);padding:20px;border-radius:var(--radius)}.stat-label{color:#7d8677;font-size:11px;display:flex;justify-content:space-between;align-items:center}.stat-label span{font-size:15px;color:#93a087}.stat-value{font-size:29px;letter-spacing:-1px;font-weight:550;line-height:1.2;margin:15px 0 9px}.stat-foot{font-size:10px;color:#899080}.stat-foot strong{color:#618553;font-weight:500}.columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);gap:21px;margin-bottom:22px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:23px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.panel-subtitle{font-size:11px;color:var(--muted);margin-bottom:22px;line-height:1.6}.panel-link{color:#788570;font-size:10px}.health-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 0;border-bottom:1px solid #eef0e9}.health-row:last-child{border:0;padding-bottom:0}.health-row strong{font-size:12px;font-weight:500}.health-row small{display:block;margin-top:5px;font-size:10px;color:#8d9585}.health-row time{font-size:11px;color:#727d69}.action-list{margin-top:17px}.action-list a{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #eef0e9}.action-list a:last-child{border:0}.action-list strong{display:block;font-size:12px;font-weight:500}.action-list small{display:block;color:#87917e;font-size:10px;margin-top:5px}.action-list .arrow{color:#809571;font-size:17px}.note{background:#ecf0e5;border:1px solid #dfe6d6;padding:15px 17px;border-radius:9px;color:#64715b;font-size:11px;line-height:1.7;display:flex;gap:12px;margin:18px 0}.note strong{color:#526348}.note.orange{background:#fbf1e5;border-color:#f0dfc9;color:#936a40}.note-icon{font-size:17px;line-height:1.3;color:#829973}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}.table th{color:#929a8b;font-size:9px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;border-bottom:1px solid var(--line);padding:12px 10px;white-space:nowrap}.table td{padding:15px 10px;border-bottom:1px solid #eef0e9;vertical-align:middle}.table tr:last-child td{border:0}.table th:first-child,.table td:first-child{padding-left:0}.table td strong{font-weight:500}.table small{color:var(--muted);display:block;font-size:10px;margin-top:4px}.table .badge{font-size:9px;padding:4px 8px}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;color:#7b8574;overflow-wrap:anywhere}.empty{padding:28px 12px;color:var(--muted);font-size:12px;text-align:center}.audit-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d4dfca;margin-right:9px}.audit-name{color:#4b5a43}.section-gap{margin-top:22px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0}.toolbar input{width:260px}.toolbar select{font-size:11px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:16px;font-size:11px;color:var(--muted)}.pagination button{font-size:11px;padding:7px 11px}.feed-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #eef0e9}.feed-row:last-child{border:0}.feed-row strong{font-size:12px;font-weight:500}.feed-row small{display:block;color:var(--muted);margin-top:5px;font-size:10px}.toggle{width:36px;height:21px;border-radius:20px;background:#d4d9ce;position:relative;flex-shrink:0}.toggle:after{content:'';position:absolute;left:3px;top:3px;width:15px;height:15px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}.toggle[aria-checked=true]{background:#6c8b59}.toggle[aria-checked=true]:after{transform:translateX(15px)}.form-stack{display:grid;gap:12px}.form-stack .primary{justify-self:start}.form-stack .fine{margin-bottom:7px}.row-form{display:flex;gap:10px;align-items:center;margin-top:17px}.row-form input{flex:1;max-width:240px}.preview-box{background:#f6f5ef;border:1px solid #e4e3d8;border-radius:9px;padding:18px;margin-top:18px}.preview-box .big{font-size:27px;letter-spacing:-1px;margin-bottom:6px}.preview-box p{font-size:11px;color:#7b8272}.preview-box button{margin-top:15px}.storage-visual{display:flex;align-items:center;justify-content:space-between;margin:22px 0;padding:19px;background:#f6f7f2;border-radius:9px;gap:20px}.storage-visual .big{font-size:30px;letter-spacing:-1px}.storage-visual small{display:block;font-size:10px;color:#89917e;margin-top:5px}.storage-icon{color:#879b76;font-size:48px;line-height:1}.backup-item{display:flex;justify-content:space-between;gap:12px;padding:17px 0;border-bottom:1px solid #eef0e9;align-items:center}.backup-item:last-child{border:0}.backup-item strong{font-size:11px;font-weight:500}.backup-item small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.backup-actions{display:flex;gap:10px;align-items:center}.backup-actions a,.backup-actions button{font-size:10px;color:#6e815f}.backup-actions button{color:#a46a58}.table button{font-size:10px;padding:6px 9px;border-radius:5px;margin:2px}.table .approve{background:#e8efdf;color:#577446}.table .reject{background:#f7ebe5;color:#a76b51}.table .actions{white-space:nowrap}.inline-error{background:#f9ebe6;border:1px solid #eccfc1;padding:13px;border-radius:8px;color:#a55b43;font-size:12px;margin-bottom:18px}footer{max-width:1400px;margin:auto;padding:18px 42px;border-top:1px solid var(--line);font-size:9px;color:#9aA18f;display:flex;justify-content:space-between}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(520px,90vw);background:#26372c;color:#fff;padding:16px 22px;border-radius:10px;z-index:50;box-shadow:0 8px 30px #0002;font-size:12px;line-height:1.6}.toast.failure{background:#8e422e}dialog{border:1px solid var(--line);border-radius:14px;max-width:450px;width:calc(100% - 36px);padding:29px;color:var(--ink);box-shadow:0 20px 90px #0003}dialog::backdrop{background:#1c2e2670;backdrop-filter:blur(3px)}dialog h2{margin:14px 0}dialog p{font-size:13px;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}[hidden]{display:none!important}
@media(min-width:1600px){main#main{padding-top:50px}.stat{padding:25px}.stat-value{font-size:34px}.panel{padding:27px}}
@media(max-width:1100px){.shell{grid-template-columns:200px 1fr}.sidebar{width:200px;padding:29px 15px}.topbar{padding:0 26px}main#main{padding:30px 26px}.stat-grid{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}footer{padding:18px 26px}.sidebar .brand{font-size:18px}.brand-sub{letter-spacing:1.4px}.stat-value{margin-top:10px}.login-intro{padding:40px}.login-copy h1{font-size:50px}}
@media(max-width:700px){.login-shell{grid-template-columns:1fr}.login-intro{padding:28px;min-height:310px}.login-copy h1{font-size:40px;letter-spacing:-1.5px;margin:17px 0}.login-copy p{font-size:12px}.login-foot{display:none}.login-copy{margin-top:35px}.login-form-wrap{padding:35px 24px}.login-form{width:100%;max-width:400px}.login-form h2{font-size:26px}.shell{display:block}.sidebar{position:static;width:auto;padding:19px 20px 0;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:19px}.brand-sub,.workspace,.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:3px;margin-top:20px;overflow:auto;padding-bottom:10px}.sidebar nav a{white-space:nowrap;padding:10px;font-size:11px}.sidebar nav a>span{display:none}.main-wrap{display:block}.topbar{height:55px;padding:0 20px;font-size:10px}.header-actions{gap:5px}.header-actions #updated{display:none}main#main{padding:26px 20px;min-height:calc(100vh - 230px)}h1{font-size:26px}.page-heading{align-items:flex-start;gap:10px}.page-heading p{font-size:11px}.page-heading>.badge{margin-top:25px;font-size:9px}.stat-grid{gap:10px}.stat{padding:15px}.stat-label{font-size:10px}.stat-value{font-size:25px}.stat-foot{font-size:9px}.panel{padding:18px}.panel h2{font-size:17px}.panel-subtitle{font-size:10px}.columns{gap:15px}.toolbar{flex-wrap:wrap}.toolbar input{width:100%;flex:1;min-width:160px}.backup-item{align-items:flex-start;flex-direction:column}.backup-actions{gap:18px}.row-form{flex-wrap:wrap}.row-form input{max-width:none}.table{min-width:430px}.table.stats-table{min-width:300px}footer{padding:18px 20px;font-size:8px;gap:15px}.note{padding:12px;font-size:10px}.storage-visual .big{font-size:26px}}

/* Appearance controls are available both before and after sign-in. */
.theme-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;color:var(--ink);font-size:11px;background:var(--paper);min-height:32px}
.theme-button [data-theme-icon]{font-size:16px;line-height:1}
.login-form-wrap{position:relative}
.login-form-wrap>.theme-button{position:absolute;top:26px;right:28px}
#password-change-form{max-width:460px}
#password-change-error:empty{display:none}
:root[data-theme=light]{color-scheme:light}
:root[data-theme=dark]{color-scheme:dark;--bg:#151c18;--paper:#1d2720;--ink:#e4eddf;--muted:#a4b09e;--line:#344236;--green:#95bf95;--orange:#dc824c;--pale:#342c24}
[data-theme=dark] input,[data-theme=dark] select{background:#18221b;border-color:#455540;color:var(--ink)}
[data-theme=dark] input::placeholder{color:#8e9c87}
[data-theme=dark] .sidebar{background:#19221c}
[data-theme=dark] .workspace{background:#232f25;border-color:var(--line)}
[data-theme=dark] .workspace-icon{background:#1a241d;border-color:#465541;color:#b0c29e}
[data-theme=dark] .nav-label,[data-theme=dark] .brand-sub,[data-theme=dark] .version{color:#a3af97}
[data-theme=dark] nav a{color:#b7c2af}
[data-theme=dark] nav a.active{background:#34472d;color:#e1edcf}
[data-theme=dark] nav a:hover{background:#2a3927}
[data-theme=dark] .sidebar-bottom p,[data-theme=dark] .small-status{color:#a4b597}
[data-theme=dark] .topbar{background:#19221c;color:#b0bba6}
[data-theme=dark] .topbar strong{color:#d7e3cf}
[data-theme=dark] .slash{color:#849479}
[data-theme=dark] .stat,[data-theme=dark] .panel{background:var(--paper)}
[data-theme=dark] .stat-label,[data-theme=dark] .stat-label span,[data-theme=dark] .stat-foot,[data-theme=dark] .panel-link,[data-theme=dark] .table th,[data-theme=dark] .mono,[data-theme=dark] .health-row time,[data-theme=dark] .storage-visual small{color:#a7b49b}
[data-theme=dark] .stat-foot strong{color:#b4d29a}
[data-theme=dark] .health-row,[data-theme=dark] .action-list a,[data-theme=dark] .table td,[data-theme=dark] .feed-row,[data-theme=dark] .backup-item{border-bottom-color:#334131}
[data-theme=dark] .health-row small,[data-theme=dark] .action-list small{color:#a6b29b}
[data-theme=dark] .action-list .arrow{color:#b4cd9f}
[data-theme=dark] .primary{background:#bdd3a7;color:#182317}
[data-theme=dark] .secondary{background:#253123;color:var(--ink);border-color:#4a5b40}
[data-theme=dark] .danger,[data-theme=dark] .table .reject{background:#472d27;color:#f2b09b}
[data-theme=dark] .table .approve{background:#334729;color:#c5e5a7}
[data-theme=dark] .badge{background:#30442b;color:#c5dfa9}
[data-theme=dark] .badge.warning{background:#493c23;color:#ecd097}
[data-theme=dark] .badge.neutral{background:#303c2d;color:#bdcbb0}
[data-theme=dark] .dot{background:#a2c58b}
[data-theme=dark] .note{background:#263723;border-color:#3f5433;color:#bdcfac}
[data-theme=dark] .note strong{color:#e0edce}
[data-theme=dark] .note-icon{color:#bfd69d}
[data-theme=dark] .note.orange{background:#392f22;border-color:#56442c;color:#e5c195}
[data-theme=dark] .audit-name{color:#cadbbd}
[data-theme=dark] .audit-dot{background:#7d9867}
[data-theme=dark] .storage-visual,[data-theme=dark] .preview-box{background:#243021;border-color:#435539}
[data-theme=dark] .storage-icon{color:#adc593}
[data-theme=dark] .preview-box p{color:#becbad}
[data-theme=dark] .backup-actions a{color:#bdd7a3}
[data-theme=dark] .backup-actions button{color:#e7ae99}
[data-theme=dark] .toggle{background:#596452}
[data-theme=dark] .toggle[aria-checked=true]{background:#8fb66c}
[data-theme=dark] .toggle:after{background:#f3f6ed}
[data-theme=dark] .icon-button{color:#cfdec0}
[data-theme=dark] .inline-error{background:#3c2923;border-color:#69493a;color:#ffc0a7}
[data-theme=dark] .error{color:#ffb49c}
[data-theme=dark] dialog{background:var(--paper)}
[data-theme=dark] .toast{background:#d0e1bd;color:#1b2b18}
[data-theme=dark] .toast.failure{background:#a45139;color:#fff}
[data-theme=dark] footer{color:#a5b199}
@media(max-width:700px){.theme-button{padding:6px 9px}.header-actions .theme-label{display:none}.login-form-wrap{padding-top:70px}.login-form-wrap>.theme-button{top:18px;right:24px}.topbar{gap:8px}.topbar>span{min-width:0}.topbar .slash{margin:0 5px}}

.attack-filters{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:14px;align-items:end;margin:24px 0}
.attack-filters label{display:grid;gap:8px;font-size:10px;color:var(--muted)}
.attack-filters .attack-search{grid-column:span 2}
.attack-filters input,.attack-filters select{width:100%;font-size:11px}
.attack-filters button{min-height:36px}
.attack-coverage{margin:12px 0 20px}
.attack-table{min-width:860px}
.attack-table td{vertical-align:top;min-width:95px}
.attack-table td:first-child{min-width:145px}
.attack-player,.attack-report{color:var(--green)}
.attack-player:hover,.attack-report:hover{text-decoration:underline}
.attack-report{white-space:nowrap}
.attack-respect{white-space:nowrap}
.attack-pagination{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.attack-pagination .pagination{margin-top:0;gap:8px;flex-wrap:wrap}
#attack-page-form{display:flex;align-items:center;gap:8px;font-size:10px}
#attack-page-form label{font-size:10px;font-weight:400}
#attack-page{width:62px;padding:6px;font-size:11px}
[data-theme=dark] .attack-player,[data-theme=dark] .attack-report{color:#bdd7a3}
@media(max-width:700px){.attack-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.attack-pagination .pagination{justify-content:flex-start}.attack-pagination .pagination button{padding:7px 8px;font-size:10px}.attack-pagination{align-items:flex-start}.attack-table{min-width:820px}}
.attack-filter-actions{display:flex;gap:8px}
.attack-filter-actions button{flex:1;padding-left:10px;padding-right:10px;white-space:nowrap}
#attack-results>.table-wrap{max-height:65vh;overflow:auto;border-bottom:1px solid var(--line)}
#attack-results th{position:sticky;top:0;background:var(--paper);z-index:1}
@media(max-width:700px){.attack-filter-actions{grid-column:span 2}}
