:root{
  --navy:#081b30;--navy2:#102d4a;--blue:#2e88c9;--teal:#1f9d9b;--ink:#172033;
  --muted:#67798e;--bg:#f3f6fa;--card:#fff;--line:#dce5ef;--green:#22856c;
  --amber:#a96d13;--red:#a63c4c;--purple:#7657b5;--shadow:0 8px 26px rgba(15,34,54,.06)
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink);display:flex;min-height:100vh}
aside{width:248px;background:linear-gradient(180deg,var(--navy),#0a223b);color:white;padding:30px 18px;position:fixed;inset:0 auto 0 0;box-shadow:5px 0 20px rgba(4,16,28,.08)}
.brand{font-size:29px;font-weight:850;letter-spacing:.2px}.brand span{color:#45a6e6}.product{font-size:12px;color:#9fb3c7;margin:8px 0 30px;line-height:1.5}
nav{display:grid;gap:7px}nav button{background:transparent;border:0;color:#c1cfdd;text-align:left;padding:11px 12px;border-radius:9px;font-size:12.5px;cursor:pointer;font-weight:650}
nav button.active,nav button:hover{background:linear-gradient(90deg,#153653,#173d5f);color:white}.footer{position:absolute;bottom:22px;color:#8199b1;font-size:11px;line-height:1.5}.footer span{color:#a9b9c9}
main{margin-left:248px;padding:34px 42px 48px;width:calc(100% - 248px);max-width:1600px}header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}
h1{margin:5px 0 8px;font-size:31px;letter-spacing:-.5px}.eyebrow{font-size:10.5px;font-weight:850;letter-spacing:1.6px;color:var(--blue)}p{margin:0;color:var(--muted);line-height:1.5}
button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:750;color:var(--ink);transition:.15s ease}button:hover{border-color:#9eb8d1;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.headerActions{display:grid;gap:8px;justify-items:end}.controls{display:flex;gap:8px}.controls.secondary button{font-size:11px;padding:8px 11px;background:#f9fbfd}
.gitlab{display:grid;grid-template-columns:auto 2fr 1.2fr 1fr auto;align-items:center;gap:8px;margin-top:24px;background:#fff;border:1px solid var(--line);padding:12px;border-radius:12px;box-shadow:var(--shadow)}
.sourceTag{font-size:9px;font-weight:850;letter-spacing:1.2px;color:#5f7488;background:#edf4f9;padding:7px 8px;border-radius:6px}.gitlab input{padding:10px;border:1px solid var(--line);border-radius:7px;outline:none}.gitlab input:focus{border-color:#83b5da;box-shadow:0 0 0 3px #e9f3fa}
.status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin:12px 2px}.statusDot{width:8px;height:8px;border-radius:50%;background:#9caebe}.status.working .statusDot{background:var(--amber);box-shadow:0 0 0 3px #f7ecd9}.status.done .statusDot{background:var(--green);box-shadow:0 0 0 3px #e3f2ed}.status.error .statusDot{background:var(--red);box-shadow:0 0 0 3px #f8e6e9}
.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:18px 0}.metric{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 3px 13px rgba(20,35,55,.025)}.metric .n{font-size:25px;font-weight:850}.metric .l{font-size:10.5px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.45px}
.panel{background:white;border:1px solid var(--line);border-radius:14px;min-height:470px;padding:24px;box-shadow:var(--shadow)}.empty{color:var(--muted);display:flex;align-items:center;justify-content:center;flex-direction:column;height:390px;gap:7px;text-align:center}.empty strong{color:#405267}.emptyIcon{width:54px;height:54px;border-radius:16px;background:#edf5fb;color:var(--blue);display:grid;place-items:center;font-size:24px;margin-bottom:5px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:11px;padding:15px;background:#fff}.card h3{font-size:13.5px;margin:0 0 8px}.card h4{font-size:12px;margin:0 0 5px}.small{font-size:11.5px;color:var(--muted);line-height:1.45}.sectionTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sectionTitle h2{margin:0;font-size:21px}.sectionTitle .small{text-align:right}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{background:#edf5fb;border:1px solid #d8e9f6;padding:6px 9px;border-radius:999px;font-size:10.5px}.chip.neutral{background:#f5f7f9;border-color:#e3e7eb}
.evidencePill{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:750;background:#f5f7f9}.evidencePill.observed{background:#e5f4ef;color:var(--green)}.evidencePill.inferred{background:#fbf0dd;color:var(--amber)}.evidencePill.needs_validation{background:#f9e8eb;color:var(--red)}
.observed{color:var(--green)}.inferred{color:var(--amber)}.needs_validation{color:var(--red)}
.evidenceBars{display:grid;gap:10px;margin-top:9px}.barRow{display:grid;grid-template-columns:120px 1fr 44px;gap:9px;align-items:center;font-size:11px}.bar{height:8px;background:#edf1f5;border-radius:999px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px}.bar.observed>span{background:var(--green)}.bar.inferred>span{background:#d59735}.bar.needs_validation>span{background:var(--red)}
.artifactGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.artifactCard{border:1px solid var(--line);border-radius:11px;padding:15px;min-height:132px;background:linear-gradient(180deg,#fff,#fbfdff)}.artifactNo{font-size:9px;font-weight:850;color:var(--blue);letter-spacing:1px}.artifactCard h3{font-size:13px;margin:6px 0}.artifactCard p{font-size:11px;line-height:1.45}.artifactStats{margin-top:12px;font-size:10.5px;color:#4d6276;font-weight:700}
.kv{display:grid;grid-template-columns:115px 1fr;gap:6px 10px;font-size:11.5px}.kv .k{color:var(--muted)}.divider{height:1px;background:var(--line);margin:16px 0}
table{border-collapse:collapse;width:100%;font-size:11.5px}th,td{border-bottom:1px solid var(--line);padding:9px;text-align:left;vertical-align:top}th{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.35px;background:#fbfcfd}.tableWrap{overflow:auto;border:1px solid var(--line);border-radius:9px}.tableWrap table th:first-child,.tableWrap table td:first-child{padding-left:12px}
.apiIO{font-size:10px;color:var(--muted);line-height:1.35}.severity{display:inline-block;padding:3px 7px;border-radius:999px;font-size:9.5px;font-weight:800;text-transform:uppercase}.severity.info{background:#edf5fb;color:#367ba9}.severity.low{background:#eef6ef;color:#4d7c55}.severity.medium{background:#fbefdd;color:#9c661a}.severity.high{background:#fae5e8;color:#a03645}
svg{width:100%;height:470px;background:radial-gradient(circle at 50% 50%,#f8fbfd,#fff 70%);border-radius:10px;border:1px solid var(--line)}
.legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.legendItem{font-size:10.5px;color:var(--muted);display:flex;gap:5px;align-items:center}.dot{width:8px;height:8px;border-radius:50%}.dot.controller{background:#4f93c6}.dot.service{background:#7b68b4}.dot.model{background:#2f9a82}.dot.module{background:#b07b2e}
@media(max-width:1150px){.artifactGrid,.grid.three{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:repeat(3,1fr)}.gitlab{grid-template-columns:1fr}.sourceTag{display:none}.headerActions{justify-items:start}header{flex-direction:column}}
@media(max-width:850px){aside{position:relative;width:100%;min-height:auto}.footer{display:none}body{display:block}main{margin-left:0;width:100%;padding:22px}.grid,.grid.three,.artifactGrid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}
.readinessBanner{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;background:linear-gradient(120deg,#0d2944,#123957);color:white;border-radius:14px;padding:20px 22px;margin-bottom:16px;box-shadow:0 10px 30px rgba(8,27,48,.12)}
.readinessBanner .eyebrow{color:#83c8f3}.readinessBanner h3{margin:0 0 5px;font-size:16px}.readinessBanner .small{color:#bed0df;max-width:620px}.readinessScore{font-size:38px;line-height:1;font-weight:900;letter-spacing:-1px}.readinessScore span{font-size:18px;color:#8bc7ed;margin-left:2px}.readinessFacts{display:grid;grid-template-columns:auto auto;gap:2px 9px;align-items:baseline}.readinessFacts b{font-size:16px}.readinessFacts span{font-size:10px;color:#a9bed0;text-transform:uppercase;letter-spacing:.5px}
.artifactCard{transition:.16s ease}.artifactCard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,35,55,.06);border-color:#c5d7e6}
@media(max-width:900px){.readinessBanner{grid-template-columns:1fr}.readinessFacts{grid-template-columns:auto 1fr}}

.demoStrip{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#eef5fa;border:1px solid #d7e6f0;border-radius:11px;padding:10px 13px;margin-top:12px}.demoStrip b{font-size:11.5px;color:#183a58}.demoStrip>div>span{display:block;font-size:10.5px;color:#6c8194;margin-top:2px}.demoSteps{display:flex;gap:6px;flex-wrap:wrap}.demoSteps span{display:inline-block!important;background:white;border:1px solid #d6e3ed;color:#4a657c!important;border-radius:999px;padding:5px 8px;margin:0!important;font-size:9.5px!important;font-weight:700}.artifactCard[data-open]{cursor:pointer}.artifactOpen{margin-top:12px;font-size:10px;font-weight:800;color:var(--blue)}.artifactCard[data-open]:focus,.artifactCard[data-open]:hover{outline:none;border-color:#9cc5e2}@media(max-width:900px){.demoStrip{align-items:flex-start;flex-direction:column}}
.repoConnect{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.repoConnectHead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.repoConnectHead h2{margin:3px 0 6px;font-size:20px}.repoConnectHead p{font-size:12px}.repoAgnosticBadge{white-space:nowrap;font-size:9px;font-weight:850;letter-spacing:1.1px;color:#296d9e;background:#eaf4fb;border:1px solid #d3e7f5;padding:7px 9px;border-radius:999px}
.dropZone{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1.5px dashed #b9cddd;background:linear-gradient(180deg,#fbfdff,#f6fafe);border-radius:12px;padding:20px;cursor:pointer;transition:.16s ease}.dropZone:hover,.dropZone.dragging{border-color:#5d9fcf;background:#eef7fd}.uploadIcon{width:44px;height:44px;border-radius:12px;background:#e7f3fb;color:#2d82bd;display:grid;place-items:center;font-size:25px;font-weight:800}.dropZone strong{display:block;font-size:14px;color:#1d3448}.dropZone span{display:block;margin-top:3px;font-size:11px;color:var(--muted)}.primaryBtn{background:#0e3454;color:white;border-color:#0e3454;padding:11px 16px}.primaryBtn:hover{border-color:#0e3454;background:#123e64}.ghostBtn{background:#f8fafc}
.gitlabDetails{margin-top:12px}.gitlabDetails summary{cursor:pointer;font-size:11px;font-weight:750;color:#536b80;user-select:none}.gitlabDetails .gitlab{margin-top:10px;box-shadow:none;background:#fbfcfd}
.devDemoPanel{margin-top:10px;padding:9px 11px;border:1px dashed #d6b66b;background:#fff9e8;border-radius:9px;font-size:10px;color:#72581a}.devDemoPanel b{margin-right:8px}.devDemoPanel button{font-size:9px;padding:5px 7px;margin-left:5px}
@media(max-width:900px){.repoConnectHead{flex-direction:column}.dropZone{grid-template-columns:1fr;text-align:center}.uploadIcon{margin:auto}.repoAgnosticBadge{align-self:flex-start}}

/* Premium NHCI analysis loader */
.analysisOverlay{position:fixed;inset:0;background:rgba(7,24,40,.56);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity .24s ease}
.analysisOverlay.visible{opacity:1;pointer-events:auto}.analysisLoaderCard{width:min(560px,calc(100vw - 44px));background:linear-gradient(145deg,#071c30,#0d3150 66%,#123f62);border:1px solid rgba(151,201,236,.22);border-radius:22px;padding:34px 38px 30px;color:white;box-shadow:0 30px 90px rgba(2,13,24,.42);text-align:center;position:relative;overflow:hidden}
.analysisLoaderCard:before{content:"";position:absolute;inset:-45% 20% auto -25%;height:230px;background:radial-gradient(circle,rgba(83,178,232,.2),transparent 68%);pointer-events:none}.nhciLoader{height:64px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:15px;letter-spacing:.08em}.nhciLoader span{display:inline-grid;place-items:center;width:44px;height:52px;border-radius:12px;border:1px solid transparent;background:transparent;font-size:29px;font-weight:850;color:transparent;opacity:0;transform:translateY(5px) scale(.94);animation:nhciPulse 3.2s infinite cubic-bezier(.2,.7,.2,1)}.nhciLoader span:nth-child(1){animation-delay:0s}.nhciLoader span:nth-child(2){animation-delay:.8s}.nhciLoader span:nth-child(3){animation-delay:1.6s}.nhciLoader span:nth-child(4){animation-delay:2.4s}@keyframes nhciPulse{0%,20%{color:#fff;opacity:1;border-color:rgba(122,205,247,.66);background:rgba(69,161,217,.18);box-shadow:0 0 0 5px rgba(83,178,232,.06),0 8px 25px rgba(42,148,211,.14);transform:translateY(0) scale(1)}24%,100%{color:transparent;opacity:0;border-color:transparent;background:transparent;box-shadow:none;transform:translateY(5px) scale(.94)}}
.analysisLoaderTitle{font-size:20px;font-weight:800;letter-spacing:-.15px}.analysisStage{font-size:12.5px;color:#bcd4e6;margin-top:8px;min-height:20px;transition:opacity .2s ease}.analysisProgress{height:5px;background:rgba(255,255,255,.1);border-radius:999px;margin:20px auto 13px;max-width:390px;overflow:hidden}.analysisProgress span{display:block;height:100%;width:8%;border-radius:999px;background:linear-gradient(90deg,#5aa9d7,#b9e5fb);transition:width .55s cubic-bezier(.2,.75,.2,1);box-shadow:0 0 18px rgba(112,198,239,.34)}.analysisTrust{font-size:9.5px;letter-spacing:.7px;text-transform:uppercase;color:#7297b2}
@media(max-width:650px){.analysisLoaderCard{padding:28px 20px}.nhciLoader span{width:39px;height:48px;font-size:26px}}
