:root{--bg: #050607;--surface: rgba(12, 13, 15, .92);--surface-2: rgba(19, 21, 24, .94);--surface-3: #1f1f1f;--line: rgba(253, 146, 47, .18);--line-cool: rgba(85, 191, 255, .22);--text: #f5f7fa;--muted: #a0a8b2;--muted-2: #737b85;--accent: #fd922f;--accent-strong: #ffad4f;--accent-soft: rgba(253, 146, 47, .14);--cyan: #55bfff;--cyan-soft: rgba(85, 191, 255, .12);--danger: #ffb46e;--success: #7ee2a8;color:var(--text);background:var(--bg);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:100dvh;background:linear-gradient(135deg,#fd922f1f,#fd922f00 28%),linear-gradient(210deg,#55bfff14,#55bfff00 38%),linear-gradient(180deg,#050607,#080a0d 46%,#050607);color:var(--text)}button,input{font:inherit}button{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#14161a;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}button:hover{border-color:#fd922f8c;box-shadow:0 10px 26px #fd922f24}button:not(:disabled):active{transform:translateY(1px) scale(.99)}button:focus-visible,input:focus-visible{outline:3px solid rgba(253,146,47,.32);outline-offset:2px}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}.help-trigger{margin-left:auto;border-color:#fd922f57;background:#fd922f14;color:#ffd9af;font-weight:900;white-space:nowrap}.eyebrow{color:var(--accent);font-size:13px;font-weight:700;margin:0 0 8px}h1{font-size:clamp(30px,5vw,48px);line-height:1.05;margin:0;color:#fff}.subhead{color:var(--muted);margin:12px 0 0}.quick-guide{margin-top:14px;color:var(--muted)}.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 rgba(253,146,47,.22);border-radius:8px;background:#fd922f14;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:var(--accent);color:#160d05;font-size:11px}.quick-guide p{margin:9px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.privacy{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-cool);border-radius:8px;background:#55bfff14;padding:10px 12px;color:#c7efff;font-weight:700;white-space:nowrap}.privacy svg{width:20px;height:20px}.panel,.table-card{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 20px 60px #00000057,inset 0 1px #ffffff0a}.upload-panel{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px}.dropzone{min-height:132px;border:1px dashed rgba(253,146,47,.38);border-radius:8px;background:#fd922f0d;display:grid;place-items:center;text-align:center;padding:18px;color:var(--muted);cursor:pointer}.dropzone.dragover{border-color:var(--accent);background:#fd922f1f;box-shadow:0 0 0 4px #fd922f1a}.dropzone input{display:none}.dropzone svg{width:34px;height:34px;color:var(--accent);margin-bottom:8px}.dropzone strong{color:#fff;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:44px;min-height:44px;padding:0;border-color:#fd922f61;background:#0e0f12f0;box-shadow:0 8px 20px #00000047}.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 rgba(255,255,255,.16);background:#fff}.preview-thumb span{width:100%;color:var(--muted);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:#0c0d10;box-shadow:0 24px 70px #0000008a}.help-dialog{width:min(94vw,920px);max-height:90dvh;overflow:auto;border:1px solid rgba(253,146,47,.34);border-radius:12px;padding:0;background:linear-gradient(135deg,#fd922f24,#55bfff0f 55%,#050607fa),#08090b;color:var(--text);box-shadow:0 28px 90px #0000009e}.help-dialog::backdrop{background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.help-card{padding:24px}.help-card h2{margin:0 0 16px;font-size:clamp(26px,4vw,40px);line-height:1.1}.help-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.help-steps div{min-width:0;border:1px solid rgba(253,146,47,.22);border-radius:8px;background:#fd922f14;padding:12px}.help-steps strong{display:grid;place-items:center;width:24px;height:24px;margin-bottom:8px;border-radius:999px;background:var(--accent);color:#160d05;font-size:13px}.help-steps span,.help-rules,.help-grid figcaption{color:var(--muted);line-height:1.55}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.help-grid figure{margin:0;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff0a;overflow:hidden}.help-grid img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top center;background:#fff}.help-grid figcaption{padding:10px 12px 12px;font-size:13px}.help-rules{margin:0;padding-left:20px}.help-rules li+li{margin-top:6px}.help-done{width:100%;margin-top:18px}.image-dialog::backdrop{background:#000000b8}.image-dialog img{display:block;width:100%;max-height:78vh;object-fit:contain;background:#050607;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:var(--muted);font-size:14px;word-break:break-all}.dialog-close{position:absolute;top:10px;right:10px;background:#14161af0}.primary{background:var(--accent);border-color:var(--accent);color:#160d05;font-weight:900}.primary:hover{border-color:var(--accent-strong);box-shadow:0 12px 30px #fd922f3d}.metrics{display:grid;grid-template-columns:minmax(300px,1.45fr) minmax(150px,.85fr) minmax(260px,1.15fr) minmax(140px,.75fr);gap:12px;margin:14px 0}.metric{border:1px solid rgba(255,255,255,.09);border-radius:8px;background:var(--surface-2);min-height:96px;padding:16px;display:flex;flex-direction:column;justify-content:space-between}.metric span{color:var(--muted);font-size:14px;font-weight:700}.metric strong{color:var(--text);font-size:28px;line-height:1.1}.metric.accent{background:#fd922f1a;border-color:#fd922f4d}.metric.rate-card{position:relative;overflow:hidden;min-height:126px;background:linear-gradient(135deg,#fd922f3d,#fd922f0a 44%),#0c0d10;border-color:#fd922f75;box-shadow:0 18px 54px #fd922f29,inset 0 1px #ffffff0f}.metric.rate-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.1) 38%,transparent 68%);opacity:0;pointer-events:none}.metric.rate-card span,.metric.rate-card strong{color:#fff}.metric.rate-card>span{color:#ffd9af;font-size:15px}.metric.rate-card strong{font-size:42px;letter-spacing:0}.metric.rate-card #rateValue{font-size:48px;color:var(--accent-strong)}.time-edit{display:grid;gap:5px}.time-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.time-edit input{width:100%;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:var(--text);background:#080a0d;font-size:24px;font-weight:800;outline:none;padding:8px 10px;transition:border-color .16s ease,box-shadow .16s ease}.time-edit input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #fd922f24}.time-mode-toggle{min-height:44px;min-width:58px;padding:0 12px;border-color:#ffffff24;background:#15171b;color:var(--muted);font-size:13px;font-weight:900}.time-mode-toggle.seconds{border-color:var(--accent);background:var(--accent-soft);color:#ffd9af}.time-edit small{color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.time-edit .time-help.muted{display:none}.time-edit #timeError{display:none;color:var(--danger);font-weight:800}.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:var(--muted)}.note-field,.mode-field{display:grid;gap:6px}.note-field span,.mode-field>span{color:var(--muted);font-size:13px;font-weight:800}.note-field input{width:100%;min-height:44px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#080a0d;color:var(--text);padding:0 12px;outline:none}.note-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #fd922f1f}.segmented{min-height:44px;display:inline-grid;grid-template-columns:repeat(2,minmax(70px,1fr));padding:3px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#080a0d}.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:var(--muted);font-size:14px;font-weight:800;cursor:pointer}.segmented input:checked+span{background:var(--accent);color:#160d05}.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:var(--muted)}.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 rgba(255,255,255,.16);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}.review-panel{display:grid;gap:12px;padding:16px;margin-bottom:14px}.review-panel.empty{padding:12px 16px}.review-empty{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:800}.review-empty svg{width:20px;height:20px;color:var(--accent)}.review-top{display:flex;justify-content:space-between;gap:16px;align-items:center}.review-top h2{margin:0 0 4px;font-size:22px}.review-top p{margin:0;color:var(--muted)}.review-score{min-width:92px;border-radius:999px;padding:8px 12px;text-align:center;font-weight:900}.review-score.ok{color:#c7f8dc;background:#2dd48024;border:1px solid rgba(45,212,128,.18)}.review-score.warn{color:#ffd39b;background:#fd922f24;border:1px solid rgba(253,146,47,.24)}.review-filters{display:flex;flex-wrap:wrap;gap:8px}.review-filters button{min-height:36px;padding:0 12px;color:var(--muted)}.review-filters button.active{border-color:var(--accent);background:var(--accent);color:#160d05;font-weight:900}.review-list{display:grid;gap:8px}.review-item{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff09;padding:8px}.review-item.no-image{grid-template-columns:24px minmax(0,1fr)}.review-item img{width:132px;height:52px;object-fit:contain;object-position:left center;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#fff}.review-item strong,.review-item span{display:block}.review-item span{margin-top:3px;color:var(--muted);font-size:13px;line-height:1.45}.review-item button{min-height:38px}.toolbar strong{display:block;margin-bottom:4px}.toolbar p{margin:0;color:var(--muted)}.table-card{overflow:hidden}.table-head,.result-row{display:grid;grid-template-columns:66px minmax(130px,1fr) 210px 112px 124px 82px 92px 44px;gap:12px;align-items:center}body.show-ocr-crops .table-head,body.show-ocr-crops .result-row{grid-template-columns:66px minmax(130px,1fr) 210px 156px 112px 124px 82px 92px 44px}.ocr-column{display:none}body.show-ocr-crops .ocr-column{display:block}.table-head{background:#14161a;color:#d3d7dd;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:var(--muted)}.empty-state svg{width:34px;height:34px}.empty-state.compact{min-height:120px;display:grid;place-items:center;border-top:1px solid rgba(255,255,255,.08)}.hidden-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid rgba(255,255,255,.08);background:#fd922f0f;color:#ffd9af;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 rgba(255,255,255,.08);background:#0d0f12f5}.result-row.focus-flash{box-shadow:inset 0 0 0 2px #fd922fbd,0 0 28px #fd922f2e}.result-row.muted{background:#0d0f129e;color:var(--muted-2)}.result-row.hidden-row{background:#0a0c0fcc}.source{min-width:0}.source strong,.source small{display:block}.source small{color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crop{height:44px;object-fit:contain;border:1px solid rgba(255,255,255,.14);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:44px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#080a0d;color:var(--text);padding:0 10px;font-weight:800}.field{min-width:0}.field>span{display:none;color:var(--muted);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:#c7f8dc;background:#2dd48024;border:1px solid rgba(45,212,128,.18)}.status.warn{color:#ffd39b;background:#fd922f24;border:1px solid rgba(253,146,47,.2)}.icon-btn{width:44px;min-height:44px;padding:0}.switch{position:relative;display:inline-flex;width:48px;min-height:44px;align-items:center}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:8px;left:0;width:48px;height:28px;border-radius:999px;background:#3a3a3a;transition:background .18s ease}.switch span:after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#e8eaed;transition:transform .18s ease;box-shadow:0 2px 6px #18212f38}.switch input:checked+span{background:var(--accent)}.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:var(--muted)}.advice li+li{margin-top:6px}.hero,.panel,.table-card,.metric{animation:surfaceEnter .34s cubic-bezier(.16,1,.3,1) both}.upload-panel{animation-delay:.04s}.metrics .metric:nth-child(1){animation-delay:.08s}.metrics .metric:nth-child(2){animation-delay:.12s}.metrics .metric:nth-child(3){animation-delay:.16s}.metrics .metric:nth-child(4){animation-delay:.2s}.preview-item,.result-row{animation:rowEnter .24s cubic-bezier(.16,1,.3,1) both}.metric.rate-card.rate-pulse #rateValue{animation:ratePulse .42s cubic-bezier(.16,1,.3,1) both}.metric.rate-card.rate-pulse:after{animation:cardSweep .42s ease-out both}@keyframes surfaceEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes rowEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ratePulse{0%{transform:scale(1);text-shadow:none}45%{transform:scale(1.045);text-shadow:0 0 18px rgba(253,146,47,.45)}to{transform:scale(1);text-shadow:none}}@keyframes cardSweep{0%{opacity:0;transform:translate(-36%)}40%{opacity:1}to{opacity:0;transform:translate(36%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:860px){.shell{width:min(100% - 20px,720px);padding-top:16px}.hero,.toolbar,.upload-panel{display:grid}.help-trigger{margin-left:0;justify-self:start}.privacy{justify-self:start;white-space:normal}.help-card{padding:18px}.help-steps,.help-grid{grid-template-columns:1fr}.review-top{display:grid}.review-score{justify-self:start}.review-item{grid-template-columns:minmax(0,1fr)}.review-item.no-image{grid-template-columns:24px minmax(0,1fr)}.review-item img{width:100%;height:78px}.review-item button{width:100%}.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))}.rate-card{grid-column:1 / -1}.table-head{display:none}.result-row{grid-template-columns:54px 1fr 48px;grid-template-areas:"toggle source delete" "skill skill skill" "number number number" "input input input" "confidence confidence status";gap:10px}body.show-ocr-crops .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"}.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}.metric.rate-card strong{font-size:34px}.metric.rate-card #rateValue{font-size:40px}}
