/* QUANTUMNEX - Quantum & Photonics Engineering Intelligence Platform */
@font-face{font-family:"Poppins";src:url(../fonts/poppins-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --bg:#060A13;--bg2:#0A1020;--panel:#0E1628;--panel2:#121C33;--line:#1E2A45;--line2:#2A3A5E;
  --text:#E7EEF9;--muted:#8D9DBB;--dim:#5E6F90;
  --cyan:#22D3EE;--blue:#3B82F6;--violet:#8B5CF6;--pink:#EC4899;--green:#34D399;--amber:#FBBF24;--red:#F87171;
  --c1:#22D3EE;--c2:#8B5CF6;--c3:#F59E0B;--c4:#34D399;--c5:#EC4899;
  --grad:linear-gradient(135deg,#22D3EE 0%,#3B82F6 45%,#8B5CF6 100%);
  --font:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:14px;--r2:10px;--shadow:0 10px 40px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:400 14.5px/1.6 var(--font);-webkit-font-smoothing:antialiased}
body{min-height:100vh;background:radial-gradient(1200px 600px at 85% -10%,rgba(59,130,246,.10),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(139,92,246,.10),transparent 60%),var(--bg)}
a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,3.2vw,2.5rem)}h2{font-size:1.35rem}h3{font-size:1.05rem}h4{font-size:.92rem}
p{margin:0}
code,.mono{font-family:var(--mono);font-size:.88em}
code{background:rgba(34,211,238,.08);color:#9BE7F4;padding:1px 6px;border-radius:6px}
pre{background:#050913;border:1px solid var(--line);border-radius:var(--r2);padding:14px;overflow:auto;font:12.5px/1.55 var(--mono);color:#C8D6EE;margin:0}
.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:.86rem}.xs{font-size:.76rem}
.eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);font-weight:500}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stack{display:grid;gap:12px}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* cards */
.card{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent),var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}
.card.pad-lg{padding:24px}
.card h3{margin-bottom:4px}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.glow{position:relative}.glow:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:var(--grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;pointer-events:none}
.tile{padding:16px 18px}.tile .k{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.tile .v{font-size:1.8rem;font-weight:700;margin-top:4px}.tile .s{font-size:.8rem;color:var(--dim)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--line2);font-size:.75rem;color:var(--muted);background:rgba(255,255,255,.02);white-space:nowrap}
.chip.c{color:var(--cyan);border-color:rgba(34,211,238,.35)}.chip.v{color:#C4B5FD;border-color:rgba(139,92,246,.4)}.chip.g{color:var(--green);border-color:rgba(52,211,153,.35)}.chip.a{color:var(--amber);border-color:rgba(251,191,36,.35)}.chip.r{color:var(--red);border-color:rgba(248,113,113,.35)}
.badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:6px;text-transform:uppercase}
.badge.ok{background:rgba(52,211,153,.15);color:var(--green)}.badge.warn{background:rgba(251,191,36,.15);color:var(--amber)}.badge.risk{background:rgba(248,113,113,.15);color:var(--red)}

/* buttons & forms */
button,.btn{font:500 .88rem var(--font);display:inline-flex;align-items:center;gap:8px;border:0;border-radius:10px;padding:9px 16px;cursor:pointer;background:var(--grad);color:#04101C;text-decoration:none;white-space:nowrap;transition:transform .12s,filter .12s}
button:hover,.btn:hover{filter:brightness(1.1);text-decoration:none}button:active{transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed}
.btn.ghost,button.ghost{background:transparent;color:var(--text);border:1px solid var(--line2)}
.btn.ghost:hover,button.ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.btn.sm,button.sm{padding:5px 11px;font-size:.8rem;border-radius:8px}
button svg,.btn svg{width:16px;height:16px}
label.f{display:block;font-size:.78rem;color:var(--muted);margin-bottom:5px}
input,select,textarea{width:100%;font:400 .9rem var(--font);color:var(--text);background:#081022;border:1px solid var(--line2);border-radius:9px;padding:9px 11px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.12)}
textarea{min-height:90px;resize:vertical}
input[type=range]{padding:0;height:4px;background:var(--line2);border:0;border-radius:4px;-webkit-appearance:none;appearance:none;margin:10px 0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(34,211,238,.2);cursor:pointer}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--cyan);border:0}
.field{display:grid;gap:2px}
.field .ftop{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.field .ftop label{font-size:.8rem;color:var(--muted)}
.field .ftop input{width:110px;padding:4px 8px;font:500 .82rem var(--mono);text-align:right}
.field .unit{font-size:.72rem;color:var(--dim);margin-left:4px}
.err{color:var(--red);font-size:.85rem;min-height:1em}

/* app shell */
.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;overflow:auto;border-right:1px solid var(--line);background:rgba(6,10,19,.85);backdrop-filter:blur(8px);padding:18px 14px;display:flex;flex-direction:column;gap:14px}
.brand{display:flex;align-items:center;gap:10px;padding:4px 6px 12px;border-bottom:1px solid var(--line)}
.brand b{font-weight:700;letter-spacing:.16em;font-size:1rem}.brand small{display:block;font-size:.62rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.nav-grp{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);padding:10px 10px 4px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--muted);font-size:.88rem;text-decoration:none}
.nav a svg{width:17px;height:17px;flex:none}
.nav a:hover{background:rgba(255,255,255,.03);color:var(--text)}
.nav a.on{background:linear-gradient(90deg,rgba(34,211,238,.14),rgba(139,92,246,.06));color:#fff;box-shadow:inset 2px 0 0 var(--cyan)}
.nav a .n{margin-left:auto;font-size:.66rem;color:var(--dim);font-family:var(--mono)}
.side .foot{margin-top:auto;font-size:.72rem;color:var(--dim);padding:8px}
.main{min-width:0}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:12px 28px;border-bottom:1px solid var(--line);background:rgba(6,10,19,.8);backdrop-filter:blur(10px)}
.top .crumbs{font-size:.84rem;color:var(--muted)}.top .crumbs b{color:var(--text);font-weight:500}
.top .user{margin-left:auto;display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--grad);display:grid;place-items:center;color:#04101C;font-weight:700;font-size:.8rem}
.menu-btn{display:none;background:transparent;color:var(--text);padding:6px;border:1px solid var(--line2)}
.content{padding:26px 28px 60px;max-width:1500px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.page-head p{color:var(--muted);max-width:860px;margin-top:6px}
@media (max-width:960px){.shell{grid-template-columns:1fr}.side{position:fixed;z-index:50;left:0;top:0;width:270px;transform:translateX(-100%);transition:transform .2s}.side.open{transform:none}.menu-btn{display:inline-flex}.content{padding:18px 16px 50px}.top{padding:10px 16px}}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}
.tabs button{background:transparent;color:var(--muted);border-radius:0;padding:10px 14px;border-bottom:2px solid transparent;font-weight:500}
.tabs button:hover{color:var(--text);filter:none}
.tabs button.on{color:#fff;border-bottom-color:var(--cyan)}
.tab-pane{display:none}.tab-pane.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* studio layout */
.studio{display:grid;grid-template-columns:300px minmax(0,1fr) 360px;gap:16px;align-items:start}
@media (max-width:1300px){.studio{grid-template-columns:280px minmax(0,1fr)}.studio>.results-col{grid-column:1/-1}}
@media (max-width:820px){.studio{grid-template-columns:1fr}}
.controls{display:grid;gap:12px}
.viz{min-height:320px}
.viz canvas,.viz svg{width:100%;display:block}
.results table{width:100%;border-collapse:collapse;font-size:.84rem}
.results td{padding:7px 4px;border-bottom:1px dashed var(--line);vertical-align:top}
.results td.v{text-align:right;font-family:var(--mono);color:#fff;white-space:nowrap}
.results td.u{color:var(--dim);font-size:.76rem;white-space:nowrap;padding-left:6px}
.results .fx{display:block;color:var(--dim);font-size:.72rem;font-family:var(--mono)}
.verdict{border-radius:10px;padding:10px 12px;font-size:.86rem;margin-bottom:12px;border:1px solid}
.verdict.ok{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.3);color:#A7F3D0}
.verdict.warn{background:rgba(251,191,36,.08);border-color:rgba(251,191,36,.3);color:#FDE68A}
.verdict.risk{background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.3);color:#FECACA}
.insights{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:.84rem}.insights li{margin:4px 0}
.callout{border-left:3px solid var(--violet);background:rgba(139,92,246,.07);padding:12px 14px;border-radius:0 10px 10px 0;font-size:.88rem;color:#D8D2FB}
.callout b{color:#fff}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.86rem}.kv dt{color:var(--muted)}.kv dd{margin:0}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:.86rem}
.tbl th{text-align:left;font-weight:500;color:var(--muted);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;padding:9px 10px;border-bottom:1px solid var(--line2)}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
.tbl tr:hover td{background:rgba(255,255,255,.015)}
.tbl input{padding:5px 8px;font-family:var(--mono);font-size:.82rem}
.scroll-x{overflow-x:auto}

/* chart */
.chart text{fill:var(--muted);font:11px var(--font)}
.chart .axis{stroke:var(--line2)}.chart .gridl{stroke:var(--line);stroke-dasharray:2 4}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.76rem;color:var(--muted);margin-top:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* drawer / modal / toast */
.overlay{position:fixed;inset:0;background:rgba(2,5,12,.7);backdrop-filter:blur(4px);z-index:80;display:none}
.overlay.on{display:block}
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(760px,100vw);background:var(--bg2);border-left:1px solid var(--line);z-index:90;transform:translateX(100%);transition:transform .25s;overflow:auto;padding:24px}
.drawer.on{transform:none}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.98);width:min(520px,94vw);max-height:90vh;overflow:auto;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r);padding:22px;z-index:95;display:none;box-shadow:var(--shadow)}
.modal.on{display:block}
.toasts{position:fixed;right:18px;bottom:18px;z-index:120;display:grid;gap:8px}
.toast{background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--cyan);padding:10px 14px;border-radius:10px;font-size:.86rem;box-shadow:var(--shadow);animation:fade .2s}
.toast.err{border-left-color:var(--red)}.toast.ok{border-left-color:var(--green)}
.x-btn{background:transparent;color:var(--muted);padding:4px;border:1px solid var(--line2)}

/* circuit composer */
.circuit{overflow-x:auto;padding:6px 0}
.qrow{display:flex;align-items:center;height:52px;position:relative}
.qrow .ql{width:58px;flex:none;font:500 .85rem var(--mono);color:var(--muted)}
.qrow .wire{position:absolute;left:58px;right:0;top:50%;height:1px;background:var(--line2)}
.qcell{position:relative;width:52px;height:52px;flex:none;display:grid;place-items:center;cursor:pointer;z-index:1}
.qcell:hover:after{content:"";position:absolute;inset:8px;border:1px dashed var(--line2);border-radius:8px}
.gate{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;font:700 .82rem var(--mono);color:#04101C;background:var(--cyan);box-shadow:0 0 18px rgba(34,211,238,.25)}
.gate.H{background:#60A5FA}.gate.X,.gate.TGT{background:#F472B6}.gate.Y{background:#FB923C}.gate.Z{background:#A78BFA}.gate.S,.gate.T,.gate.SDG,.gate.TDG{background:#34D399}.gate.RX,.gate.RY,.gate.RZ{background:#FBBF24}.gate.M{background:#E5E7EB}.gate.SWAP{background:#94A3B8}
.gate.CTL{width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:none}
.gate.TGT{border-radius:50%;width:30px;height:30px;font-size:1.1rem}
.vline{position:absolute;width:2px;background:#fff;left:50%;transform:translateX(-1px);z-index:0}
.palette{display:flex;flex-wrap:wrap;gap:6px}
.palette .gate{cursor:pointer;width:42px;height:34px;font-size:.76rem;opacity:.75}
.palette .gate.sel{opacity:1;outline:2px solid #fff;outline-offset:2px}
.hist{display:flex;align-items:flex-end;gap:6px;height:180px;padding-top:10px;border-bottom:1px solid var(--line2)}
.hist .b{flex:1;min-width:14px;background:var(--grad);border-radius:5px 5px 0 0;position:relative}
.hist .b span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:.66rem;color:var(--muted);font-family:var(--mono);white-space:nowrap}
.hist-l{display:flex;gap:6px}.hist-l div{flex:1;min-width:14px;text-align:center;font:.68rem var(--mono);color:var(--dim)}

/* copilot */
.chat{display:grid;gap:14px}
.msg{max-width:900px;padding:14px 16px;border-radius:14px;border:1px solid var(--line)}
.msg.q{justify-self:end;background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.3)}
.msg.a{background:var(--panel)}
.src{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.82rem;color:var(--muted)}
.src b{color:var(--text)}

/* landing */
.land-nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:22px;padding:14px clamp(16px,4vw,48px);background:rgba(6,10,19,.75);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.land-nav .links{display:flex;gap:20px;margin-left:auto;font-size:.88rem}.land-nav .links a{color:var(--muted)}.land-nav .links a:hover{color:#fff;text-decoration:none}
@media (max-width:820px){.land-nav .links{display:none}}
.hero{position:relative;overflow:hidden;padding:clamp(60px,9vw,120px) clamp(16px,4vw,48px) 70px;border-bottom:1px solid var(--line)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.hero .in{position:relative;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
@media (max-width:980px){.hero .in{grid-template-columns:1fr}}
.hero h1{font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.08}
.hero .lede{font-size:1.08rem;color:#B7C6E0;margin:18px 0 26px;max-width:640px}
.section{padding:70px clamp(16px,4vw,48px);max-width:1280px;margin:0 auto}
.section .sh{max-width:760px;margin-bottom:28px}.section .sh p{color:var(--muted);margin-top:8px}
.mod-card{display:flex;flex-direction:column;gap:10px;transition:transform .15s,border-color .15s}
.mod-card:hover{transform:translateY(-3px);border-color:var(--line2)}
.mod-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(34,211,238,.1);color:var(--cyan)}
.mod-ico svg{width:24px;height:24px}
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s}
@media (max-width:900px){.flow-steps{grid-template-columns:1fr 1fr}}
.flow-steps .card:before{counter-increment:s;content:"0" counter(s);font:700 .8rem var(--mono);color:var(--cyan);display:block;margin-bottom:8px}
.foot-land{border-top:1px solid var(--line);padding:30px clamp(16px,4vw,48px);color:var(--dim);font-size:.82rem;display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between}

/* auth page */
.auth{display:grid;grid-template-columns:1.1fr .9fr;min-height:100vh}
.auth .art{position:relative;overflow:hidden;padding:48px;display:flex;flex-direction:column;border-right:1px solid var(--line)}
.auth .art canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.6}
.auth .art>*{position:relative}
.auth .form{display:grid;place-items:center;padding:30px}
.auth form{width:min(400px,100%);display:grid;gap:14px}
@media (max-width:900px){.auth{grid-template-columns:1fr}.auth .art{display:none}}

.swatch{width:100%;height:56px;border-radius:10px;border:1px solid var(--line2)}
.pill-tabs{display:inline-flex;background:#081022;border:1px solid var(--line2);border-radius:10px;padding:3px;gap:2px}
.pill-tabs button{background:transparent;color:var(--muted);padding:6px 12px;font-size:.8rem;border-radius:8px}
.pill-tabs button.on{background:var(--panel2);color:#fff}
.hr{height:1px;background:var(--line);margin:14px 0}
.uc-card{cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:transform .15s,border-color .15s}
.uc-card:hover{transform:translateY(-2px);border-color:var(--cyan)}
.kpi-list{display:grid;gap:6px}.kpi-list div{display:flex;justify-content:space-between;gap:10px;font-size:.84rem;border-bottom:1px dashed var(--line);padding-bottom:5px}.kpi-list b{color:var(--green);font-weight:500}
ol.steps{margin:0;padding-left:20px;color:var(--muted);font-size:.88rem}ol.steps li{margin:4px 0}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.skeleton{background:linear-gradient(90deg,var(--panel) 0%,var(--panel2) 50%,var(--panel) 100%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px;height:14px}
@keyframes sk{to{background-position:-200% 0}}
@media print{.side,.top,.no-print{display:none!important}.shell{display:block}body{background:#fff;color:#000}}
