:root{--bg:#f7f7f5;--fg:#1c1c1a;--card:#fff;--muted:#6b6b66;--border:#e2e2dd;--accent:#2f6f4e;--accent-fg:#fff;--error:#b42318;--ok:#2f6f4e;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#141413;--fg:#ececea;--card:#1e1e1c;--muted:#9a9a94;--border:#33332f;--accent:#5fb98a;--accent-fg:#0d1f15;--error:#ff8a7a;--ok:#5fb98a}}*{box-sizing:border-box}body{margin:0}main{max-width:1100px;margin:0 auto;padding:1rem}h1,h2,h3{margin:0 0 .75rem}.muted{color:var(--muted)}.error{color:var(--error)}.ok{color:var(--ok)}.center{place-items:center;min-height:100vh;padding:1rem;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;padding:1rem}.login{gap:.75rem;width:min(360px,100%);display:grid}label{gap:.25rem;font-size:.9rem;display:grid}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;flex:1;min-width:0;padding:.5rem .6rem}button,.button{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:6px;padding:.45rem .8rem;text-decoration:none}button:disabled{opacity:.5;cursor:default}.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.topbar{border-bottom:1px solid var(--border);background:var(--card);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.topbar nav{gap:.25rem;display:flex}.topbar nav a{color:var(--fg);border-radius:6px;padding:.35rem .6rem;text-decoration:none}.topbar nav a.active{background:var(--bg);font-weight:600}.brand{font-size:1.1rem}.spacer{flex:1}.row{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.wrap{flex-wrap:wrap}.setting{border-top:1px solid var(--border);padding:.75rem 0}.setting:first-of-type{border-top:0}.setting-head{margin-bottom:.35rem}.setting-body{gap:.4rem;font-size:.92rem;display:grid}.setting-body .row{flex-wrap:wrap;margin:0}code{word-break:break-all;font-size:.85em}.badge{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.1rem .4rem;font-size:.72rem}.badge-override{color:#6b4e00;background:#fff3cd;border-color:#e6c35c}.badge-env{color:#1e3a8a;background:#dbeafe;border-color:#93c5fd}.badge-default{color:var(--muted)}.badge-unset{color:var(--error)}.grow{flex:1;min-width:0}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{border:0;border-radius:0}.segmented button.active{background:var(--accent);color:var(--accent-fg)}.dropzone{border:2px dashed var(--border);text-align:center;border-radius:10px;padding:2rem 1rem}.dropzone.drag{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.upload-item{border-top:1px solid var(--border);gap:.3rem;padding:.5rem 0;display:grid}.upload-item:first-child{border-top:0}progress{width:100%;height:6px;accent-color:var(--accent)}.status{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.1rem .45rem;font-size:.75rem}.status-queued,.status-uploading,.status-converting,.status-extracting{color:var(--muted)}.status-done{color:var(--ok);border-color:var(--ok)}.status-needs_review,.status-duplicate{color:#9a6700;border-color:#d4a72c}.status-error{color:var(--error);border-color:var(--error)}.filters{flex-wrap:wrap;gap:.5rem;display:flex}.filters input:first-child{flex:2 220px}select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;padding:.45rem}.explorer{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=1000px){.explorer.with-preview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}main:has(.explorer){max-width:1500px}}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .5rem}td.ellipsis{max-width:260px}th{color:var(--muted);font-size:.8rem;font-weight:600}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.active{background:color-mix(in srgb, var(--accent) 7%, transparent)}.num{text-align:right;font-variant-numeric:tabular-nums}.preview iframe,.preview img{border:1px solid var(--border);object-fit:contain;background:#fff;border-radius:6px;width:100%;height:75vh}.button.disabled{opacity:.5;pointer-events:none}.fields{gap:.6rem;display:grid}.fields label span{color:var(--muted);text-transform:capitalize;font-size:.8rem}.edited{color:#6b4e00;text-transform:none;background:#fff3cd;border-radius:999px;margin-left:.4rem;padding:0 .35rem;font-size:.7rem;font-style:normal}.review-list{gap:.2rem;margin:0 0 .75rem;padding-left:1rem;font-size:.9rem;list-style:none;display:grid}
