:root{--ink: #1c1b19;--ink-soft: #4a4640;--paper: #faf7f0;--paper-dim: #f0ebe0;--desk: #14161c;--desk-line: #21242e;--keep: #2f6f4f;--archive: #a8791f;--delete: #a3372a;--muted: #8a8578;--font-display: "Special Elite", "Courier New", monospace;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Courier New", monospace}*{box-sizing:border-box}body{margin:0;background:var(--desk);background-image:linear-gradient(var(--desk-line) 1px,transparent 1px),linear-gradient(90deg,var(--desk-line) 1px,transparent 1px);background-size:28px 28px;color:var(--paper);font-family:var(--font-body);min-height:100vh;display:flex;justify-content:center}button{cursor:pointer;font-family:var(--font-body)}button:focus-visible,input:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.page{max-width:460px;width:100%;padding:3rem 1.25rem 2rem;align-self:center}.header{text-align:center;margin-bottom:2.5rem}.title{font-family:var(--font-display);font-size:2.4rem;letter-spacing:.02em;color:var(--paper);margin:0}.tagline{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);margin-top:.5rem;letter-spacing:.02em}.upload-tray{background:var(--paper);color:var(--ink);border-radius:4px;padding:2.5rem 1.5rem;text-align:center;box-shadow:0 12px 32px #00000059;position:relative}.upload-tray:before{content:"INBOX";position:absolute;top:-.7rem;left:1.25rem;background:var(--desk);color:var(--muted);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;padding:.15rem .5rem;border:1px solid var(--desk-line)}.upload-tray.drag-over{outline:2px dashed var(--ink);outline-offset:-10px;background:var(--paper-dim)}.upload-label{display:inline-block;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:.85rem;padding:.75rem 1.5rem;border-radius:3px;letter-spacing:.03em;transition:transform .15s ease}.upload-label:hover{transform:translateY(-1px)}.upload-input{display:none}.hint{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-soft);margin-top:1.25rem;line-height:1.6}.error-text{color:var(--delete);font-family:var(--font-mono);font-size:.8rem;margin-top:.75rem}.loading{text-align:center;font-family:var(--font-mono);color:var(--muted);padding:3rem 0}.card{background:var(--paper);color:var(--ink);border-radius:4px;padding:1.75rem;box-shadow:0 16px 40px #0006;position:relative;animation:card-settle .35s ease}@keyframes card-settle{0%{opacity:0;transform:translateY(10px) rotate(-.6deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.progress{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);letter-spacing:.1em;text-align:right;margin:0 0 .4rem}.review-progress-bar{height:3px;background:var(--paper-dim);border-radius:2px;margin:0 0 1rem;overflow:hidden}.review-progress-fill{height:100%;background:var(--ink);transition:width .3s ease}.view-toggle{display:flex;gap:.4rem;margin-bottom:.6rem}.view-toggle-btn{flex:1;background:transparent;border:1px solid var(--desk-line);color:var(--muted);padding:.45rem .5rem;border-radius:3px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em}.view-toggle-btn.active{background:var(--paper);color:var(--ink);border-color:var(--paper)}.list-card{padding-bottom:1.25rem}.list-controls{display:flex;gap:.5rem;margin-bottom:.9rem}.list-select{flex:1;font-family:var(--font-mono);font-size:.72rem;color:var(--ink);background:var(--paper-dim);border:1px solid var(--paper-dim);border-radius:3px;padding:.4rem}.list-rows{display:flex;flex-direction:column;gap:.5rem;max-height:420px;overflow-y:auto}.list-row{display:flex;align-items:center;gap:.6rem;border:1px solid var(--paper-dim);border-radius:3px;padding:.5rem}.list-row-thumb-btn{flex-shrink:0;background:none;border:none;padding:0}.list-row-thumb{display:block;width:42px;height:42px;object-fit:cover;border-radius:2px;border:1px solid var(--paper-dim)}.list-row-thumb-empty{background:var(--paper-dim)}.list-row-info{flex:1;min-width:0}.list-row-filename{font-family:var(--font-mono);font-size:.75rem;color:var(--ink);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row-meta{font-family:var(--font-mono);font-size:.65rem;color:var(--muted);margin:.15rem 0 0;text-transform:uppercase;letter-spacing:.03em}.list-row-actions{display:flex;gap:.25rem;flex-shrink:0}.list-action-btn{width:26px;height:26px;border-radius:3px;border:1px solid var(--paper-dim);background:transparent;color:var(--ink-soft);font-family:var(--font-mono);font-size:.7rem;font-weight:600}.list-action-btn.action-keep.active{background:var(--keep);color:#fff;border-color:var(--keep)}.list-action-btn.action-archive.active{background:var(--archive);color:#fff;border-color:var(--archive)}.list-action-btn.action-delete.active{background:var(--delete);color:#fff;border-color:var(--delete)}.list-action-btn.action-skip.active{background:var(--muted);color:#fff;border-color:var(--muted)}.list-finish-btn{display:block;width:100%;margin-top:1rem;text-align:center}.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--paper-dim);border:1px solid var(--delete);border-radius:3px;padding:.5rem .7rem;margin-bottom:1rem;font-family:var(--font-mono);font-size:.72rem}.bulk-bar-btn{background:var(--delete);color:#fff;border:none;padding:.35rem .6rem;border-radius:3px;font-family:var(--font-mono);font-size:.7rem;white-space:nowrap}.bulk-bar-btn:hover{opacity:.9}.preview-wrap{border:1px solid var(--paper-dim);padding:.4rem;background:#fff;margin-bottom:1rem}.preview-img{display:block;max-width:100%;max-height:260px;margin:0 auto;object-fit:contain}.filename{font-family:var(--font-mono);font-size:.8rem;font-weight:500;word-break:break-all;color:var(--ink);margin:0}.category{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin:.3rem 0 0}.badge{display:inline-block;font-family:var(--font-mono);font-size:.72rem;font-weight:500;padding:.25rem .55rem;border-radius:2px;margin-top:.6rem}.badge-exact{color:#fff;background:var(--delete)}.badge-near{color:#fff;background:var(--archive)}.reasoning{font-size:.95rem;line-height:1.5;color:var(--ink);margin:.9rem 0 .5rem}.confidence{font-family:var(--font-mono);font-size:.7rem;color:var(--muted)}.confidence-bar{height:3px;background:var(--paper-dim);border-radius:2px;margin-top:.3rem;overflow:hidden}.confidence-fill{height:100%;background:var(--ink-soft);transition:width .3s ease}.card.stamping .preview-wrap,.card.stamping .reasoning,.card.stamping .filename,.card.stamping .category{opacity:.35;transition:opacity .15s ease}.button-row{display:flex;gap:.6rem;justify-content:center;margin-top:1.4rem}.decision-btn{flex:1;padding:.7rem .5rem;border-radius:3px;border:none;color:#fff;font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.04em;transition:transform .12s ease,opacity .12s ease}.decision-btn:hover{transform:translateY(-1px);opacity:.92}.decision-btn:active{transform:translateY(0)}.btn-keep{background:var(--keep)}.btn-archive{background:var(--archive)}.btn-delete{background:var(--delete)}.skip-btn{display:block;width:100%;margin-top:.6rem;background:transparent;color:var(--ink-soft);border:1px dashed var(--paper-dim);padding:.55rem .5rem;border-radius:3px;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.03em;transition:border-color .12s ease,color .12s ease}.skip-btn:hover{border-color:var(--muted);color:var(--ink)}.swipe-hint{display:none;font-family:var(--font-mono);font-size:.65rem;color:var(--muted);text-align:center;margin-top:.7rem;letter-spacing:.03em}@media (hover: none) and (pointer: coarse){.swipe-hint{display:block}}.stamp{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-12deg) scale(.6);border:4px solid currentColor;border-radius:6px;padding:.4rem 1.1rem;font-family:var(--font-display);font-size:1.6rem;letter-spacing:.06em;opacity:0;pointer-events:none;animation:stamp-hit .5s ease forwards}@keyframes stamp-hit{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(1.8)}55%{opacity:.9;transform:translate(-50%,-50%) rotate(-12deg) scale(.95)}to{opacity:.85;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}}.stamp-keep{color:var(--keep)}.stamp-archive{color:var(--archive)}.stamp-delete{color:var(--delete)}.stamp-skip{color:var(--muted)}.summary-title{font-family:var(--font-display);font-size:1.5rem;margin:0 0 .25rem}.summary-list{font-family:var(--font-mono);font-size:.9rem;padding-left:1.2rem;line-height:1.9}.summary-actions{display:flex;gap:.6rem;margin-top:1rem;flex-wrap:wrap}.reset-btn{background:var(--ink);color:var(--paper);border:none;padding:.65rem 1.4rem;border-radius:3px;font-family:var(--font-mono);font-size:.8rem}.download-btn{background:transparent;color:var(--ink);border:1px solid var(--ink);padding:.65rem 1.4rem;border-radius:3px;font-family:var(--font-mono);font-size:.8rem}.download-btn:hover{background:var(--paper-dim)}.undo-btn{display:block;margin:.6rem auto 0;background:none;border:none;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;text-decoration:underline}.undo-btn:hover{color:var(--ink)}@media (prefers-reduced-motion: reduce){.card,.stamp{animation:none}}
