:root{--ink:#172e40;--muted:#4d6270;--paper:#f6f8f9;--surface:#fff;--soft:#eef3f4;--line:#d5dfe3;--line-strong:#acbbc2;--accent:#126b64;--accent-hover:#0a554f;--accent-light:#e6f2ef;--warning:#825919;--warning-light:#fff5df;--error:#a12a35;--focus:#006fc2;--scene-height:570px;color-scheme:light;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,input,select{caret-color:var(--accent)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}[hidden]{display:none!important}a{color:var(--accent);text-underline-offset:.2em}p,h1,h2,h3,figure,dl{margin:0}p{max-width:72ch}h1{font-size:1.75rem;line-height:1.2;font-weight:650;letter-spacing:-.025em;text-wrap:balance}h2{font-size:1.15rem;line-height:1.35;font-weight:650}h3{font-size:1rem;font-weight:650}::selection{background:#bce5dd;color:#172e40}*{scrollbar-width:thin;scrollbar-color:#879ca7 #eef3f4}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{position:fixed;z-index:20;top:-80px;left:1rem;padding:.8rem 1.2rem;background:white}.skip-link:focus{top:1rem}.button{border:1px solid transparent;border-radius:5px;padding:.6rem .9rem;min-height:43px;font-weight:600;font-size:.88rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;line-height:1.3;white-space:nowrap;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.button.primary{background:var(--accent);color:white;border-color:var(--accent)}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.secondary{background:white;color:var(--ink);border-color:var(--line-strong)}.button.secondary:hover:not(:disabled){background:var(--soft)}.button.quiet{background:transparent;color:var(--muted)}.button.quiet:hover:not(:disabled){background:var(--soft);color:var(--ink)}.button.compact{font-size:.8rem;min-height:36px;padding:.4rem .6rem}.button.full{width:100%}.text-button{color:var(--accent);background:transparent;border:0;padding:.3rem 0;font-size:.82rem;font-weight:600;text-decoration:underline;text-underline-offset:.2em}.ex-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 2rem;background:var(--ink);color:white}.brand{display:flex;align-items:center;gap:.6rem;color:white;text-decoration:none;font-weight:650;font-size:1rem}.brand>span>span{font-weight:400;color:#d8e5ec}.brand svg{width:29px;height:29px;stroke:#bce5dd;fill:none;stroke-width:1.8}.header-actions{display:flex;align-items:center;gap:1.25rem}.header-actions>a{color:#d8e5ec;font-size:.83rem}.header-button{border-color:#79909e;color:white;background:transparent;min-height:37px;font-size:.8rem}.header-button:hover,.header-button[aria-pressed=true]{background:#294758}main{padding:0 2rem;max-width:1720px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.6rem 0 1.3rem}.page-heading p{color:var(--muted);font-size:.93rem;margin-top:.5rem}.engine-indicator{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;max-width:280px;font-size:.77rem;color:var(--muted)}.status-dot{width:8px;height:8px;background:#7c8e98;border-radius:50%;flex:none}.status-dot.ready{background:var(--accent)}.status-dot.error{background:var(--error)}.stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.step{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);text-align:left;min-height:74px}.step+.step{border-left:1px solid var(--line)}.step strong{display:block;font-size:.92rem;font-weight:650}.step small{display:block;font-size:.76rem;margin-top:.12rem}.step-number{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line-strong);border-radius:4px;font-size:.82rem;font-variant-numeric:tabular-nums;flex:none}.step.current{border-bottom-color:var(--accent);color:var(--accent);background:var(--accent-light)}.step.current .step-number{border-color:var(--accent);background:var(--accent);color:white}.step.done:not(.current) .step-number{border-color:#7baea2;color:var(--accent)}.step:hover:not(:disabled){background:var(--soft)}.run-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0}.photo-source{display:flex;align-items:center;gap:.8rem;min-width:0}.file-label{cursor:pointer;flex:none}.file-label svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.photo-source input{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.photo-source:focus-within .file-label{outline:3px solid var(--focus);outline-offset:3px}#source-name{font-size:.77rem;color:var(--muted);overflow-wrap:anywhere;max-width:380px}.run-actions{display:flex;gap:.6rem;flex:none}.progress-line{display:flex;gap:1rem;align-items:center;padding:.75rem 1rem;background:var(--accent-light);color:var(--accent);margin-bottom:1rem;border:1px solid #b3d9ce;border-radius:5px;font-size:.85rem}.progress-line progress{width:160px;height:8px;accent-color:var(--accent);margin-left:auto}.error-message{background:#fff0f1;color:var(--error);padding:.85rem 1rem;border:1px solid #efc5ca;border-radius:5px;font-size:.87rem;margin-bottom:1rem}.ex-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface)}.visual-panel{min-width:0}.stage-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem .8rem}.stage-heading p{font-size:.8rem;color:var(--muted);margin-top:.3rem}.timing{font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted);padding-top:.2rem}.image-tools{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 1rem .6rem}.view-toggles,.zoom-tools{display:flex;align-items:center;gap:.15rem}.view-toggles [aria-pressed=true]{color:var(--accent);background:var(--accent-light);border-color:#b3d9ce}.zoom-tools output{font-size:.76rem;min-width:43px;text-align:center;font-variant-numeric:tabular-nums}.photo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;min-height:var(--scene-height);text-align:center;padding:3rem;background:var(--soft);border-top:1px solid var(--line)}.photo-empty>svg{width:57px;height:57px;fill:none;stroke:#6c8795;stroke-width:1.6;margin-bottom:.2rem}.photo-empty p{font-size:.93rem;color:var(--muted);max-width:45ch}.photo-empty .empty-note{font-size:.78rem;margin-top:.3rem}.scene-scroll{height:var(--scene-height);overflow:auto;background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overscroll-behavior:contain}.scene-size{width:100%;height:var(--scene-height);position:relative}.scene-size svg{width:100%;height:100%;display:block;touch-action:manipulation}.scene-cell{cursor:pointer;transition:fill .18s ease-out}.scene-cell:hover{fill:#126b642e}.scene-cell.is-selected{stroke:#006fc2!important;stroke-width:3.5px!important;fill:#006fc214}.scene-label{font-family:"Segoe UI",Arial,sans-serif;font-weight:650;pointer-events:none;paint-order:stroke;stroke:rgba(255,255,255,.95);stroke-width:4px;stroke-linejoin:round;fill:var(--ink)}.scene-ocr{fill:#be6b0f12;stroke:#9a5509;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.map-caption{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 1.1rem;font-size:.75rem;color:var(--muted)}#map-count{font-weight:600;color:var(--ink)}.result-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.1rem 1.1rem .85rem;font-size:.73rem;color:var(--muted)}.result-legend>span{display:flex;align-items:center;gap:.35rem}.legend-mark{width:12px;height:12px;border:2px solid;display:block;border-radius:2px}.attendance{border-color:#126b64}.late{border-color:#825919}.npc{border-color:#685193}.blank{border-color:#6a7e89}.review{border-color:#a12a35;border-style:dashed!important}.crop-strip{display:flex;overflow:auto;gap:.55rem;padding:.8rem 1rem;border-top:1px solid var(--line);max-height:155px}.crop-tile{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:.3rem;flex:0 0 110px;min-width:0;color:var(--muted)}.crop-tile[aria-current=true]{border:2px solid var(--accent);padding:calc(.3rem - 1px);background:var(--accent-light)}.crop-tile img{width:100%;height:65px;object-fit:contain;display:block}.crop-tile span{font-size:.7rem;display:block;margin-top:.2rem}.ex-inspector{padding:1.2rem;border-left:1px solid var(--line);background:#fcfdfd;min-width:0}.stage-explanation{padding-bottom:1.1rem;border-bottom:1px solid var(--line)}.stage-explanation h2{font-size:1.05rem}.stage-explanation p{font-size:.85rem;color:var(--muted);margin-top:.6rem}.stage-explanation .stage-notice{color:var(--warning);background:var(--warning-light);border:1px solid #e5d0a2;padding:.6rem;border-radius:4px;font-size:.78rem;overflow-wrap:anywhere}.cell-picker{padding-top:1rem}.cell-picker>label{font-size:.8rem;font-weight:600;display:block;margin-bottom:.5rem}.cell-picker-controls{display:flex;align-items:center;gap:.35rem}.cell-picker-controls select{min-width:0;flex:1;font-size:.78rem;border:1px solid var(--line-strong);border-radius:5px;padding:.5rem .3rem;color:var(--ink);background:white;height:36px}.cell-picker-controls .button{font-size:.72rem;padding:.4rem}.selected-crop{margin-top:1rem}.selected-crop img{display:block;width:100%;height:105px;object-fit:contain;background:var(--soft);border:1px solid var(--line)}.selected-crop figcaption{font-size:.7rem;color:var(--muted);margin-top:.25rem}.evidence-awaiting{font-size:.81rem;color:var(--muted);padding:1.2rem 0 .2rem}.evidence-section{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line)}.evidence-section h3{font-size:.85rem;margin-bottom:.5rem}.evidence-section p{font-size:.82rem;overflow-wrap:anywhere}.evidence-section .literal-text{font-size:.96rem;line-height:1.5;white-space:pre-wrap;min-height:1.5em}.evidence-section .muted{font-size:.73rem;margin-top:.5rem;color:var(--muted)}.proposal-label{font-size:1.1rem!important;font-weight:650;color:var(--accent);margin-bottom:.35rem}.proposal-label.needs-review{color:var(--warning)}.mask-reading{display:flex;align-items:center;gap:.8rem}.mask-reading img{width:95px;height:70px;object-fit:contain;background:var(--soft);border:1px solid var(--line)}.mask-reading dl{display:grid;grid-template-columns:auto 1fr;gap:.08rem .5rem;font-size:.75rem;font-variant-numeric:tabular-nums}.mask-reading dt{font-weight:600}.mask-reading dd{margin:0;color:var(--muted)}.start-note{padding-top:1.2rem}.start-note h3{font-size:.91rem}.start-note p{font-size:.83rem;color:var(--muted);margin-top:.6rem}.manual-grid{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:.9rem;font-size:.81rem}.manual-grid summary{color:var(--accent);font-weight:600;cursor:pointer}.manual-grid p{color:var(--muted);margin-top:.65rem;font-size:.77rem}.corner-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:.8rem}.corner-buttons .button{white-space:normal;text-align:left;justify-content:flex-start;font-size:.7rem;min-height:43px}.corner-buttons [aria-pressed=true]{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.manual-size{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.8rem}.manual-size label,.coordinate-fields label{font-size:.75rem;font-weight:600;display:flex;flex-direction:column;gap:.25rem}input[type=number]{width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:4px;padding:.45rem;color:var(--ink);background:white}.manual-coordinates{margin:.8rem 0}.manual-coordinates summary{font-size:.74rem}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem}.coordinate-pair{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.coordinate-pair strong{grid-column:1/-1;font-size:.72rem}.manual-grid>.text-button{display:block;margin-top:.5rem}.run-summary{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 0}.run-summary h2{font-size:1.08rem}.run-summary p{font-size:.85rem;margin-top:.4rem}.run-summary .muted{font-size:.75rem;color:var(--muted)}.ex-footer{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--line);margin-top:1.2rem;color:var(--muted);font-size:.73rem}.presentation .ex-header{padding:.45rem 1.25rem}.presentation main{max-width:none;padding:0 1.25rem}.presentation .page-heading{padding:1rem 0}.presentation .page-heading h1{font-size:1.5rem}.presentation .page-heading p{display:none}.presentation .ex-workspace{grid-template-columns:minmax(0,1fr) 360px}.presentation .ex-inspector{font-size:1.05rem}.presentation{--scene-height:calc(100vh - 330px)}.presentation .crop-strip{display:none!important}.presentation .ex-footer{display:none}.presentation .run-summary{padding:1rem 0}.presentation .stage-explanation p,.presentation .evidence-section p{font-size:.93rem}
@media(min-width:1600px){:root{--scene-height:650px}.ex-workspace{grid-template-columns:minmax(0,1fr) 360px}.page-heading{padding-top:1.8rem;padding-bottom:1.5rem}}
@media(max-width:1150px){main{padding:0 1.2rem}.ex-header{padding:.8rem 1.2rem}.page-heading{gap:1rem}.page-heading h1{font-size:1.5rem}.engine-indicator{max-width:190px}.step{padding:.8rem .7rem;gap:.5rem}.step small{font-size:.69rem}.step strong{font-size:.82rem}.ex-workspace{grid-template-columns:minmax(0,1fr) 305px}.ex-inspector{padding:1rem}.photo-source{flex-direction:column;align-items:flex-start;gap:.35rem}#source-name{max-width:320px}.run-toolbar{gap:1rem}.stage-heading{padding:1rem}.stage-heading h2{font-size:1.03rem}.image-tools{flex-wrap:wrap}.map-caption{flex-direction:column;gap:.2rem}.presentation .ex-workspace{grid-template-columns:minmax(0,1fr) 310px}}
@media(max-width:820px){:root{--scene-height:520px}.page-heading{align-items:flex-start;flex-direction:column;gap:.65rem}.engine-indicator{justify-content:flex-start;max-width:none}.step small{display:none}.step{flex-direction:column;gap:.3rem;text-align:center;padding:.65rem .25rem;min-height:68px}.step strong{font-size:.77rem}.ex-workspace,.presentation .ex-workspace{grid-template-columns:1fr}.ex-inspector{border-left:0;border-top:1px solid var(--line);padding:1.25rem}.cell-inspector{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}.cell-picker{grid-column:1/-1}.selected-crop{grid-column:1/-1;max-width:500px;width:100%}.evidence-awaiting{grid-column:1/-1}.cell-picker-controls{max-width:500px}.manual-grid{max-width:600px}.run-summary{align-items:flex-start;flex-direction:column;gap:1rem}.presentation{--scene-height:520px}.presentation .ex-inspector{font-size:1rem}}
@media(max-width:540px){:root{--scene-height:390px}main{padding:0 .85rem}.ex-header{padding:.7rem .85rem;gap:.7rem;align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:space-between;gap:.6rem}.header-actions>a{font-size:.75rem}.header-button{font-size:.73rem}.brand{font-size:.95rem}.brand svg{width:25px;height:25px}.page-heading{padding:1.2rem 0 1rem}.page-heading h1{font-size:1.45rem}.page-heading p{font-size:.84rem}.step-number{width:23px;height:23px;font-size:.75rem}.step strong{font-size:.75rem}.step{min-height:63px}.run-toolbar{align-items:stretch;flex-direction:column;gap:.8rem}.photo-source{gap:.4rem}.file-label{width:100%}.run-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.run-actions .button{white-space:normal;font-size:.79rem;min-height:43px}.photo-source{width:100%}#source-name{font-size:.73rem;max-width:100%}.stage-heading{padding:.9rem .8rem}.stage-heading h2{font-size:1rem}.stage-heading p{font-size:.75rem}.stage-heading{gap:.5rem}.timing{font-size:.75rem}.image-tools{padding:0 .5rem .5rem;gap:.35rem}.image-tools .button{font-size:.71rem;padding:.3rem .45rem;min-height:34px}.zoom-tools output{font-size:.7rem;min-width:35px}.photo-empty{padding:1.5rem;min-height:360px}.photo-empty h3{font-size:1rem}.photo-empty p{font-size:.85rem}.ex-inspector{padding:1rem}.cell-inspector{display:block}.map-caption{padding:.6rem .8rem;font-size:.7rem}.result-legend{padding:.2rem .8rem .7rem;font-size:.75rem;gap:.4rem .7rem}.progress-line{align-items:flex-start;flex-direction:column;gap:.5rem}.progress-line progress{width:100%;margin:0}.crop-strip{padding:.7rem}.crop-tile{flex-basis:95px}.run-summary .button{white-space:normal;text-align:center;width:100%}.ex-footer{flex-direction:column;gap:.35rem;font-size:.75rem}.presentation main{padding:0 .85rem}.presentation .page-heading h1{font-size:1.3rem}.presentation{--scene-height:390px}.presentation .ex-header{padding:.6rem .85rem}}
.agenda-rule{padding:1rem 0;border-bottom:1px solid var(--line)}.agenda-rule h3{font-size:.82rem;margin-bottom:.55rem}.agenda-rule label{display:flex;align-items:flex-start;gap:.5rem;font-size:.78rem;line-height:1.4;cursor:pointer}.agenda-rule input{accent-color:var(--accent);margin:.12rem 0 0;flex:none;width:16px;height:16px}.agenda-rule p{font-size:.71rem;color:var(--muted);margin:.5rem 0 0 1.5rem}.agenda-rule #classification-change{color:var(--warning);font-weight:600}.file-label.disabled{opacity:.48;cursor:not-allowed}.results-table-section{margin:.3rem 0 1.5rem}.results-table-section>summary{cursor:pointer;color:var(--accent);font-size:.9rem;font-weight:600}.results-table-scroll{overflow:auto;margin-top:1rem;border:1px solid var(--line);border-radius:5px;background:white}.results-table-scroll table{border-collapse:collapse;width:100%;text-align:left;font-size:.8rem;min-width:650px}.results-table-scroll caption{text-align:left;padding:.8rem 1rem;color:var(--muted);font-size:.76rem}.results-table-scroll th{padding:.7rem 1rem;background:var(--soft);border-bottom:1px solid var(--line);font-size:.76rem;white-space:nowrap}.results-table-scroll td{padding:.7rem 1rem;border-bottom:1px solid var(--line);vertical-align:top;max-width:400px;overflow-wrap:anywhere}.results-table-scroll .selected-row{background:var(--accent-light)}.results-table-scroll .text-button{white-space:nowrap;font-size:.78rem}.results-table-scroll tbody tr:last-child td{border-bottom:0}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
