:root{color:#141414;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:#141414;cursor:pointer;background:#fff;border:1px solid #c8cec8;border-radius:8px;min-height:40px;padding:0 14px}button:hover:not(:disabled){border-color:#5b7d65}button:disabled{cursor:not-allowed;opacity:.55}button.primary{color:#fff;background:#245c3a;border-color:#245c3a}input[type=text]{border:1px solid #c8cec8;border-radius:8px;width:100%;min-height:40px;padding:0 12px}.shell{width:min(1500px,100%);margin:0 auto;padding:24px}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 0 24px;display:flex}.eyebrow{color:#245c3a;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:.78rem;font-weight:700}h1{margin:0;font-size:clamp(2rem,3vw,3rem)}h2{margin:0 0 12px;font-size:1rem}.subtle{color:#616760;max-width:620px;margin:10px 0 0}.status-pill{text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #d8ddd7;border-radius:999px;max-width:320px;padding:9px 14px;overflow:hidden}.workspace{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:20px;display:grid}.controls{gap:14px;display:grid;position:sticky;top:16px}.drop-zone{cursor:pointer;text-align:center;background:#fff;border:1px dashed #8a9388;border-radius:8px;place-items:center;gap:8px;min-height:150px;padding:20px;display:grid}.drop-zone input{display:none}.drop-zone span{font-size:1.1rem;font-weight:700}.drop-zone small,.fine-print{color:#616760;line-height:1.45}.panel,.candidate-bar,.empty,.candidate-list,.page-card{background:#fff;border:1px solid #d8ddd7;border-radius:8px}.panel{padding:14px}.pattern-list{flex-wrap:wrap;gap:6px;display:flex}.check-row,.candidate-row{align-items:center;gap:10px;display:flex}.check-row{color:#4d5e52;cursor:pointer;user-select:none;background:#fff;border:1px solid #c8cec8;border-radius:999px;gap:0;min-height:30px;padding:0 11px;font-size:.86rem;font-weight:700;line-height:1.2;position:relative}.check-row input{opacity:0;pointer-events:none;position:absolute}.check-row:has(input:checked){color:#245c3a;background:#e8f3eb;border-color:#245c3a}.check-row:has(input:focus-visible){outline-offset:2px;outline:2px solid #5b7d65}.inline-form{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.field-help{color:#616760;margin:8px 0 0;font-size:.82rem;line-height:1.35}.field-help code{color:#245c3a;font-size:.78rem}.chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.chip{border-radius:999px;min-height:32px;padding:0 10px}.actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.actions .primary,.actions #save-redacted{grid-column:1/-1}.actions .attention{color:#7a4300;background:#fff4dd;border-color:#b66b00;font-weight:700}.scan-note{color:#7a4300;margin:-6px 0 0;font-size:.85rem;line-height:1.35}.fine-print{margin:0;font-size:.88rem}.preview{gap:14px;min-width:0;display:grid}.preview-body{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:14px;display:grid}.pages-area{gap:14px;min-width:0;display:grid}.candidate-panel{background:#fff;border:1px solid #d8ddd7;border-radius:8px;max-height:calc(100vh - 90px);position:sticky;top:70px;overflow-y:auto}.candidate-bar{z-index:10;align-items:center;gap:8px;padding:12px 14px;display:flex;position:sticky;top:16px;box-shadow:0 4px 12px #14141414}.candidate-tools{gap:6px;margin-left:auto;display:flex}.candidate-tools button{min-height:30px;padding:0 10px;font-size:.86rem}.candidate-tools button.active{color:#fff;background:#245c3a;border-color:#245c3a}.section-title{color:#4d5e52;margin:4px 0 -4px;font-size:1rem}.draw-hint{color:#245c3a;background:#eef7f1;border:1px solid #b9d2c1;border-radius:8px;padding:10px 12px;font-weight:700}.working{color:#245c3a;margin-left:auto;font-weight:700}.empty{color:#616760;padding:22px}.candidate-list{overflow:auto}.candidate-group{border-bottom:1px solid #d8ddd7}.candidate-group:last-child{border-bottom:0}.candidate-group-header{color:#4d5e52;cursor:pointer;user-select:none;align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:700;list-style:none;display:flex}.candidate-group-header::-webkit-details-marker{display:none}.candidate-group-header:before{content:"▾";font-size:.7rem;transition:transform .15s}details.candidate-group:not([open]) .candidate-group-header:before{transform:rotate(-90deg)}.candidate-group-count{color:#616760;background:#edf0ec;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:.75rem}.candidate-group .candidate-row:last-child{border-bottom:0}.candidate-row{cursor:pointer;border-bottom:1px solid #edf0ec;min-height:46px;padding:8px 12px}.candidate-row:hover{background:#f6f7f5}.candidate-check{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.candidate-row:last-child{border-bottom:0}.candidate-type{color:#245c3a;min-width:92px;font-weight:700}.candidate-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.candidate-page{color:#616760;white-space:nowrap}.remove-manual{color:#7a1f12;min-height:30px;padding:0 10px;font-size:.86rem}.pages{gap:18px;display:grid}.redacted-preview{border-top:2px solid #245c3a;gap:14px;margin-top:8px;padding-top:18px;display:grid}.redacted-header{background:#eef7f1;border:1px solid #b9d2c1;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px;display:flex}.redacted-header h2,.redacted-header p{margin:0}.redacted-header p{color:#4d5e52;margin-top:6px}.redacted-header span{text-overflow:ellipsis;white-space:nowrap;color:#245c3a;max-width:280px;font-weight:700;overflow:hidden}.redacted-page{border-color:#b9d2c1}.page-card{padding:12px;overflow:auto}.page-title{color:#616760;margin-bottom:10px;font-weight:700}.page-canvas{max-width:100%;position:relative;overflow:hidden}.page-canvas.draw-enabled{cursor:crosshair;touch-action:none}.page-canvas img{object-fit:contain;width:100%;height:100%;display:block}.redaction-overlay{pointer-events:auto;background:#d24a2f14;border:2px solid #d24a2f;position:absolute}.redaction-overlay.selected{background:#d24a2f1f;border-color:#d24a2f}.redaction-overlay.unselected{opacity:.35}.redaction-overlay:hover{opacity:1;z-index:3}.overlay-tooltip{white-space:nowrap;background:#fff;border:1px solid #c8cec8;border-radius:8px;align-items:center;gap:6px;max-width:260px;padding:6px;display:none;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 8px 22px #14141426}.overlay-tooltip:before{content:"";height:6px;position:absolute;bottom:-6px;left:0;right:0}.redaction-overlay:hover .overlay-tooltip,.redaction-overlay:focus-within .overlay-tooltip{display:flex}.page-canvas.draw-enabled .redaction-overlay{pointer-events:none}.overlay-tooltip span{color:#4d5e52;font-size:.78rem;font-weight:700}.overlay-tooltip button{min-height:26px;padding:0 8px;font-size:.78rem}@keyframes overlay-pulse{0%{outline:3px solid #d24a2f;box-shadow:0 0 #d24a2fb3}70%{box-shadow:0 0 0 10px #d24a2f00}to{outline-color:#0000;box-shadow:0 0 #d24a2f00}}.overlay-highlighted{z-index:4;animation:1s ease-out forwards overlay-pulse}.overlay-hover{z-index:4;outline:2px solid #d24a2f}.candidate-row-hover{background:#fdf0ed!important}.manual-draft{pointer-events:none;background:#245c3a24;border:2px dashed #245c3a;position:absolute}@media (width<=900px){.shell{padding:16px}.topbar,.workspace{grid-template-columns:1fr;display:grid}.preview-body{grid-template-columns:1fr}.candidate-panel{max-height:none;position:static}.controls{position:static}.status-pill{max-width:100%}}
