:root{color-scheme:light;--bg: #ffffff;--bg-muted: #f5f5f5;--ink: #000000;--ink-muted: #333333;--line: #000000;--orange: #ff6600;--orange-dark: #e55a00;--orange-soft: #fff3e8;--orange-mid: #ffd4b3;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}h1,h2{font-family:Arial Black,Arial,Helvetica,sans-serif;font-weight:900;letter-spacing:-.02em}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.app.error{padding:24px}.app-state{margin:0;padding:24px;font-family:Arial,Helvetica,sans-serif}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--bg);border-bottom:2px solid var(--ink)}.app-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.sample-switcher{display:flex;align-items:stretch;border:2px solid var(--ink);background:var(--bg)}.sample-switcher-label{display:flex;align-items:center;padding:4px 8px;background:var(--ink);color:var(--bg);font-family:Arial,Helvetica,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sample-switcher button{border:0;border-left:2px solid var(--ink);border-radius:0;background:var(--bg);color:var(--ink);padding:5px 9px;font-family:Arial,Helvetica,sans-serif;font-size:.72rem;font-weight:700;white-space:nowrap;cursor:pointer}.sample-switcher button:hover{background:var(--orange-soft);color:var(--ink)}.sample-switcher button.active{background:var(--orange);color:#fff}.sample-switcher button.active:hover{background:var(--orange-dark);color:#fff}.app-header h1{margin:0;font-size:1.15rem;color:var(--ink)}.meta{margin:4px 0 0;font-size:.85rem;color:var(--ink-muted);font-family:Arial,Helvetica,sans-serif}.calib-meta{color:var(--orange-dark);font-weight:700;border-bottom:1px dotted var(--orange);cursor:help}.mapping-meta{display:inline-block;padding:0 5px;border:1px solid var(--orange);background:var(--orange-soft);color:var(--ink);font-weight:700;white-space:nowrap}.export-btn{background:var(--orange);color:#fff;border:2px solid var(--ink);border-radius:0;padding:10px 16px;font-family:Arial Black,Arial,Helvetica,sans-serif;font-weight:900;cursor:pointer}.export-btn:hover{background:var(--orange-dark)}.layout{flex:1;display:grid;grid-template-columns:1fr minmax(320px,420px);min-height:0}.viewer-panel{display:flex;flex-direction:column;min-width:0;border-right:2px solid var(--ink);background:var(--bg-muted)}.viewer-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;background:var(--bg);border-bottom:2px solid var(--ink);font-family:Arial,Helvetica,sans-serif}.viewer-toolbar .tool-group{display:flex;align-items:center;gap:4px}.viewer-toolbar .tool-sep{width:2px;height:22px;background:var(--ink);margin:0 2px}.viewer-toolbar button{border:2px solid var(--ink);background:var(--bg);color:var(--ink);border-radius:0;padding:4px 10px;font-family:Arial,Helvetica,sans-serif;font-weight:700;cursor:pointer}.viewer-toolbar button:hover,.viewer-toolbar button.active,.viewer-toolbar button.finish-btn{background:var(--orange);color:#fff}.viewer-toolbar button.active:hover,.viewer-toolbar button.finish-btn:hover{background:var(--orange-dark);color:#fff}.viewer-toolbar button:disabled{opacity:.45;cursor:not-allowed}.viewer-toolbar button:disabled:hover{background:var(--bg);color:var(--ink)}.viewer-toolbar .calib-chip,.viewer-toolbar .snap-chip{border:2px solid var(--orange);background:var(--orange-soft);color:var(--ink);padding:3px 7px;font-size:.72rem;font-weight:700;white-space:nowrap}.viewer-toolbar .snap-chip{border-color:var(--ink);background:var(--bg);font-weight:400}.viewer-toolbar .hint{margin-left:auto;font-size:.8rem;color:var(--ink-muted)}.viewer-notice{padding:6px 12px;border-bottom:2px solid var(--orange);background:var(--orange-soft);color:var(--ink);font-size:.8rem;font-weight:700}.viewer-viewport{flex:1;overflow:hidden;position:relative;background:var(--bg-muted)}.viewer-viewport.mode-select{cursor:grab}.viewer-viewport.mode-select:active{cursor:grabbing}.viewer-viewport.mode-crosshair,.viewer-viewport.mode-crosshair:active{cursor:crosshair}.viewer-stage{position:absolute;top:12px;left:12px}.pdf-canvas,.overlay-canvas{display:block}.overlay-canvas{position:absolute;left:0;top:0;pointer-events:none}.side{display:flex;flex-direction:column;gap:12px;padding:12px;overflow:auto;background:var(--bg);max-height:calc(100vh - 64px)}.list-panel h2,.query-box h2,.bill-preview h2{margin:0 0 8px;font-size:.95rem;color:var(--ink)}.markup-table{width:100%;border-collapse:collapse;font-size:.8rem;font-family:Arial,Helvetica,sans-serif}.markup-table th,.markup-table td{border-bottom:1px solid var(--ink);padding:6px 8px;text-align:left;vertical-align:top}.markup-table th{font-family:Arial Black,Arial,Helvetica,sans-serif;font-weight:900;background:var(--bg)}.markup-table tbody tr{cursor:pointer}.markup-table tbody tr:hover{background:var(--orange-soft)}.markup-table tr.selected{background:var(--orange-soft);outline:2px solid var(--orange)}.markup-table tr.flash{animation:flashrow .6s ease 2}.markup-table tr.query{background:var(--orange-soft);color:var(--ink);font-weight:700}.finish-input{width:100%;min-width:0;border:1px solid var(--ink);border-radius:0;background:var(--bg);color:var(--ink);padding:3px 5px;font-family:Arial,Helvetica,sans-serif;font-size:.8rem;line-height:1.2}.finish-input::placeholder{color:var(--ink-muted);font-weight:400}.finish-input:hover{border-color:var(--orange)}.finish-input:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:var(--orange);background:var(--bg)}.markup-table.compact td,.markup-table.compact th{padding:4px 6px}@keyframes flashrow{0%,to{background:var(--orange-soft)}50%{background:var(--orange-mid)}}.query-box{border:2px solid var(--orange);background:var(--orange-soft);border-radius:0;padding:10px 12px}.query-box .ok{margin:0;color:var(--ink);font-size:.85rem}.query-box ul{margin:0;padding-left:18px;font-size:.85rem}.linkish{background:none;border:none;color:var(--orange-dark);font-family:Arial,Helvetica,sans-serif;font-weight:700;cursor:pointer;padding:0;text-decoration:underline}.bill-preview{border:2px solid var(--ink);border-radius:0;padding:10px 12px;background:var(--bg)}@media(max-width:900px){.layout{grid-template-columns:1fr}.app-header{align-items:flex-start;flex-wrap:wrap}.app-actions{width:100%;justify-content:flex-start}}
