:root{--bg:#faf7f2;--surface:#fff;--surface-sunken:#f3efe7;--border:#e6ddd0;--border-strong:#d7cab5;--text:#241f19;--text-muted:#6f6559;--text-faint:#a49883;--accent:#0f6e6e;--accent-dark:#0b5454;--accent-tint:#e4f1ef;--coral:#e07856;--coral-tint:#fbeae2;--yes-fg:#1c7a4d;--yes-bg:#e5f4ec;--yes-border:#bfe3cf;--no-fg:#5b5346;--no-bg:#f0ebe1;--no-border:#ddd2bd;--unclassified-fg:#a15d0a;--unclassified-bg:#fbf0da;--unclassified-border:#edd7a3;--danger:#b3402f;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 1px 2px #241f190a, 0 8px 24px -16px #241f192e;font-variant-numeric:tabular-nums}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,Roboto,Helvetica,Arial,system-ui,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;text-wrap:balance;margin:0;font-family:inherit;font-weight:800}button,input,select{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}::selection{background:var(--accent-tint)}.app-shell{max-width:1180px;margin:0 auto;padding:28px 24px 64px}.top-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.brand-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;font-size:11px;font-weight:700}.brand-title{letter-spacing:-.01em;font-size:26px}.brand-sub{color:var(--text-muted);margin-top:6px;font-size:13.5px}.top-actions{flex-wrap:wrap;gap:10px;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);white-space:nowrap;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,transform 50ms;display:inline-flex}.btn:hover{border-color:var(--accent);background:var(--accent-tint)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-primary:disabled{background:var(--text-faint);border-color:var(--text-faint);cursor:not-allowed}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-sunken);border-color:#0000}.btn-sm{padding:6px 10px;font-size:12px}.btn-danger-text{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px}.card+.card{margin-top:20px}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.card-title{font-size:16px}.card-hint{color:var(--text-muted);margin-top:4px;font-size:12.5px}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;background:var(--surface-sunken);padding:40px 24px;transition:border-color .15s,background .15s}.dropzone.is-active{border-color:var(--accent);background:var(--accent-tint)}.dropzone-title{margin-bottom:6px;font-size:15px;font-weight:700}.dropzone-sub{color:var(--text-muted);margin-bottom:18px;font-size:13px}.field-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.field label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:11.5px;font-weight:700;display:block}.field-required:after{content:" *";color:var(--coral)}select,input[type=text]{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);width:100%;padding:9px 10px;font-size:13.5px}select:focus,input[type=text]:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.table-scroll{border:1px solid var(--border);border-radius:var(--radius-md);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}thead th{background:var(--surface-sunken);text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700;position:sticky;top:0}tbody td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-sunken)}.cell-muted{color:var(--text-muted)}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-yes{background:var(--yes-bg);color:var(--yes-fg);border-color:var(--yes-border)}.badge-no{background:var(--no-bg);color:var(--no-fg);border-color:var(--no-border)}.badge-unclassified{background:var(--unclassified-bg);color:var(--unclassified-fg);border-color:var(--unclassified-border)}.badge-example{background:var(--coral-tint);color:var(--coral);text-transform:uppercase;letter-spacing:.04em;border-color:#f2cbb8;font-size:10px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-tile{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);padding:16px 18px}.stat-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:700}.stat-value{font-size:26px;font-weight:800;line-height:1}.stat-sub{color:var(--text-muted);margin-top:6px;font-size:12px}.stat-tile.accent-yes .stat-value{color:var(--yes-fg)}.stat-tile.accent-unclassified .stat-value{color:var(--unclassified-fg)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.search-input{max-width:280px}.chip-group{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600}.chip.is-active{background:var(--text);border-color:var(--text);color:#fff}.spacer{flex:1}.rules-overlay{z-index:40;background:#241f1952;justify-content:flex-end;display:flex;position:fixed;inset:0}.rules-panel{background:var(--bg);width:min(520px,100%);height:100%;padding:26px 24px 60px;overflow-y:auto;box-shadow:-12px 0 32px #241f1929}.rules-panel-header{justify-content:space-between;align-items:flex-start;margin-bottom:6px;display:flex}.rules-section{margin-top:22px}.rules-section-title{margin-bottom:4px;font-size:14.5px}.rules-section-hint{color:var(--text-muted);margin-bottom:12px;font-size:12.5px}.tag-list{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.tag{background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;align-items:center;gap:6px;padding:5px 6px 5px 12px;font-size:12.5px;display:inline-flex}.tag button{background:var(--surface-sunken);width:18px;height:18px;color:var(--text-muted);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex}.tag button:hover{background:var(--coral-tint);color:var(--coral)}.inline-form{gap:8px;display:flex}.inline-form input{flex:1}.rule-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.rule-row:last-of-type{border-bottom:none}.rule-row-value{align-items:center;gap:8px;font-size:13px;display:flex}.icon-btn{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;display:flex}.icon-btn:hover{border-color:var(--danger);color:var(--danger);background:#fbeceb}.rules-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:13px}.footnote{color:var(--text-faint);margin-top:22px;font-size:12px}.preview-note{color:var(--text-muted);margin:10px 0 0;font-size:12px}.ai-banner{border-color:var(--border-strong);background:var(--surface-sunken)}.ai-banner-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ai-error{border-radius:var(--radius-sm);color:var(--danger);background:#fbeceb;border:1px solid #f0c9c4;margin:12px 0 0;padding:10px 12px;font-size:12.5px}.step-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;display:flex}@media (max-width:640px){.app-shell{padding:20px 16px 48px}.rule-row{grid-template-columns:1fr auto}}
