:root{--brand:#9c370b;--brand-dark:#8f3309;--brand-text:#8f3309;--brand-wash:#fdf1e9;--success:#25632f;--success-wash:#eaf5ec;--danger:#a51a1a;--danger-wash:#fdecec;--bg:#fbf8f3;--card:#fff;--text:#241b12;--muted:#5c5244;--line:#e7e0d4;--line-soft:#f0eadf;--hover:#fdfbf7;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:8px;--radius-md:12px;--radius-full:999px;--panel-width:340px;color:var(--text);background:var(--bg);font-family:Atkinson Hyperlegible,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}::selection{background:var(--brand);color:#fff}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}html,body{height:100%}body{margin:0;font-size:15px}button,input,select{font:inherit;color:inherit}h1,h2{margin:0;font-family:Bricolage Grotesque,Atkinson Hyperlegible,system-ui,sans-serif}h1{font-size:27px;font-weight:800}h2{font-size:16px;font-weight:800}p{margin:0}a{color:var(--brand-text)}button{min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);cursor:pointer;font-weight:700;transition:background-color .12s,border-color .12s}button:not(:disabled):hover{border-color:var(--brand)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible{box-shadow:0 0 0 3px var(--brand-wash);border-color:var(--brand);outline:none}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:not(:disabled):hover{background:var(--brand-dark)}button.danger{color:var(--danger)}button.danger:not(:disabled):hover{background:var(--danger-wash);border-color:var(--danger)}button.wide{width:100%;display:block}button.link{min-height:0;color:var(--brand-text);background:0 0;border:none;padding:0}input,select{min-height:40px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);width:100%}input:focus-visible,select:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash);outline:none}input:disabled{background:var(--bg);color:var(--muted)}label{margin:var(--space-3) 0 var(--space-1);color:var(--muted);font-size:13px;font-weight:700;display:block}.muted{color:var(--muted);font-size:13px}.error{color:var(--danger);margin:var(--space-2) 0;font-size:14px;font-weight:700}.note{color:var(--muted);margin-top:var(--space-2);font-size:13px}.app{height:100vh;display:flex;overflow:hidden}.side{width:216px;padding:20px var(--space-3);background:var(--card);border-right:1px solid var(--line);flex-direction:column;flex:none;display:flex}.logo{color:var(--brand);padding:0 10px 20px;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:20px;font-weight:800}.nav{margin-bottom:var(--space-1);padding:10px var(--space-3);border-radius:var(--radius-sm);color:var(--muted);font-weight:700;text-decoration:none;display:block}.nav:hover{background:var(--bg)}.nav.on{background:var(--brand-wash);color:var(--brand-text)}.who{padding:var(--space-3) 10px 0;border-top:1px solid var(--line);color:var(--muted);gap:var(--space-1);overflow-wrap:anywhere;justify-items:start;margin-top:auto;font-size:13px;display:grid}.main{flex:1;min-width:0;display:flex;overflow:hidden}.page{min-width:0;padding:28px var(--space-6);flex:1;overflow:auto}.page-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:14px;display:flex}.login{min-height:100vh;padding:var(--space-4);place-items:center;display:grid}.login-card{width:100%;max-width:400px;padding:var(--space-5);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md)}.login-card .logo{padding:0 0 var(--space-3)}.login-card button{margin-top:var(--space-4)}.panel{background:var(--card);flex:none;width:0;transition:width .18s cubic-bezier(.25,1,.5,1);overflow:hidden}.panel.open{width:var(--panel-width);border-left:1px solid var(--line);box-shadow:-8px 0 22px #241b120f}.panel-in{width:var(--panel-width);height:100%;padding:20px;overflow:auto}.panel-head{margin-bottom:var(--space-1);justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.panel-head h2{overflow-wrap:anywhere;font-size:21px;line-height:1.15}button.close{width:34px;min-height:34px;color:var(--muted);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}button.close:hover{background:var(--bg);color:var(--text)}.sub{color:var(--muted);margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);display:flex}.field{margin-top:14px}.field .k{color:var(--muted);font-size:13px;font-weight:700}.actions{border-top:1px solid var(--line-soft);margin-top:20px;padding-top:14px}.actions h3{color:var(--muted);margin:0;font-size:13px}.actions button,.stack button{width:100%;margin-top:var(--space-2);display:block}.two{gap:var(--space-2);display:flex}.two>*{flex:1;min-width:0}.two>.icon-field{flex:none;width:76px}.two>button{flex:none;width:40px;padding:0}.cred{margin-top:var(--space-2);background:var(--success-wash);border-radius:10px;padding:13px}.cred .pin{letter-spacing:.14em;color:var(--success);font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:24px;font-weight:800}.filters{margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;gap:7px;display:flex}.filters .search{flex:1;width:auto;min-width:220px}.chip{min-height:34px;padding:0 var(--space-3);border-radius:var(--radius-full);color:var(--muted);font-size:13.5px}.chip.on{background:var(--text);border-color:var(--text);color:#fff}.counts{gap:var(--space-6);border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:14px;display:flex}.count{min-height:0;color:var(--muted);background:0 0;border:none;padding:0;font-weight:400}.count b{color:var(--text);margin-right:5px;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:21px}.count.warn b{color:var(--danger)}.count.on{color:var(--text);font-weight:700}.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);background:var(--hover);border-bottom:1px solid var(--line);white-space:nowrap;padding:0;font-size:12.5px}th>span,th>button{padding:10px 14px;display:block}th>button{text-align:left;width:100%;min-height:0;color:inherit;background:0 0;border:none;border-radius:0;font-weight:700}td{border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:11px 14px}tbody tr{cursor:pointer}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--hover)}tbody tr.sel td{background:var(--brand-wash)}td.wrap{white-space:normal}td.ico{width:40px;font-size:19px}button.row-name{text-align:left;background:0 0;border:none;min-height:0;padding:0}.empty{text-align:center;color:var(--muted);padding:36px}.pill{border-radius:var(--radius-full);background:var(--success-wash);color:var(--success);padding:3px 10px;font-size:13px;font-weight:700;display:inline-block}.pill.no{background:var(--danger-wash);color:var(--danger)}.tag{align-items:center;gap:var(--space-1);padding:2px var(--space-2);margin:0 var(--space-1) var(--space-1) 0;background:var(--bg);border:1px solid var(--line);border-radius:6px;font-size:13px;display:inline-flex}.tag button{min-height:0;color:var(--muted);background:0 0;border:none;padding:0 2px;font-weight:400}.box{min-width:0;padding:15px var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md)}.box .hint{color:var(--muted);margin:1px 0 var(--space-3);font-size:13px}.stack-gap{margin-bottom:var(--space-3)}.period-line{color:var(--muted);margin:-2px 0 var(--space-3)}.tiles{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.tile{padding:15px var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md)}.tile .k{color:var(--muted);font-size:13.5px;font-weight:700}.tile .v{margin-top:3px;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:33px;font-weight:800;line-height:1.15}.tile .v small{color:var(--muted);margin-left:6px;font-size:17px;font-weight:600}.tile .d{color:var(--muted);margin-top:2px;font-size:13px}.ok{color:var(--success);font-size:13px;font-weight:700}.ko{color:var(--danger);font-size:13px;font-weight:700}.charts{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(310px,1fr));display:grid}.bar{padding:var(--space-1) 0;grid-template-columns:104px 1fr 22px;align-items:center;gap:9px;font-size:14px;display:grid}.bar .track{align-items:center;height:12px;display:flex}.bar .fill{background:var(--brand);border-radius:0 4px 4px 0;min-width:3px;height:12px}.bar .n{text-align:right;font-weight:700}.cols{border-bottom:1px solid var(--line);align-items:flex-end;gap:2px;height:136px;display:flex}.col{cursor:default;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;min-height:0;padding:0;display:flex}.col:hover,.col:focus-visible{background:var(--bg)}.col i{background:var(--brand);border-radius:4px 4px 0 0;width:60%;max-width:26px;display:block}.col span{margin-bottom:2px;font-size:12.5px}.cols-x{margin-top:var(--space-1);gap:2px;display:flex}.cols-x span{text-align:center;min-width:0;color:var(--muted);white-space:nowrap;flex:1;font-size:11.5px}.chart-tip{min-height:18px;margin-top:var(--space-1);color:var(--muted);font-size:13px}.watch-grid{column-gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(330px,1fr));display:grid}a.watch{padding:9px var(--space-1);border-bottom:1px solid var(--line-soft);color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}a.watch:hover{background:var(--bg)}a.watch b{flex:1;min-width:0}a.watch span{color:var(--muted);font-size:13.5px}.voice{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.voice .v{font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:24px;font-weight:800}.voice .k{color:var(--muted);font-size:13px}.loading{opacity:.55;transition:opacity .12s}.dates{align-items:center;gap:7px;display:inline-flex}.dates label{margin:0}.dates input{width:auto;min-height:34px}
