/* ============================================================
   VIDAFORM PROJECT DESK v2 — Industrial instrument shell
   Source of truth: VIDAFORM_TOOLS_VISUAL_REBUILD_DIRECTIVE
   "Industrial instrument outside; calm engineering canvas inside."
   ============================================================ */
:root{
  --g-deep:#151B20;--g-raised:#202930;--g-steel:#344049;
  --canvas:#F4F0E8;--canvas-hi:#FCFAF5;--warm-grey:#D8D2C7;--border:#C8C1B5;
  --ink:#171E24;--mut:#667078;
  --red:#D72331;--red-press:#A91420;--gold:#E4AF45;--teal:#315866;--green:#19885A;--amber:#C78318;
  --edge-hi:rgba(255,255,255,.08);--edge-dk:rgba(0,0,0,.28);
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  --font-ar:"Noto Sans Arabic",Tahoma,Arial,sans-serif;
  --font-serif:Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--font-ui);background:var(--canvas);color:var(--ink);font-size:15.5px;line-height:1.5;-webkit-font-smoothing:antialiased}
html[lang="ar"] body{font-family:var(--font-ar)}
a{color:inherit}img{max-width:100%;display:block}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
bdi.code{font-family:var(--font-mono);direction:ltr;unicode-bidi:isolate}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--gold);outline-offset:1px}

/* ---------- compact instrument header (64px) ---------- */
.vf-header{height:64px;background:var(--g-deep);border-bottom:1px solid var(--edge-hi);box-shadow:inset 0 -1px 0 var(--edge-dk);color:#F6F3EC;display:flex;align-items:center;gap:22px;padding:0 22px;position:sticky;top:0;z-index:80}
.vf-header .brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.13em;font-size:13px;text-decoration:none;color:#F6F3EC}
.vf-header .brand .mark{width:24px;height:24px;background:var(--red);display:flex;align-items:center;justify-content:center;border-radius:2px;font-size:14px}
.vf-header .tname{font-size:13.5px;color:#B9C0C5;border-inline-start:1px solid var(--edge-hi);padding-inline-start:18px}
.vf-header .tname b{color:#F6F3EC;font-weight:650}
.vf-header .spacer{flex:1}
.vf-header .hproj{font-family:var(--font-mono);font-size:11px;color:#8D969C;display:flex;gap:14px;align-items:center}
.vf-header .hproj input{background:var(--g-raised);border:1px solid rgba(255,255,255,.14);color:#F6F3EC;font:inherit;padding:5px 9px;border-radius:2px;width:130px}
.vf-header .lang{border:1px solid rgba(255,255,255,.28);padding:5px 12px;border-radius:2px;font-size:12.5px;text-decoration:none;white-space:nowrap}
.vf-header .lang:hover{border-color:var(--gold);color:var(--gold)}
@media(max-width:900px){.vf-header .hproj{display:none}.vf-header .tname{display:none}}

/* ---------- workbench grid ---------- */
.workbench{display:grid;grid-template-columns:320px minmax(520px,1fr) 340px;min-height:calc(100vh - 130px)}
html[dir="rtl"] .workbench{direction:rtl}
@media(max-width:1179px){.workbench{grid-template-columns:1fr;min-height:0}}

/* ---------- control rail (graphite) ---------- */
.ctl-rail{background:var(--g-raised);color:#EDE9E1;padding:20px 18px 90px;border-inline-end:1px solid var(--edge-dk);box-shadow:inset -1px 0 0 var(--edge-hi)}
.ctl-sec{margin-bottom:8px;border-inline-start:3px solid transparent;padding:10px 12px;border-radius:2px;transition:opacity .18s}
.ctl-sec.active{border-inline-start-color:var(--red);background:rgba(255,255,255,.03)}
.ctl-sec.dim{opacity:.65}
.ctl-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
html[lang="ar"] .ctl-label{letter-spacing:.02em}
.ctl-sec h3{font-size:14.5px;font-weight:650;color:#FCFAF5;margin-bottom:10px}
.cfield{margin-bottom:12px}
.cfield>label{display:block;font-size:13px;font-weight:550;color:#D8D2C7;margin-bottom:5px}
.cfield .fwrap{display:flex;align-items:stretch;background:var(--g-deep);border:1px solid rgba(255,255,255,.16);border-radius:2px;overflow:hidden}
.cfield .fwrap:focus-within{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--red)}
html[dir="rtl"] .cfield .fwrap:focus-within{box-shadow:inset -3px 0 0 var(--red)}
.cfield input,.cfield select{flex:1;min-width:0;background:transparent;border:none;color:#FCFAF5;font-family:var(--font-mono);font-size:15px;padding:10px 11px;height:44px}
.cfield select{font-family:var(--font-ui);appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8D969C 50%),linear-gradient(135deg,#8D969C 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px;background-repeat:no-repeat}
html[dir="rtl"] .cfield select{background-position:18px 20px,13px 20px}
.cfield .unit{display:flex;align-items:center;padding:0 10px;background:rgba(0,0,0,.35);color:#8D969C;font-family:var(--font-mono);font-size:12px;border-inline-start:1px solid rgba(255,255,255,.09)}
.cfield .hint{font-size:11.5px;color:#8D969C;margin-top:4px}
.cfield.err .fwrap{border-color:var(--red)}
.cfield .errmsg{display:none;font-size:11.5px;color:#F09AA2;margin-top:4px}
.cfield.err .errmsg{display:block}
.stepper{display:flex;align-items:center;gap:0;background:var(--g-deep);border:1px solid rgba(255,255,255,.16);border-radius:2px;overflow:hidden}
.stepper button{width:38px;height:44px;background:rgba(255,255,255,.05);border:none;color:#D8D2C7;font-size:17px;cursor:pointer}
.stepper button:hover{background:rgba(255,255,255,.12)}
.stepper input{flex:1;min-width:0;text-align:center;background:transparent;border:none;color:#FCFAF5;font-family:var(--font-mono);font-size:15px;height:44px}
.mseg{display:grid;gap:2px;background:var(--g-deep);padding:3px;border:1px solid rgba(255,255,255,.14);border-radius:2px}
.mseg.cols2{grid-template-columns:1fr 1fr}
.mseg button{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:#B9C0C5;font-size:12.5px;padding:9px 10px;cursor:pointer;border-radius:1px;text-align:start;font-family:inherit;min-height:40px}
.mseg button:hover{background:rgba(255,255,255,.06)}
.mseg button.on{background:var(--g-steel);color:#FCFAF5;box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),inset 3px 0 0 var(--red)}
html[dir="rtl"] .mseg button.on{box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),inset -3px 0 0 var(--red)}
.mseg button svg{flex:none;width:30px;height:24px}
@media(max-width:1179px){
  .ctl-rail{padding-bottom:24px;border-inline-end:none;border-bottom:1px solid var(--edge-dk)}
  .ctl-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 22px}
}

/* ---------- visual stage ---------- */
.stage{background:var(--canvas);position:relative;display:flex;flex-direction:column;min-height:520px}
.stage-toolbar{height:38px;background:var(--g-deep);color:#B9C0C5;display:flex;align-items:center;gap:16px;padding:0 16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;box-shadow:0 1px 0 var(--edge-dk)}
.stage-toolbar .sid{color:var(--gold)}
.stage-toolbar .spacer{flex:1}
.stage-toolbar .views{display:flex;gap:2px;letter-spacing:0}
.stage-toolbar .views button{background:transparent;border:1px solid transparent;color:#8D969C;font-family:var(--font-mono);font-size:11px;padding:5px 12px;cursor:pointer;border-radius:2px}
.stage-toolbar .views button.on{color:#FCFAF5;background:var(--g-steel);border-color:rgba(255,255,255,.12)}
.stage-canvas{flex:1;position:relative;overflow:hidden;
  background-image:linear-gradient(rgba(23,30,36,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(23,30,36,.04) 1px,transparent 1px);
  background-size:32px 32px;display:flex;align-items:center;justify-content:center;padding:26px}
.stage-canvas svg{width:100%;height:100%;max-height:640px}
.regmark{position:absolute;width:14px;height:14px;border:1.5px solid rgba(23,30,36,.3);pointer-events:none}
.regmark.tl{top:10px;left:10px;border-right:none;border-bottom:none}
.regmark.tr{top:10px;right:10px;border-left:none;border-bottom:none}
.regmark.bl{bottom:10px;left:10px;border-right:none;border-top:none}
.regmark.br{bottom:10px;right:10px;border-left:none;border-top:none}
.stage-status{position:absolute;bottom:10px;inset-inline-start:34px;font-family:var(--font-mono);font-size:11px;color:var(--mut);direction:ltr}
.formula-plate{margin:0 22px 18px;background:var(--canvas-hi);border:1px solid var(--border);border-inline-start:3px solid var(--teal);padding:10px 16px;font-family:var(--font-mono);font-size:13px;color:var(--teal);direction:ltr;text-align:left;overflow-x:auto;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.05)}
@media(max-width:1179px){.stage{min-height:380px}.stage-canvas{min-height:280px}}

/* ---------- result tower ---------- */
.tower{background:var(--g-deep);color:#EDE9E1;border-inline-start:1px solid var(--edge-hi);display:flex;flex-direction:column}
.tower::before{content:"";display:block;height:3px;background:var(--red)}
.tower-head{padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.09);display:flex;justify-content:space-between;align-items:center}
.tstatus{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;padding:4px 9px;border:1px solid;border-radius:2px}
.tstatus.calc{color:#9FD9BE;border-color:rgba(25,136,90,.6)}
.tstatus.wait{color:#B9C0C5;border-color:rgba(255,255,255,.25)}
.tstatus.rev{color:#F3C87C;border-color:rgba(199,131,24,.6)}
.tower-head .rev{font-family:var(--font-mono);font-size:10.5px;color:#8D969C;direction:ltr}
.tower-main{padding:22px 20px 6px}
.tower-main .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}
html[lang="ar"] .tower-main .lbl{letter-spacing:.02em}
.tower-main .val{font-family:var(--font-mono);font-size:clamp(38px,3.2vw,50px);font-weight:700;line-height:1.05;margin-top:8px;font-variant-numeric:tabular-nums;color:#FCFAF5}
.tower-main .unit{font-family:var(--font-mono);font-size:15px;color:#8D969C;margin-inline-start:6px}
.tower-grid{padding:14px 20px;display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;border-bottom:1px solid rgba(255,255,255,.09)}
.tower-grid .k{font-size:11.5px;color:#8D969C}
.tower-grid .v{font-family:var(--font-mono);font-size:16px;color:#EDE9E1;font-variant-numeric:tabular-nums;direction:ltr;text-align:start}
.tower-list{padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.09);font-size:12.5px;max-height:250px;overflow:auto}
.tower-list .row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed rgba(255,255,255,.07)}
.tower-list .row:last-child{border-bottom:none}
.tower-list .c{font-family:var(--font-mono);font-size:11px;color:#B9C0C5;direction:ltr}
.tower-list .q{font-family:var(--font-mono);color:#FCFAF5}
.tower-assump{padding:12px 20px;font-size:11.5px;color:#8D969C;border-bottom:1px solid rgba(255,255,255,.09)}
.tower-assump b{color:#B9C0C5;display:block;margin-bottom:5px;font-size:11px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
html[lang="ar"] .tower-assump b{letter-spacing:0}
.tower-assump ul{padding-inline-start:16px;display:grid;gap:3px}
.tower-warn{margin:12px 20px;border:1px solid rgba(199,131,24,.5);border-inline-start:3px solid var(--amber);background:rgba(199,131,24,.09);color:#F3C87C;padding:9px 12px;font-size:11.5px;border-radius:2px}
.tower-actions{margin-top:auto;padding:16px 20px 20px;display:grid;gap:9px}
.tbtn{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:2px;font-size:14px;font-weight:650;cursor:pointer;border:1px solid rgba(255,255,255,.22);background:transparent;color:#EDE9E1;font-family:inherit;text-decoration:none;transition:background .16s,border-color .16s}
.tbtn:hover{border-color:#FCFAF5}
.tbtn.primary{background:var(--red);border-color:var(--red);color:#FCFAF5}
.tbtn.primary:hover{background:var(--red-press)}
.tbtn.wa{background:var(--green);border-color:var(--green);color:#fff}
.tbtn.wa:hover{background:#136B46}
.flash{animation:vfflash .18s ease-out}
@keyframes vfflash{0%{color:var(--gold)}100%{color:#FCFAF5}}
@media(max-width:1179px){.tower{border-inline-start:none}}

/* ---------- below-bench detail table ---------- */
.bench-below{padding:26px 26px 80px;background:var(--canvas)}
.bench-below h2{font-size:19px;font-weight:750;margin-bottom:4px}
.bench-below .sub{font-size:13px;color:var(--mut);margin-bottom:12px}
.bom-table{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--canvas-hi);border:1px solid var(--border)}
.bom-table th{background:var(--warm-grey);text-align:start;font-size:12px;padding:9px 12px;border-bottom:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.06em}
.bom-table td{padding:9px 12px;border-bottom:1px solid var(--border)}
.bom-table td.code{font-family:var(--font-mono);font-size:12.5px;white-space:nowrap;direction:ltr}
.bom-table td.qty{font-family:var(--font-mono);text-align:end;font-weight:650}
.bom-table tr:hover td{background:rgba(215,35,49,.04);box-shadow:inset 3px 0 0 var(--red)}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;padding:3px 9px;border-radius:2px;border:1px solid;font-weight:600;font-family:var(--font-mono)}
.badge.verified{color:var(--green);border-color:var(--green);background:rgba(25,136,90,.07)}
.badge.required{color:var(--red);border-color:var(--red);background:rgba(215,35,49,.06)}
.badge.review{color:var(--amber);border-color:var(--amber);background:rgba(199,131,24,.08)}
.badge.na{color:var(--mut);border-color:var(--border);background:var(--canvas)}

/* ---------- safety ribbon ---------- */
.safety-ribbon{background:var(--g-raised);color:#D8D2C7;font-size:12.5px;padding:8px 22px;display:flex;gap:10px;align-items:center;border-top:1px solid var(--edge-hi)}
.safety-ribbon .ic{color:var(--gold)}

/* ---------- mobile bars ---------- */
.mobile-bar{display:none}
@media(max-width:799px){
  .mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--g-deep);color:#FCFAF5;padding:11px 16px;z-index:90;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -4px 14px rgba(0,0,0,.3);border-top:3px solid var(--red)}
  .mobile-bar .mv{font-family:var(--font-mono);font-size:19px;font-weight:750}
  .mobile-bar .ml{font-size:10px;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-family:var(--font-mono)}
  .mobile-bar a{color:#FCFAF5;font-size:13px;font-weight:650;text-decoration:none;border:1px solid rgba(255,255,255,.4);padding:9px 14px;border-radius:2px;white-space:nowrap}
  body{padding-bottom:74px}
}

/* ================= HUB ================= */
.hub-hero2{background:var(--g-deep);color:#F6F3EC;position:relative;overflow:hidden;max-height:560px}
.hub-hero2::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px}
.hub-hero2 .inner{position:relative;max-width:1380px;margin:0 auto;padding:64px 56px 84px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media(max-width:980px){.hub-hero2 .inner{grid-template-columns:1fr;padding:44px 24px 64px}}
.hub-hero2 .eyebrow{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
html[lang="ar"] .hub-hero2 .eyebrow{letter-spacing:.06em}
.hub-hero2 h1{font-size:clamp(34px,4.6vw,58px);line-height:1.05;font-weight:800;margin:16px 0 18px}
.hub-hero2 h1 em{font-family:var(--font-serif);font-style:italic;font-weight:500}
.hub-hero2 .lead{font-size:16.5px;color:#B9C0C5;max-width:52ch;line-height:1.6}
.hub-hero2 .ctas{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.hbtn{display:inline-flex;align-items:center;height:48px;padding:0 26px;border-radius:2px;font-weight:650;font-size:15px;text-decoration:none;transition:background .16s}
.hbtn.p{background:var(--red);color:#FCFAF5}
.hbtn.p:hover{background:var(--red-press)}
.hbtn.s{border:1px solid rgba(255,255,255,.4);color:#F6F3EC}
.hbtn.s:hover{border-color:var(--gold);color:var(--gold)}
.hero-scene{position:relative}
.hero-scene svg{width:100%;height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.35))}
.hub-fade{height:110px;background:linear-gradient(180deg,#151B20 0%,#2A353E 40%,#AAA69D 78%,#F4F0E8 100%)}
.bento-wrap{max-width:1380px;margin:0 auto;padding:34px 56px 40px}
@media(max-width:980px){.bento-wrap{padding:26px 20px 40px}}
.bento-head{display:flex;align-items:baseline;gap:16px;margin:26px 0 16px}
.bento-head h2{font-size:clamp(22px,2.6vw,30px);font-weight:800}
.bento-head .g{font-family:var(--font-mono);color:var(--red);font-size:13px}
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
@media(max-width:980px){.bento{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.bento{grid-template-columns:1fr}}
.bcard{position:relative;background:var(--canvas-hi);border:1px solid var(--border);border-radius:3px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:transform .18s,border-color .18s;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.bcard:hover{transform:translateY(-2px);border-color:var(--g-steel)}
.bcard .bviz{flex:1;min-height:0;background:var(--canvas);border-bottom:1px solid var(--border);position:relative;overflow:hidden;
  background-image:linear-gradient(rgba(23,30,36,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,30,36,.035) 1px,transparent 1px);background-size:24px 24px}
.bcard .bviz svg{width:100%;height:100%;display:block}
.bcard .bmeta{padding:14px 16px 15px}
.bcard .bnum{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;color:var(--mut)}
.bcard h3{font-size:16.5px;font-weight:750;margin:5px 0 4px}
.bcard p{font-size:12.5px;color:var(--mut);line-height:1.45}
.bcard .bfoot{display:flex;justify-content:space-between;align-items:center;margin-top:9px}
.bcard .go{color:var(--red);font-weight:650;font-size:13px}
.bcard .tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--mut);border:1px solid var(--border);padding:3px 8px;border-radius:2px;background:var(--canvas)}
.bcard.flag{box-shadow:inset 0 3px 0 var(--red),0 1px 3px rgba(0,0,0,.06)}
@media(min-width:981px){
  .b8{grid-column:span 8;height:440px}.b4{grid-column:span 4;height:440px}
  .b5{grid-column:span 5;height:320px}.b7{grid-column:span 7;height:320px}
  .b6{grid-column:span 6;height:350px}
  .b5b{grid-column:span 5;height:340px}.b7b{grid-column:span 7;height:340px}
}
@media(max-width:980px){.bcard{min-height:280px}}
.trust2{background:var(--warm-grey);border-block:1px solid var(--border)}
.trust2 .inner{max-width:1380px;margin:0 auto;padding:0 56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media(max-width:980px){.trust2 .inner{padding:0 20px}}
.trust2 .ti{padding:16px 14px;font-size:13px;display:flex;gap:9px;align-items:center;border-inline-start:1px solid var(--border)}
.trust2 .ti:first-child{border-inline-start:none}
.trust2 .ti .tick{color:var(--red);font-family:var(--font-mono)}
.hub-footer{background:var(--g-deep);color:#8D969C;font-size:13px;margin-top:52px}
.hub-footer .inner{max-width:1380px;margin:0 auto;padding:30px 56px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}
.hub-footer a{color:#B9C0C5;text-decoration:none}
.hub-footer a:hover{color:var(--gold)}
@media print{
  .vf-header,.ctl-rail,.tower-actions,.mobile-bar,.safety-ribbon,.stage-toolbar .views{display:none!important}
  body{background:#fff}
  .workbench{grid-template-columns:1fr;min-height:0}
  .tower{background:#fff;color:#000;border:1px solid #999}
  .tower-main .val{color:#000}
}
