/* ============================================================
   NeoOS deck — Innosoft brand system (identity.is.sa) mapped onto
   shadcn/ui design tokens. Single committed dark world: the brand
   guide asks for "dark environments with blue accent lighting".
   ============================================================ */
:root{
  /* Innosoft brand */
  --brand-blue:#2D7FF9;
  --brand-cyan:#00D4FF;
  --brand-deep:#1A5FD4;
  --brand-black:#1A1A1F;
  --brand-ink:#0A0A0F;
  --brand-night:#1A1A2E;
  --brand-off:#F0F0F5;
  --brand-gray:#8A8A9A;
  --brand-violet:#865CFD;
  --brand-green:#39D94E;
  --brand-amber:#F49E08;
  --brand-red:#F10909;
  --brand-cyan-2:#4BE7F8;
  --brand-violet-tint:#D8CBFE;
  --brand-amber-tint:#F8EAD1;

  /* shadcn/ui tokens (dark theme), brand-tuned */
  --background:#0A0A0F;
  --foreground:#F0F0F5;
  --card:#12121A;
  --card-foreground:#F0F0F5;
  --popover:#12121A;
  --primary:#2D7FF9;
  --primary-foreground:#FFFFFF;
  --secondary:#1E1E2E;
  --secondary-foreground:#F0F0F5;
  --muted:#1A1A2E;
  --muted-foreground:#8A8A9A;
  --accent:#1E1E2E;
  --accent-foreground:#F0F0F5;
  --destructive:#F10909;
  --border:rgba(240,240,245,.10);
  --input:rgba(240,240,245,.14);
  --ring:#2D7FF9;
  --radius:0.5rem;

  /* semantic accent text on dark ground */
  --t-green:#7CEB8B;
  --t-amber:#F9C56A;
  --t-violet:#C4ADFF;
  --t-cyan2:#7FE8FF;
  --surface-2:var(--surface-2);

  --font-sans:"Outfit",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-ar:"Alexandria","Outfit",system-ui,sans-serif;
  --shadow-card:0 1px 0 rgba(255,255,255,.03) inset, 0 8px 30px rgba(0,0,0,.35);
  --glow:0 0 0 1px rgba(45,127,249,.35), 0 12px 40px rgba(45,127,249,.25);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--background);color:var(--foreground);
  font-family:var(--font-sans);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow:hidden;
}
[dir="rtl"],.ar{font-family:var(--font-ar);line-height:1.8}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.1;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
a{color:inherit}
strong{font-weight:600}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- Stage (16:9, scaled to viewport) ---------- */
#viewport{position:fixed;inset:0;display:grid;place-items:center;background:var(--background)}
#stage{width:1280px;height:720px;position:relative;transform-origin:center center;overflow:hidden}
.slide{
  position:absolute;inset:0;padding:64px 72px;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0A0A0F 0%,#1A1A2E 100%);
  opacity:0;visibility:hidden;transform:translateX(24px);
  transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),visibility 0s .4s;
}
.slide.active{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.slide.prev{transform:translateX(-24px)}
@media (prefers-reduced-motion:reduce){.slide{transition:none}}
.slide::after{ /* radial blue glow, per brand OG banner treatment */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 85% 0%,rgba(45,127,249,.18),transparent 70%);
}
.slide>*{position:relative;z-index:1}

/* ---------- Chrome ---------- */
.chrome-top{position:absolute;left:72px;right:72px;top:28px;display:flex;align-items:center;justify-content:space-between;z-index:2;font-size:12px;color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase}
.chrome-top .wm{display:flex;align-items:center;gap:8px;color:var(--foreground);text-transform:none;letter-spacing:0;font-weight:600;font-size:14px}
.chrome-bottom{position:absolute;left:72px;right:72px;bottom:22px;display:flex;align-items:center;justify-content:space-between;z-index:2;font-size:12px;color:var(--muted-foreground)}
.chrome-bottom .by{display:flex;align-items:center;gap:6px}
.chrome-bottom .by svg{width:14px;height:15px;color:var(--brand-blue)}
#progress{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--brand-blue),var(--brand-cyan));width:0;z-index:3;transition:width .3s ease-out}
#counter{font-variant-numeric:tabular-nums}
#help{position:fixed;right:16px;bottom:12px;font-size:12px;color:var(--muted-foreground);z-index:10;display:flex;gap:6px;align-items:center;font-family:var(--font-sans)}
.kbd{display:inline-flex;align-items:center;height:20px;padding:0 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--secondary);font-size:11px;color:var(--foreground)}

/* ---------- Type scale ---------- */
.eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-blue);font-weight:600;margin-bottom:14px}
.display{font-size:84px;font-weight:700;line-height:.98;letter-spacing:-.025em}
.h1{font-size:52px;font-weight:600;letter-spacing:-.02em;line-height:1.05}
.h2{font-size:40px;font-weight:600;letter-spacing:-.02em}
.h3{font-size:22px;font-weight:600}
.lead{font-size:22px;color:var(--muted-foreground);font-weight:400;max-width:60ch;line-height:1.45}
.sub{font-size:16px;color:var(--muted-foreground);max-width:65ch}
.small{font-size:13px;color:var(--muted-foreground)}
.grad{background:linear-gradient(135deg,#2D7FF9,#00D4FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-accent{background:linear-gradient(135deg,#2D7FF9,#865CFD,#4BE7F8);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- shadcn/ui components (CSS port) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border-radius:calc(var(--radius) - 2px);font-size:14px;font-weight:500;height:36px;padding:0 16px;border:1px solid transparent;cursor:default;transition:background .2s ease-out,color .2s,box-shadow .2s;font-family:inherit}
.btn-default{background:var(--primary);color:var(--primary-foreground);box-shadow:0 1px 2px rgba(0,0,0,.3)}
.btn-secondary{background:var(--secondary);color:var(--secondary-foreground)}
.btn-outline{background:transparent;border-color:var(--input);color:var(--foreground)}
.btn-ghost{background:transparent;color:var(--foreground)}
.btn-sm{height:32px;padding:0 12px;font-size:13px}
.btn-lg{height:44px;padding:0 24px;font-size:16px}
.btn-icon{width:32px;height:32px;padding:0}
.btn svg{width:16px;height:16px}

.card{background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}
.card-header{display:flex;flex-direction:column;gap:6px;padding:20px 20px 0}
.card-title{font-size:16px;font-weight:600;line-height:1.2}
.card-description{font-size:14px;color:var(--muted-foreground)}
.card-content{padding:20px}
.card-footer{display:flex;align-items:center;padding:0 20px 20px}
.card.lift{border-color:rgba(45,127,249,.45);box-shadow:var(--glow)}

.badge{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid transparent;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}
.badge-default{background:var(--primary);color:#fff}
.badge-secondary{background:var(--secondary);color:var(--secondary-foreground)}
.badge-outline{border-color:var(--input);color:var(--foreground)}
.badge-success{background:rgba(57,217,78,.15);color:var(--t-green);border-color:rgba(57,217,78,.3)}
.badge-warning{background:rgba(244,158,8,.15);color:var(--t-amber);border-color:rgba(244,158,8,.3)}
.badge-violet{background:rgba(134,92,253,.16);color:var(--t-violet);border-color:rgba(134,92,253,.35)}
.badge-cyan{background:rgba(0,212,255,.12);color:var(--t-cyan2);border-color:rgba(0,212,255,.3)}
.badge-danger{background:rgba(241,9,9,.14);color:#FF8A8A;border-color:rgba(241,9,9,.3)}

.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-weight:500;color:var(--muted-foreground);height:40px;padding:0 12px;border-bottom:1px solid var(--border);font-size:13px}
.table td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tr:hover td{background:rgba(240,240,245,.02)}

.tabs-list{display:inline-flex;height:36px;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--muted);padding:4px;color:var(--muted-foreground);gap:2px}
.tabs-trigger{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:calc(var(--radius) - 2px);padding:4px 12px;font-size:13px;font-weight:500;height:28px}
.tabs-trigger.active{background:var(--background);color:var(--foreground);box-shadow:0 1px 2px rgba(0,0,0,.4)}

.avatar{display:inline-flex;width:32px;height:32px;border-radius:9999px;overflow:hidden;align-items:center;justify-content:center;background:var(--secondary);font-size:12px;font-weight:600;color:var(--foreground);flex:none}
.avatar.sm{width:24px;height:24px;font-size:10px}
.avatar.blue{background:linear-gradient(135deg,#2D7FF9,#00D4FF);color:#fff}

.input{display:flex;height:36px;width:100%;border-radius:calc(var(--radius) - 2px);border:1px solid var(--input);background:transparent;padding:0 12px;font-size:14px;color:var(--foreground);align-items:center;gap:8px}
.input .ph{color:var(--muted-foreground)}
.separator{height:1px;background:var(--border);width:100%}
.separator.v{width:1px;height:auto;align-self:stretch}

.checkbox{width:16px;height:16px;border-radius:4px;border:1px solid var(--input);display:inline-flex;align-items:center;justify-content:center;flex:none}
.checkbox.checked{background:var(--primary);border-color:var(--primary)}
.checkbox.checked::after{content:"";width:8px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.progress{height:8px;width:100%;border-radius:9999px;background:var(--secondary);overflow:hidden}
.progress>i{display:block;height:100%;background:var(--primary);border-radius:inherit}
.switch{width:36px;height:20px;border-radius:9999px;background:var(--primary);position:relative;display:inline-block;flex:none}
.switch::after{content:"";position:absolute;top:2px;left:18px;width:16px;height:16px;border-radius:50%;background:#fff}
.switch.off{background:var(--input)}
.switch.off::after{left:2px}
.icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- Layout helpers ---------- */
.row{display:flex;gap:16px;align-items:center}
.col{display:flex;flex-direction:column;gap:16px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.between{justify-content:space-between}
.grow{flex:1;min-height:0}
.mt-auto{margin-top:auto}
.dim{color:var(--muted-foreground)}
.slide-head{margin-bottom:28px}
.slide-head .h1{margin-bottom:10px}

/* ---------- Cover ---------- */
.cover{justify-content:center}
.cover::after{background:radial-gradient(50% 60% at 80% 50%,rgba(45,127,249,.28),transparent 70%),radial-gradient(30% 40% at 20% 100%,rgba(0,212,255,.12),transparent 70%)}
.hex-grid{position:absolute;right:-40px;top:60px;width:560px;height:600px;opacity:.9;z-index:0}
.logo-lockup{display:flex;align-items:center;gap:18px;margin-bottom:34px}
.neo-mark{width:64px;height:64px}
.cover .ar{font-size:24px;color:var(--muted-foreground);margin-top:18px;font-weight:400}

/* ---------- App mockup ---------- */
.app{display:grid;grid-template-columns:200px 1fr 320px;height:100%;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);box-shadow:var(--shadow-card);font-size:13px}
.app .sidebar{background:var(--surface-2);border-right:1px solid var(--border);padding:14px 10px;display:flex;flex-direction:column;gap:2px}
.app .sidebar .brand{display:flex;align-items:center;gap:8px;padding:6px 8px 14px;font-weight:600;font-size:14px}
.app .sidebar .brand svg{width:22px;height:22px}
.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;color:var(--muted-foreground);font-weight:500}
.nav-item.active{background:var(--accent);color:var(--foreground)}
.nav-item .icon{width:15px;height:15px}
.nav-group{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);padding:14px 10px 4px}
.app .main{padding:16px 20px;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;background:var(--card);overflow:hidden}
.app .topbar{display:flex;align-items:center;justify-content:space-between}
.app .topbar .input{width:260px;height:32px;font-size:12px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.kpi{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px}
.kpi .l{font-size:12px;color:var(--muted-foreground)}
.kpi .v{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-top:2px}
.kpi .d{font-size:11px;margin-top:2px}
.panel{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;min-width:0;min-height:0;overflow:hidden}
.panel .ph-title{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:8px;font-size:13px}
.task{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--border)}
.task:last-child{border-bottom:0}
.task .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task.done .t{text-decoration:line-through;color:var(--muted-foreground)}
.app .chat{background:var(--surface-2);border-left:1px solid var(--border);display:flex;flex-direction:column;min-width:0}
.chat-head{padding:10px 14px;flex:none;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-weight:600}
.chat-body{padding:12px 14px;display:flex;flex-direction:column;gap:9px;flex:1;min-height:0;overflow:hidden}
.msg{max-width:92%;padding:8px 11px;border-radius:10px;font-size:12.5px;line-height:1.45}
.msg.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:3px}
.msg.ai{align-self:flex-start;background:var(--secondary);border-bottom-left-radius:3px}
.trace{display:flex;flex-direction:column;gap:6px;font-size:12px}
.trace .step{display:flex;align-items:center;gap:8px;color:var(--muted-foreground)}
.trace .step b{color:var(--foreground);font-weight:500}
.dot{width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:9px}
.dot.ok{background:rgba(57,217,78,.18);color:var(--t-green)}
.dot.run{border:2px solid var(--brand-blue);border-right-color:transparent;animation:spin 1.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.chat-foot{padding:10px 14px;border-top:1px solid var(--border);flex:none}
.file{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px}
.file .fi{width:28px;height:28px;border-radius:6px;background:rgba(45,127,249,.18);color:var(--brand-blue);display:grid;place-items:center;font-size:10px;font-weight:700}

/* ---------- Connectors hub ---------- */
.hub{position:relative;height:100%}
.hub>svg{position:absolute;inset:0;width:100%;height:100%}
.hub .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:200px;height:200px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 40%,#1E2A4A,var(--surface-2) 70%);border:1px solid rgba(45,127,249,.5);box-shadow:0 0 60px rgba(45,127,249,.35)}
.hub .core b{display:block;font-size:22px;font-weight:700}
.hub .core span{font-size:12px;color:var(--muted-foreground)}
.node{position:absolute;width:172px;transform:translate(-50%,-50%)}
.node .card-content{padding:12px 14px;display:flex;align-items:center;gap:10px}
.node .ni{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex:none}
.node .nt{font-weight:600;font-size:13px;line-height:1.2}
.node .ns{font-size:11px;color:var(--muted-foreground)}

/* ---------- Steps timeline ---------- */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;position:relative}
.steps::before{content:"";position:absolute;left:36px;right:36px;top:22px;height:2px;background:linear-gradient(90deg,#2D7FF9,#00D4FF)}
.step-card{position:relative;padding-top:0}
.step-card .n{width:44px;height:44px;border-radius:50%;background:var(--card);border:2px solid var(--brand-blue);color:var(--brand-blue);display:grid;place-items:center;font-weight:700;font-size:16px;margin-bottom:14px;position:relative;z-index:1;font-variant-numeric:tabular-nums}
.step-card .n.done{background:var(--brand-blue);color:#fff}
.step-card h4{font-size:16px;margin-bottom:6px}
.step-card p{font-size:13px;color:var(--muted-foreground)}

/* ---------- Skills library ---------- */
.skill{display:flex;flex-direction:column;gap:8px}
.skill .card-content{display:flex;flex-direction:column;gap:8px;padding:16px}
.skill .si{width:36px;height:36px;border-radius:8px;display:grid;place-items:center}
.skill .si .icon{width:18px;height:18px}
.skill h4{font-size:15px}
.skill p{font-size:12.5px;color:var(--muted-foreground)}
.skill .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}

/* ---------- Architecture ---------- */
.arch{display:grid;grid-template-rows:auto auto auto auto;gap:14px;height:100%}
.layer{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:stretch}
.layer .ll{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);padding-top:14px;font-weight:600}
.layer .boxes{display:grid;gap:10px}
.box{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:13px;display:flex;flex-direction:column;gap:3px;justify-content:center}
.box b{font-weight:600;font-size:14px}
.box span{color:var(--muted-foreground);font-size:12px}
.box.core{border-color:rgba(45,127,249,.5);background:linear-gradient(135deg,rgba(45,127,249,.14),rgba(0,212,255,.06))}
.arrow-down{text-align:center;color:var(--brand-blue);font-size:12px;letter-spacing:.1em;text-transform:uppercase}

/* ---------- Pricing ---------- */
.plan .card-header{padding:22px 22px 0}
.plan .price{font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1;margin:14px 0 2px;font-variant-numeric:tabular-nums}
.plan .price small{font-size:14px;color:var(--muted-foreground);font-weight:400;letter-spacing:0}
.plan .per{font-size:13px;color:var(--muted-foreground)}
.plan ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px}
.plan li{display:flex;gap:8px;align-items:flex-start}
.plan li .icon{width:14px;height:14px;margin-top:3px;color:var(--brand-blue)}
.plan .card-footer{padding:20px 22px 22px}
.plan .btn{width:100%}
.plan-enterprise{background:linear-gradient(160deg,#12121A,#1A1A2E)}

/* ---------- Comparison ---------- */
.cmp{font-size:12px}
.cmp th{font-size:12px;height:auto;padding:8px 10px;vertical-align:bottom;line-height:1.25}
.cmp td{padding:7px 12px;font-size:13px;line-height:1.35}
.cmp th:first-child,.cmp td:first-child{color:var(--muted-foreground);font-weight:500;width:170px}
.cmp .small{font-size:11px}
.cmp .neo{background:rgba(45,127,249,.08)}
.cmp th.neo{color:var(--foreground)}
.cmp .yes{color:var(--t-green)}
.cmp .no{color:var(--muted-foreground)}
.cmp .part{color:var(--t-amber)}

/* ---------- Deployment ---------- */
.deploy .card-content{display:flex;flex-direction:column;gap:12px}
.deploy .fact{display:grid;grid-template-columns:120px 1fr;gap:12px;font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--border)}
.deploy .fact:last-child{border-bottom:0}
.deploy .fact span:first-child{color:var(--muted-foreground)}

/* ---------- Roadmap ---------- */
.road{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.road .card-content{padding:18px}
.road .q{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-blue);font-weight:600;margin-bottom:6px}
.road ul{margin:12px 0 0;padding-left:18px;font-size:13px;color:var(--muted-foreground);display:flex;flex-direction:column;gap:5px}

/* ---------- Print ---------- */
@media print{
  body{overflow:visible;background:#0A0A0F}
  #viewport{position:static;display:block}
  #stage{transform:none!important;width:1280px;height:auto}
  .slide{position:relative;opacity:1;visibility:visible;transform:none;height:720px;page-break-after:always;break-after:page}
  #help,#progress{display:none}
  @page{size:1280px 720px;margin:0}
}

/* ---------- Executive layout additions ---------- */
.stmts{display:flex;flex-direction:column;gap:28px;margin-top:8px;max-width:1000px}
.stmt{font-size:30px;font-weight:500;line-height:1.3;letter-spacing:-.01em;padding-left:22px;border-left:3px solid var(--brand-blue);text-wrap:balance;max-width:34ch}
.stmt.big{font-size:34px;border-left:0;padding-left:0;color:var(--foreground);max-width:none}
.stmt.big::before{content:"";display:block;width:56px;height:3px;background:linear-gradient(90deg,var(--brand-blue),var(--brand-cyan));margin-bottom:16px}
.steps-3{grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px}
.steps-3::before{left:22px;right:22px}
.steps-3 .step-card h4{font-size:20px}
.steps-3 .step-card p{font-size:16px}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-content:start}
.chip{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;font-size:20px;font-weight:500;box-shadow:var(--shadow-card)}
.chip .icon{width:24px;height:24px;color:var(--brand-blue)}
.deploy .fact{font-size:16px;padding:12px 0}
