:root{--bg:#f3efe6;--bg-accent:#e7e0d2;--ink:#1c241c;--muted:#5c675c;--line:#c9c0b0;--panel:#faf7f1;--brand:#2f5d3a;--brand-deep:#1f3d28;--danger:#8b2e2e;--focus:#3d6b4a;--tech:#7a7468;color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%,#dfe8d8 0%,#0000 55%),linear-gradient(160deg,#f7f3ea 0%,#ebe4d6 45%,#e4ddd0 100%);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.45}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}h1,.brand{letter-spacing:-.02em;font-family:Georgia,Times New Roman,Times,serif;font-weight:700}.muted{color:var(--muted)}.error{color:var(--danger);margin:0}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.brand{color:var(--brand-deep);margin:0;font-size:1.55rem}.brand-sub{color:var(--muted);margin:.15rem 0 0;font-size:.92rem}.topbar-right{align-items:center;gap:.75rem;display:flex}.user{color:var(--muted);font-size:.95rem}.body{flex:1;grid-template-columns:220px 1fr;min-height:0;display:grid}.nav{border-right:1px solid var(--line);background:color-mix(in srgb, var(--bg-accent) 55%, transparent);flex-direction:column;gap:.2rem;padding:1rem .75rem;display:flex}.nav-link{color:var(--ink);border-radius:6px;padding:.55rem .75rem}.nav-link:hover{background:color-mix(in srgb, var(--brand) 12%, transparent)}.nav-link.active{background:var(--brand);color:#f7faf6;font-weight:600}.main{max-width:1200px;padding:1.25rem 1.5rem 2.5rem}.page-header h1{margin:0 0 .25rem;font-size:1.75rem}.page-header p{margin:0 0 1rem}.section-title{margin:1.5rem 0 .75rem;font-size:1.15rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-grid.compact{max-width:640px}.stat{border:1px solid var(--line);background:var(--panel);border-radius:4px;flex-direction:column;gap:.25rem;padding:.9rem 1rem;transition:border-color .15s,transform .15s;display:flex}.stat:hover{border-color:var(--brand);transform:translateY(-1px)}.stat-value{color:var(--brand-deep);font-size:1.55rem;font-weight:700}.stat-label{color:var(--muted);font-size:.88rem}.toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:.9rem;display:flex}.toolbar input,.toolbar select,.login-form input,label input,label select,.select{font:inherit;border:1px solid var(--line);color:var(--ink);appearance:none;cursor:pointer;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235c675c' d='M1.1 1.1 6 6l4.9-4.9 1.1 1.1L6 8.2.0 2.2z'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;background-size:10px 7px;border-radius:6px;min-width:180px;padding:.5rem 2rem .5rem .7rem}.toolbar input{cursor:text;background-image:none;padding:.5rem .65rem}.select-block{width:100%;min-width:11rem;max-width:16rem;display:block}.input-block{font:inherit;border:1px solid var(--line);width:100%;min-width:12rem;max-width:18rem;color:var(--ink);background:#fff;border-radius:6px;padding:.5rem .65rem;display:block}.input-block:focus{outline:2px solid color-mix(in srgb, var(--focus) 45%, transparent);border-color:var(--focus)}.chat-link{color:var(--brand-deep);text-underline-offset:2px;margin-top:.2rem;font-size:.88rem;text-decoration:underline;display:inline-block}.chat-link:hover{color:var(--brand)}.toolbar input:focus,.toolbar select:focus,.login-form input:focus,.select:focus{outline:2px solid color-mix(in srgb, var(--focus) 45%, transparent);border-color:var(--focus)}.inline{color:var(--muted);align-items:center;gap:.5rem;display:flex}.table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:4px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.65rem .75rem}th{background:color-mix(in srgb, var(--bg-accent) 70%, #fff);font-weight:600;position:sticky;top:0}.tech-id{color:var(--tech);word-break:break-all;margin-top:.2rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.pager{color:var(--muted);align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.btn{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:4px;padding:.45rem .85rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand-deep);color:#f7faf6;font-weight:600}.btn.ghost{background:0 0}.status-line{padding:1rem}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-form{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex-direction:column;gap:.75rem;width:min(400px,100%);padding:1.5rem;display:flex}.login-form h1{margin:0;font-size:1.4rem}.login-form label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.92rem;display:flex}@media (width<=860px){.body{grid-template-columns:1fr}.nav{border-right:none;border-bottom:1px solid var(--line);flex-flow:wrap}.main{padding:1rem}.topbar{flex-direction:column;align-items:flex-start}}.card-block{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin:1rem 0;padding:1rem 1.1rem}.card-block h2,.card-block h3{margin:0 0 .75rem;font-size:1.05rem}.kv{grid-template-columns:10rem 1fr;gap:.35rem .75rem;margin:0;display:grid}.kv dt{color:var(--muted);margin:0}.kv dd{margin:0}.ocr-raw{white-space:pre-wrap;word-break:break-word;background:var(--bg-accent);border-radius:4px;max-height:240px;padding:.75rem;font-size:.82rem;overflow:auto}.form-grid{gap:.65rem;max-width:32rem;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.92rem;display:flex}.btn-row{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.preview-box{border:1px dashed var(--line);border-radius:4px;margin-top:.75rem;padding:.75rem}.hit-list{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}
