:root{color:#18212f;background:#eef3f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#ffffffe6,#eef3f7bf),#eef3f7}button,input{font:inherit}button{border:1px solid #cad5df;border-radius:8px;background:#fff;color:#223041;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}button:hover{border-color:#2088b8;box-shadow:0 8px 22px #1d45661f}button:disabled{cursor:wait;opacity:.58}button svg{width:18px;height:18px}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:18px 0 22px}.eyebrow{color:#247da5;font-size:13px;font-weight:700;margin:0 0 8px}h1{font-size:clamp(30px,5vw,48px);line-height:1.05;margin:0}.subhead{color:#566477;margin:12px 0 0}.quick-guide{margin-top:14px;color:#4d5d70}.quick-guide ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;counter-reset:guide-step}.quick-guide li{counter-increment:guide-step;display:inline-flex;align-items:center;gap:7px;min-height:30px;border:1px solid #c9d9e3;border-radius:8px;background:#ffffffd1;padding:5px 10px;font-size:13px;font-weight:700}.quick-guide li:before{content:counter(guide-step);display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#166f9d;color:#fff;font-size:11px}.quick-guide p{margin:9px 0 0;color:#617183;font-size:13px;line-height:1.6}.privacy{display:inline-flex;align-items:center;gap:10px;border:1px solid #c8dbe5;border-radius:8px;background:#ffffffc7;padding:10px 12px;color:#2c647b;font-weight:700;white-space:nowrap}.privacy svg{width:20px;height:20px}.panel,.table-card{border:1px solid #d7e0e8;border-radius:8px;background:#ffffffe0;box-shadow:0 12px 36px #142d4414}.upload-panel{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px}.dropzone{min-height:132px;border:1px dashed #9db8c8;border-radius:8px;background:#f7fbfd;display:grid;place-items:center;text-align:center;padding:18px;color:#4e6071;cursor:pointer}.dropzone.dragover{border-color:#168ab8;background:#eaf7fb}.dropzone input{display:none}.dropzone svg{width:34px;height:34px;color:#168ab8;margin-bottom:8px}.dropzone strong{color:#172434;font-size:18px}.dropzone span{display:block;max-width:460px;margin-top:4px;font-size:14px}.actions,.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.actions{flex-direction:column;align-items:stretch;min-width:150px}.image-previews{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.image-previews.empty{display:none}.preview-item{position:relative;min-width:0}.preview-thumb{width:100%;min-height:0;padding:6px;display:grid;gap:6px;justify-items:start;text-align:left;overflow:hidden}.preview-remove{position:absolute;top:4px;right:4px;width:28px;min-height:28px;padding:0;border-color:#7a8b9a85;background:#fffffff0;box-shadow:0 4px 14px #10202d2e}.preview-remove svg{width:15px;height:15px}.preview-thumb img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:6px;border:1px solid #d8e1e8;background:#f6f8fa}.preview-thumb span{width:100%;color:#5d6a7a;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-dialog{width:min(96vw,1100px);max-height:92vh;overflow:auto;border:0;border-radius:8px;padding:14px;background:#fff;box-shadow:0 24px 70px #0f1f2d47}.image-dialog::backdrop{background:#0f19239e}.image-dialog img{display:block;width:100%;max-height:78vh;object-fit:contain;background:#f5f7f9;border-radius:6px}.image-dialog.result-dialog{width:min(96vw,920px)}.image-dialog.result-dialog img{width:100%;max-height:none;object-fit:contain}.image-dialog strong{display:block;margin-top:10px;color:#304050;font-size:14px;word-break:break-all}.dialog-close{position:absolute;top:10px;right:10px;background:#ffffffeb}.primary{background:#166f9d;border-color:#166f9d;color:#fff}.primary:hover{border-color:#0f5f88;box-shadow:0 10px 24px #166f9d38}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.metric{border:1px solid #d7e0e8;border-radius:8px;background:#fff;min-height:96px;padding:16px;display:flex;flex-direction:column;justify-content:space-between}.metric span{color:#627080;font-size:14px;font-weight:700}.metric strong{color:#192535;font-size:28px;line-height:1.1}.metric.accent{background:#e8f6f8;border-color:#add7df}.time-edit input{width:100%;border:0;border-bottom:2px solid #9fc3d1;color:#192535;background:transparent;font-size:28px;font-weight:800;outline:none;padding:0 0 3px}.time-edit small{display:none;color:#b5451a;font-size:12px;font-weight:800;margin-top:5px}.time-edit small.visible{display:block}.result-image-panel{display:grid;gap:12px;padding:16px;margin-bottom:14px}.result-image-top{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,320px) auto auto;gap:14px;align-items:end}.result-image-top h2{margin:0 0 4px;font-size:18px}.result-image-top p,.result-image-meta{margin:0;color:#667383}.note-field,.mode-field{display:grid;gap:6px}.note-field span,.mode-field>span{color:#627080;font-size:13px;font-weight:800}.note-field input{width:100%;min-height:42px;border:1px solid #c8d5df;border-radius:8px;padding:0 12px;outline:none}.note-field input:focus{border-color:#168ab8;box-shadow:0 0 0 3px #168ab81f}.segmented{min-height:42px;display:inline-grid;grid-template-columns:repeat(2,minmax(70px,1fr));padding:3px;border:1px solid #c8d5df;border-radius:8px;background:#f6f9fb}.segmented label{min-width:0}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented label span{min-height:34px;display:grid;place-items:center;border-radius:6px;color:#526170;font-size:14px;font-weight:800;cursor:pointer}.segmented input:checked+span{background:#166f9d;color:#fff}.result-image-thumb{width:min(100%,360px);min-height:112px;padding:8px;display:grid;justify-items:start;text-align:left;overflow:hidden}.result-image-thumb.empty{width:100%;min-height:74px;border-style:dashed;color:#697788}.result-image-thumb:disabled,#downloadResultImageBtn:disabled{cursor:not-allowed}.result-image-thumb img{display:block;width:100%;max-height:180px;object-fit:contain;border:1px solid #d8e1e8;border-radius:6px;background:#f6f8fa}.result-image-thumb.empty img{display:none}.result-image-thumb:not(.empty) #resultImagePlaceholder{display:none}.result-image-meta{font-size:13px}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;margin-bottom:14px}.toolbar strong{display:block;margin-bottom:4px}.toolbar p{margin:0;color:#667383}.table-card{overflow:hidden}.table-head,.result-row{display:grid;grid-template-columns:66px minmax(130px,1fr) 210px 156px 112px 124px 82px 92px 44px;gap:12px;align-items:center}.table-head{background:#e6edf2;color:#536170;font-size:13px;font-weight:800;padding:12px 16px}.rows.empty{min-height:210px;display:grid;place-items:center}.empty-state{text-align:center;color:#6a7888}.empty-state svg{width:34px;height:34px}.empty-state.compact{min-height:120px;display:grid;place-items:center;border-top:1px solid #e6edf2}.hidden-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid #dbe7ee;background:#f4f8fb;color:#566779;font-size:13px;font-weight:800}.hidden-summary button{min-height:34px;padding:0 12px}.result-row{min-height:78px;padding:12px 16px;border-top:1px solid #e6edf2;background:#fff}.result-row.muted{background:#f6f8fa;color:#7b8795}.result-row.hidden-row{background:#f9fbfc}.source{min-width:0}.source strong,.source small{display:block}.source small{color:#7b8795;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crop{height:44px;object-fit:contain;border:1px solid #d8e1e8;border-radius:6px;background:#fff}.skill-crop{width:204px;height:76px;object-position:left center}.skill-ocr-crop{width:150px;height:62px;object-position:left center}.number-crop{width:112px}.attack-input{width:100%;min-height:42px;border:1px solid #c8d5df;border-radius:8px;padding:0 10px;font-weight:800}.field{min-width:0}.field>span{display:none;color:#6b7888;font-size:12px;font-weight:800;margin-bottom:4px}.confidence{font-weight:800}.status{border-radius:999px;padding:6px 9px;font-size:13px;font-weight:800;text-align:center}.status.ok{color:#17663c;background:#e7f7ee}.status.warn{color:#8a4b0b;background:#fff2dd}.icon-btn{width:40px;min-height:40px;padding:0}.switch{position:relative;display:inline-flex;width:48px;height:28px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#c9d3dc;transition:background .18s ease}.switch span:after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .18s ease;box-shadow:0 2px 6px #18212f38}.switch input:checked+span{background:#168ab8}.switch input:checked+span:after{transform:translate(20px)}.advice{margin-top:14px;padding:16px}.advice h2{font-size:18px;margin:0 0 10px}.advice ul{margin:0;padding-left:20px;color:#536170}.advice li+li{margin-top:6px}@media(max-width:860px){.shell{width:min(100% - 20px,720px);padding-top:16px}.hero,.toolbar,.upload-panel{display:grid}.privacy{justify-self:start;white-space:normal}.upload-panel{grid-template-columns:1fr}.actions,.toolbar-actions{display:grid;grid-template-columns:1fr}.result-image-top{grid-template-columns:1fr;align-items:stretch}.result-image-thumb{width:100%}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.table-head{display:none}.result-row{grid-template-columns:54px 1fr 48px;grid-template-areas:"toggle source delete" "skill skill skill" "ocr ocr ocr" "number number number" "input input input" "confidence confidence status";gap:10px}.result-row .switch{grid-area:toggle}.source{grid-area:source}.skill-crop{grid-area:skill;width:100%;height:96px}.skill-ocr-crop{grid-area:ocr;width:100%;height:68px}.number-crop{grid-area:number;width:100%;height:52px}.field>span{display:block}.attack-field{grid-area:input}.confidence-field{grid-area:confidence}.status-field{grid-area:status}.status-field .status{display:inline-block}.icon-btn{grid-area:delete;justify-self:end}}@media(max-width:520px){.metrics{grid-template-columns:1fr}.metric{min-height:84px}.metric strong,.time-edit input{font-size:24px}}
