:root{--forest:#153f32;--leaf:#28784e;--leaf-dark:#1d603e;--lime:#b9dd63;--cream:#f5f3eb;--paper:#fffefa;--ink:#17201d;--muted:#6c7771;--line:#dde3de;--soft:#edf3ee;--red:#a43e35;--amber:#946b16;--shadow:0 16px 42px rgba(21,63,50,.08)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.5 Inter,"Segoe UI",Arial,sans-serif}
button,input,textarea{font:inherit}
button{border:0;border-radius:10px;background:var(--leaf);color:#fff;padding:11px 16px;font-weight:750;cursor:pointer;transition:.18s ease}
button:hover:not(:disabled){background:var(--leaf-dark);transform:translateY(-1px)}
button:disabled{cursor:not-allowed;opacity:.42}
.secondary{background:var(--soft);color:var(--forest)}
.secondary:hover:not(:disabled){background:#dfe9e1}
.small{padding:7px 10px;font-size:12px;white-space:nowrap}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px max(3vw,22px);background:rgba(21,63,50,.97);color:#fff;box-shadow:0 8px 30px rgba(10,35,26,.18)}
.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--lime);color:var(--forest);font-size:21px;font-weight:900}
.brand strong,.brand small{display:block}.brand small{font-size:11px;color:#c7d8d0;font-weight:500}
.top-actions,.system-state{display:flex;align-items:center;gap:10px}.system-state{font-size:12px;color:#d9e6df}.system-state i,.readiness-item i{width:9px;height:9px;border-radius:50%;background:#d1a94b;box-shadow:0 0 0 4px rgba(255,255,255,.07)}
i.good{background:#69d18d!important}i.bad{background:#ef776b!important}i.muted{background:#aab5af!important}
.icon-button{padding:8px 12px;background:rgba(255,255,255,.1);font-size:12px}.icon-button:hover:not(:disabled){background:rgba(255,255,255,.18)}
main{width:min(1440px,100%);margin:auto;padding:34px max(3vw,18px) 70px}
.welcome{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:36px;align-items:center;padding:42px;border-radius:24px;background:linear-gradient(125deg,#dfecca 0%,#f7f0d7 64%,#f3ead1 100%);border:1px solid rgba(21,63,50,.08)}
.eyebrow{display:block;margin-bottom:6px;color:var(--leaf);font-size:11px;font-weight:850;letter-spacing:.16em}
h1,h2,p{margin-top:0}h1{max-width:820px;margin-bottom:18px;color:var(--forest);font-size:clamp(36px,5vw,62px);line-height:1.02;letter-spacing:-.045em}h2{margin-bottom:0;color:var(--forest);font-size:22px;line-height:1.2;letter-spacing:-.015em}
.welcome>div>p{max-width:760px;margin-bottom:0;color:#4e5e57;font-size:17px}
.mode-card{padding:22px;border-radius:18px;background:rgba(255,254,250,.76);border:1px solid rgba(21,63,50,.12);backdrop-filter:blur(8px)}
.mode-card strong,.mode-card p{display:block}.mode-card strong{margin:15px 0 4px;color:var(--forest);font-size:17px}.mode-card p{margin:0;color:var(--muted);font-size:12px}
.mode-badge{display:inline-block;padding:6px 9px;border-radius:999px;background:var(--forest);color:#fff;font-size:10px;font-weight:850;letter-spacing:.08em}
.readiness{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 26px}
.readiness-item{display:flex;align-items:center;gap:12px;padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.readiness-item span,.readiness-item small,.readiness-item strong{display:block}.readiness-item small{color:var(--muted);font-size:11px}.readiness-item strong{color:var(--forest);font-size:13px}
.workflow-card,.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.workflow-card{padding:28px;margin-bottom:22px}.card{padding:24px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.text-link{color:var(--leaf);font-size:12px;font-weight:750;text-decoration:none}.text-link:hover{text-decoration:underline}
.steps{display:grid;grid-template-columns:repeat(3,1fr);position:relative;margin:8px 0 24px}.steps:before{content:"";position:absolute;left:16.6%;right:16.6%;top:18px;height:2px;background:var(--line)}
.step{position:relative;display:grid;justify-items:center;text-align:center}.step span{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--soft);color:var(--forest);font-weight:850}.step.active span{background:var(--forest);color:#fff}.step strong{margin-top:7px;font-size:13px}.step small{color:var(--muted);font-size:11px}
.upload-form{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px}.drop-zone{display:flex;min-height:180px;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px dashed #aebdb4;border-radius:16px;background:#fbfcf8;cursor:pointer;transition:.18s ease}.drop-zone:hover,.drop-zone.dragging{border-color:var(--leaf);background:#f1f7ed}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.upload-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:13px;background:var(--soft);color:var(--leaf);font-size:25px;font-weight:400}.drop-zone strong{max-width:90%;color:var(--forest);word-break:break-word}.drop-zone small{color:var(--muted)}.choose-file{margin-top:12px;color:var(--leaf);font-size:12px;font-weight:800}
.upload-options{display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:18px;border-radius:14px;background:var(--soft)}.toggle-row{display:flex;gap:11px;align-items:flex-start;cursor:pointer}.toggle-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--leaf)}.toggle-row span,.toggle-row strong,.toggle-row small{display:block}.toggle-row small{margin-top:3px;color:var(--muted);font-weight:400}
.metrics{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin:22px 0}.metric{display:flex;min-height:94px;flex-direction:column;justify-content:space-between;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--paper)}.metric span{color:var(--muted);font-size:11px}.metric strong{color:var(--forest);font-size:29px;line-height:1}
.pipeline-card{margin-bottom:18px}.actions{display:flex;align-items:center;gap:9px}.compact-input{width:220px}.grid{display:grid;gap:18px;margin:18px 0}.two{grid-template-columns:1fr 1fr}
input,textarea{width:100%;border:1px solid #c8d2cb;border-radius:10px;background:#fff;padding:11px 12px;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:var(--leaf);box-shadow:0 0 0 3px rgba(40,120,78,.1)}textarea{resize:vertical}.inline-form{display:flex;gap:10px}.inline-form button{white-space:nowrap}
.result{margin-top:15px}.notice{padding:11px 13px;border-radius:10px;background:var(--soft);color:var(--forest)}.notice.error{background:#faebe8;color:var(--red);font-weight:700}.import-summary{display:grid;grid-template-columns:repeat(3,minmax(100px,150px));gap:10px}.import-summary>div{padding:13px;border-radius:12px;background:var(--soft)}.import-summary strong,.import-summary span{display:block}.import-summary strong{color:var(--forest);font-size:24px}.import-summary span{color:var(--muted);font-size:11px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}td strong,td small{display:block}td small{margin-top:2px;color:var(--muted);font-size:10px}.summary-cell{min-width:190px;max-width:310px}.pill,.consent{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.pill.good,.consent.yes{background:#e1f2e6;color:#1b693d}.pill.warn{background:#fff2d7;color:#806014}.pill.bad,.consent.no{background:#fae7e4;color:#96382f}.pill.neutral{background:#edf0ee;color:#59635e}
.empty{display:flex;min-height:130px;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.empty strong{color:var(--forest)}.empty span{font-size:12px}.customer-match{padding:12px;border-left:3px solid var(--lime);background:var(--soft)}.customer-match strong,.customer-match span{display:block}.customer-match span{color:var(--muted);font-size:12px}
.advanced{margin-top:18px}.advanced summary{cursor:pointer;color:var(--forest);font-weight:800}.advanced form{display:grid;gap:10px;margin-top:18px}
.toast{position:fixed;right:24px;bottom:24px;z-index:50;max-width:390px;padding:12px 16px;border-radius:12px;background:var(--forest);color:#fff;box-shadow:0 14px 45px rgba(0,0,0,.22);opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s ease}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#8f342c}
dialog{width:min(880px,92vw);max-height:86vh;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 24px 90px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(11,35,28,.62)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}pre{max-height:56vh;overflow:auto;white-space:pre-wrap;word-break:break-word;padding:16px;border-radius:12px;background:var(--soft);font:13px/1.6 Consolas,monospace}
.access-dialog{width:min(420px,92vw);padding:0}.access-dialog form{display:flex;flex-direction:column;align-items:stretch;padding:30px}.access-dialog .brand-mark{margin-bottom:22px}.access-dialog h2{font-size:27px}.access-dialog p{color:var(--muted);font-size:13px}.access-dialog label{display:flex;flex-direction:column;gap:6px;margin:8px 0 14px;color:var(--forest);font-size:12px;font-weight:800}.access-error{min-height:20px;margin-top:8px;color:var(--red);font-size:12px;font-weight:700}
@media(max-width:1120px){.metrics{grid-template-columns:repeat(4,1fr)}.readiness{grid-template-columns:repeat(2,1fr)}}
@media(max-width:840px){.welcome{grid-template-columns:1fr;padding:27px}.mode-card{max-width:420px}.upload-form,.two{grid-template-columns:1fr}.upload-options{min-height:150px}.section-title{align-items:flex-start}.pipeline-card .section-title{flex-direction:column}.actions{width:100%}.compact-input{width:100%}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.topbar{align-items:flex-start}.system-state{display:none}main{padding-top:20px}.welcome{padding:23px;border-radius:18px}h1{font-size:38px}.readiness{grid-template-columns:1fr}.workflow-card,.card{padding:18px}.steps small{display:none}.section-title{flex-direction:column}.inline-form,.actions{flex-direction:column;align-items:stretch}.metrics{gap:8px}.metric{min-height:82px}.import-summary{grid-template-columns:repeat(3,1fr)}.top-actions .icon-button{font-size:0}.top-actions .icon-button:after{content:"↻";font-size:18px}}
