.psc-scan { --scan-ink:#173c3b; --scan-accent:#176b5b; --scan-line:#d9e3df; color:var(--scan-ink); font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:24px 0; min-width:0; }
.psc-scan *, .psc-scan *::before, .psc-scan *::after { box-sizing:border-box; }
.psc-scan [hidden] { display:none!important; }
.psc-scan-panel { background:#fff; border:1px solid var(--scan-line); border-radius:16px; overflow:hidden; }
.psc-scan-panel>summary { display:flex; align-items:center; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; padding:20px 24px; background:#edf5f1; cursor:pointer; font-size:20px; font-weight:700; }
.psc-scan-panel>summary::after { content:'⌄'; margin-left:auto; }
.psc-scan-panel:not([open])>summary::after { content:'›'; }
.psc-scan-summary { font-size:12px; font-weight:500; color:#4a6560; }
.psc-scan-body { padding:24px; }
.psc-scan p { margin:0 0 12px; }
.psc-scan-intro { max-width:820px; font-size:15px; }
.psc-scan-small { font-size:12px; color:#536661; }
.psc-scan button,.psc-scan-upload { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; max-width:100%; padding:8px 12px; margin:0; border:1px solid #b7cbc2; border-radius:8px; background:#fff; color:var(--scan-ink); font:600 12px/1.35 system-ui,sans-serif; text-transform:none; text-decoration:none; letter-spacing:normal; cursor:pointer; box-shadow:none; white-space:normal; }
.psc-scan button:hover,.psc-scan-upload:hover { background:#edf5f1; border-color:var(--scan-accent); }
.psc-scan button:disabled,.psc-scan input:disabled,.psc-scan select:disabled { opacity:.45; cursor:default; }
.psc-scan :focus-visible { outline:3px solid #ce831d; outline-offset:3px; }
.psc-scan .psc-scan-primary,.psc-scan-upload { color:#fff; background:var(--scan-accent); border-color:var(--scan-accent); }
.psc-scan .psc-scan-primary:hover,.psc-scan-upload:hover { background:#105445; color:#fff; }
.psc-scan .psc-scan-quiet { color:#735049; background:transparent; }
.psc-scan-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:12px 0; }
.psc-scan-upload { position:relative; overflow:hidden; }
.psc-scan-upload input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.psc-scan-upload:focus-within { outline:3px solid #ce831d; outline-offset:3px; }
.psc-scan-toolbar label:not(.psc-scan-upload) { display:flex; align-items:center; gap:8px; font-size:12px; }
.psc-scan input[type="text"],.psc-scan input[type="date"],.psc-scan select { width:100%; height:38px; min-width:0; padding:7px 9px; margin:0; border:1px solid #becbc5; border-radius:6px; background:#fff; color:#173c3b; font:14px/1.3 system-ui,sans-serif; box-shadow:none; }
.psc-scan-toolbar select { width:auto; }
.psc-scan input[type="checkbox"] { appearance:auto; width:16px; height:16px; min-width:16px; margin:2px 0 0; accent-color:var(--scan-accent); }
.psc-scan-consent,.psc-scan-confirm,.psc-scan-duplicate { display:flex; align-items:flex-start; gap:8px; font-size:12px; }
.psc-scan-consent { padding:12px 0; flex-wrap:wrap; }
.psc-scan-consent a { color:var(--scan-accent); text-decoration:underline; }
.psc-scan-api-note { padding:12px 14px; margin-top:12px; background:#fff6e5; border:1px solid #e5cfa6; border-radius:8px; color:#70521c; font-size:13px; }
.psc-scan-status { min-height:24px; color:#22594c; margin:8px 0; overflow-wrap:anywhere; }
.psc-scan-status.is-error { color:#9a2828; }
.psc-scan-empty { padding:36px 20px; margin-top:16px; text-align:center; border:2px dashed #c6d6cf; border-radius:12px; background:#fafcfb; }
.psc-scan-empty>span { display:block; font-size:40px; color:#6c9685; margin-bottom:12px; }
.psc-scan-empty strong { display:block; font-size:17px; margin-bottom:6px; }
.psc-scan-empty p { color:#657970; font-size:13px; }
.psc-scan-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; counter-reset:scan-step; list-style:none; margin:16px 0; padding:0; }
.psc-scan-steps li { display:flex; align-items:center; gap:8px; padding:10px; border-radius:8px; background:#edf5f1; font-size:12px; font-weight:600; }
.psc-scan-steps li::before { counter-increment:scan-step; content:counter(scan-step); display:grid; place-items:center; flex-shrink:0; width:24px; height:24px; color:#fff; background:#176b5b; border-radius:50%; }
.psc-scan-page-picker { padding:16px; margin:16px 0; border:1px solid var(--scan-line); border-radius:12px; background:#fafcfb; }
.psc-scan-page-picker>summary { cursor:pointer; font-weight:700; font-size:15px; margin-bottom:12px; }
.psc-scan-page-picker>summary span { font-size:12px; font-weight:400; margin-left:12px; }
.psc-scan-pages { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); align-items:start; gap:12px; padding:4px; max-height:380px; overflow-y:auto; }
.psc-scan-pages button { width:100%; min-width:0; flex-direction:column; gap:6px; font-size:12px; padding:10px; }
.psc-scan-pages button span { font-size:10px; font-weight:400; }
.psc-scan-page-tile { min-width:0; }
.psc-scan-page-tile label { display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 0; font-size:11px; cursor:pointer; }
.psc-scan-page-tile.is-excluded .psc-scan-page-thumb { opacity:.4; }
.psc-scan-page-thumb { display:block; position:relative; width:100%; line-height:0; background:#fff; border:1px solid #cfdbd4; }
.psc-scan-page-thumb>img { display:block; width:100%; height:auto; border:0; margin:0; padding:0; }
.psc-scan-page-thumb>i { position:absolute; border:1px solid #d46615; background:rgba(220,157,43,.07); }
.psc-scan-page-title { font-size:13px; font-weight:600; overflow-wrap:anywhere; }
.psc-scan-usage { padding:12px 14px; margin:12px 0; border:1px solid #c5d8cf; border-radius:8px; font-size:12px; background:#f3f8f5; overflow-wrap:anywhere; }
.psc-scan-usage span { font-size:11px; color:#536661; }
.psc-scan-usage a { color:#176b5b; text-decoration:underline; }
.psc-scan-usage summary { margin-top:8px; cursor:pointer; font-weight:600; }
.psc-scan-usage ol { list-style:none; max-height:200px; overflow-y:auto; margin:8px 0 0; padding:0; }
.psc-scan-usage li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; padding:8px 0; border-top:1px solid #d9e3df; }
.psc-scan-evidence { margin:10px 0!important; padding:10px; border-left:3px solid #176b5b; background:#edf5f1; font-size:12px; overflow-wrap:anywhere; }
.psc-scan-pages button[aria-current="page"],.psc-scan [aria-pressed="true"] { background:var(--scan-accent); color:#fff; border-color:var(--scan-accent); }
.psc-scan-columns { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:20px; align-items:start; }
.psc-scan-viewer,.psc-scan-review { min-width:0; }
.psc-scan-viewer { position:sticky; top:44px; }
.psc-scan-viewport { max-height:760px; height:auto; min-height:120px; overflow:auto; padding:0; border:1px solid #bacac2; border-radius:10px; background:#e0e7e2; }
.psc-scan-stage { position:relative; min-width:100%; width:100%; line-height:0; background:#fff; user-select:none; }
.psc-scan-stage>img { display:block; position:absolute; inset:0; width:100%; height:100%; max-width:none; padding:0; margin:0; border:0; object-fit:fill; pointer-events:none; }
.psc-scan-overlay { position:absolute; inset:0; touch-action:none; }
.psc-scan-overlay.is-drawing { cursor:crosshair; }
.psc-scan-overlay.is-drawing .psc-scan-box { pointer-events:none; }
.psc-scan-overlay.is-busy { pointer-events:none; }
.psc-scan-box { position:absolute; border:2px solid #b96318; background:rgba(220,157,43,.035); cursor:move; line-height:1; touch-action:none; z-index:1; }
.psc-scan-box.is-confirmed { border-color:#176b5b; }
.psc-scan-box.is-selected { border-color:#105fc9; box-shadow:0 0 0 1px #fff,0 0 0 3px #105fc9; z-index:2; }
.psc-scan-box-number { position:absolute; left:-2px; top:-2px; display:flex; align-items:center; justify-content:center; min-width:24px; height:24px; padding:3px; background:#9f4c0e; color:#fff; font:bold 12px/1 system-ui,sans-serif; border-radius:0 0 4px 0; }
.psc-scan-box.is-selected .psc-scan-box-number { background:#105fc9; }
.psc-scan-box.is-confirmed:not(.is-selected) .psc-scan-box-number { background:#176b5b; }
.psc-scan-handle { position:absolute; width:14px; height:14px; border:2px solid #fff; background:#105fc9; border-radius:3px; display:none; }
.psc-scan-box.is-selected .psc-scan-handle,.psc-scan-box:hover .psc-scan-handle { display:block; }
.psc-scan-nw { left:-7px; top:-7px; cursor:nwse-resize; }
.psc-scan-ne { right:-7px; top:-7px; cursor:nesw-resize; }
.psc-scan-sw { left:-7px; bottom:-7px; cursor:nesw-resize; }
.psc-scan-se { right:-7px; bottom:-7px; cursor:nwse-resize; }
.psc-scan-ghost { border-style:dashed; background:rgba(16,95,201,.12); pointer-events:none; }
.psc-scan-review-head { display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap; }
.psc-scan-review-head h3 { color:var(--scan-ink); font-size:17px; line-height:1.3; margin:0; }
.psc-scan-review-head>span { font-size:11px; color:#516b62; }
.psc-scan-cards { display:grid; gap:14px; max-height:900px; overflow-y:auto; padding:3px; }
.psc-scan-card { background:#fff; border:1px solid #cad9d1; border-radius:10px; padding:14px; min-width:0; }
.psc-scan-card.is-selected { border-color:#105fc9; box-shadow:0 0 0 1px #105fc9; }
.psc-scan-card-title { display:flex; align-items:center; justify-content:space-between; gap:6px; flex-wrap:wrap; }
.psc-scan-card-title>button { padding:0; border:0; min-height:26px; font-size:15px; background:none; }
.psc-scan-badge { font-size:10px; padding:4px 7px; border-radius:20px; background:#fff0d7; color:#805216; }
.psc-scan-badge.is-ok { color:#1c6250; background:#e4f3e9; }
.psc-scan-source { font-size:10px; color:#67796f; overflow-wrap:anywhere; }
.psc-scan .psc-scan-crop { display:block; width:100%; height:140px; padding:5px; background:#f5f4ef; margin-bottom:12px; border-color:#e6e4db; }
.psc-scan-crop>img { width:100%; height:100%; object-fit:contain; padding:0; margin:0; border:0; }
.psc-scan-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.psc-scan-fields label { display:grid; gap:4px; font-size:11px; font-weight:600; }
.psc-scan-warning { margin-top:10px!important; padding:9px; background:#fff5e4; color:#7a541e; border-radius:6px; font-size:12px; overflow-wrap:anywhere; }
.psc-scan-transcription { margin:10px 0; color:#516b62; font-size:11px; }
.psc-scan-transcription summary { cursor:pointer; }
.psc-scan-transcription p { padding:8px; white-space:pre-wrap; overflow-wrap:anywhere; }
.psc-scan-confirm { font-weight:600; margin:12px 0 8px; }
.psc-scan-duplicate { color:#65776e; font-size:10px; }
.psc-scan-card-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.psc-scan-card-actions button { font-size:11px; min-height:32px; }
.psc-app .psc-scan-row-source { display:block; white-space:normal; font-size:10px; line-height:1.4; padding:3px 0; margin-top:4px; color:#176b5b; border:0; background:transparent; cursor:pointer; text-decoration:underline; }
.psc-app .psc-scan-row-source[disabled] { cursor:default; text-decoration:none; }
@media(max-width:1000px) { .psc-scan-columns { grid-template-columns:minmax(0,1fr); } .psc-scan-viewer { position:static; } .psc-scan-viewport { max-height:65vh; } .psc-scan-cards { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); max-height:none; overflow:visible; } }
@media(max-width:600px) { .psc-scan-body { padding:14px; } .psc-scan-panel>summary { padding:16px; font-size:17px; } .psc-scan-summary { display:none; } .psc-scan-toolbar { gap:6px; } .psc-scan-toolbar button { flex:1 1 auto; font-size:11px; } .psc-scan-cards { grid-template-columns:minmax(0,1fr); } .psc-scan-fields { grid-template-columns:minmax(0,1fr); } .psc-scan-consent { display:block; } .psc-scan-consent input { margin-right:6px; vertical-align:middle; } .psc-scan-handle { width:20px; height:20px; } .psc-scan-nw,.psc-scan-sw { left:-10px; } .psc-scan-ne,.psc-scan-se { right:-10px; } .psc-scan-nw,.psc-scan-ne { top:-10px; } .psc-scan-sw,.psc-scan-se { bottom:-10px; } }
@media print { .psc-scan { display:none; } }
@media(max-width:600px) { .psc-scan-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } .psc-scan-steps li { padding:8px; font-size:11px; } .psc-scan-page-picker { padding:12px; } .psc-scan-pages { grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:8px; } }
