:root{--text-display-size:28px;--text-display-line:36px;--text-display-weight:600;--text-title-size:20px;--text-title-line:28px;--text-title-weight:600;--text-body-lg-size:16px;--text-body-lg-line:24px;--text-body-lg-weight:400;--text-body-size:14px;--text-body-line:20px;--text-body-weight:400;--text-caption-size:12px;--text-caption-line:16px;--text-caption-weight:400;--text-mono-size:13px;--text-mono-line:20px;--font-mono:ui-monospace, "SF Mono", Consolas, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--row-padding:var(--space-4);--section-gap:var(--space-6);--color-surface:#fff;--color-surface-raised:#f7f8fa;--color-border:#e1e4e8;--color-text:#1a1d24;--color-text-muted:#5b6270;--color-accent:#3356d9;--color-accent-contrast:#fff;--color-ai:#7c3aed;--color-ai-surface:#f5f0ff;--color-success:#1a7f45;--color-success-surface:#e7f6ec;--color-warning:#9a6400;--color-warning-surface:#fdf3dc;--color-danger:#b3261e;--color-danger-surface:#fbe9e7;--color-info:#2563a8;--color-info-surface:#e8f1fb;--radius-sm:4px;--radius-md:8px;--shadow-raised:0 1px 2px #10141e14, 0 1px 1px #10141e0a}[data-density=compact]{--row-padding:var(--space-2);--section-gap:var(--space-4)}[data-theme=dark]{--color-surface:#14161b;--color-surface-raised:#1c1f26;--color-border:#2c303a;--color-text:#e9eaed;--color-text-muted:#9aa0ab;--color-ai-surface:#241a3d;--color-success-surface:#103321;--color-warning-surface:#332607;--color-danger-surface:#3a1512;--color-info-surface:#0f2438}.tabular-nums{font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--color-text);background:var(--color-surface-raised);margin:0}h1,h2,h3,p{margin:0}.text-display{font-size:var(--text-display-size);line-height:var(--text-display-line);font-weight:var(--text-display-weight)}.text-title{font-size:var(--text-title-size);line-height:var(--text-title-line);font-weight:var(--text-title-weight)}.text-body-lg{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line)}.text-caption{font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:var(--color-text-muted)}.text-mono{font-family:var(--font-mono);font-size:var(--text-mono-size);line-height:var(--text-mono-line)}.app-shell{min-height:100vh;display:flex}.app-nav{background:var(--color-surface);border-right:1px solid var(--color-border);width:240px;padding:var(--space-4);flex-shrink:0}.app-nav-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);margin-bottom:var(--space-1);text-decoration:none;display:block}.app-nav-item.active{background:var(--color-info-surface);color:var(--color-accent);font-weight:600}.app-main{padding:var(--space-6);flex:1;max-width:1180px}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:baseline;display:flex}.page-header .subtitle{color:var(--color-text-muted);margin-top:var(--space-1)}.btn{font:inherit;font-size:var(--text-body-size);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:var(--space-2);border:1px solid #0000;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-accent-contrast)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger[disabled],.btn-primary[disabled]{opacity:.45;cursor:not-allowed}.btn-link{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-caption-size)}.badge{align-items:center;gap:var(--space-1);font-size:var(--text-caption-size);padding:2px var(--space-2);font-weight:600;line-height:var(--text-caption-line);border-radius:999px;display:inline-flex}.badge-neutral{background:var(--color-border);color:var(--color-text)}.badge-success{background:var(--color-success-surface);color:var(--color-success)}.badge-warning{background:var(--color-warning-surface);color:var(--color-warning)}.badge-danger{background:var(--color-danger-surface);color:var(--color-danger)}.badge-info{background:var(--color-info-surface);color:var(--color-info)}.badge-ai{background:var(--color-ai-surface);color:var(--color-ai)}.badge-tier1{color:#9a6400;background:#fdf3dc}.badge-tier2{color:#2563a8;background:#e8f1fb}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.table-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.table-toolbar .search{flex:1;max-width:360px}.search input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}table.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;overflow:hidden}.data-table th{text-align:left;font-size:var(--text-caption-size);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);padding:var(--space-2) var(--row-padding);border-bottom:1px solid var(--color-border);background:var(--color-surface-raised)}.data-table td{padding:var(--row-padding);border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr.clickable:hover{background:var(--color-surface-raised);cursor:pointer}.pagination-footer{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-caption-size);justify-content:space-between;align-items:center;display:flex}.skeleton-row td{padding:var(--row-padding)}.skeleton-bar{background:linear-gradient(90deg, var(--color-border) 25%, #eef0f3 37%, var(--color-border) 63%);background-size:400% 100%;border-radius:4px;height:14px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-text-muted)}.empty-state .empty-icon{margin-bottom:var(--space-3);font-size:32px}.empty-state h3{color:var(--color-text);margin-bottom:var(--space-2)}.empty-state .actions{margin-top:var(--space-4);gap:var(--space-3);justify-content:center;display:flex}.error-state{text-align:center;padding:var(--space-8) var(--space-6);color:var(--color-danger);background:var(--color-danger-surface);border-radius:var(--radius-md)}.job-tracker{flex-direction:column;gap:0;display:flex}.job-stage{gap:var(--space-3);padding:var(--space-2) 0;display:flex;position:relative}.job-stage .dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex}.job-stage.done .dot{background:var(--color-success);color:#fff}.job-stage.active .dot{background:var(--color-accent);color:#fff}.job-stage.pending .dot{background:var(--color-border);color:var(--color-text-muted)}.job-stage.failed .dot{background:var(--color-danger);color:#fff}.job-stage:not(:last-child):before{content:"";background:var(--color-border);width:2px;position:absolute;top:28px;bottom:-4px;left:9px}.job-stage .label{font-weight:600}.job-stage .meta{color:var(--color-text-muted);font-size:var(--text-caption-size)}.approval-row{align-items:center;gap:var(--space-4);padding:var(--row-padding);border-bottom:1px solid var(--color-border);display:flex}.approval-row:last-child{border-bottom:none}.approval-row .sla{font-size:var(--text-caption-size);font-weight:600}.approval-row .actions{gap:var(--space-2);margin-left:auto;display:flex}.sla{align-items:center;gap:var(--space-1);font-weight:600;display:inline-flex}.sla.ok{color:var(--color-success)}.sla.warn{color:var(--color-warning)}.sla.critical,.sla.breach{color:var(--color-danger);font-weight:700}.sla-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.sla-dot.ok{background:var(--color-success)}.sla-dot.warn{background:var(--color-warning)}.sla-dot.critical{background:var(--color-danger)}.sla-dot.breach{background:var(--color-danger);animation:1.4s infinite sla-pulse}@keyframes sla-pulse{0%,to{opacity:1}50%{opacity:.3}}.kpi-row{gap:var(--space-4);margin-bottom:var(--section-gap);display:flex}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);flex:1}.kpi-card .kpi-value{font-size:var(--text-display-size);font-weight:700;line-height:1}.kpi-card .kpi-label{color:var(--color-text-muted);font-size:var(--text-caption-size);margin-top:var(--space-2)}.kpi-card.kpi-warning .kpi-value{color:var(--color-warning)}.kpi-card.kpi-danger .kpi-value{color:var(--color-danger)}.overflow-menu{display:inline-block;position:relative}.overflow-menu .menu-trigger{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);padding:2px var(--space-2);background:0 0;font-size:16px;line-height:1.4}.overflow-menu .menu-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);z-index:5;min-width:170px;position:absolute;top:calc(100% + 4px);right:0}.overflow-menu .menu-list button{text-align:left;width:100%;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-body-size);cursor:pointer;background:0 0;border:none;display:block}.overflow-menu .menu-list button:hover{background:var(--color-surface-raised)}details.disclosure{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);margin:var(--space-3) 0}details.disclosure summary{cursor:pointer;font-weight:600}details.disclosure .signal-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-body-size);justify-content:space-between;display:flex}details.disclosure .signal-row:last-child{border-bottom:none}details.disclosure .decision-support-note{background:var(--color-info-surface);color:var(--color-info);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-caption-size);margin-bottom:var(--space-2)}.wizard-steps{gap:var(--space-2);margin-bottom:var(--space-6);display:flex}.wizard-step{text-align:center;padding-bottom:var(--space-2);border-bottom:3px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-caption-size);flex:1;font-weight:600}.wizard-step.active{border-color:var(--color-accent);color:var(--color-accent)}.wizard-step.done{border-color:var(--color-success);color:var(--color-success)}.save-indicator{align-items:center;gap:var(--space-1);font-size:var(--text-caption-size);color:var(--color-text-muted);display:flex}.save-indicator .dot-saving{background:var(--color-info);border-radius:50%;width:6px;height:6px}.save-indicator.retrying{color:var(--color-danger)}.field{margin-bottom:var(--space-4)}.field label{margin-bottom:var(--space-1);font-weight:600;font-size:var(--text-body-size);display:block}.field .hint{color:var(--color-text-muted);font-size:var(--text-caption-size);margin-top:var(--space-1)}.field input[type=text],.field input[type=email],.field input[type=number],.field select,.field textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}.field.error input,.field.error select{border-color:var(--color-danger)}.field .error-msg{color:var(--color-danger);font-size:var(--text-caption-size);margin-top:var(--space-1)}.field.optional label:after{content:" (optional)";color:var(--color-text-muted);font-weight:400}.field.confidence-low{border-left:3px solid var(--color-warning);padding-left:var(--space-3);background:var(--color-warning-surface);border-radius:var(--radius-sm)}.field.confidence-ok{border-left:3px solid var(--color-success);padding-left:var(--space-3)}.dialog-backdrop{background:#10141e73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dialog{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-6);width:440px;box-shadow:var(--shadow-raised)}.dialog h3{margin-bottom:var(--space-3)}.dialog .consequence{background:var(--color-warning-surface);color:var(--color-warning);padding:var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4);font-size:var(--text-body-size)}.dialog .checklist{margin:var(--space-3) 0;padding-left:var(--space-4);color:var(--color-text-muted);font-size:var(--text-body-size)}.dialog .actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);display:flex}.dialog input.confirm-text{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;margin-top:var(--space-2)}.draft-panel{border:2px dashed var(--color-ai);background:var(--color-ai-surface);border-radius:var(--radius-md);padding:var(--space-4)}.password-checklist{margin:var(--space-2) 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.password-checklist li{align-items:center;gap:var(--space-2);font-size:var(--text-caption-size);color:var(--color-text-muted);display:flex}.password-checklist li .mark{border:1.5px solid var(--color-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;display:flex}.password-checklist li.met{color:var(--color-text)}.password-checklist li.met .mark{border-color:var(--color-success);background:var(--color-success);color:#fff}.password-meter{background:var(--color-border);height:6px;margin:var(--space-2) 0;border-radius:999px;overflow:hidden}.password-meter .fill{border-radius:999px;height:100%}.password-meter .fill.weak{background:var(--color-danger);width:25%}.password-meter .fill.fair{background:var(--color-warning);width:55%}.password-meter .fill.strong{background:var(--color-success);width:100%}.tab-bar{gap:var(--space-6);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);display:flex}.tab-bar .tab{padding:var(--space-2) 0;color:var(--color-text-muted);font-weight:600;font-size:var(--text-body-size);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-family:inherit}.tab-bar .tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-muted)}.dropzone.drag-over{border-color:var(--color-accent);background:var(--color-info-surface);color:var(--color-accent)}.dropzone .dz-icon{margin-bottom:var(--space-3);font-size:32px}.dropzone.error{border-color:var(--color-danger);background:var(--color-danger-surface);color:var(--color-danger)}.file-chip{align-items:center;gap:var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);display:inline-flex}.mapping-row{gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);grid-template-columns:180px 1fr 1fr;align-items:center;display:grid}.mapping-row:last-child{border-bottom:none}.mapping-row .target-field{font-weight:600}.mapping-row .target-field .req{color:var(--color-danger)}.mapping-row .sample-value{color:var(--color-text-muted);font-size:var(--text-caption-size);font-family:var(--font-mono)}.mapping-row.unmapped select{border-color:var(--color-danger)}.row-outcome{align-items:center;gap:var(--space-1);font-weight:600;font-size:var(--text-caption-size);display:inline-flex}.row-outcome.succeeded{color:var(--color-success)}.row-outcome.flagged{color:var(--color-warning)}.row-outcome.failed{color:var(--color-danger)}.job-stage .live-counter{font-size:var(--text-caption-size);color:var(--color-text-muted);margin-top:var(--space-1)}.job-stage .live-counter .tally-ok{color:var(--color-success);font-weight:600}.job-stage .live-counter .tally-flag{color:var(--color-warning);font-weight:600}.job-stage .live-counter .tally-fail{color:var(--color-danger);font-weight:600}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{gap:var(--space-4);display:flex}.row>*{flex:1}.muted{color:var(--color-text-muted)}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.portal-header{background:var(--color-accent);color:#fff;padding:var(--space-4) var(--space-6);justify-content:space-between;align-items:center;display:flex}.portal-header .brand{font-weight:700}.portal-tabs{gap:var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 var(--space-6);display:flex}.portal-tab{padding:var(--space-3) 0;color:var(--color-text-muted);font-weight:600;font-size:var(--text-body-size);border-bottom:2px solid #0000;text-decoration:none}.portal-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.portal-main{padding:var(--space-6);max-width:900px;margin:0 auto}
