[data-theme=light]{--color-bg: #f8f7f4;--color-surface: #ffffff;--color-surface-muted: #f1f0ec;--color-border: #dedbd2;--color-text: #1f2933;--color-text-muted: #667085;--color-text-soft: #98a2b3;--color-primary: #2563eb;--color-primary-soft: #dbeafe;--color-accent: #0f766e;--color-success: #15803d;--color-success-soft: #dcfce7;--color-warning: #b45309;--color-warning-soft: #fef3c7;--color-danger: #b91c1c;--color-danger-soft: #fee2e2;--shadow-card: 0 10px 30px rgba(15, 23, 42, .06)}[data-theme=dark]{--color-bg: #181a1b;--color-surface: #222426;--color-surface-muted: #2d3033;--color-border: #3a3d40;--color-text: #f4f1ea;--color-text-muted: #c8c2b8;--color-text-soft: #938d84;--color-primary: #7aa2ff;--color-primary-soft: #1f2d4d;--color-accent: #8dd6c9;--color-success: #7ddc9b;--color-success-soft: #1f3a2a;--color-warning: #f0c36a;--color-warning-soft: #3f3218;--color-danger: #ff8f8f;--color-danger-soft: #402323;--shadow-card: 0 10px 30px rgba(0, 0, 0, .28)}[data-theme=cozy]{--color-bg: #fff7df;--color-surface: #fffaf0;--color-surface-muted: #ffeec4;--color-border: #e4c88d;--color-text: #432818;--color-text-muted: #7c5a3b;--color-text-soft: #9f7c56;--color-primary: #99582a;--color-primary-soft: #ffe6a7;--color-accent: #bb9457;--color-success: #4f7d45;--color-success-soft: #e8f3d6;--color-warning: #bb9457;--color-warning-soft: #fff0c2;--color-danger: #6f1d1b;--color-danger-soft: #f3d1c8;--shadow-card: 0 12px 32px rgba(67, 40, 24, .1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.55;transition:background .25s ease,color .25s ease}.topbar{display:flex;align-items:center;gap:20px;padding:14px 28px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.wordmark{font-weight:800;letter-spacing:.14em;font-size:18px}.wordmark span{color:var(--color-accent)}.topbar .spacer{flex:1}.main{max-width:980px;margin:0 auto;padding:36px 24px 80px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-card);padding:26px 28px}.hero{margin-bottom:28px;position:relative;overflow:hidden}.hero h1{margin:0 0 6px;font-size:26px;font-weight:700}.hero p{margin:0;color:var(--color-text-muted);max-width:56ch}.hero .path{position:absolute;right:-10px;bottom:-14px;width:220px;opacity:.9;pointer-events:none}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-bottom:28px}.stat .label{color:var(--color-text-muted);font-size:14px;margin-bottom:6px}.stat .value{font-size:30px;font-weight:700;line-height:1.1}.stat .sub{color:var(--color-text-soft);font-size:13px;margin-top:6px}.section-title{font-size:15px;font-weight:600;color:var(--color-text-muted);margin:0 0 12px}.rowlist{display:flex;flex-direction:column;gap:10px}.rowitem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--color-surface-muted);border-radius:12px;font-size:15px}.rowitem .muted{color:var(--color-text-muted);font-size:13px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--color-primary-soft);color:var(--color-primary)}.badge.accent{background:var(--color-success-soft);color:var(--color-success)}button,select,input{font:inherit;color:var(--color-text)}.btn{border:none;border-radius:12px;padding:11px 20px;font-weight:600;cursor:pointer;background:var(--color-primary);color:#fff;transition:filter .15s ease}.btn:hover{filter:brightness(1.07)}.btn:focus-visible{outline:3px solid var(--color-primary-soft);outline-offset:2px}.btn.ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:12px;padding:9px 36px 9px 14px;font-weight:600;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--color-text-soft) 50%),linear-gradient(135deg,var(--color-text-soft) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}.input{width:100%;border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;padding:12px 14px}.input:focus-visible{outline:3px solid var(--color-primary-soft);outline-offset:1px}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;text-align:left}.login-card h1{margin:0 0 4px;font-size:24px}.login-card .sub{color:var(--color-text-muted);margin:0 0 22px}.login-card label{display:block;font-size:14px;font-weight:600;margin:14px 0 6px}.login-card .btn{width:100%;margin-top:20px}.error{margin-top:14px;padding:10px 14px;border-radius:10px;background:var(--color-danger-soft);color:var(--color-danger);font-size:14px}.footer-note{text-align:center;color:var(--color-text-soft);font-size:13px;margin-top:34px}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.nav{display:flex;gap:6px}.nav button{border:none;background:transparent;color:var(--color-text-muted);padding:8px 14px;border-radius:10px;font-weight:600;cursor:pointer}.nav button.active{background:var(--color-surface-muted);color:var(--color-text)}.dropzone{border:2px dashed var(--color-border);border-radius:16px;padding:34px 20px;text-align:center;color:var(--color-text-muted);background:var(--color-surface);cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone.drag{border-color:var(--color-accent);background:var(--color-surface-muted)}.dropzone strong{color:var(--color-text)}.status-badge{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.status-badge.classified{background:var(--color-success-soft);color:var(--color-success)}.status-badge.uploaded{background:var(--color-warning-soft);color:var(--color-warning)}.status-badge.duplicate{background:var(--color-danger-soft);color:var(--color-danger)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--color-text);color:var(--color-bg);padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:var(--shadow-card)}.status-badge.processed{background:var(--color-primary-soft);color:var(--color-primary)}
