:root{--bg:#eef0ef;--panel:#f8f9f8;--raised:#fff;--line:#d6dbd9;--line-strong:#b9c1be;--fg:#1d2523;--muted:#5b6763;--faint:#8a9592;--accent:#2f5d8a;--accent-soft:#e2ebf4;--accent-fg:#fff;--signal:#e9a800;--signal-soft:#fbf1d0;--signal-fg:#5c4300;--danger:#b4372b;--danger-soft:#f8e3e0;--viewport:#e6e9e8;--font-display:"Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141918;--panel:#1a201f;--raised:#212827;--line:#2e3735;--line-strong:#3f4a47;--fg:#e4e9e7;--muted:#a2adaa;--faint:#74807c;--accent:#7fb0e0;--accent-soft:#1f3245;--accent-fg:#0c1825;--signal:#f2bf2e;--signal-soft:#3a3010;--signal-fg:#f7dc85;--danger:#ec8a7f;--danger-soft:#3d1f1b;--viewport:#1f2524;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#141918;--panel:#1a201f;--raised:#212827;--line:#2e3735;--line-strong:#3f4a47;--fg:#e4e9e7;--muted:#a2adaa;--faint:#74807c;--accent:#7fb0e0;--accent-soft:#1f3245;--accent-fg:#0c1825;--signal:#f2bf2e;--signal-soft:#3a3010;--signal-fg:#f7dc85;--danger:#ec8a7f;--danger-soft:#3d1f1b;--viewport:#1f2524;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);margin:0;font-size:13px;line-height:1.45;overflow:hidden}*{box-sizing:border-box}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{grid-template-rows:auto 1fr;height:100%;display:grid}.topbar{padding-block:8px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.brand{align-items:baseline;gap:8px;margin-right:8px;display:flex}.brand b{font-family:var(--font-display);letter-spacing:.04em;font-size:20px;font-weight:600}.brand span{color:var(--muted);font-size:12px}.file-name{font-family:var(--font-mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:28ch;font-size:12px;overflow:hidden}.spacer{flex:1}.btn{border:1px solid var(--line-strong);background:var(--raised);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--accent-soft)}.btn.small{padding:2px 7px;font-size:12px}.btn:disabled{opacity:.45;cursor:default}.seg{border:1px solid var(--line-strong);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{background:var(--raised);border:0;padding:5px 10px}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.seg-label{color:var(--muted);font-size:12px}.only-narrow{display:none}.main{grid-template-columns:290px minmax(0,1fr) 330px;min-height:0;display:grid}.panel{background:var(--panel);min-height:0;overflow-y:auto}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.section{border-bottom:1px solid var(--line);gap:8px;padding:12px 14px;display:grid}.section h2{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.section h2 .count{font-family:var(--font-mono);color:var(--muted);letter-spacing:0;font-size:11px;font-weight:400}.section h2 .acts{text-transform:none;letter-spacing:0;font-family:var(--font-body);gap:4px;margin-left:auto;font-weight:400;display:flex}.hint{color:var(--muted);margin:0;font-size:12px}.rows{gap:1px;display:grid}.row{border-radius:5px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:3px 6px;display:grid}.row:hover{background:var(--accent-soft)}.row .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row .meta{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;font-size:11px}.row .only{opacity:0;border:1px solid var(--line-strong);background:var(--raised);border-radius:4px;padding:1px 6px;font-size:11px}.row:hover .only,.row .only:focus-visible{opacity:1}.row.zero .name,.row.zero .meta{color:var(--faint)}input[type=checkbox]{accent-color:var(--accent);margin:0}.field{gap:4px;display:grid}.field>span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.input,select.input{border:1px solid var(--line-strong);background:var(--raised);border-radius:6px;width:100%;min-width:0;padding:5px 8px}.inline{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline>.input{flex:1}.viewer{background:var(--viewport);min-width:0;min-height:0;position:relative}.viewer canvas{touch-action:none;width:100%;height:100%;display:block}.chips{pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:12px;left:12px;right:12px}.chip{pointer-events:auto;background:var(--raised);border:1px solid var(--line-strong);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:12px;display:inline-flex;box-shadow:0 1px 2px #0000000f}.chip b{font-weight:600}.chip button{width:20px;height:20px;color:var(--muted);background:0 0;border:0;border-radius:50%;line-height:1}.chip button:hover{background:var(--accent-soft);color:var(--fg)}.chip.signal{background:var(--signal-soft);border-color:var(--signal);color:var(--signal-fg)}.navhelp{color:var(--muted);background:color-mix(in srgb, var(--raised) 85%, transparent);border:1px solid var(--line);pointer-events:none;border-radius:6px;padding:4px 8px;font-size:11px;position:absolute;bottom:12px;left:12px}.navhelp kbd{font-family:var(--font-mono);border:1px solid var(--line-strong);background:var(--raised);border-bottom-width:2px;border-radius:3px;padding:0 3px;font-size:10px}.viewtools{gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.overlay{background:color-mix(in srgb, var(--viewport) 92%, transparent);z-index:5;place-items:center;display:grid;position:absolute;inset:0}.overlay[hidden]{display:none!important}.card{background:var(--raised);border:1px solid var(--line);border-radius:10px;gap:12px;width:calc(100% - 32px);max-width:440px;padding:22px 24px;display:grid}.card h1{font-family:var(--font-display);letter-spacing:.02em;text-wrap:balance;margin:0;font-size:22px;font-weight:600}.card p{color:var(--muted);margin:0}.drop{border:1.5px dashed var(--line-strong);text-align:center;color:var(--muted);border-radius:8px;padding:16px}.drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}.progress{font-family:var(--font-mono);color:var(--muted);font-size:12px}.bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.bar i{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}.error{color:var(--danger);background:var(--danger-soft);border-radius:6px;padding:8px 10px;font-size:12px}.kv{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) auto;align-items:baseline;gap:2px 8px;display:grid}.kv dt{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.kv dd{overflow-wrap:anywhere;margin:0}.kv dd.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px}.kv .same{opacity:0;color:var(--accent);background:0 0;border:0;padding:0 2px;font-size:11px}.kv dd:hover+.same,.kv .same:hover,.kv .same:focus-visible,.kv dt:hover~.same{opacity:1}.kv-row{display:contents}.kv-row:hover dt,.kv-row:hover dd{color:var(--fg)}.kv-row:hover .same{opacity:1}details.pset{border-top:1px solid var(--line);padding-top:6px}details.pset summary{cursor:pointer;padding:2px 0;font-size:12px;font-weight:500}details.pset .kv{margin-top:6px}.badge{background:var(--accent-soft);color:var(--fg);border-radius:999px;padding:1px 7px;font-size:11px;display:inline-block}.title-line{gap:2px;display:grid}.title-line strong{overflow-wrap:anywhere;font-size:15px;font-weight:600}.actions{flex-wrap:wrap;gap:6px;display:flex}.subtle-box{background:var(--raised);border:1px solid var(--line);border-radius:8px;gap:8px;padding:10px;display:grid}.breakdown{gap:2px;display:grid}.breakdown div{justify-content:space-between;gap:8px;display:flex}.breakdown span:last-child{font-family:var(--font-mono);color:var(--muted);font-size:12px}.clash-list{gap:4px;max-height:280px;display:grid;overflow-y:auto}.clash{text-align:left;border:1px solid var(--line);background:var(--raised);border-radius:6px;gap:2px;padding:6px 8px;display:grid}.clash:hover{border-color:var(--signal)}.clash.active{border-color:var(--signal);background:var(--signal-soft)}.clash .pair{overflow-wrap:anywhere}.clash .depth{font-family:var(--font-mono);color:var(--muted);font-size:11px}.note{color:var(--muted);border-left:2px solid var(--signal);padding-left:8px;font-size:11px}.toast{background:var(--fg);color:var(--bg);z-index:6;border-radius:6px;padding:6px 12px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@media (width<=900px){.main{grid-template-columns:minmax(0,1fr);position:relative}.panel.left,.panel.right{z-index:4;width:min(330px,88vw);display:none;position:absolute;top:0;bottom:0;box-shadow:0 4px 24px #0000002e}.panel.left{left:0}.panel.right{right:0}.panel.open{display:block}.only-narrow{display:inline-flex}.navhelp{display:none}}@media (prefers-reduced-motion:reduce){.bar i{transition:none}}select.input.lang{flex:none;width:auto;padding:4px 6px}.row label{cursor:pointer;display:contents}.navhelp kbd{margin:0 1px}.btn:disabled:hover{border-color:var(--line-strong)}.center{min-width:0;min-height:0;position:relative}.center-layer{position:absolute;inset:0}.center-layer>.viewer,.center-layer>.sheet-pane{height:100%}.view-tabs button{padding:5px 12px}.seg button:disabled{opacity:.4;cursor:default}.seg-text{font-family:var(--font-mono);background:var(--raised);text-align:center;font-variant-numeric:tabular-nums;min-width:4.5em;padding:5px 8px;font-size:12px}.seg.small button{padding:2px 8px;font-size:11px}.panel-tabs{border-bottom:1px solid var(--line);background:var(--panel);z-index:1;display:flex;position:sticky;top:0}.panel-tabs button{font-family:var(--font-display);letter-spacing:.04em;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:14px;font-weight:600;display:inline-flex}.panel-tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}.tab-count{font-family:var(--font-mono);background:var(--signal-soft);color:var(--signal-fg);letter-spacing:0;border-radius:999px;padding:0 6px;font-size:11px;font-weight:500}textarea.input{resize:vertical;font:inherit;line-height:1.4}.field>.seg,.rev>.seg{justify-self:start}.filter-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.file-btn{cursor:pointer;justify-content:center}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn.danger-ghost:hover{background:var(--danger-soft);border-color:var(--danger-soft)}.confirm{background:var(--danger-soft);border-radius:8px;gap:8px;padding:10px;display:grid}.confirm p{margin:0}.location-line{justify-content:space-between;align-items:center;gap:8px;display:flex}.location-line span{overflow-wrap:anywhere}:root{--st-open:#d98a00;--st-open-soft:#fbefd6;--st-resolved:#2e8b57;--st-resolved-soft:#dcefe3;--st-closed:#7c8783;--st-closed-soft:#e6e9e8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--st-open:#f2bf2e;--st-open-soft:#3a3010;--st-resolved:#6fcf97;--st-resolved-soft:#173325;--st-closed:#a2adaa;--st-closed-soft:#2a3130}}:root[data-theme=dark]{--st-open:#f2bf2e;--st-open-soft:#3a3010;--st-resolved:#6fcf97;--st-resolved-soft:#173325;--st-closed:#a2adaa;--st-closed-soft:#2a3130}.status-pill{font-family:var(--font-body);letter-spacing:0;text-transform:none;border-radius:999px;align-items:center;gap:5px;padding:1px 8px 1px 6px;font-size:11px;font-weight:500;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.status-pill.status-open{background:var(--st-open-soft);color:var(--fg)}.status-pill.status-open:before{background:var(--st-open)}.status-pill.status-resolved{background:var(--st-resolved-soft);color:var(--fg)}.status-pill.status-resolved:before{background:var(--st-resolved)}.status-pill.status-closed{background:var(--st-closed-soft);color:var(--muted)}.status-pill.status-closed:before{background:var(--st-closed)}.status-pill.overdue:before{background:var(--danger)}.status-pill.overdue{background:var(--danger-soft);color:var(--danger)}.issue-list{gap:4px;display:grid}.issue-item{text-align:left;border:1px solid var(--line);background:var(--raised);border-radius:8px;gap:3px;padding:8px 10px;display:grid}.issue-item:hover{border-color:var(--line-strong)}.issue-item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.issue-top{align-items:center;gap:6px;display:flex}.issue-no{font-family:var(--font-mono);color:var(--muted);font-size:12px}.issue-title{overflow-wrap:anywhere;font-weight:500}.issue-meta{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.thumbs{flex-wrap:wrap;gap:6px;display:flex}.thumb{border:1px solid var(--line);background:var(--raised);border-radius:6px;width:72px;height:72px;margin:0;position:relative;overflow:hidden}.thumb.big{width:100%;height:auto}.thumb img{object-fit:cover;cursor:zoom-in;width:100%;height:100%;display:block}.thumb.big img{object-fit:contain;cursor:zoom-out}.thumb .file-chip{overflow-wrap:anywhere;padding:6px;font-size:11px;display:block}.thumb-x{color:#fff;background:#0000008c;border:0;border-radius:50%;width:20px;height:20px;line-height:1;position:absolute;top:2px;right:2px}.comments{gap:8px;margin:0;padding:0;list-style:none;display:grid}.comments li{border-left:2px solid var(--line-strong);padding-left:8px}.comments p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.marker-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.marker{pointer-events:auto;min-width:24px;height:24px;font:600 11px/20px var(--font-mono);color:#1d2523;background:var(--st-open);border:2px solid #fff;border-radius:12px 12px 12px 2px;margin:-26px 0 0 -12px;padding:0 6px;position:absolute;top:0;left:0;box-shadow:0 1px 4px #00000059}.marker.status-resolved{background:var(--st-resolved)}.marker.status-closed{background:var(--st-closed);color:#fff}.marker.active{outline:3px solid var(--accent);outline-offset:1px;z-index:1}.sheet-pane{background:var(--viewport);flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.sheet-toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.placing-banner{background:var(--signal-soft);color:var(--signal-fg);border-bottom:1px solid var(--signal);padding:6px 12px;font-size:12px}.sheet-scroll{flex:1;place-items:start center;min-height:0;padding:24px;display:grid;overflow:auto}.sheet-scroll.placing .sheet-page{cursor:crosshair}.sheet-page{background:#fff;position:relative;box-shadow:0 1px 6px #0000002e}.sheet-page canvas{display:block}.sheet-hint{color:var(--muted);background:var(--panel);border-top:1px solid var(--line);margin:0;padding:4px 12px;font-size:11px}.pin{min-width:24px;height:24px;font:600 11px/20px var(--font-mono);color:#1d2523;background:var(--st-open);border:2px solid #fff;border-radius:12px 12px 12px 2px;padding:0 6px;position:absolute;transform:translate(-12px,-26px);box-shadow:0 1px 4px #00000059}.pin.status-resolved{background:var(--st-resolved)}.pin.status-closed{background:var(--st-closed);color:#fff}.pin.active{outline:3px solid var(--accent);outline-offset:1px;z-index:1}.pin.other-rev{opacity:.7}.sheet-row{text-align:left;background:0 0;border:0;border-radius:5px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 6px;display:grid}.sheet-row:hover{background:var(--accent-soft)}.sheet-row.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.sheet-code{font-family:var(--font-mono);font-size:12px;font-weight:500}.sheet-row .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-row .meta{font-family:var(--font-mono);color:var(--muted);font-size:11px}.rev-list{gap:6px;display:grid}.rev{border:1px solid var(--line);background:var(--raised);border-radius:8px;gap:6px;padding:8px;display:grid}.rev.active{border-color:var(--accent)}.rev-open{text-align:left;background:0 0;border:0;gap:2px;min-width:0;padding:0;display:grid}.rev-open .hint{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.center>.toast{z-index:6}@media (width<=900px){.center{grid-row:1}}.btn.disabled{opacity:.45;pointer-events:none}:root{--series-1:#2a78d6;--series-2:#eb6834}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--series-1:#3987e5;--series-2:#d95926}}:root[data-theme=dark]{--series-1:#3987e5;--series-2:#d95926}.report-pane{background:var(--bg);height:100%;overflow-y:auto}.report-inner{max-width:1100px;padding-block:20px 32px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));gap:16px;margin:0 auto;display:grid}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.report-head h1{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:24px;font-weight:600}.report-filters{flex-wrap:wrap;gap:12px;display:flex}.report-filters .field{min-width:180px}.tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.tile{background:var(--raised);border:1px solid var(--line);border-radius:10px;gap:2px;padding:12px 14px;display:grid}.tile-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:30px;font-weight:600;line-height:1.1}.tile-label{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tile-label i{border-radius:50%;width:8px;height:8px}.tile-open .tile-label i{background:var(--st-open)}.tile-overdue .tile-label i{background:var(--danger)}.tile-overdue .tile-value{color:var(--danger)}.tile-resolved .tile-label i{background:var(--st-resolved)}.tile-closed .tile-label i{background:var(--st-closed)}.report-card{background:var(--raised);border:1px solid var(--line);border-radius:10px;gap:10px;min-width:0;padding:14px 16px;display:grid}.report-card h2{font-family:var(--font-display);letter-spacing:.04em;align-items:baseline;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.report-card h2 .count{font-family:var(--font-mono);color:var(--muted);font-size:12px;font-weight:400}.report-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.trend .legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:12px;display:flex}.trend .legend span{align-items:center;gap:6px;display:inline-flex}.sw{border-radius:2px;width:14px;height:3px;display:inline-block}.sw-opened{background:var(--series-1)}.sw-finished{background:var(--series-2)}.chart-wrap{position:relative;overflow-x:auto}.chart-wrap svg{width:100%;min-width:480px;height:auto;display:block}.chart-wrap .grid{stroke:var(--line);stroke-width:1px}.chart-wrap .axis{fill:var(--muted);font-size:10px;font-family:var(--font-mono)}.chart-wrap .crosshair{stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:3 3}.chart-wrap .ln{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-wrap .ln-opened{stroke:var(--series-1)}.chart-wrap .ln-finished{stroke:var(--series-2)}.chart-wrap .pt{stroke:var(--raised);stroke-width:2px}.chart-wrap .pt-opened{fill:var(--series-1)}.chart-wrap .pt-finished{fill:var(--series-2)}.chart-wrap .hit{fill:#0000}.chart-wrap .tooltip{background:var(--raised);border:1px solid var(--line-strong);pointer-events:none;white-space:nowrap;border-radius:6px;gap:2px;padding:6px 8px;font-size:12px;display:grid;position:absolute;top:4px;transform:translate(-50%);box-shadow:0 2px 8px #0000001f}.chart-wrap .tooltip.left{transform:translate(calc(-100% - 10px))}.chart-wrap .tooltip:not(.left){transform:translate(10px)}.chart-wrap .tooltip span{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.table-wrap{overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:13px}.report-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:12px;font-weight:500}.report-table td{border-bottom:1px solid var(--line);padding:7px 8px}.report-table tbody tr{cursor:pointer}.report-table tbody tr:hover{background:var(--accent-soft)}.report-table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12px}.report-table .danger{color:var(--danger);font-weight:600}.report-table .bar-col{width:30%;min-width:90px}.stack{gap:2px;height:8px;display:flex}.stack i{border-radius:2px;min-width:3px;display:block}.stack .st-open{background:var(--st-open)}.stack .st-resolved{background:var(--st-resolved)}.stack .st-closed{background:var(--st-closed)}.overdue-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.overdue-list button{text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:2px 8px;width:100%;padding:7px 10px;display:grid}.overdue-list button:hover{border-color:var(--danger)}.overdue-list .due{color:var(--danger);font-family:var(--font-mono);font-size:12px}.overdue-list .issue-meta{grid-column:2/4}@media (width<=900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:minmax(0,1fr)}}:root{--ok:#2e8b57;--nok:#b4372b;--na:#7c8783}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ok:#6fcf97;--nok:#ec8a7f;--na:#a2adaa}}:root[data-theme=dark]{--ok:#6fcf97;--nok:#ec8a7f;--na:#a2adaa}.checks-inner{max-width:900px}.checks-empty{justify-self:center;margin-top:40px}.cat-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:1px solid var(--line-strong);border-radius:4px;padding:0 5px;font-size:10px}.answer-counts{font-family:var(--font-mono);flex-wrap:wrap;gap:4px 10px;font-size:11px;display:flex}.answer-counts.big{font-family:var(--font-body);font-size:12px}.a-ok{color:var(--ok)}.a-nok{color:var(--nok)}.a-na{color:var(--na)}.a-open{color:var(--muted)}.progress-strip{background:var(--line);border-radius:4px;gap:2px;height:8px;display:flex;overflow:hidden}.progress-strip span{height:100%;display:block}.progress-strip .p-ok{background:var(--ok)}.progress-strip .p-nok{background:var(--nok)}.progress-strip .p-na{background:var(--na)}.check-lines{gap:6px;display:grid}.check-section{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:14px 0 2px;font-size:15px;font-weight:600}.check-line{background:var(--raised);border:1px solid var(--line);border-radius:8px;gap:8px;padding:8px 10px;display:grid}.check-line.answer-nok{border-color:var(--nok);box-shadow:inset 3px 0 0 var(--nok);border-radius:0 8px 8px 0}.check-line.answer-ok{box-shadow:inset 3px 0 0 var(--ok);border-radius:0 8px 8px 0}.check-line.answer-na{box-shadow:inset 3px 0 0 var(--na);border-radius:0 8px 8px 0}.check-main{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.check-no{font-family:var(--font-mono);color:var(--muted);text-align:right;min-width:1.6em;font-size:12px}.check-text{overflow-wrap:anywhere}.answer-seg button{padding:5px 10px;font-size:12px}.answer-seg button.ans-ok[aria-pressed=true]{background:var(--ok);color:#fff}.answer-seg button.ans-nok[aria-pressed=true]{background:var(--nok);color:#fff}.answer-seg button.ans-na[aria-pressed=true]{background:var(--na);color:#fff}.check-extra{gap:8px;padding-left:calc(1.6em + 10px);display:grid}.add-note{color:var(--muted);justify-self:start;margin-left:calc(1.6em + 4px);padding:0 6px}.tpl-lines{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tpl-line{grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:6px;display:grid}.tpl-line.kind-section input{font-weight:600}.tpl-tools{gap:2px;display:flex}@media (width<=700px){.check-main{grid-template-columns:auto minmax(0,1fr)}.answer-seg{grid-column:1/-1;justify-self:stretch}.answer-seg button{flex:1}.check-extra{padding-left:0}.tpl-line{grid-template-columns:minmax(0,1fr) auto}.tpl-line select{grid-column:1/-1}}.demo-box{border-top:1px dashed var(--line)}.demo-card{border-top:1px solid var(--line);justify-items:start;gap:8px;margin-top:18px;padding-top:14px;display:grid}.demo-card p{color:var(--muted);margin:0;font-size:13px}.ho-group{gap:6px;display:grid}.ho-group+.ho-group{margin-top:6px}.ho-group-title{color:var(--muted);justify-content:space-between;gap:8px;margin:4px 0 0;font-size:12px;font-weight:600;display:flex}.ho-group-title .count{font-family:var(--font-mono);font-weight:400}.ho-new{gap:6px;display:grid}.ho-project{min-width:min(360px,80vw);margin-top:8px}.ho-export{justify-items:end;gap:6px;display:grid}.ho-export .check{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.ho-top{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.ho-percent{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.ho-percent .tile-value{font-size:40px}.ho-ready.is-ready .tile-value{color:var(--st-resolved)}.ho-bar{background:var(--line);border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.ho-bar i,.ho-legend i{display:block}.b-approved{background:var(--st-resolved)}.b-submitted{background:var(--st-open)}.b-rejected{background:var(--danger)}.b-pending{background:var(--st-closed)}.b-overdue{border:2px solid var(--danger);background:0 0}.ho-legend{flex-wrap:wrap;gap:4px 14px;display:flex}.ho-legend button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-size:13px;display:inline-flex}.ho-legend button:hover{color:var(--fg)}.ho-legend i{box-sizing:border-box;border-radius:50%;width:9px;height:9px}.ho-legend b{color:var(--fg);font-family:var(--font-mono);font-weight:500}.ho-blockers{gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.ho-blockers li{align-items:baseline;gap:10px;display:flex}.ho-blockers .mark{color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:inline-grid}.ho-blockers .ok .mark{background:var(--st-resolved)}.ho-blockers .bad .mark{background:var(--danger)}.ho-blockers .info .mark{background:var(--st-closed)}.ho-blockers .info{color:var(--muted);font-size:13px}.link{font:inherit;color:var(--accent);text-align:left;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.ho-cats{gap:4px;display:grid}.ho-cat{border:1px solid var(--line);background:var(--bg);text-align:left;font:inherit;color:var(--fg);cursor:pointer;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:8px 10px;display:grid}.ho-cat:hover{border-color:var(--accent)}.ho-cat .num{font-family:var(--font-mono);color:var(--muted);font-size:12px}.ho-cat .ho-mini{grid-column:1/-1}.ho-mini{background:var(--line);border-radius:3px;height:6px;display:block;overflow:hidden}.ho-mini i{background:var(--st-resolved);height:100%;display:block}.ho-drop{border:1.5px dashed var(--line-strong);border-radius:8px;justify-items:start;gap:6px;padding:10px;display:grid}.ho-drop.over{border-color:var(--accent);background:var(--accent-soft)}.ho-drop .hint{margin:0}.ho-files{gap:4px;margin:0;padding:0;list-style:none;display:grid}.ho-files li{border:1px solid var(--line);background:var(--raised);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:6px 8px;display:grid}.ho-files .link{overflow-wrap:anywhere;font-size:13px}.ho-files .meta{color:var(--muted);grid-column:1;font-size:11px}.ho-files .icon-x{color:var(--muted);cursor:pointer;background:0 0;border:0;grid-area:1/2/3;padding:0 4px;font-size:18px}.ho-files .icon-x:hover{color:var(--danger)}.ho-note{background:var(--st-resolved-soft);border-radius:6px;margin:0;padding:8px 10px;font-size:13px}.ho-note.bad{background:var(--danger-soft)}.ho-history{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.ho-history li{justify-items:start;gap:2px;font-size:12px;display:grid}.ho-history .meta{color:var(--muted)}.ho-history .note{color:var(--fg)}@media (width<=900px){.ho-top{grid-template-columns:minmax(0,1fr)}.ho-export{justify-items:start}}.login-page{background:var(--viewport,var(--bg));place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{width:min(380px,100%)}.login-card .brand{align-items:baseline;gap:10px;display:flex}.login-card .field{color:var(--muted);gap:4px;font-size:13px;display:grid}.login-card .lang{justify-self:end;width:auto}.login-error{color:var(--danger);margin:0;font-size:13px}.session-project{width:auto;max-width:260px}.session-user{width:auto;max-width:220px}.admin-overlay{z-index:50;background:#00000073;place-items:start center;padding:24px 16px;display:grid;position:fixed;inset:0;overflow:auto}.admin-card{width:100%;max-width:860px}.admin-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-section{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.admin-section h2{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:14px}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:4px 6px}.admin-table tr.muted{opacity:.5}.admin-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-form .input{flex:160px;width:auto}@media (width<=900px){.session-project,.session-user{max-width:140px}}
