:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f3ee;color:#1e2421;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #1e2421;--muted: #68736d;--line: #d8d4ca;--panel: #fffdf8;--field: #fbfaf6;--teal: #157f72;--teal-dark: #0e5e54;--amber: #b7791f;--brick: #ad3f36;--green-soft: #e6f3ef;--amber-soft: #fff4d9;--brick-soft: #fde8e4;--shadow: 0 12px 34px rgba(44, 42, 36, .08)}*{box-sizing:border-box;letter-spacing:0}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#ffffffb3,#f5f3ee00 180px),#f5f3ee}a{color:var(--teal-dark);font-weight:700;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#fffaf0;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:24px 18px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brand-mark{align-items:center;background:var(--teal);border-radius:8px;color:#fff;display:inline-flex;font-weight:800;height:42px;justify-content:center;width:42px}.brand strong,.brand span{display:block}.brand span{color:var(--muted);font-size:.9rem;margin-top:2px}.nav-list{display:grid;gap:6px}.nav-list a{align-items:center;border-radius:8px;color:var(--ink);display:flex;gap:10px;min-height:42px;padding:10px 12px;text-decoration:none}.nav-list a.active,.nav-list a:hover{background:#e8f2ee;color:var(--teal-dark)}.sidebar-footer{border-top:1px solid var(--line);display:grid;gap:10px;margin-top:auto;padding-top:16px}.sidebar-footer span{color:var(--muted);font-size:.86rem;font-weight:800}.login-shell{align-items:center;display:grid;min-height:100vh;padding:24px}.login-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:20px;margin:0 auto;max-width:420px;padding:28px;width:100%}.login-panel h1{font-size:2rem;line-height:1.1;margin:0}.brand--login{margin-bottom:0}.login-note{align-items:center;background:#f7f4ec;border:1px solid var(--line);border-radius:8px;color:var(--muted);display:flex;font-size:.88rem;font-weight:700;gap:8px;padding:10px}.main-panel{min-width:0}.page{display:grid;gap:22px;margin:0 auto;max-width:1240px;padding:32px}.page-header,.section-title{align-items:center;display:flex;gap:16px;justify-content:space-between}.page-header h1,.section-title h2{margin:0}.page-header h1{font-size:2rem;line-height:1.1}.section-title h2{font-size:1.2rem;line-height:1.2}.eyebrow{color:var(--muted);font-size:.78rem;font-weight:800;margin:0 0 6px;text-transform:uppercase}.metric-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.metric{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;gap:10px;min-height:132px;padding:18px;text-decoration:none}.metric svg{color:var(--teal)}.metric span{color:var(--muted);font-weight:700}.metric strong{font-size:2rem}.content-grid,.detail-grid{align-items:start;display:grid;gap:20px;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recognition-grid,.recognition-capture-grid,.recognition-action-band{display:grid;gap:20px}.recognition-capture-grid{align-items:start;grid-template-columns:repeat(2,minmax(320px,1fr))}.recognition-action-band{align-items:end;grid-template-columns:minmax(260px,1fr) auto}.content-band{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:18px;padding:20px}.notice,.empty-state{background:#fff8e8;border:1px solid #ead7a8;border-radius:8px;color:#584414;padding:14px 16px}.notice--error{background:var(--brick-soft);border-color:#f1b7af;color:#7e231b}.notice--success{background:var(--green-soft);border-color:#afd3c9;color:#145d50}.progress-card{background:var(--panel);border:1px solid #c9ddd6;border-radius:8px;box-shadow:var(--shadow);display:grid;gap:10px;padding:14px 16px}.progress-card__header{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto}.progress-card__header div{display:grid;gap:2px;min-width:0}.progress-card__header strong,.progress-card__header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-card__header span,.progress-card__header em{color:var(--muted);font-size:.84rem;font-style:normal;font-weight:800}.progress-card__spinner{animation:progress-spin .9s linear infinite;color:var(--teal)}.progress-track{background:#ebe5dc;border-radius:999px;height:8px;overflow:hidden}.progress-track span{background:var(--teal);border-radius:inherit;display:block;height:100%;transition:width .18s ease}.progress-track--indeterminate span{animation:progress-slide 1.25s ease-in-out infinite;width:38%}@keyframes progress-spin{to{transform:rotate(360deg)}}@keyframes progress-slide{0%{transform:translate(-110%)}55%{transform:translate(75%)}to{transform:translate(270%)}}@media(prefers-reduced-motion:reduce){.progress-card__spinner,.progress-track--indeterminate span{animation-duration:4s}}.empty-state{background:#faf8f2;border-style:dashed;color:var(--muted);display:grid;gap:5px}.empty-state strong{color:var(--ink)}.form-stack,.form-grid{display:grid;gap:14px}.form-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}label{color:var(--muted);display:grid;font-size:.86rem;font-weight:800;gap:7px}input,select{background:var(--field);border:1px solid #cfc9bd;border-radius:8px;color:var(--ink);min-height:42px;padding:9px 10px;width:100%}input:focus,select:focus{border-color:var(--teal);outline:3px solid rgba(21,127,114,.18)}.form-actions{align-items:end;display:flex;gap:10px}.button,.icon-button{align-items:center;border:1px solid transparent;border-radius:8px;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:40px;text-decoration:none;white-space:nowrap}.button{padding:9px 14px}.button--primary{background:var(--teal);color:#fff}.button--primary:hover{background:var(--teal-dark);text-decoration:none}.button--ghost{background:#f7f4ec;border-color:var(--line);color:var(--ink)}.icon-button{background:#f7f4ec;border-color:var(--line);color:var(--ink);height:36px;padding:0;width:36px}.icon-button:hover{background:#e8f2ee;color:var(--teal-dark)}.icon-button--danger{color:var(--brick)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:680px;width:100%}th,td{border-bottom:1px solid #e7e2d8;padding:12px 10px;text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.78rem;text-transform:uppercase}.table-actions{text-align:right;white-space:nowrap}.table-actions .icon-button{margin-left:6px}.embedding-cell{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.embedding-cell>span:first-child{color:var(--ink);font-weight:800}.status-pill,.status-badge,.health{align-items:center;border-radius:999px;display:inline-flex;font-size:.84rem;font-weight:800;gap:6px;min-height:30px;padding:5px 10px;white-space:nowrap}.status-pill--active,.status-badge--valid,.status-badge--matched,.status-badge--good,.status-badge--ready,.health--ok{background:var(--green-soft);color:#145d50}.status-pill--inactive,.status-badge--expired,.status-badge--missing,.status-badge--ambiguous,.status-badge--medium,.status-badge--not_ready,.health--checking{background:var(--amber-soft);color:#765013}.status-pill--blocked,.status-badge--revoked,.status-badge--no_match,.status-badge--error,.status-badge--bad,.health--offline{background:var(--brick-soft);color:#82261d}.detail-list{display:grid;gap:12px;margin:0}.detail-list div{border-bottom:1px solid #e9e4da;display:grid;gap:4px;padding-bottom:12px}.detail-list dt{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.detail-list dd{margin:0}.upload-row{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.file-drop-stack{display:grid;gap:6px}.file-drop-zone{align-items:center;background:var(--field);border:1px dashed #bfb8ac;border-radius:8px;color:var(--ink);display:flex;gap:12px;min-height:72px;padding:14px}.file-drop-zone:hover,.file-drop-zone--active{background:#edf7f3;border-color:var(--teal)}.file-drop-zone[aria-disabled=true]{opacity:.65}.file-drop-zone input{display:none}.file-drop-zone__icon{align-items:center;background:var(--green-soft);border-radius:8px;color:var(--teal-dark);display:inline-flex;flex:0 0 auto;height:42px;justify-content:center;width:42px}.file-drop-zone__copy{display:grid;gap:3px;min-width:0}.file-drop-zone__copy strong,.file-drop-zone__copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-drop-zone__copy span,.file-drop-error{color:var(--muted);font-size:.84rem;font-weight:800}.file-drop-error{color:var(--brick)}.button-row{display:flex;flex-wrap:wrap;gap:10px}.quality-summary{border-top:1px solid #e9e4da;display:grid;gap:12px;padding-top:14px}.quality-summary__title{align-items:center;display:flex;gap:8px}.quality-summary__title svg{color:var(--teal)}.quality-stats{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.quality-stats div{display:grid;gap:2px;min-width:0}.quality-stats dt{color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.quality-stats dd{font-weight:800;margin:0}.quality-badges{display:flex;flex-wrap:wrap;gap:8px}.camera-panel{display:grid;gap:14px}.camera-preview,.capture-preview{background:#121715;border-radius:8px;overflow:hidden;position:relative}.camera-preview{aspect-ratio:4 / 3}.camera-preview video{display:block;height:100%;object-fit:cover;width:100%}.capture-preview img{display:block;height:100%;object-fit:contain;width:100%}.camera-placeholder{align-items:center;color:#ffffffc7;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:absolute}.file-button{align-items:center;background:#f7f4ec;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:inline-flex;font-size:1rem;font-weight:800;gap:8px;justify-content:center;min-height:40px;padding:9px 14px;width:auto}.file-button input{display:none}.capture-preview{aspect-ratio:4 / 3;min-height:260px}.capture-preview--pending,.capture-preview--empty{align-items:center;display:flex;justify-content:center}.capture-preview__status{align-items:center;color:#ffffffc7;display:grid;gap:8px;justify-items:center;padding:20px;text-align:center}.capture-preview__status strong{font-size:.92rem}.capture-preview span{background:#121715bd;bottom:8px;color:#fff;font-size:.84rem;font-weight:800;left:8px;max-width:calc(100% - 16px);overflow:hidden;padding:5px 8px;position:absolute;text-overflow:ellipsis;white-space:nowrap}.result-panel{align-self:start}.result-icon{align-items:center;border-radius:999px;display:inline-flex;height:42px;justify-content:center;width:42px}.result-icon--matched{background:var(--green-soft);color:#145d50}.result-icon--ambiguous{background:var(--amber-soft);color:#765013}.result-icon--no_match,.result-icon--error{background:var(--brick-soft);color:#82261d}.compact-list,.warning-list{display:grid;gap:8px}.compact-list div,.warning-list div{align-items:center;border-bottom:1px solid #e9e4da;display:flex;gap:10px;justify-content:space-between;min-height:38px}.warning-list div{background:var(--amber-soft);border:1px solid #ead7a8;border-radius:8px;color:#765013;justify-content:flex-start;padding:9px 10px}.media-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}.media-list li{align-items:center;border-bottom:1px solid #e9e4da;display:flex;gap:12px;justify-content:space-between;min-height:42px}.media-list span{color:var(--muted);font-size:.88rem}.inline-nav{padding-bottom:24px}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar-footer{margin-top:18px}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-list a{justify-content:center}.metric-grid,.content-grid,.detail-grid,.form-grid,.quality-stats{grid-template-columns:1fr 1fr}}@media(max-width:680px){.page{padding:22px 16px}.page-header,.section-title{align-items:flex-start;flex-direction:column}.page-header h1{font-size:1.6rem}.nav-list{grid-template-columns:1fr 1fr}.metric-grid,.content-grid,.detail-grid,.recognition-capture-grid,.recognition-action-band,.form-grid,.quality-stats,.upload-row{grid-template-columns:1fr}.recognition-action-band .button{width:100%}.brand{margin-bottom:18px}}
