:root{--bg:#f7f7f5;--surface:#fff;--border:#e5e4e0;--border-strong:#c9c8c2;--text:#1a1a18;--text-muted:#6b6b66;--text-hint:#9e9e98;--accent:#2563eb;--accent-bg:#eff6ff;--accent-border:#bfdbfe;--green:#16a34a;--green-bg:#f0fdf4;--green-border:#86efac;--amber:#d97706;--amber-bg:#fffbeb;--amber-border:#fcd34d;--red:#dc2626;--red-bg:#fef2f2;--red-border:#fca5a5;--radius:8px;--radius-lg:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-family:-apple-system,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5}input,select,button{font-family:inherit}h1,h2,h3,h4,p,ul{margin:0}ul{padding:0;list-style:none}button{cursor:pointer}.app-shell{background:var(--bg);min-height:100vh}.page{max-width:1360px;margin:0 auto;padding:24px 20px 64px}.page--narrow{max-width:1040px}.page-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-header h1{letter-spacing:-.015em;font-size:20px;font-weight:600}.page-subtitle{color:var(--text-muted);margin-top:3px;font-size:13px}.topbar{z-index:20;background:var(--surface);border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:18px;display:flex}.topbar-brand{align-items:center;gap:9px;display:flex}.topbar-logo{background:var(--accent);color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:flex}.topbar-title{letter-spacing:-.01em;font-size:14px;font-weight:600}.topbar-nav{align-items:center;gap:2px;display:flex}.topbar-nav button{color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:5px 10px;font-size:13px;font-weight:500}.topbar-nav button.active{background:var(--accent-bg);color:var(--accent)}.topbar-right{align-items:center;gap:10px;display:flex}.topbar-separator{background:var(--border);width:1px;height:24px}.user-pill{border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 4px;transition:background .15s;display:flex}.avatar{background:var(--accent-bg);border:.5px solid var(--accent-border);width:24px;height:24px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.user-name{color:var(--text);font-size:13px}.icon-btn{border:.5px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;display:flex}.btn{border-radius:var(--radius);border:.5px solid var(--border-strong);background:var(--surface);color:var(--text);justify-content:center;align-items:center;gap:7px;padding:9px 18px;font-size:13px;font-weight:500;transition:background .15s;display:inline-flex}.btn:hover{background:var(--bg)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{opacity:.92;background:var(--accent)}.btn-sm{border-radius:6px;padding:5px 10px;font-size:12.5px}.btn-ms{border-radius:var(--radius);border:.5px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);justify-content:center;align-items:center;gap:10px;padding:11px 20px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.btn-ms:hover{background:var(--bg)}.input,.select{border-radius:var(--radius);border:.5px solid var(--border-strong);background:var(--surface);color:var(--text);outline:none;padding:8px 10px;font-size:13px}.input::placeholder{color:var(--text-hint)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.input--warning,.select--warning{border-color:var(--amber-border)}.field{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.field-hint{color:var(--amber);font-size:11px}.badge{border:.5px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 9px 3px 7px;font-size:12px;font-weight:500;display:inline-flex}.badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-soft{gap:4px;padding:2px 7px;font-size:11px;font-weight:600}.confidence-pill{background:var(--bg);border:.5px solid var(--border);color:var(--text-muted);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.confidence-pill strong{font-weight:600}.card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg)}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text-muted);cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.dropzone.drag-over{border-color:var(--accent);background:var(--accent-bg)}.stat-tiles{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px;display:grid}.stat-tile{border-radius:var(--radius);border:.5px solid var(--border);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.stat-tile.active{border-color:var(--border-strong);box-shadow:inset 0 0 0 1px var(--border-strong)}.stat-tile-label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.stat-tile-count{color:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:600;line-height:1}.filter-bar{border-bottom:.5px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.filter-search{align-items:center;display:flex;position:relative}.filter-search svg{color:var(--text-hint);position:absolute;left:9px}.filter-search input{width:280px;padding:7px 10px 7px 28px}.filter-clear{color:var(--accent);background:0 0;border:none;padding:7px 10px;font-size:13px}.view-toggle{border-radius:var(--radius);background:var(--bg);border:.5px solid var(--border);padding:2px;display:flex}.view-toggle button{color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:5px 10px;font-size:12.5px;font-weight:500}.view-toggle button.active{background:var(--surface);color:var(--text)}.doc-table-header,.doc-row{grid-template-columns:minmax(0,2.3fr) 1.1fr 1.4fr 100px 170px 74px;align-items:center;gap:12px;display:grid}.doc-table-header{background:var(--bg);border-bottom:.5px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-hint);padding:8px 16px;font-size:11px;font-weight:600}.doc-row{border-bottom:.5px solid var(--border);cursor:pointer;color:var(--text);text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;width:100%;padding:10px 16px;font-size:13px}.doc-row:hover{background:var(--bg)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.col-right{text-align:right}.doc-cell-file{align-items:center;gap:9px;min-width:0;display:flex}.doc-cell-file .filename{font-weight:500}.doc-cell-muted{color:var(--text-muted)}.pagination-footer{color:var(--text-muted);justify-content:space-between;align-items:center;padding:10px 16px;font-size:12.5px;display:flex}.pagination-buttons{align-items:center;gap:4px;display:flex}.page-btn{border:.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:5px 10px;font-size:12.5px}.page-btn.active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-weight:600}.page-btn:disabled{color:var(--text-hint);cursor:default}.doc-cards{grid-template-columns:repeat(3,1fr);gap:12px;padding:14px 16px 18px;display:grid}.doc-card{border-radius:var(--radius);border:.5px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;flex-direction:column;gap:12px;padding:14px;display:flex}.doc-card:hover{border-color:var(--border-strong)}.doc-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.doc-card-title{align-items:center;gap:8px;min-width:0;display:flex}.doc-card-title .filename{font-size:13px;font-weight:600}.doc-card-meta{flex-direction:column;gap:4px;font-size:12.5px;display:flex}.doc-card-meta-row{justify-content:space-between;gap:8px;display:flex}.doc-card-meta-row span:first-child{color:var(--text-hint)}.doc-card-footer{border-top:.5px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding-top:10px;display:flex}.file-type-icon{letter-spacing:.02em;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:72px 24px;display:flex}.empty-state-icon{background:var(--bg);border:.5px solid var(--border);width:40px;height:40px;color:var(--text-hint);border-radius:10px;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.empty-state h3{color:var(--text);font-size:14px;font-weight:600}.empty-state p{color:var(--text-muted);text-wrap:pretty;max-width:320px;font-size:13px}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:380px;padding:40px 32px;box-shadow:0 1px 2px #0000000a}.login-intro{flex-direction:column;align-items:center;gap:14px;margin-bottom:32px;display:flex}.login-logo{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:17px;font-weight:600;display:flex}.login-name{letter-spacing:-.01em;font-size:19px;font-weight:600}.login-tagline{color:var(--text-muted);margin-top:4px;font-size:13px}.login-footer{color:var(--text-hint);margin-top:20px;font-size:12px}.side-panel-overlay{z-index:30;background:#14141347;position:fixed;inset:0}.side-panel{background:var(--surface);border-left:.5px solid var(--border);z-index:31;flex-direction:column;width:min(1080px,88vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0000001a}.side-panel-header{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;display:flex}.side-panel-header-left{align-items:center;gap:10px;min-width:0;display:flex}.side-panel-header-title{font-size:14px;font-weight:600}.side-panel-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.side-panel-body{flex:1;grid-template-columns:minmax(0,1fr) 430px;min-height:0;display:grid}.side-panel-preview{background:var(--bg);border-right:.5px solid var(--border);flex-direction:column;min-height:0;display:flex}.side-panel-preview-toolbar{border-bottom:.5px solid var(--border);background:var(--surface);color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;font-size:12.5px;display:flex}.side-panel-preview-area{flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:20px;display:flex;overflow:auto}.side-panel-preview-area img,.side-panel-preview-area canvas{border-radius:4px;box-shadow:0 1px 6px #00000012}.side-panel-data{flex-direction:column;min-height:0;display:flex;overflow:auto}.side-panel-section{border-bottom:.5px solid var(--border);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.side-panel-section-title{letter-spacing:.05em;text-transform:uppercase;color:var(--text-hint);font-size:11px;font-weight:600}.side-panel-summary{color:var(--text);text-wrap:pretty;font-size:13px;line-height:1.55}.side-panel-footer{border-top:.5px solid var(--border);background:var(--surface);gap:8px;margin-top:auto;padding:12px 18px;display:flex;position:sticky;bottom:0}.side-panel-footer .btn{flex:1}.side-panel-footer .btn:last-child{flex:none}.alert-block{border-radius:var(--radius);border:.5px solid var(--amber-border);background:var(--amber-bg);padding:12px 14px}.alert-block-header{color:var(--text);align-items:center;gap:7px;margin-bottom:8px;font-size:12.5px;font-weight:600;display:flex}.alert-block-count{background:var(--surface);border:.5px solid var(--amber-border);color:var(--amber);border-radius:999px;padding:1px 6px;font-size:11px;font-weight:600}.alert-block-list{flex-direction:column;gap:7px;display:flex}.alert-block-item{color:var(--text);gap:8px;font-size:12.5px;line-height:1.45;display:flex}.alert-block-item .dot{background:var(--amber);border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:6px}.attribute-chips{flex-wrap:wrap;gap:6px;display:flex}.attribute-chip{border-radius:var(--radius);background:var(--bg);border:.5px solid var(--border);align-items:center;gap:6px;padding:4px 9px;display:inline-flex}.attribute-chip-key{color:var(--text-hint);font-size:11.5px}.attribute-chip-value{color:var(--text);font-size:12.5px;font-weight:500}.timeline-item{grid-template-columns:14px 1fr;gap:10px;display:grid}.timeline-marker{flex-direction:column;align-items:center;display:flex}.timeline-dot{background:var(--border-strong);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.timeline-line{background:var(--border);flex:1;width:1px}.timeline-content{padding-bottom:12px}.timeline-what{color:var(--text);font-size:12.5px}.timeline-meta{color:var(--text-hint);margin-top:2px;font-size:11.5px}.admin-form-card{margin-bottom:16px;padding:14px}.admin-form-title{color:var(--text-muted);margin-bottom:10px;font-size:12px;font-weight:600}.admin-form-grid{grid-template-columns:1fr 2fr auto;align-items:end;gap:10px;display:grid}.admin-table-header,.admin-row{grid-template-columns:minmax(0,1.1fr) minmax(0,2fr) 150px 180px;align-items:center;gap:12px;display:grid}.admin-table-header{background:var(--bg);border-bottom:.5px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-hint);padding:8px 16px;font-size:11px;font-weight:600}.admin-row{border-bottom:.5px solid var(--border);padding:11px 16px;font-size:13px}.admin-row-name{align-items:center;gap:8px;min-width:0;display:flex}.admin-row-name .name{color:var(--text);font-weight:500}.admin-row-actions{justify-content:flex-end;gap:6px;display:flex}.toast{z-index:60;background:var(--text);color:var(--bg);border-radius:999px;align-items:center;gap:9px;padding:10px 16px;font-size:13px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0000002e}.toast .dot{background:var(--green);border-radius:50%;width:7px;height:7px}
