/* Tamra site v2 — product mock-ups ("shots").
   Each mock-up is drawn at the app's own size (--w × --h, in the app's pixels) from the labels, colours and
   spacing in the app's code, then scaled to its frame with zoom. Real screenshots replace them one by one:
   drop public/landing/assets/v2/shots/<id>.webp in place and rebuild. Every figure in them is an example. */

/* ── frame + scaling ─────────────────────────────────────────────────────────────────────────── */
.shot{position:relative;container-type:inline-size;border-radius:var(--r-frame,14px);overflow:hidden;background:#F6F9FC;
  border:1px solid var(--line,#D6DEE8);box-shadow:var(--shadow-frame)}
.shot-img{display:block;width:100%;height:auto}
.vg{position:relative;isolation:isolate;width:var(--w);height:var(--h);zoom:tan(atan2(100cqw,var(--w)));overflow:hidden;
  font:400 13px/1.45 "Inter",ui-sans-serif,system-ui,sans-serif;color:#0F1A2B;text-align:left;letter-spacing:0;
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;pointer-events:none}
.vg *,.vg *::before,.vg *::after{box-sizing:border-box}
.vg-in{display:contents}
.vg .ic{width:16px;height:16px;flex:none;display:block}
.vg .glyph{display:block;flex:none}
.vg b,.vg strong{font-weight:700}
.vg small{font-size:inherit}
.vg em{font-style:normal}
.vg .J{font-family:"Plus Jakarta Sans","Inter",ui-sans-serif,system-ui,sans-serif}

/* ── app chrome: dark rail, header row, white page ─────────────────────────────────────────── */
.vg.app{display:grid;grid-template-columns:70px minmax(0,1fr);background:#F6F9FC}
.vg .rail{background:#0F1A2B;display:flex;flex-direction:column;align-items:center;padding:8px 6px 0;overflow:hidden;height:var(--h)}
.vg .rail-logo{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0 12px}
.vg .rail-logo .logo{width:32px;height:32px;display:block}
.vg .rail-logo span{font:700 10px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:.04em;color:#E5E7EB}
.vg .ri{width:58px;min-height:44px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  padding:2px 4px;color:rgba(255,255,255,.45);border:1px solid transparent;flex:none}
.vg .ri b{font:500 9px/1.2 "Inter",sans-serif;letter-spacing:.01em;white-space:nowrap}
.vg .ri .glyph{width:18px;height:18px}
.vg.app[data-active=home] .ri[data-k=home],
.vg.app[data-active=sales] .ri[data-k=sales],
.vg.app[data-active=purchase] .ri[data-k=purchase],
.vg.app[data-active=books] .ri[data-k=books],
.vg.app[data-active=expenses] .ri[data-k=expenses],
.vg.app[data-active=mfg] .ri[data-k=mfg],
.vg.app[data-active=codex] .ri[data-k=codex],
.vg.app[data-active=documents] .ri[data-k=documents],
.vg.app[data-active=pdf] .ri[data-k=pdf],
.vg.app[data-active=inventory] .ri[data-k=inventory],
.vg.app[data-active=pos] .ri[data-k=pos],
.vg.app[data-active=hr] .ri[data-k=hr],
.vg.app[data-active=crm] .ri[data-k=crm],
.vg.app[data-active=chat] .ri[data-k=chat],
.vg.app[data-active=calendar] .ri[data-k=calendar],
.vg.app[data-active=settings] .ri[data-k=settings]{
  color:var(--c);background:color-mix(in srgb,var(--c) 15%,transparent);border-color:color-mix(in srgb,var(--c) 22%,transparent);position:relative}
.vg.app[data-active] .ri[data-k] b{font-weight:500}
.vg .app-main{display:grid;grid-template-rows:44px minmax(0,1fr);gap:4px;padding:4px 8px 8px 0;min-width:0;height:var(--h)}
.vg .top{display:flex;align-items:center;gap:8px;padding:0 4px;min-width:0}
.vg .hb{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#444D5A;position:relative;flex:none}
.vg .hb .ic{width:17px;height:17px}
.vg .hb-c{width:36px;height:36px;background:rgba(255,255,255,.55);border:1px solid rgba(0,0,0,.06);color:rgba(26,26,30,.7)}
.vg .hb-c .ic{width:16px;height:16px}
.vg .hb-dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:#E11D48;box-shadow:0 0 0 2px #F6F9FC}
.vg .crumb{font:700 12.5px/1 "Plus Jakarta Sans",sans-serif;color:#1A1A1E;padding:4px 2px;white-space:nowrap}
.vg .tabs{display:flex;align-items:center;gap:4px;padding:4px 6px;background:#EEF2F6;border:1px solid #DDE4EB;border-radius:100px;
  box-shadow:0 1px 3px rgba(18,38,28,.05);min-width:0;overflow:hidden}
.vg .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 14px;border-radius:100px;font:600 11.5px/1 "Plus Jakarta Sans",sans-serif;
  color:#5A6472;background:#E7ECF2;white-space:nowrap;letter-spacing:.005em}
.vg .chip .ic,.vg .chip .glyph{width:13px;height:13px;opacity:.9}
.vg .chip.on{color:#1A1A1E;background:#FFFFFF;box-shadow:0 1px 3px rgba(18,38,28,.08),0 0 0 1px rgba(30,142,90,.16)}
.vg .chip.on .ic,.vg .chip.on .glyph{color:#1E8E5A;opacity:1}
.vg .tools{margin-left:auto;display:flex;align-items:center;gap:4px;flex:none}
.vg .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(30,142,90,.13);color:#1E8E5A;
  font:700 13px/1 "Plus Jakarta Sans",sans-serif;margin-left:6px}
.vg .orb{position:relative;width:30px;height:30px;display:grid;place-items:center;margin:0 2px}
.vg .orb::before{content:"";position:absolute;inset:3.5px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#1A2238,#0B1020 70%);
  box-shadow:0 1px 3px rgba(15,23,42,.35),0 4px 12px rgba(34,211,238,.18)}
.vg .orb-rim{position:absolute;inset:2px;border-radius:50%;background:conic-gradient(from 200deg,#34D399,#22D3EE,#6366F1,#A78BFA,#34D399);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.6px),#000 calc(100% - 1.2px));mask:radial-gradient(farthest-side,transparent calc(100% - 1.6px),#000 calc(100% - 1.2px))}
.vg .orb-gloss{position:absolute;inset:3.5px;border-radius:50%;background:radial-gradient(circle at 34% 20%,rgba(255,255,255,.34),rgba(255,255,255,.05) 34%,transparent 52%)}
.vg .orb-bird{position:relative;width:16px;height:16px;transform:translate(1px,.5px)}
.vg .page{background:#FFFFFF;border:1px solid #E6ECF2;border-radius:14px;overflow:hidden;position:relative;min-height:0}

/* shared kit (src/home/kit.jsx) */
.vg .kick{font:700 10.5px/1.2 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#626976}
.vg .door-l{font:600 13px/1.2 "Inter",sans-serif;color:#1E8E5A;white-space:nowrap}

/* ── Sales → invoice editor ─────────────────────────────────────────────────────────────────── */
.vg-inv .page{padding:22px 28px}
.vg-inv .ed-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.vg-inv .ed-h1{display:flex;align-items:center;gap:10px;font:800 22px/1.15 "Plus Jakarta Sans",sans-serif;letter-spacing:-.01em}
.vg .b-posted{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font:700 10px/1.3 "Inter",sans-serif;
  background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.2);color:#10B981}
.vg .b-posted .ic{width:10px;height:10px}
.vg-inv .ed-party{font-size:11px;color:#626976;margin-top:3px}
.vg-inv .ed-pills{display:flex;gap:6px;margin-top:8px}
.vg .trace,.vg .settle{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:7px;background:rgba(0,0,0,.03);
  border:1px solid rgba(0,0,0,.08);color:#444D5A;font:700 10.5px/1.4 "Inter",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.vg .trace{background:rgba(0,0,0,.07);border-color:rgba(0,0,0,.16)}
.vg .trace i{display:block}
.vg .trace .t-d{width:4.5px;height:4.5px;border-radius:50%;background:#626976}
.vg .trace .t-d.t-on{background:#1E8E5A}
.vg .trace .t-l{width:6px;height:1.2px;background:rgba(0,0,0,.25);margin:0 -2.5px}
.vg .settle{gap:6px}
.vg .settle i{display:inline-block;width:48px;height:4px;border-radius:2px;background:rgba(0,0,0,.1);overflow:hidden}
.vg .settle i b{display:block;height:100%;background:#1E8E5A;border-radius:2px}
.vg-inv .ed-actions{display:flex;gap:8px;align-items:center}
.vg .fbtn{position:relative;width:36px;height:36px;border-radius:8px;border:1px solid rgba(0,0,0,.06);background:rgba(0,0,0,.02);display:grid;place-items:center;color:#626976}
.vg .fbtn .ic{width:15px;height:15px}
.vg .fbtn i{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#1E8E5A;color:#fff;
  font:800 9.5px/17px "Inter",sans-serif;text-align:center;box-shadow:0 0 0 2px #fff}
.vg .chip-action{display:inline-flex;align-items:center;gap:8px;padding:5px 15px 5px 6px;border-radius:9px;border:1px solid #D6DEE8;color:#0F1A2B;
  font:600 14px/1 "Inter",sans-serif;white-space:nowrap}
.vg .chip-action>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#0F1A2B;color:#fff}
.vg .chip-action>span .ic{width:14px;height:14px}
.vg .door{height:37px;padding:0 14px;border-radius:9px;border:1px solid #D6DEE8;color:#0F1A2B;display:inline-flex;align-items:center;gap:7px;
  font:600 13px/1 "Inter",sans-serif;white-space:nowrap}
.vg .door .ic{width:14px;height:14px}
.vg .door em{font-size:10px;opacity:.7;margin-left:-2px}
.vg .idoor{width:36px;height:36px;border-radius:8px;border:1px solid rgba(0,0,0,.06);background:rgba(0,0,0,.02);color:#626976;display:grid;place-items:center}
.vg .idoor .ic{width:14px;height:14px}
.vg-inv .trail{position:absolute;left:28px;top:118px;z-index:3;display:flex;align-items:center;gap:6px;padding:12px;border-radius:12px;
  background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 12px 40px rgba(15,26,43,.18)}
.vg .tc{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:8px;font:600 11px/1.4 "Inter",sans-serif;color:#444D5A;
  background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.08);white-space:nowrap}
.vg .tc i{width:6px;height:6px;border-radius:50%;display:block}
.vg .tc em{font:700 9px/1 "Inter",sans-serif;color:#626976;text-transform:uppercase;letter-spacing:.03em}
.vg .tc.self{padding:4px 10px;font-weight:800;color:#0F1A2B;background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.4)}
.vg .tarr{color:rgba(0,0,0,.35);font-size:11px}
.vg-inv .ed-form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:18px;border-radius:14px;background:rgba(0,0,0,.02);
  border:1px solid rgba(0,0,0,.06);margin-top:52px}
.vg-inv .f{min-width:0}
.vg-inv .f2{grid-column:span 2}
.vg-inv label{display:block;font:600 11px/1.2 "Inter",sans-serif;color:#8892A4;margin-bottom:6px;letter-spacing:.02em}
.vg-inv .in{display:block;padding:10px 14px;border-radius:10px;background:rgba(0,0,0,.015);border:1px solid rgba(0,0,0,.08);color:#4A5263;
  font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-inv .in.dim{opacity:.5}
.vg-inv .f small{display:block;font-size:11px;color:#8892A4;margin-top:4px}
.vg-inv .ed-tabs{display:flex;gap:22px;margin-top:20px;border-bottom:1px solid #E6ECF2;font:600 13px/1 "Inter",sans-serif;color:#626976}
.vg-inv .ed-tabs span{padding:0 2px 11px}
.vg-inv .ed-tabs .on{color:#0F1A2B;box-shadow:inset 0 -2px 0 #1E8E5A}
.vg-inv .lines{margin-top:14px;border:1px solid #E6ECF2;border-radius:12px;overflow:hidden}
.vg-inv .lh,.vg-inv .lr{display:grid;grid-template-columns:2.1fr 1.7fr .55fr .75fr 1fr .65fr 1.35fr 1.15fr;gap:12px;align-items:start;padding:0 14px}
.vg-inv .lh{background:#EEF2F6;color:#334155;font:800 10.5px/1 "Inter",sans-serif;letter-spacing:.03em;padding-top:11px;padding-bottom:11px}
.vg-inv .lr{padding-top:13px;padding-bottom:12px;font-size:13px}
.vg-inv .lr b{font-weight:600}
.vg-inv .r{text-align:right}
.vg-inv .mut{color:#626976}
.vg-inv .onhand{display:block;font-size:10.5px;color:#1E8E5A;margin-top:3px;font-weight:600}
.vg-inv .lr .r small{display:block;font-size:9px;color:#8892A4;margin-top:3px}
.vg-inv .tax{font-size:12px;color:#444D5A}
.vg-inv .ed-foot{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-top:18px}
.vg-inv .box{padding:18px;border-radius:14px;background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.06)}
.vg-inv .in.area{white-space:normal;height:74px;line-height:1.5}
.vg-inv .sum-h{font:700 11px/1 "Inter",sans-serif;color:#8892A4;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.vg-inv .sum-r{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.04);font-size:13px;color:#8892A4}
.vg-inv .sum-r span:last-child{font-weight:600}
.vg-inv .sum-t{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding:12px 0 0;border-top:2px solid rgba(245,158,11,.25)}
.vg-inv .sum-t span{font:700 12px/1 "Inter",sans-serif;text-transform:uppercase;letter-spacing:.05em}
.vg-inv .sum-t b{font:900 22px/1 "Plus Jakarta Sans",sans-serif;color:#F59E0B;letter-spacing:-.02em}

/* ── Home → tabs (shared by Today and Cash Radar) ───────────────────────────────────────────── */
.vg .h-tabs{display:flex;justify-content:center;gap:32px;border-bottom:1px solid #D6DEE8;font:500 15px/1 "Inter",sans-serif;color:#626976}
.vg .h-tabs span{padding:0 1px 12px}
.vg .h-tabs .on{font-weight:700;color:#0F1A2B;box-shadow:inset 0 -2px 0 #1E8E5A}
.vg .h-greet{text-align:center;padding-top:6px}
.vg .h-greet b{display:block;font:500 40px/1.1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.022em;color:#0F1A2B}
.vg .h-greet span{display:block;font:500 13px/1 "Inter",sans-serif;color:#626976;letter-spacing:.01em;margin-top:12px}

/* ── Home → Cash Radar (src/CashRadar.jsx) ──────────────────────────────────────────────────── */
.vg-cr .page{padding:22px 34px 0}
.vg-cr .mirror{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;margin:28px auto 0}
.vg-cr .side{text-align:center;padding-right:56px;border-right:1px solid #D6DEE8}
.vg-cr .side+.side{padding:0 0 0 56px;border-right:0}
.vg-cr .fig{display:flex;align-items:baseline;justify-content:center;margin-top:10px}
.vg-cr .cur{font:500 15px/1 "Plus Jakarta Sans",sans-serif;color:#626976;margin-right:8px}
.vg-cr .val{font:500 44px/1.05 "Plus Jakarta Sans",sans-serif;letter-spacing:-.02em;color:#0F1A2B}
.vg-cr .subl{font-size:12.5px;color:#444D5A;margin-top:8px}
.vg-cr .vbars{display:flex;justify-content:center;gap:10px;margin-top:26px}
.vg-cr .vbars>span{width:62px;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.vg-cr .vbars em{font-size:11px;color:#626976}
.vg-cr .vbars i{display:block;width:100%;height:var(--h);background:#D6DEE8;border-radius:2px;transform-origin:bottom}
.vg-cr .vbars small{font-size:10.5px;color:#626976}
.vg-cr .vbars .ink i{background:#0F1A2B}
.vg-cr .vbars .ink small,.vg-cr .vbars .ink em{font-weight:600;color:#0F1A2B}
.vg-cr .vbars>span{justify-content:flex-end;height:122px}
.vg-cr .net{max-width:760px;margin:30px auto 0;text-align:center}
.vg-cr .net p{font-size:15px;line-height:1.55;color:#444D5A;margin-top:10px}
.vg-cr .net p b{color:#0F1A2B}
.vg-cr .netbar{display:flex;max-width:560px;height:4px;margin:16px auto 0;border-radius:2px;background:rgba(0,0,0,.06);overflow:hidden}
.vg-cr .netbar .in{background:#0F1A2B}
.vg-cr .netbar .out{background:rgba(0,0,0,.28)}
.vg-cr .netlbl{display:flex;justify-content:space-between;max-width:560px;margin:7px auto 0;font-size:11.5px;color:#626976}
.vg-cr .ctrl{display:flex;justify-content:space-between;align-items:center;margin-top:24px}
.vg .segm{display:inline-flex;padding:3px;border-radius:999px;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.06)}
.vg .segm span{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font:700 12px/1 "Plus Jakarta Sans",sans-serif;color:#626976}
.vg .segm .ic{width:13px;height:13px}
.vg .segm .on{background:#fff;color:#0F1A2B;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.vg-cr .pills{display:flex;gap:8px}
.vg-cr .pl{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;font:700 12px/1 "Inter",sans-serif;border:1px solid}
.vg-cr .pl .ic{width:13px;height:13px}
.vg-cr .pl.in{color:#1E8E5A;border-color:#1E8E5A;background:#1E8E5A1A}
.vg-cr .pl.out{color:#5F6F86;border-color:#5F6F86;background:#5F6F861A}
.vg-cr .lanes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.vg-cr .lane-h{text-align:center;margin-bottom:10px}
.vg-cr .lane-h span{display:block;font-size:11px;color:#626976;margin-top:5px}
.vg-cr .lr{display:grid;grid-template-columns:86px 1fr 64px 90px;gap:12px;align-items:center;padding:10px;border-radius:10px;font-size:13px;
  background:linear-gradient(90deg,rgba(15,26,43,.055) var(--p,0%),rgba(15,26,43,0) var(--p,0%))}
.vg-cr .lr.lh{background:none;border-radius:0;border-bottom:1px solid #D6DEE8;padding-top:6px;padding-bottom:8px;margin-bottom:4px;font-size:10.5px}
.vg-cr .lr .pt{color:#444D5A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-cr .lr .late{color:#9A5B00;font-size:12.5px;font-weight:500}
.vg-cr .lr .soon{color:#626976;font-size:12.5px}
.vg-cr .lr .amt{font-weight:700}
.vg-cr .r{text-align:right}
.vg-cr .lane-f{display:flex;justify-content:center;gap:18px;margin-top:10px;font:600 13px/1 "Inter",sans-serif;color:#626976}

/* ── Home → Today (src/home/TodayView.jsx, PulseView.jsx) ───────────────────────────────────── */
.vg-td .page{padding:24px 40px 0}
.vg-td .t-gap{margin-top:26px}
.vg-td .away{margin:22px -19px 0;padding:11px 18px 13px;border:1px solid #E6ECF2;border-radius:12px;font-size:13px;line-height:1.6;color:#444D5A;
  white-space:nowrap;overflow:hidden;display:flex;gap:4px}
.vg-td .away b{font-weight:600;color:#0F1A2B}
.vg-td .away .door-l{margin-left:auto;padding-left:14px}
.vg-td .band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr);margin-top:30px}
.vg-td .col{padding:0 40px}
.vg-td .col:first-child{padding-left:0}
.vg-td .col:last-child{padding-right:0}
.vg-td .col+.col{border-left:1px solid #E6ECF2}
.vg-td .bare{display:block;margin-top:14px;padding:7px 0 9px;border-bottom:1px solid #E6ECF2;font-size:13px;color:#9AA3AF}
.vg-td .note{padding:12px 0 2px}
.vg-td .note small{display:block;font-size:11px;color:#626976}
.vg-td .note small i{font-style:normal;color:#1E8E5A}
.vg-td .note .pinned{font-size:9.5px;font-weight:700;letter-spacing:.07em}
.vg-td .note p{font-size:13.5px;line-height:1.5;color:#0F1A2B;margin-top:3px}
.vg-td .hint{font-size:11px;color:#626976;margin-top:7px}
.vg-td .sect{margin-top:16px;margin-bottom:2px}
.vg-td .sect.warn{color:#9A5B00}
.vg-td .task{display:flex;gap:10px;padding:7px 0}
.vg-td .task>i{flex:none;width:16px;height:16px;border-radius:50%;border:1.5px solid #D6DEE8;margin-top:1px;display:grid;place-items:center}
.vg-td .task b{display:block;font-size:13.5px;font-weight:500;color:#0F1A2B;line-height:1.35}
.vg-td .task small{display:block;font-size:11.5px;color:#626976;margin-top:2px}
.vg-td .task small em{color:#9A5B00}
.vg-td .task.done>i{background:#1E8E5A;border-color:#1E8E5A;color:#fff}
.vg-td .task.done>i .ic{width:10px;height:10px}
.vg-td .task.done b{text-decoration:line-through;color:#626976}
.vg-td .day{color:#0F1A2B;margin-top:16px;margin-bottom:2px}
.vg-td .col:last-child>.kick:first-child+.day{margin-top:14px}
.vg-td .ag{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:baseline;padding:9px 10px;margin-left:-10px;border-radius:10px}
.vg-td .ag:first-of-type{background:#EEF3F8}
.vg-td .ag .slot{font:600 12px/1 "Inter",sans-serif;color:#626976}
.vg-td .ag .lbl{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-td .ag b{font-size:13.5px}
.vg-td .biz{margin-top:44px}
.vg-td .biz-h{display:flex;align-items:baseline;gap:10px}
.vg-td .biz-h .aed{font-size:11.5px;color:#626976}
.vg-td .biz-h .door-l{margin-left:auto}
.vg-td .biz-cols{display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px}
.vg-td .biz-cols>div{padding:0 24px;border-left:1px solid #E6ECF2}
.vg-td .bf{display:flex;align-items:baseline;gap:7px;margin-top:12px;font:500 32px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.02em}
.vg-td .bf span{font:600 12px/1 "Inter",sans-serif;color:#626976;letter-spacing:0}
.vg-td .biz-cols p{font-size:12px;line-height:1.45;color:#444D5A;margin-top:9px;min-height:35px}
.vg-td .biz-cols p em{color:#9A5B00;font-weight:600}
.vg-td .spark{width:100%;height:46px;margin-top:6px}
.vg-td .ring{display:flex;gap:12px;align-items:center;margin-top:6px}
.vg-td .ring svg{width:46px;height:46px}
.vg-td .ring b{display:block;font-size:12.5px}
.vg-td .ring small{display:block;font-size:11px;color:#626976}
.vg-td .ramp{display:flex;gap:2px;height:10px;margin-top:18px;border-radius:3px;overflow:hidden}
.vg-td .ramp-l{display:flex;justify-content:space-between;font-size:10.5px;color:#626976;margin-top:6px}

/* ── Scribe (src/modules/codex) ─────────────────────────────────────────────────────────────── */
.vg-sc .page{display:grid;grid-template-columns:220px minmax(0,1fr) 270px}
.vg-sc .nb{padding:22px 18px;border-right:1px solid #E6ECF2;background:#FBFCFE}
.vg .nb-cover{position:relative;width:78px;height:96px;border-radius:4px 8px 8px 4px;background:linear-gradient(160deg,var(--a),var(--b));
  box-shadow:0 1px 2px rgba(15,26,43,.15),0 8px 18px -8px rgba(15,26,43,.35);overflow:hidden}
.vg .nb-cover::before{content:"";position:absolute;left:0;top:0;bottom:0;width:9px;background:rgba(0,0,0,.14);box-shadow:1px 0 0 rgba(255,255,255,.25)}
.vg .nb-cover i{position:absolute;left:3px;top:14px;bottom:14px;width:3px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.55) 0 2px,transparent 2px 9px)}
.vg .nb-cover.sm{width:42px;height:52px}
.vg-sc .nb-name{display:block;font:800 15px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:14px}
.vg-sc .nb-sub{display:block;font-size:11.5px;color:#626976;margin-top:3px}
.vg-sc .nb-list{display:flex;flex-direction:column;margin-top:18px;gap:2px}
.vg-sc .nb-list span{padding:7px 10px;border-radius:8px;font-size:13px;color:#444D5A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-sc .nb-list .on{background:rgba(109,40,217,.08);color:#0F1A2B;font-weight:600}
.vg-sc .nb-more{display:flex;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #E6ECF2}
.vg-sc .doc{padding:20px 48px 0 56px;min-width:0}
.vg-sc .doc-bar{display:flex;align-items:center;gap:12px;font-size:12px;color:#626976}
.vg-sc .path i{font-style:normal;margin:0 4px;color:#B4BCC8}
.vg-sc .faces{display:flex;margin-left:auto}
.vg-sc .faces span,.vg-sc .fc{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 11.5px/1 "Plus Jakarta Sans",sans-serif;
  box-shadow:0 0 0 2px #fff;flex:none}
.vg-sc .faces span+span{margin-left:-7px}
.vg-sc .doc-title{font:800 36px/1.15 "Plus Jakarta Sans",sans-serif;letter-spacing:-.02em;margin-top:34px}
.vg-sc .props{display:flex;gap:18px;margin-top:12px;font-size:12.5px;color:#0F1A2B}
.vg-sc .props em{color:#626976;margin-right:5px}
.vg-sc .h5{font:700 18px/1.3 "Plus Jakarta Sans",sans-serif;margin-top:30px;letter-spacing:-.01em}
.vg-sc .doc p{font-size:15px;line-height:1.75;color:#1F2937;margin-top:10px}
.vg .live{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;border-radius:6px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.03);
  font-size:13.5px;line-height:1.6;color:#0F1A2B;white-space:nowrap;vertical-align:1px}
.vg .live i{width:6px;height:6px;border-radius:50%;background:#1E8E5A}
.vg .live b{font-weight:800}
.vg-sc .checks{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.vg-sc .checks li{display:flex;align-items:center;gap:10px;font-size:15px;color:#1F2937;position:relative}
.vg-sc .checks li>i{width:17px;height:17px;border-radius:5px;border:1.5px solid #C6CFDA;display:grid;place-items:center;flex:none}
.vg-sc .checks li.ok>i{background:#1E8E5A;border-color:#1E8E5A;color:#fff}
.vg-sc .checks li.ok>i .ic{width:11px;height:11px}
.vg-sc .checks li.ok{color:#626976;text-decoration:line-through}
.vg .mention{color:#1D4ED8;background:rgba(29,78,216,.08);padding:0 4px;border-radius:4px;font-weight:600;margin-left:4px}
.vg .cursor{position:relative;display:inline-block;width:2px;height:20px;background:var(--c);margin-left:2px;vertical-align:-4px}
.vg .cursor em{position:absolute;left:0;top:-17px;padding:1px 6px;border-radius:4px 4px 4px 0;background:var(--c);color:#fff;font:700 10px/1.4 "Inter",sans-serif;white-space:nowrap}
.vg-sc .ph{color:#9AA3AF!important;font-size:14px!important;margin-top:18px!important}
.vg-sc .cm{border-left:1px solid #E6ECF2;padding:22px 18px;display:flex;flex-direction:column;gap:16px;background:#FBFCFE}
.vg-sc .cm-h{font:800 14px/1 "Plus Jakarta Sans",sans-serif;display:flex;align-items:center;gap:8px}
.vg-sc .cm-h span{padding:2px 7px;border-radius:999px;background:#EEF2F6;font:700 11px/1.3 "Inter",sans-serif;color:#444D5A}
.vg-sc .cmt{display:flex;gap:10px}
.vg-sc .cmt b{font-size:12.5px}
.vg-sc .cmt small{font-size:11px;color:#626976;margin-left:6px}
.vg-sc .cmt p{font-size:12.5px;line-height:1.5;color:#1F2937;margin-top:3px}
.vg-sc .cmt .mention{margin-left:0}
.vg-sc .rep{display:inline-block;font:600 11.5px/1 "Inter",sans-serif;color:#626976;margin-top:6px}
.vg-sc .cm-in{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid #D6DEE8;border-radius:10px;font-size:12.5px;color:#9AA3AF;background:#fff}
.vg-sc .cm-in b{color:#1E8E5A;font-size:12px}

/* ── Team Chat (src/modules/chat) ───────────────────────────────────────────────────────────── */
.vg-ch .page{display:grid;grid-template-columns:270px minmax(0,1fr)}
.vg-ch .side{display:flex;flex-direction:column;gap:2px;padding:18px 14px;border-right:1px solid #E6ECF2;background:#FBFCFE}
.vg-ch .srch{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;background:rgba(0,0,0,.04);font-size:13px;color:#8892A4}
.vg-ch .srch .ic{width:14px;height:14px}
.vg .segm.wide{display:flex;margin:12px 0 6px}
.vg .segm.wide span{flex:1;justify-content:center}
.vg-ch .grp{font:700 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;color:#626976;margin:16px 10px 6px}
.vg-ch .it{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:13.5px;color:#444D5A}
.vg-ch .it .ic{width:15px;height:15px;color:#8892A4}
.vg-ch .it.unread{color:#0F1A2B;font-weight:700}
.vg-ch .it em{margin-left:auto;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:#06B6D4;color:#fff;font:700 10.5px/18px "Inter",sans-serif;text-align:center}
.vg-ch .it.on{background:rgba(21,128,61,.1);color:#0F1A2B;font-weight:600}
.vg .pf{position:relative;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 11px/1 "Plus Jakarta Sans",sans-serif;flex:none}
.vg .pf i{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px #fff}
.vg .pf i.on{background:#1E8E5A}
.vg .pf i.away{background:#D97706}
.vg .pf.big{width:38px;height:38px;font-size:14px}
.vg-ch .conv{display:flex;flex-direction:column;min-width:0}
.vg-ch .conv-h{display:flex;align-items:center;gap:12px;padding:16px 26px;border-bottom:1px solid #E6ECF2}
.vg-ch .conv-h b{display:block;font:800 16px/1.2 "Sora","Plus Jakarta Sans",sans-serif}
.vg-ch .conv-h small{display:block;font-size:12px;color:#626976;margin-top:2px}
.vg-ch .msgs{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:18px;padding:16px 26px 20px}
.vg-ch .dayd{display:flex;align-items:center;gap:12px;font:700 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#8892A4}
.vg-ch .dayd::before,.vg-ch .dayd::after{content:"";flex:1;height:1px;background:#E6ECF2}
.vg-ch .msg{display:flex;align-items:flex-end;gap:10px}
.vg-ch .msg .pf{width:32px;height:32px;font-size:11.5px}
.vg-ch .pf-sp{width:32px;flex:none}
.vg-ch .msg.mine{flex-direction:row-reverse}
.vg-ch .mc{max-width:72%;min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.vg-ch .mine .mc{align-items:flex-end}
.vg-ch .who{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;padding-left:12px}
.vg-ch .who b{font-size:12.5px}
.vg-ch .who small{font-size:10.5px;color:#8892A4}
.vg-ch .bub{padding:10px 14px;border-radius:16px 16px 16px 4px;border:1px solid rgba(0,0,0,.07);background:rgba(0,0,0,.05)}
.vg-ch .cont .bub{border-radius:16px}
.vg-ch .mine .bub{border-radius:16px 16px 4px 16px;border-color:rgba(6,182,212,.3);background:linear-gradient(135deg,rgba(6,182,212,.22),rgba(59,130,246,.18))}
.vg-ch .bub p{font-size:13.5px;line-height:1.6;color:#444D5A;margin:2px 0}
.vg-ch .bub .rec{margin-top:4px}
.vg-ch .t{margin-top:3px;padding-right:8px;font-size:10px;color:#8892A4}
.vg-ch .msgs{gap:12px}
.vg .rec{display:inline-flex;align-items:center;gap:10px;margin-top:8px;padding:9px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.03);max-width:100%}
.vg .rec-i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;border:1px solid rgba(0,0,0,.1);color:#0F1A2B;flex:none}
.vg .rec-i .ic{width:14px;height:14px}
.vg .rec b{display:block;font:700 12.5px/1.2 "Plus Jakarta Sans",sans-serif}
.vg .rec small{display:block;font-size:11px;color:#626976;margin-top:2px}
.vg .rec strong{margin-left:8px;font:700 12.5px/1 "Inter",sans-serif;white-space:nowrap}
.vg .rec>div{min-width:0}
.vg .rec small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-ch .composer{margin:0 26px 20px;border:1px solid #D6DEE8;border-radius:14px;padding:12px 14px 10px}
.vg-ch .cin{display:block;font-size:14px;color:#9AA3AF;padding:2px 2px 14px}
.vg-ch .crow{display:flex;align-items:center;gap:12px}
.vg-ch .tools-l{display:flex;gap:12px;color:#8892A4}
.vg-ch .tools-l .ic{width:16px;height:16px}
.vg-ch .crow small{margin-left:auto;font-size:11.5px;color:#8892A4}
.vg-ch .send{padding:8px 16px;border-radius:9px;background:#1E8E5A;color:#fff;font:700 12.5px/1 "Inter",sans-serif}

/* ── Calendar (src/modules/calendar/Calendar.jsx) ───────────────────────────────────────────── */
.vg-cal .page{display:grid;grid-template-columns:minmax(0,1fr) 300px}
.vg-cal .cal{padding:20px 24px 0}
.vg-cal .cal-h{display:flex;align-items:center;gap:8px}
.vg-cal .cal-h>b{font:800 20px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.01em;margin-right:6px}
.vg-cal .arr{width:28px;height:28px;border-radius:8px;border:1px solid rgba(148,163,184,.25);display:grid;place-items:center;color:#94A3B8}
.vg-cal .arr .ic{width:14px;height:14px}
.vg .btn-s{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid #D6DEE8;font:700 11.5px/1 "Inter",sans-serif;color:#444D5A}
.vg .btn-s .ic{width:13px;height:13px}
.vg-cal .cal-h .segm{margin-left:auto}
.vg-cal .cds{display:flex;gap:10px;margin-top:16px}
.vg-cal .cd{flex:0 0 auto;min-width:150px;padding:10px 13px;border-radius:13px;border:1px solid rgba(0,0,0,.1);background:#fff}
.vg-cal .cd b{display:block;font:800 19px/1 "Plus Jakarta Sans",sans-serif;color:#0F1A2B;white-space:nowrap}
.vg-cal .cd span{display:block;margin:5px 0 2px;font:700 11.5px/1.3 "Inter",sans-serif;color:#0F1A2B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-cal .cd small{display:block;font-size:9.5px;color:#626976}
.vg-cal .wk{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:16px;font:800 9.5px/1 "Inter",sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#8892A4;padding:0 4px}
.vg-cal .mg{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:8px}
.vg-cal .d{min-height:96px;border-radius:9px;background:#FBFBFD;border:1px solid #EEF0F3;padding:6px;display:flex;flex-direction:column;gap:3px;overflow:hidden}
.vg-cal .d>i{font:600 11px/22px "Inter",sans-serif;font-style:normal;color:#444D5A;width:22px;height:22px;text-align:center;border-radius:50%}
.vg-cal .d.o>i{color:#B4BCC8}
.vg-cal .d.today>i{background:#1E8E5A;color:#fff;font-weight:800}
.vg-cal .ev{display:block;padding:3px 5px;border-radius:4px;font:600 9.5px/1.25 "Inter",sans-serif;color:color-mix(in srgb,var(--c) 75%,#0F1A2B);
  background:color-mix(in srgb,var(--c) 10%,#fff);border-left:2px solid var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-cal .more{font:600 9.5px/1 "Inter",sans-serif;color:#626976;padding:2px 5px}
.vg-cal .tr{border-left:1px solid #E6ECF2;padding:20px 18px;display:flex;flex-direction:column;gap:10px;background:#FBFCFE}
.vg-cal .tr-h{display:flex;align-items:center;gap:8px}
.vg-cal .tr-h b{font:800 14px/1 "Plus Jakarta Sans",sans-serif}
.vg-cal .tr-h span{font-size:11.5px;color:#626976}
.vg-cal .tr-h em{margin-left:auto;display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:8px;background:#1E8E5A;color:#fff;font:700 11.5px/1 "Inter",sans-serif}
.vg-cal .tr-h em .ic{width:12px;height:12px}
.vg-cal .tr .segm.wide{margin:4px 0 2px}
.vg-cal .tr .segm span{padding:6px 8px;font-size:11px}
.vg-cal .tk{display:flex;gap:10px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #EEF0F3}
.vg-cal .tk>i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--c);margin-top:5px}
.vg-cal .tk b{display:block;font-size:12.5px;font-weight:600;line-height:1.35}
.vg-cal .tk small{display:block;font-size:11px;color:#626976;margin-top:2px}
.vg-cal .tr-k{font:700 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#626976;margin-top:8px}
.vg-cal .cdl{display:flex;justify-content:space-between;font-size:12.5px;color:#444D5A;padding:2px 0}
.vg-cal .cdl b{font-size:12px;color:#0F1A2B}
.vg-cal .sub{margin-top:auto;margin-bottom:14px;padding:14px;border-radius:12px;background:#fff;border:1px solid #E6ECF2}
.vg-cal .sub b{display:block;font:700 13px/1.3 "Plus Jakarta Sans",sans-serif}
.vg-cal .sub-b{display:flex;gap:6px;margin-top:10px}
.vg-cal .sub-b span{flex:1;text-align:center;padding:7px 0;border-radius:8px;border:1px solid #D6DEE8;font:600 11.5px/1 "Inter",sans-serif;color:#444D5A}

/* ── Documents & Sign (src/modules/documents) ───────────────────────────────────────────────── */
.vg-dc .page{display:grid;grid-template-columns:220px minmax(0,1fr)}
.vg-dc .lib{padding:18px 12px;border-right:1px solid #E6ECF2;background:#FBFCFE;display:flex;flex-direction:column;gap:1px}
.vg-dc .lib-k{font:700 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;color:#626976;margin:6px 10px 8px}
.vg-dc .lib-k+.li{margin-top:0}
.vg-dc .li+.lib-k{margin-top:18px}
.vg-dc .li{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;font-size:13px;color:#444D5A}
.vg-dc .li .ic{width:15px;height:15px;color:#8892A4}
.vg-dc .li.on{background:rgba(51,65,85,.08);color:#0F1A2B;font-weight:600}
.vg-dc .li.exp .ic{color:#B45309}
.vg-dc .li em{margin-left:auto;font:700 10.5px/1 "Inter",sans-serif;color:#B45309;background:#FFF7ED;padding:3px 6px;border-radius:6px}
.vg-dc .fd{width:13px;height:11px;border-radius:2px 3px 3px 3px;flex:none;margin:0 1px}
.vg-dc .quota{margin-top:auto;padding:12px 10px 4px;font-size:11px;color:#626976}
.vg-dc .quota i{display:block;height:4px;border-radius:2px;background:rgba(0,0,0,.08);overflow:hidden;margin-bottom:7px}
.vg-dc .quota b{display:block;height:100%;background:#334155}
.vg-dc .files{padding:18px 24px 0;min-width:0}
.vg-dc .f-bar{display:flex;gap:8px;align-items:center}
.vg-dc .srch{flex:1;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;background:rgba(0,0,0,.04);font-size:13px;color:#8892A4}
.vg-dc .srch .ic{width:14px;height:14px}
.vg-dc .srch kbd{margin-left:auto;font:600 11px/1 "Inter",sans-serif;padding:3px 6px;border-radius:5px;border:1px solid #D6DEE8;color:#8892A4;background:#fff}
.vg .btn-s.pri{background:#0F1A2B;color:#fff;border-color:#0F1A2B}
.vg-dc .folders{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.vg-dc .fo{padding:12px 12px 14px;border-radius:12px;border:1px solid #EEF0F3;background:#FBFBFD}
.vg-dc .fo .folder{width:76px;height:64px;display:block}
.vg-dc .fo b{display:block;font:700 13px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:8px}
.vg-dc .fo small{display:block;font-size:11.5px;color:#626976;margin-top:2px}
.vg-dc .fl{display:grid;grid-template-columns:minmax(0,2.4fr) 1.1fr 1fr 1.05fr;gap:14px;align-items:center;padding:10px 6px;border-top:1px solid #EEF0F3;font-size:12.5px;color:#444D5A}
.vg-dc .fl-h{margin-top:18px;border-top:0;font:700 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#626976}
.vg-dc .nm{display:flex;align-items:center;gap:10px;color:#0F1A2B;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-dc .nm i{flex:none;width:30px;height:22px;border-radius:5px;display:grid;place-items:center;font:800 8.5px/1 "Inter",sans-serif;font-style:normal;color:#fff}
.vg-dc .nm i.pdf{background:#DC2626}
.vg-dc .nm i.img{background:#0EA5E9}
.vg-dc .tg{display:inline-block;padding:2px 7px;border-radius:999px;background:#EEF2F6;font-size:11px;color:#444D5A;margin-right:4px}
.vg-dc .xp{display:inline-block;padding:3px 8px;border-radius:6px;font:600 11px/1.3 "Inter",sans-serif}
.vg-dc .xp.amber{background:#FFF7ED;color:#B45309}
.vg-dc .xp.red{background:#FEF2F2;color:#B91C1C}
.vg-dc .mut{color:#8892A4}
.vg-dc .sign{position:absolute;right:22px;bottom:20px;width:350px;padding:16px;border-radius:16px;background:#fff;border:1px solid #D6DEE8;
  box-shadow:0 24px 50px -16px rgba(15,26,43,.35),0 2px 6px rgba(15,26,43,.06)}
.vg-dc .sg-h b{display:block;font:800 16px/1 "Plus Jakarta Sans",sans-serif}
.vg-dc .sg-h span{display:block;font-size:11.5px;color:#626976;margin-top:5px}
.vg-dc .sg-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.vg-dc .sg-stats div{padding:9px 10px;border-radius:10px;background:#F6F9FC}
.vg-dc .sg-stats b{display:block;font:800 18px/1 "Plus Jakarta Sans",sans-serif}
.vg-dc .sg-stats span{display:block;font-size:10.5px;color:#626976;margin-top:4px}
.vg-dc .sg-req{margin-top:12px;padding:12px;border-radius:12px;border:1px solid #EEF0F3}
.vg-dc .sg-t{display:flex;justify-content:space-between;align-items:center;gap:8px}
.vg-dc .sg-t b{font:700 13px/1.2 "Plus Jakarta Sans",sans-serif}
.vg-dc .sg-t em{font:700 10.5px/1 "Inter",sans-serif;color:#B45309;background:#FFFBEB;padding:4px 7px;border-radius:6px;white-space:nowrap}
.vg-dc .sg-who{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:12.5px}
.vg-dc .sg-who .pf{width:22px;height:22px;font-size:10px}
.vg-dc .sg-who i{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font:600 11px/1 "Inter",sans-serif;font-style:normal;color:#8892A4}
.vg-dc .sg-who i.ok{color:#1E8E5A}
.vg-dc .sg-who i .ic{width:12px;height:12px}
.vg-dc .sg-prog{display:flex;align-items:center;gap:10px;margin-top:11px;font-size:11px;color:#626976}
.vg-dc .sg-prog i{flex:1;height:4px;border-radius:2px;background:rgba(0,0,0,.08);overflow:hidden}
.vg-dc .sg-prog b{display:block;height:100%;background:#F59E0B}

/* ── PDF workspace (src/modules/pdf, src/components/DocViewer.jsx) ──────────────────────────── */
.vg-pdf .page{display:grid;grid-template-columns:172px minmax(0,1fr) 280px}
.vg-pdf .rail2{padding:14px 0 0;border-right:1px solid #E6ECF2;background:#FBFCFE;display:flex;flex-direction:column;align-items:center;gap:14px;overflow:hidden}
.vg-pdf .r2-h{align-self:flex-start;margin-left:18px;font:700 11.5px/1 "Inter",sans-serif;color:#626976}
.vg-pdf .th{position:relative;width:118px;height:152px;padding:2px;border-radius:6px;flex:none}
.vg-pdf .th.on{outline:2px solid #1E8E5A;outline-offset:2px}
.vg-pdf .pg{display:flex;flex-direction:column;gap:7px;height:100%;padding:12px 10px;background:#fff;border-radius:3px;box-shadow:0 1px 3px rgba(15,26,43,.16)}
.vg-pdf .pg i{display:block;height:4px;border-radius:2px;background:#E2E8F0}
.vg-pdf .pg .lh{height:12px;background:linear-gradient(90deg,#0B1F16 0 22%,#E2E8F0 22%)}
.vg-pdf .pg .blk{height:34px;background:#F1F5F9}
.vg-pdf .pg .blk.sm{height:22px}
.vg-pdf .w30{width:30%}.vg-pdf .w40{width:40%}.vg-pdf .w50{width:50%}.vg-pdf .w60{width:60%}.vg-pdf .w70{width:70%}.vg-pdf .w80{width:80%}
.vg-pdf .th em{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:#fff;
  border:1px solid #D6DEE8;font:700 10px/16px "Inter",sans-serif;text-align:center;color:#626976}
.vg-pdf .th.on em{background:#1E8E5A;border-color:#1E8E5A;color:#fff}
.vg-pdf .canvas{background:#E3E6EA;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center}
.vg-pdf .tb{align-self:stretch;display:flex;align-items:center;gap:12px;padding:8px 14px;background:#fff;border-bottom:1px solid #E6ECF2}
.vg-pdf .tb-file{font:700 13px/1 "Plus Jakarta Sans",sans-serif}
.vg-pdf .tb-n{font-size:12px;color:#626976}
.vg-pdf .tb-r{margin-left:auto;display:flex;gap:4px;align-items:center}
.vg .tbtn{height:32px;min-width:32px;padding:0 7px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:2px;color:#444D5A}
.vg .tbtn .ic{width:16px;height:16px}
.vg .tbtn.wide{font:600 12px/1 "Inter",sans-serif;min-width:52px;background:rgba(0,0,0,.04)}
.vg .tbtn.on{background:rgba(30,142,90,.12);color:#1E8E5A}
.vg .tbtn em{font-size:9px;opacity:.7}
.vg-pdf .mk{display:flex;align-items:center;gap:2px;margin:12px 0 0;padding:4px 6px;background:#fff;border-radius:12px;box-shadow:0 4px 14px rgba(15,26,43,.12)}
.vg-pdf .mk .sep{width:1px;height:20px;background:#E6ECF2;margin:0 4px}
.vg-pdf .sheet-a4{position:relative;width:440px;height:622px;margin-top:16px;background:#fff;box-shadow:0 2px 6px rgba(15,26,43,.12),0 18px 40px -18px rgba(15,26,43,.35);flex:none}
.vg-pdf .lhd{display:flex;align-items:center;gap:12px;padding:16px 26px;background:#0B1F16;color:#CFE3D8}
.vg-pdf .lh-mark{width:30px;height:30px;border-radius:7px;background:#17714A;color:#fff;display:grid;place-items:center;font:800 10px/1 "Plus Jakarta Sans",sans-serif}
.vg-pdf .lhd b{display:block;font:700 13px/1.2 "Plus Jakarta Sans",sans-serif;color:#fff}
.vg-pdf .lhd small{display:block;font-size:8px;margin-top:3px;color:#9FB3A8}
.vg-pdf .a4-in{position:relative;padding:22px 26px}
.vg-pdf .a4-t{display:flex;justify-content:space-between;font-size:9px}
.vg-pdf .a4-t small{display:block;font:700 8px/1 "Inter",sans-serif;letter-spacing:.08em;color:#626976}
.vg-pdf .a4-t b{display:block;font:800 18px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:4px}
.vg-pdf .a4-to{text-align:right}
.vg-pdf .a4-to b{font-size:11px!important}
.vg-pdf .a4-to span{display:block;font-size:8.5px;color:#626976;margin-top:3px}
.vg-pdf .a4-row{display:grid;grid-template-columns:1fr 40px 60px 70px;gap:8px;padding:8px 0;border-bottom:1px solid #EEF0F3;font-size:9.5px}
.vg-pdf .a4-row span:nth-child(n+2){text-align:right}
.vg-pdf .a4-hd{margin-top:22px;font:700 8px/1 "Inter",sans-serif;letter-spacing:.06em;color:#626976;text-transform:uppercase;border-bottom:1px solid #0F1A2B}
.vg-pdf .a4-tot{width:52%;margin:12px 0 0 auto;font-size:9.5px}
.vg-pdf .a4-tot div{display:flex;justify-content:space-between;padding:4px 0}
.vg-pdf .a4-tot .g{font-weight:800;border-top:1px solid #0F1A2B;margin-top:4px;padding-top:7px;font-size:11px}
.vg-pdf .stamp{position:absolute;left:58px;top:150px;padding:6px 16px;border:3px solid #059669;border-radius:8px;color:#059669;
  font:900 30px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:.1em;transform:rotate(-15deg);opacity:.85;box-shadow:inset 0 0 0 2px rgba(5,150,105,.25)}
.vg-pdf .signed{position:absolute;left:26px;top:300px;width:170px;outline:1.5px dashed rgba(30,142,90,.6);outline-offset:6px;border-radius:2px}
.vg-pdf .signed svg{width:160px;height:50px}
.vg-pdf .signed small{display:block;font-size:8.5px;color:#444D5A;border-top:1px solid #94A3B8;padding-top:3px;margin-top:-2px}
.vg-pdf .lpanel{border-left:1px solid #E6ECF2;padding:20px 18px;display:flex;flex-direction:column;gap:6px;background:#FBFCFE}
.vg-pdf .lp-t{font:800 16px/1 "Plus Jakarta Sans",sans-serif}
.vg-pdf .lp-s{font-size:12px;color:#626976;margin-top:2px}
.vg-pdf .lp-btn{align-self:flex-start;margin-top:10px;padding:8px 14px;border-radius:9px;border:1px solid #D6DEE8;font:600 12.5px/1 "Inter",sans-serif;background:#fff}
.vg-pdf .lp-k{font:700 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;color:#626976;margin-top:16px}
.vg-pdf .lpanel .segm.wide{margin:6px 0 0}
.vg-pdf .lpanel .segm span{padding:7px 8px;font-size:11.5px}
.vg-pdf .lp-n{font-size:12px;line-height:1.5;color:#626976;margin-top:14px}
.vg-pdf .stamps{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.vg-pdf .stamps span{padding:4px 8px;border:2px solid var(--c);border-radius:6px;color:var(--c);font:900 10.5px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:.08em}

/* ── Eagle (src/components/EagleCopilot.jsx) ────────────────────────────────────────────────── */
.vg-eg{display:flex;flex-direction:column;border-radius:20px;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(24px) saturate(1.3);backdrop-filter:blur(24px) saturate(1.3);
  border:1px solid rgba(0,0,0,.1);box-shadow:0 30px 80px rgba(2,6,23,.45),0 0 0 1px rgba(255,255,255,.5) inset}
.eg-sweep{height:2px;background:rgba(0,0,0,.06);overflow:hidden;position:relative}
.eg-sweep i{position:absolute;left:0;top:0;bottom:0;width:45%;background:linear-gradient(90deg,#34D399,#22D3EE,#6366F1,#A78BFA)}
.eg-h{display:flex;align-items:center;gap:10px;padding:14px 14px 12px 16px}
.eg-mark{width:40px;height:40px;display:grid;place-items:center;flex:none}
.eg-mark .eagle-svg{width:40px;height:40px;overflow:visible}
.eg-mark.sm,.eg-mark.sm .eagle-svg{width:26px;height:26px}
.eg-h b{display:block;font:800 15px/1.2 "Plus Jakarta Sans",sans-serif;letter-spacing:-.01em}
.eg-h small{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#626976;margin-top:2px}
.eg-h small i{width:6px;height:6px;border-radius:50%;background:#1E8E5A}
.eg-ib{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:#626976}
.eg-ib:first-of-type{margin-left:auto}
.eg-ib .ic{width:17px;height:17px}
.eg-body{flex:1;display:flex;flex-direction:column;gap:14px;padding:6px 16px 10px;overflow:hidden}
.eg-u{align-self:flex-end;max-width:84%;padding:9px 13px;border-radius:16px 16px 5px 16px;color:#fff;font-size:13px;line-height:1.45;
  background:linear-gradient(135deg,#1E8E5A,rgb(23,111,70));box-shadow:0 6px 18px rgba(0,0,0,.14)}
.eg-think{display:none;align-items:center;gap:10px;font-size:12.5px;color:#626976}
.eg-shim{width:54px;height:3px;border-radius:2px;background:linear-gradient(90deg,#34D399,#22D3EE,#6366F1,#A78BFA);background-size:200% 100%;animation:egShim 1.2s linear infinite}
@keyframes egShim{to{background-position:-200% 0}}
.eg-a{display:flex;gap:10px;align-items:flex-start}
.eg-txt{font-size:13px;line-height:1.55;color:#0F1A2B;min-width:0;flex:1}
.eg-txt b{font-weight:700}
.eg-tbl{margin-top:10px;border:1px solid rgba(0,0,0,.08);border-radius:10px;overflow:hidden;font-size:12px}
.eg-tbl div{display:grid;grid-template-columns:1fr 78px 40px;gap:8px;padding:6px 10px;border-top:1px solid rgba(0,0,0,.06)}
.eg-tbl div:first-child{border-top:0}
.eg-tbl span:nth-child(n+2){text-align:right}
.eg-tbl .h{background:rgba(0,0,0,.035);font-weight:700;font-size:11px;color:#444D5A}
.eg-act{display:inline-block;margin-top:12px;padding:7px 13px;border-radius:999px;color:#fff;font:700 12px/1 "Inter",sans-serif;
  background:linear-gradient(90deg,#34D399,#22D3EE,#6366F1,#A78BFA);box-shadow:0 6px 18px rgba(99,102,241,.28)}
.eg-in{display:flex;align-items:center;gap:10px;margin:0 14px;padding:8px 8px 8px 14px;border-radius:16px;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1);
  font-size:13px;color:#8892A4;min-height:52px}
.eg-in span{flex:1}
.eg-in span.typing{color:#0F1A2B}
.eg-in span.typing::after{content:"";display:inline-block;width:1.5px;height:15px;background:#0F1A2B;margin-left:1px;vertical-align:-3px;animation:egCaret 1s steps(1) infinite}
@keyframes egCaret{50%{opacity:0}}
.eg-send{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#34D399,#22D3EE,#6366F1,#A78BFA)}
.eg-send .ic{width:15px;height:15px}
.eg-foot{display:flex;justify-content:space-between;gap:8px;padding:8px 16px 14px;font-size:10px;color:#626976;white-space:nowrap}
.eg-foot span:last-child{overflow:hidden;text-overflow:ellipsis}
/* the conversation plays once on screen (site.js); without the script it is simply shown */
.vg-eg.play [data-eg=ask],.vg-eg.play [data-eg=answer]{opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}
.vg-eg.play.s-ask [data-eg=ask],.vg-eg.play.s-ans [data-eg=answer]{opacity:1;transform:none}
.vg-eg.play.s-think [data-eg=think]{display:flex}
.vg-eg.play.s-ans [data-eg=think]{display:none}
.vg-eg.play .eg-tbl div{opacity:0;transition:opacity .35s}
.vg-eg.play.s-ans .eg-tbl div{opacity:1}
.vg-eg.play.s-ans .eg-tbl div:nth-child(2){transition-delay:.1s}.vg-eg.play.s-ans .eg-tbl div:nth-child(3){transition-delay:.18s}
.vg-eg.play.s-ans .eg-tbl div:nth-child(4){transition-delay:.26s}.vg-eg.play.s-ans .eg-tbl div:nth-child(5){transition-delay:.34s}
.vg-eg.play.s-ans .eg-tbl div:nth-child(6){transition-delay:.42s}.vg-eg.play.s-ans .eg-tbl div:nth-child(7){transition-delay:.5s}

/* ── Customer portal (src/pages/Portal.jsx) ─────────────────────────────────────────────────── */
.vg-pt{display:grid;grid-template-columns:232px minmax(0,1fr) 360px;background:#F5F7FA;color:#0F172A}
.vg-pt .pt-side{background:#fff;border-right:1px solid #E2E8F0;padding:22px 16px;display:flex;flex-direction:column;gap:2px}
.vg-pt .pt-k{font:700 10px/1 "Inter",sans-serif;letter-spacing:.1em;color:#94A3B8;margin:0 8px 14px}
.vg-pt .pt-co{display:flex;align-items:center;gap:10px;margin:0 6px 18px}
.vg-pt .pt-logo{width:34px;height:34px;border-radius:9px;background:#0B1F16;color:#7FD8AC;display:grid;place-items:center;font:800 11px/1 "Plus Jakarta Sans",sans-serif}
.vg-pt .pt-co b{font:700 14px/1.25 "Plus Jakarta Sans",sans-serif}
.vg-pt .pt-n{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:13.5px;color:#475569}
.vg-pt .pt-n .ic{width:15px;height:15px}
.vg-pt .pt-n.on{background:#EEF2F7;color:#0F172A;font-weight:600}
.vg-pt .pt-n em{margin-left:auto;min-width:18px;height:18px;border-radius:9px;background:#1E8E5A;color:#fff;font:700 10.5px/18px "Inter",sans-serif;text-align:center}
.vg-pt .pt-acc{margin-top:auto;padding:12px;border-radius:12px;background:#F5F7FA;border:1px solid #E2E8F0}
.vg-pt .pt-acc b{display:block;font-size:12.5px}
.vg-pt .pt-acc small{display:block;font-size:11px;color:#94A3B8;margin-top:2px}
.vg-pt .pt-pow{margin:14px 8px 0}
.vg-pt .pt-pow small{display:block;font:700 9px/1 "Inter",sans-serif;letter-spacing:.1em;color:#94A3B8}
.vg-pt .pt-pow span{display:flex;align-items:center;gap:6px;font:700 13px/1 "Plus Jakarta Sans",sans-serif;margin-top:6px}
.vg-pt .pt-pow .logo{width:18px;height:18px}
.vg-pt .pt-main{padding:34px 36px}
.vg-pt .pt-hi{font:800 26px/1.2 "Plus Jakarta Sans",sans-serif;letter-spacing:-.015em}
.vg-pt .pt-bal{margin-top:22px;padding:22px 24px;border-radius:16px;background:#fff;border:1px solid #E2E8F0}
.vg-pt .pt-bal small{display:block;font-size:12.5px;color:#475569}
.vg-pt .pt-bal b{display:block;font:800 36px/1.1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.02em;margin-top:6px}
.vg-pt .pt-ok{display:inline-block;margin-top:10px;font-size:12.5px;color:#1E8E5A;font-weight:600}
.vg-pt .pt-age{display:flex;height:8px;border-radius:4px;overflow:hidden;margin-top:18px;background:#EEF2F7}
.vg-pt .pt-age .seg{background:#1E8E5A}
.vg-pt .pt-agel{display:flex;justify-content:space-between;margin-top:8px;font-size:11.5px;color:#94A3B8}
.vg-pt .pt-agel b{color:#0F172A;font-weight:600}
.vg-pt .pt-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.vg-pt .pt-tiles div{padding:16px 18px;border-radius:14px;background:#fff;border:1px solid #E2E8F0}
.vg-pt .pt-tiles b{display:block;font:700 14px/1.3 "Plus Jakarta Sans",sans-serif}
.vg-pt .pt-tiles small{display:block;font-size:12px;color:#475569;margin-top:4px}
.vg-pt .pt-sheet{margin:20px 20px 20px 0;padding:22px;border-radius:18px;background:#fff;border:1px solid #E2E8F0;box-shadow:0 20px 40px -20px rgba(15,23,42,.25);display:flex;flex-direction:column}
.vg-pt .ps-h{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #E2E8F0}
.vg-pt .ps-h small{display:block;font-size:11.5px;color:#94A3B8}
.vg-pt .ps-h b{display:block;font:800 22px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:2px}
.vg-pt .ps-due{font-size:11.5px;font-weight:600;color:#475569;background:#EEF2F7;padding:4px 8px;border-radius:7px}
.vg-pt .ps-l{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #EEF2F7;font-size:13px}
.vg-pt .ps-l.mut{color:#475569}
.vg-pt .ps-l.tot{font-weight:800;font-size:14px;border-bottom:0}
.vg-pt .ps-pay{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding:13px;border-radius:12px;background:#1E8E5A;color:#fff;font:700 14px/1 "Inter",sans-serif}
.vg-pt .ps-pay .ic{width:16px;height:16px}
.vg-pt .ps-ask{display:block;text-align:center;margin-top:10px;padding:11px;border-radius:12px;border:1px solid #E2E8F0;font:600 13px/1 "Inter",sans-serif;color:#475569}
.vg-pt .ps-gt{margin-top:auto;padding-top:16px;border-top:1px solid #EEF2F7}
.vg-pt .ps-gt small{display:block;font-size:11.5px;color:#94A3B8;line-height:1.5}
.vg-pt .ps-gt span{display:block;font:700 12px/1 "Inter",sans-serif;color:#1E8E5A;margin-top:8px}

/* ── invoice looks (src/lib/templatePresets.js): the same shop order, drawn as each look prints ── */
.tdoc{position:relative;width:100%;height:100%;padding:24px 22px;background:var(--paper,#fff);color:var(--text,#111827);font:400 8.5px/1.45 var(--body,"Inter"),sans-serif;
  display:flex;flex-direction:column;overflow:hidden;font-variant-numeric:tabular-nums}
.tdoc .tbn{font-family:var(--brandf,var(--head));color:var(--accent);line-height:1.05}
.tdoc .dh{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding-bottom:12px}
.tdoc .dm{text-align:right;color:var(--muted);font-size:8px;line-height:1.5}
.tdoc .dm span,.tdoc .dm b{display:block}
.tdoc .dm b{font-family:var(--head);color:var(--text);font-size:11px}
.tdoc .dp{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--rule,#E5E7EB)}
.tdoc .dp small{display:block;font-size:7px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.tdoc .dp b{display:block;font-family:var(--head);font-size:10px;margin-top:2px}
.tdoc .dp span{display:block;color:var(--muted);font-size:7.5px;margin-top:1px}
.tdoc .dl{margin-top:6px}
.tdoc .li{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--rule,#E5E7EB)}
.tdoc .li span{flex:1;min-width:0}
.tdoc .li b{font-weight:600}
.tdoc .ph{width:22px;height:22px;border-radius:3px;flex:none}
.tdoc .dt{margin:10px 0 0 auto;width:58%}
.tdoc .dt div{display:flex;justify-content:space-between;padding:2px 0;color:var(--muted)}
.tdoc .dt .g{color:var(--text);font-weight:700;font-size:10px;margin-top:4px;padding-top:6px;border-top:1px solid var(--text)}
.tdoc .dt .g b{color:var(--accent)}
.tdoc .words{font-size:7px;color:var(--muted);text-align:right;margin-top:4px;font-style:italic}
.tdoc .dk{margin-top:auto;text-align:center;font-family:var(--brandf,var(--head));color:var(--accent)}
.tdoc .ds{text-align:center;font-size:7.5px;color:var(--muted);margin-top:4px}
.t-atelier{--paper:#FBF8F2;--accent:#A68A64;--text:#2B2620;--muted:#7D7468;--rule:#E7DCCB;--head:"Cormorant Garamond",Georgia,serif;--body:"Montserrat";padding:26px 24px}
.t-atelier .dh{flex-direction:column;align-items:center;text-align:center;border-bottom:1px solid var(--accent);padding-bottom:12px}
.t-atelier .tbn{font-size:30px;font-weight:600}
.t-atelier .dm{text-align:center;letter-spacing:.14em;font-size:7px}
.t-atelier .dk{font-size:17px;font-style:italic}
.t-noir{--accent:#B08D57;--text:#141414;--muted:#6E6A64;--rule:#ECE6DC;--head:"Bodoni Moda",Didot,serif;--body:"Jost";box-shadow:inset 0 0 0 8px #fff,inset 0 0 0 9px #B08D57}
.t-noir .dh{flex-direction:column;align-items:center;text-align:center}
.t-noir .mono{width:40px;height:40px;border-radius:50%;border:1px solid var(--accent);display:grid;place-items:center;font:500 15px/1 "Bodoni Moda",serif;color:var(--accent);letter-spacing:.04em}
.t-noir .tbn{font-size:15px;letter-spacing:.28em;color:var(--text);margin-top:8px}
.t-noir .dm{text-align:center;margin-top:4px}
.t-noir .dk{font-size:16px;color:var(--text)}
.t-blush{--paper:#FFF9F9;--accent:#C27C8E;--text:#3A2A2F;--muted:#8A7479;--rule:#F3E3E6;--head:"Playfair Display",Georgia,serif;--brandf:"Great Vibes",cursive;--body:"Lato";
  box-shadow:inset 0 0 0 8px #FFF9F9,inset 0 0 0 9px #E8C4CD}
.t-blush .dh{flex-direction:column;align-items:center;text-align:center}
.t-blush .tbn{font-size:34px}
.t-blush .dm{text-align:center}
.t-blush .li{border-top:0;background:#FDF0F2;border-radius:6px;padding:5px 7px;margin-top:4px}
.t-blush .dt .g{border:0;background:#F8E1E6;border-radius:6px;padding:6px 8px}
.t-blush .dk{font-size:20px}
.t-luxe{--paper:#FBF8F2;--accent:#1F3A5F;--text:#1B2433;--muted:#6B7385;--rule:#E6E0D3;--head:"Cinzel",Georgia,serif;--body:"Raleway";
  box-shadow:inset 0 0 0 9px #FBF8F2,inset 0 0 0 10px #1F3A5F,inset 0 0 0 13px #FBF8F2,inset 0 0 0 14px #1F3A5F;padding:30px 28px}
.t-luxe .wm{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);font:600 120px/1 "Cinzel",serif;color:#1F3A5F;opacity:.05;pointer-events:none}
.t-luxe .dh{flex-direction:column;align-items:center;text-align:center;gap:6px}
.t-luxe .mono{width:30px;height:30px;border:1px solid var(--accent);display:grid;place-items:center;font:600 11px/1 "Cinzel",serif;color:var(--accent)}
.t-luxe .tbn{font-size:17px;letter-spacing:.18em;font-weight:600}
.t-luxe .dm{text-align:center;font-size:7px;letter-spacing:.08em}
.t-luxe .dk{font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.t-market{--accent:#E8615A;--text:#1E1E24;--muted:#6B6B76;--rule:#F1F1F4;--head:"Poppins";--brandf:"Pacifico",cursive;--body:"Poppins"}
.t-market .tbn{font-size:24px}
.t-market .li{border-top:0;background:#FFF4F3;border-radius:7px;padding:5px 7px;margin-top:4px}
.t-market .ph{width:26px;height:26px;border-radius:6px}
.t-market .dt .g{border:0;background:#E8615A;color:#fff;border-radius:7px;padding:6px 8px}
.t-market .dt .g b{color:#fff}
.t-market .dk{font-size:16px}
.t-souk{--paper:#FCF9F5;--accent:#7A5640;--text:#2A1E17;--muted:#7D6D63;--rule:#EBE1D7;--head:"Cairo";--brandf:"El Messiri",serif;--body:"Cairo";
  box-shadow:inset 0 0 0 8px #FCF9F5,inset 0 0 0 9px #C9B29E}
.t-souk .dh{flex-direction:column;align-items:center;text-align:center}
.t-souk .tbn{font-size:26px;font-weight:700}
.t-souk .dm{text-align:center}
.t-souk .dk{font-size:11.5px;font-weight:600;line-height:1.5}
.t-street{--accent:#141414;--text:#141414;--muted:#6B6B6B;--rule:#141414;--head:"Bebas Neue",Impact,sans-serif;--brandf:"Anton",Impact,sans-serif;--body:"Space Grotesk";padding:0 0 20px}
.t-street .dh{background:#141414;color:#fff;padding:18px 20px;align-items:center}
.t-street .tbn{color:#fff;font-size:26px;letter-spacing:.02em}
.t-street .dm{color:#BDBDBD}
.t-street .dm b{color:#fff;font-size:13px;letter-spacing:.04em}
.t-street .dp,.t-street .dl,.t-street .dt,.t-street .dk{margin-left:20px;margin-right:20px}
.t-street .dp{border-top:0}
.t-street .dl{border:2px solid #141414}
.t-street .li{padding:5px 8px;border-top:2px solid #141414}
.t-street .li.hd{border-top:0;background:#141414;color:#fff;font:400 10px/1 "Bebas Neue",sans-serif;letter-spacing:.06em}
.t-street .ph{border-radius:0}
.t-street .dt{width:auto;margin-left:auto}
.t-street .dt .g{background:#141414;color:#fff;padding:6px 8px;border:0}
.t-street .dt .g b{color:#fff}
.t-street .dk{font-size:20px;letter-spacing:.04em;margin-top:auto}
/* the names, each in its own face */
.tpl-names .biz{font-family:var(--display)}
.tpl-names [data-f]{color:var(--c,var(--ink))}

/* ── motion inside the mock-ups (only with the site script running) ─────────────────────────── */
.motion [data-bars] i{transform:scaleY(.03);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.motion [data-bars].in i{transform:none}
.motion [data-bars].in span:nth-child(2) i{transition-delay:.07s}
.motion [data-bars].in span:nth-child(3) i{transition-delay:.14s}
.motion [data-bars].in span:nth-child(4) i{transition-delay:.21s}
.motion [data-bars].in span:nth-child(5) i{transition-delay:.28s}

/* ── phones: show a legible crop of each mock-up (720 of its pixels across) rather than all of it, tiny ── */
@media (max-width:760px){
  .vg{zoom:tan(atan2(100cqw,min(var(--w),720px)));margin-left:calc(var(--fx,0px) * -1)}
}

/* ── Purchase → a vendor bill read from the supplier's PDF (src/modules/purchase/Bills.jsx) ────── */
.vg-pb .page{display:grid;grid-template-columns:minmax(0,1fr) 384px;gap:20px;padding:18px 20px 0 24px}
.vg-pb .pb-ed{min-width:0;display:flex;flex-direction:column}
.vg-pb .pb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.vg-pb .pb-id{display:flex;gap:12px;align-items:flex-start}
.vg-pb .pb-back{width:34px;height:34px;border-radius:9px;border:1px solid #D6DEE8;display:grid;place-items:center;color:#444D5A;flex:none}
.vg-pb .pb-h1{display:flex;align-items:center;gap:10px;font:800 22px/1.2 "Plus Jakarta Sans",sans-serif;letter-spacing:-.01em}
.vg-pb .pb-src{padding:3px 9px;border-radius:7px;background:rgba(0,0,0,.06);color:#1E8E5A;font:700 11px/1.4 "Inter",sans-serif;letter-spacing:0}
.vg-pb .pb-party{font-size:11px;color:#626976;margin-top:3px}
.vg-pb .pb-pills{display:flex;gap:6px;margin-top:8px}
.vg-pb .pb-actions{display:flex;align-items:center;gap:8px}
.vg-pb .pb-acts{display:flex;align-items:center;gap:8px}
.vg-pb .pb-banner{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:10px 14px;border-radius:10px;background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.10);font-size:12.5px;color:#444D5A}
.vg-pb .pb-banner b{font-weight:600;color:#0F1A2B}
.vg-pb .pb-banner span{font-weight:500;color:#626976}
.vg-pb .pb-banner p{margin-top:2px}
.vg-pb .pb-scan-ic{color:#1E8E5A;margin-top:1px}
.vg-pb .pb-x{margin-left:auto;color:#8892A4;width:14px;height:14px}
.vg-pb .pb-form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px;margin-top:14px;padding:16px;border-radius:12px;background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.06)}
.vg-pb label{display:block;font:600 11px/1.2 "Inter",sans-serif;color:#8892A4;margin-bottom:6px}
.vg-pb .in{display:block;padding:9px 12px;border-radius:9px;background:#fff;border:1px solid rgba(0,0,0,.10);color:#0F1A2B;font-size:13px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg-pb .pb-po{display:flex;align-items:center;gap:8px;margin-top:12px;font:600 12px/1 "Inter",sans-serif;color:#444D5A}
.vg-pb .pb-po>.ic{width:14px;height:14px;color:#626976}
.vg-pb .pb-po .sel{display:inline-flex;align-items:center;gap:8px;padding:7px 10px 7px 12px;border-radius:9px;border:1px solid #D6DEE8;background:#fff;font-weight:600;color:#0F1A2B}
.vg-pb .pb-po .sel .ic{width:13px;height:13px;color:#626976}
.vg-pb .pb-tabs{display:flex;gap:22px;margin-top:16px;border-bottom:1px solid #E6ECF2;font:600 12.5px/1 "Plus Jakarta Sans",sans-serif;color:#626976}
.vg-pb .pb-tabs span{padding:0 1px 10px;transition:color .3s,box-shadow .3s}
.vg-pb .pb-tabs .t-lines,.vg-pb[data-state=match] .pb-tabs .t-other,.vg-pb[data-state=posted] .pb-tabs .t-pay{font-weight:800;color:#0F1A2B;box-shadow:inset 0 -2px 0 #1E8E5A}
.vg-pb[data-state=match] .pb-tabs .t-lines,.vg-pb[data-state=posted] .pb-tabs .t-lines{font-weight:600;color:#626976;box-shadow:none}
.vg-pb .pb-tabs em{font-style:normal;margin-left:6px;padding:1px 6px;border-radius:999px;background:rgba(0,0,0,.06);font:700 10px/1.4 "Inter",sans-serif;color:#626976}
.vg-pb .pb-trail{position:absolute;left:58px;top:96px;z-index:4;display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 12px 40px rgba(15,26,43,.18)}
.vg-pb .pb-ed{position:relative}
.vg-pb .pp-stats{display:flex;align-items:flex-end;gap:34px;padding:14px 16px;border-radius:12px;background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.06)}
.vg-pb .pp-stats small{display:block;font:600 11px/1 "Inter",sans-serif;color:#626976}
.vg-pb .pp-stats b{display:block;font:700 18px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:6px}
.vg-pb .pp-stats .o b{font-weight:800}
.vg-pb .pp-btns{margin-left:auto;display:flex;gap:8px}
.vg-pb .pp-t{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.4fr 1fr 1fr;gap:10px;margin-top:14px;padding:10px 14px;border-radius:10px 10px 0 0;background:#334155;color:#E6ECF2;font:700 10.5px/1 "Inter",sans-serif}
.vg-pb .pp-empty{padding:18px 14px;border:1px solid #E6ECF2;border-top:0;border-radius:0 0 10px 10px;font-size:12px;color:#626976}
.vg-pb .pb-panels{position:relative;margin-top:12px}
.vg-pb .pb-panel{transition:opacity .5s ease,visibility 0s}
.vg-pb .p-other,.vg-pb .p-pay{position:absolute;left:0;right:0;top:0;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s .5s}
.vg-pb[data-state=match] .p-lines,.vg-pb[data-state=posted] .p-lines{opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s .4s}
.vg-pb[data-state=match] .p-other,.vg-pb[data-state=posted] .p-pay{opacity:1;visibility:visible;transition:opacity .5s ease .1s,visibility 0s}
.vg .pb-info{display:inline-flex;align-items:center;gap:5px;font:600 11px/1 "Inter",sans-serif;color:#0EA5E9}
.vg .pb-info .ic{width:12px;height:12px}
.vg-pb .pb-note-row{display:flex;align-items:center;gap:14px}
.vg-pb .pb-incl{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#444D5A}
.vg-pb .pb-incl i{width:14px;height:14px;border-radius:4px;border:1.5px solid #C6CFDA}
.vg-pb .pb-cols{width:28px;height:28px;border-radius:8px;border:1px solid #D6DEE8;display:grid;place-items:center;color:#626976}
.vg-pb .pb-cols .ic{width:14px;height:14px}
.vg-pb .pb-lines{margin-top:10px;border:1px solid #D6DEE8;border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.06);overflow:hidden}
.vg-pb .pb-lh,.vg-pb .pb-lr{display:grid;grid-template-columns:2.15fr 1.55fr .5fr .7fr .85fr 1.15fr 82px;gap:10px;align-items:center;padding:0 14px}
.vg-pb .pb-lh{background:#EEF2F6;color:#334155;font:800 10.5px/1 "Inter",sans-serif;letter-spacing:.05em;padding-top:11px;padding-bottom:11px}
.vg-pb .pb-lr{padding-top:9px;padding-bottom:9px;border-top:1px solid #E6ECF2;font-size:12px;color:#0F1A2B}
.vg-pb .pb-lr>span{min-width:0}
.vg-pb .pb-lr .pr,.vg-pb .pb-lr .acc,.vg-pb .pb-lr .tx{display:block;padding:6px 8px;border-radius:7px;border:1px solid rgba(0,0,0,.10);background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.vg-pb .pb-lr .acc{color:#9AA3AF}
.vg-pb .pb-lr .acc.set{color:#0F1A2B}
.vg-pb .pb-lr .tx{font-size:10px;color:#444D5A}
.vg-pb .r{text-align:right}
.vg-pb .b{font-weight:700}
.vg-pb .cst{display:inline-flex;align-items:center;gap:2px;padding:3px 6px 3px 8px;border-radius:6px;border:1px solid rgba(0,0,0,.12);font:700 10px/1.2 "Inter",sans-serif;color:#626976;white-space:nowrap}
.vg-pb .cst .ic{width:11px;height:11px}
.vg-pb .cst.on{color:#0EA5E9;background:rgba(14,165,233,.07);border-color:rgba(14,165,233,.35)}
.vg-pb .pb-lr.lc{background:rgba(14,165,233,.05)}
.vg-pb .pb-drawer{display:grid;grid-template-columns:18px minmax(0,1fr) 18px auto;gap:10px 10px;align-items:start;margin:0 14px 10px;padding:12px 14px;border:1.5px dashed rgba(14,165,233,.45);border-radius:10px;
  background:rgba(14,165,233,.03);max-height:0;opacity:0;overflow:hidden;padding-top:0;padding-bottom:0;margin-bottom:0;border-width:0;transition:max-height .6s ease,opacity .5s ease,padding .6s ease,margin .6s ease}
.vg-pb[data-state=landed] .pb-drawer{max-height:140px;opacity:1;padding-top:12px;padding-bottom:12px;margin-bottom:10px;border-width:1.5px}
.vg-pb .pb-drawer b{font:700 12px/1.3 "Inter",sans-serif;color:#0F1A2B}
.vg-pb .pb-drawer p{font-size:11px;line-height:1.5;color:#626976;margin-top:3px}
.vg-pb .cb{width:16px;height:16px;border-radius:4px;border:1.5px solid #C6CFDA;display:grid;place-items:center;margin-top:1px}
.vg-pb .cb.on{background:#0EA5E9;border-color:#0EA5E9;color:#fff}
.vg-pb .cb .ic{width:11px;height:11px}
.vg-pb .pb-sum{display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:12px 14px;border-top:1px solid #E6ECF2;font-size:12px;color:#626976}
.vg-pb .pb-sum div{display:grid;grid-template-columns:120px 96px;text-align:right}
.vg-pb .pb-sum b{color:#0F1A2B;font-weight:600}
.vg-pb .pb-sum .t{padding-top:6px;margin-top:2px;border-top:1px solid #0F1A2B;font-weight:800;color:#0F1A2B}
.vg-pb .pb-sum .t b{font:800 14px/1.2 "Plus Jakarta Sans",sans-serif}
.vg-pb .pb-lfoot{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid #E6ECF2;background:#FBFCFE;font:700 10.5px/1 "Inter",sans-serif;color:#626976}
.vg-pb .pb-lfoot em{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:5px 8px;border-radius:7px;border:1px solid #D6DEE8;background:#fff;color:#0F1A2B;font-weight:600}
.vg-pb .pb-lfoot .ic{width:12px;height:12px}
.vg-pb .pb-lfoot .add{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:8px;border:1.5px dashed #C6CFDA;color:#444D5A;font-size:11.5px}
.vg-pb .pb-info2{margin-top:12px}
/* the three-way match panel (Other info tab) */
.vg-pb .pb-match{border:1px solid rgba(245,158,11,.25);border-radius:12px;background:#fff;overflow:hidden}
.vg-pb .pm-h{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:rgba(245,158,11,.06);border-bottom:1px solid rgba(245,158,11,.25)}
.vg-pb .pm-h>.ic{color:#F59E0B;width:17px;height:17px;margin-top:1px}
.vg-pb .pm-h b{display:block;font:700 12.5px/1.3 "Inter",sans-serif}
.vg-pb .pm-h span{display:block;font:600 11.5px/1.3 "Inter",sans-serif;color:#B45309;margin-top:3px}
.vg-pb .pm-chev{margin-left:auto;color:#626976;width:15px;height:15px}
.vg-pb .pb-match>.pb-info{margin:12px 14px 4px}
.vg-pb .pm-t{padding:4px 0 6px}
.vg-pb .pm-r{display:grid;grid-template-columns:2.2fr .7fr .75fr .95fr .9fr 1fr;gap:10px;align-items:start;padding:10px 14px;border-top:1px solid #EEF0F3;font-size:12px}
.vg-pb .pm-hd{border-top:0;font:700 10.5px/1 "Inter",sans-serif;color:#626976;padding-top:8px;padding-bottom:8px}
.vg-pb .pm-r>span{min-width:0}
.vg-pb .pv{display:block;font-style:normal;font:700 10.5px/1.3 "Inter",sans-serif;color:#B45309;margin-top:4px}
.vg-pb .mt{display:inline-block;padding:3px 8px;border-radius:6px;font:700 10.5px/1.3 "Inter",sans-serif;font-style:normal}
.vg-pb .mt.ok{color:#10B981;background:#10B98115}
.vg-pb .pm-un>span:first-child{color:#0F1A2B}
.vg-pb .pm-un .nl{grid-column:2/-1;font-style:italic;opacity:.5;font-size:11.5px}
.vg-pb .pb-notes{margin-top:16px}
.vg-pb .pb-notes .in{white-space:normal;color:#444D5A}
/* posted: the header becomes the bill's own */
.vg-pb:not([data-state=posted]) .when-posted{display:none!important}
.vg-pb[data-state=posted] .when-draft{display:none!important}
.vg-pb .pb-tabname em{font-style:normal}
/* the Files rail with the supplier's invoice */
.vg-pb .pb-files{align-self:start;height:712px;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;overflow:hidden}
.vg-pb .pf-h{display:flex;align-items:center;gap:7px;padding:11px 12px;border-bottom:1px solid #EEF0F3}
.vg-pb .pf-h>.ic{width:14px;height:14px;color:#626976}
.vg-pb .pf-h b{font:700 12px/1 "Inter",sans-serif}
.vg-pb .pf-h em{font:700 10.5px/1 "Inter",sans-serif;color:#626976;font-style:normal}
.vg-pb .pf-tools{margin-left:auto;display:flex;gap:10px;color:#626976}
.vg-pb .pf-tools .ic{width:14px;height:14px}
.vg-pb .pf-chips{display:flex;gap:6px;padding:10px 12px}
.vg-pb .pf-chips span{padding:4px 10px;border-radius:999px;border:1px solid #D6DEE8;font-size:11.5px;color:#444D5A}
.vg-pb .pf-chips .on{border-color:#1E8E5A;color:#0F1A2B;font-weight:600}
.vg-pb .pf-chips .rd{border:0;background:rgba(30,142,90,.1);color:#1E8E5A;font-weight:700;font-size:10.5px}
.vg-pb .pf-view{flex:1;min-height:0;background:rgba(0,0,0,.03);padding:16px 18px;overflow:hidden}
.vg-pb .sup{position:relative;background:#fff;box-shadow:0 2px 8px rgba(15,26,43,.14);padding:22px 20px 18px;font-size:8.5px;color:#1F2937;font-variant-numeric:tabular-nums;height:100%}
.vg-pb .sup-h{display:flex;gap:10px;align-items:center;padding-bottom:12px;border-bottom:2px solid #B08A4C}
.vg-pb .sup-logo{width:34px;height:34px;border-radius:6px;background:#B08A4C;color:#fff;display:grid;place-items:center;font:800 12px/1 "Plus Jakarta Sans",sans-serif}
.vg-pb .sup-h b{display:inline-block;font:800 12px/1.2 "Plus Jakarta Sans",sans-serif;color:#3D2B12;letter-spacing:.02em}
.vg-pb .sup-h small{display:block;font-size:7.5px;color:#6B7280;margin-top:2px}
.vg-pb .sup-h small.rf{display:inline-block}
.vg-pb .sup-t{display:flex;justify-content:space-between;gap:10px;margin-top:14px}
.vg-pb .sup-to small{display:block;font-size:6.5px;letter-spacing:.08em;color:#6B7280}
.vg-pb .sup-to b{display:block;font-size:9.5px;margin-top:2px}
.vg-pb .sup-no{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.vg-pb .sup-no b{font:800 11px/1.2 "Plus Jakarta Sans",sans-serif;letter-spacing:.06em;color:#3D2B12;margin-bottom:3px}
.vg-pb .sup-l{display:grid;grid-template-columns:1fr 30px 44px 56px;gap:6px;padding:6px 2px;border-bottom:1px solid #EEF0F3}
.vg-pb .sup-l span:nth-child(n+2){text-align:right}
.vg-pb .sup-lh{margin-top:18px;background:#F5EFE4;border-bottom:0;font-weight:700;font-size:7.5px;color:#3D2B12}
.vg-pb .sup-tot{width:56%;margin:10px 0 0 auto;padding:2px}
.vg-pb .sup-tot div{display:flex;justify-content:space-between;padding:3px 0}
.vg-pb .sup-tot .g{font-weight:800;border-top:1px solid #3D2B12;margin-top:3px;padding-top:5px;font-size:9.5px}
.vg-pb .sup-bank{position:absolute;left:20px;right:20px;bottom:16px;display:flex;flex-direction:column;gap:2px;padding-top:8px;border-top:1px solid #EEF0F3}
.vg-pb .sup-bank small{font-size:7px;color:#6B7280}
.vg-pb .rf{border-radius:3px}
.vg-pb .scanline{position:absolute;left:-6px;right:-6px;top:0;height:2px;z-index:2;opacity:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(30,142,90,0),#1E8E5A 18%,#34C27F 50%,#1E8E5A 82%,rgba(30,142,90,0));box-shadow:0 0 12px 3px rgba(52,194,127,.45)}
.vg-pb .pf-foot{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid #EEF0F3;font-size:11px;color:#626976}
.vg-pb .pf-z{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-weight:600}
.vg-pb .pf-foot .ic{width:13px;height:13px}
.vg-pb .pf-del{color:#F43F5E}
/* the hero plays the reading once: a scan passes over the PDF, each field it reads lights, the bill fills in */
.motion .m-shot:not(.in) .vg-pb [data-fill]{opacity:0}
.motion .m-shot.in .vg-pb [data-fill]{animation:pbFill .5s cubic-bezier(.2,.7,.2,1) calc(var(--f) * 115ms + 350ms) both}
.motion .m-shot.in .vg-pb .scanline{animation:pbScan 2.5s cubic-bezier(.45,.05,.55,.95) .25s both}
.motion .m-shot.in .vg-pb .rf{animation:pbRead 1.5s ease calc(var(--r) * 190ms + 300ms) both}
@keyframes pbFill{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes pbScan{0%{opacity:0;top:0}8%{opacity:1}90%{opacity:1}100%{opacity:0;top:100%}}
@keyframes pbRead{0%{box-shadow:0 0 0 0 rgba(30,142,90,0);background:rgba(30,142,90,0)}25%{box-shadow:0 0 0 2px rgba(30,142,90,.55);background:rgba(30,142,90,.10)}100%{box-shadow:0 0 0 2px rgba(30,142,90,0);background:rgba(30,142,90,0)}}

/* ── Purchase → RFQ quote comparison (src/modules/purchase/RFQs.jsx, the full detail's Quotes tab) ── */
.vg-rq{background:#fff;padding:26px 30px}
.vg-rq .rq-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.vg-rq .rq-h1{display:flex;align-items:center;gap:10px}
.vg-rq .mono{font:800 22px/1.2 "SF Mono",Monaco,ui-monospace,monospace;letter-spacing:-.01em}
.vg .st{display:inline-block;padding:3px 8px;border-radius:5px;font:700 10px/1.3 "Inter",sans-serif;background:color-mix(in srgb,var(--sc) 12.5%,transparent);color:var(--sc)}
.vg .st.aw{--sc:#10B981}
.vg-rq .rq-sub{font-size:13px;color:#444D5A;margin-top:4px}
.vg-rq .rq-acts{display:flex;gap:8px;align-items:center}
.vg-rq .rq-mail{display:inline-flex;align-items:center;gap:6px;height:37px;padding:0 14px;border-radius:9px;color:#3B82F6;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.25);font:600 13px/1 "Inter",sans-serif}
.vg-rq .rq-mail .ic{width:14px;height:14px}
.vg-rq .rq-po{display:inline-flex;align-items:center;height:37px;padding:0 16px;border-radius:9px;background:#0F1A2B;color:#fff;font:700 13px/1 "Inter",sans-serif}
.vg-rq .rq-seg{margin-top:18px}
.vg-rq .rq-box{margin-top:18px;border:1px solid #E6ECF2;border-radius:14px;padding:16px 0 4px;overflow:hidden}
.vg-rq .rq-t{font:700 13px/1 "Plus Jakarta Sans",sans-serif;padding:0 18px 12px}
.vg-rq .rq-grid{display:grid;grid-template-columns:minmax(220px,1.35fr) repeat(3,minmax(160px,1fr))}
.vg-rq .c{padding:10px 18px;border-top:1px solid #EEF0F3;font-size:12.5px;min-width:0}
.vg-rq .v{text-align:right;border-left:1px solid rgba(0,0,0,.06)}
.vg-rq .hd{border-top:0;background:#FBFCFE;padding-top:12px;padding-bottom:12px}
.vg-rq .it.hd{font:800 10.5px/1 "Inter",sans-serif;letter-spacing:.06em;color:#334155;display:flex;align-items:center}
.vg-rq .v.hd b{display:flex;justify-content:flex-end;align-items:center;gap:6px;font:700 11.5px/1.3 "Inter",sans-serif}
.vg-rq .v.hd small{display:block;font-size:9.5px;color:#626976;margin-top:2px}
.vg-rq .it small{display:block;font-size:10.5px;color:#626976}
.vg-rq .it b{display:block;font-weight:600;font-size:13px;margin-top:2px}
.vg-rq .it em{display:block;font-style:normal;font-size:10.5px;color:#B45309;margin-top:3px}
.vg-rq .v b{display:block;font-weight:700;font-size:13.5px}
.vg-rq .v b.lo{display:inline-block;color:#5F6F86;background:#5F6F860D;padding:0 5px;border-radius:5px}
.vg-rq .v small{display:block;font-size:10.5px;color:#626976;margin-top:2px}
.vg-rq .k{font-size:11.5px;color:#626976}
.vg-rq .it.k,.vg-rq .it.tot,.vg-rq .it.act{font:700 10.5px/1.6 "Inter",sans-serif;letter-spacing:.05em;color:#626976}
.vg-rq .tot{font:900 14px/1.4 "Plus Jakarta Sans",sans-serif}
.vg-rq .v.tot{display:flex;justify-content:flex-end;align-items:center;gap:6px}
.vg-rq .v.tot .ic{width:14px;height:14px}
.vg-rq .act .dash{color:#9AA3AF}
.vg-rq .aw{background:rgba(16,185,129,.05);color:#0F1A2B}
.vg-rq .aw.hd{background:rgba(16,185,129,.08);color:#10B981}
.vg-rq .aw.hd b{color:#10B981}
.vg-rq .aw.tot{color:#10B981;background:rgba(16,185,129,.08)}
.vg-rq .awd{display:inline-block;padding:4px 9px;border-radius:6px;background:rgba(16,185,129,.12);color:#10B981;font:800 10px/1 "Inter",sans-serif;letter-spacing:.08em}
/* plays once: the quotes arrive column by column, then the winner is awarded */
.motion .shot:not(.in) .vg-rq [data-col]{opacity:0;transform:translateY(6px)}
.motion .shot.in .vg-rq [data-col]{transition:opacity .5s ease calc(var(--d,0) * 1ms),transform .5s ease calc(var(--d,0) * 1ms)}
.motion .shot.in .vg-rq .aw[data-col]{transition:opacity .5s ease calc(var(--d,0) * 1ms),transform .5s ease calc(var(--d,0) * 1ms),background .6s ease 1.7s,color .6s ease 1.7s}
.motion .shot.in .vg-rq .aw.hd b{transition:color .6s ease 1.7s}
.motion .shot.in .vg-rq [data-col="0"]{--d:200}
.motion .shot.in .vg-rq [data-col="1"]{--d:520}
.motion .shot.in .vg-rq [data-col="2"]{--d:840}
.motion .shot:not(.in) .vg-rq .aw{background:transparent}
.motion .shot:not(.in) .vg-rq .aw.hd b,.motion .shot:not(.in) .vg-rq .aw.tot{color:#0F1A2B}
.motion .shot:not(.in) .vg-rq .awd,.motion .shot:not(.in) .vg-rq .aw .ic{opacity:0}
.motion .shot.in .vg-rq .awd{animation:stamp .55s cubic-bezier(.2,.7,.2,1) 1.9s both}
.motion .shot.in .vg-rq .aw .ic{transition:opacity .5s ease 1.8s}
.motion .shot:not(.in) .vg-rq [data-po]{opacity:.35}
.motion .shot.in .vg-rq [data-po]{transition:opacity .5s ease 2.3s}

/* ── specimens: one small piece of each module's own UI, played once (modules overview) ────────── */
.vg.sp{background:#fff;padding:26px 28px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.vg .spill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font:700 11.5px/1.4 "Inter",sans-serif;white-space:nowrap}
.vg .spill.ok{color:#1E8E5A;background:rgba(30,142,90,.10);border:1px solid rgba(30,142,90,.22)}
.vg .spill.warn{color:#9A5B00;background:rgba(154,91,0,.10);border:1px solid rgba(154,91,0,.22)}
.motion .shot:not(.in) .vg.sp [style*="--k"]{opacity:0}
.motion .shot.in .vg.sp [style*="--k"]{animation:spIn .55s cubic-bezier(.2,.7,.2,1) calc(var(--k) * 260ms + 250ms) both}
@keyframes spIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Sales: the trace builds itself, and the invoice settles */
.sp-sales .ss-doc{padding:16px 18px;border-radius:14px;border:1px solid #E6ECF2;background:#FBFCFE}
.sp-sales .ss-h{display:flex;align-items:center;gap:10px}
.sp-sales .ss-h>b{font:800 20px/1.2 "Plus Jakarta Sans",sans-serif}
.sp-sales .settle{margin-left:auto}
.sp-sales .ss-pay{width:100%}
.sp-sales .ss-doc small{display:block;font-size:12px;color:#626976;margin-top:5px}
.sp-sales .ss-pop{padding:14px 16px 16px;border-radius:12px;border:1px solid rgba(0,0,0,.12);box-shadow:0 12px 40px rgba(15,26,43,.14);background:#fff}
.sp-sales .ss-chain{display:flex;flex-wrap:wrap;align-items:center;gap:8px 6px;margin-top:10px}
.sp-sales .tarr{font-size:12px}
.motion .shot:not(.in) .sp-sales .ss-pay{width:0}
.motion .shot.in .sp-sales .ss-pay{transition:width 1s cubic-bezier(.2,.7,.2,1) 1.7s}
.motion .shot:not(.in) .sp-sales .ss-pct{opacity:0}
.motion .shot.in .sp-sales .ss-pct{transition:opacity .4s 2.5s}

/* Purchase: three-way match */
.sp-pu .pm{border:1px solid rgba(245,158,11,.25);border-radius:12px;overflow:hidden}
.sp-pu .pm-h{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;background:rgba(245,158,11,.06);border-bottom:1px solid rgba(245,158,11,.25)}
.sp-pu .pm-h .ic{color:#F59E0B;width:17px;height:17px;margin-top:1px}
.sp-pu .pm-h b{display:block;font:700 13px/1.3 "Inter",sans-serif}
.sp-pu .pm-h span{display:block;font:600 12px/1.3 "Inter",sans-serif;color:#B45309;margin-top:3px}
.sp-pu .pm-r{display:grid;grid-template-columns:2fr .8fr .8fr .9fr .9fr;gap:8px;align-items:start;padding:10px 14px;border-top:1px solid #EEF0F3;font-size:12.5px}
.sp-pu .pm-r span:nth-child(n+2):nth-child(-n+4){text-align:right}
.sp-pu .pm-hd{border-top:0;font:700 10.5px/1 "Inter",sans-serif;color:#626976}
.sp-pu .pv{display:block;font-style:normal;font:700 11px/1.3 "Inter",sans-serif;color:#B45309;margin-top:4px}
.sp-pu .mt{display:inline-block;padding:3px 8px;border-radius:6px;font:700 11px/1.3 "Inter",sans-serif;font-style:normal;color:#10B981;background:#10B98115}
.motion .shot:not(.in) .sp-pu .pv{opacity:0}
.motion .shot.in .sp-pu .pv{animation:spIn .5s ease 1.3s both,spWarn 1.4s ease 1.6s}
.motion .shot:not(.in) .sp-pu .pm-h{opacity:0}
.motion .shot.in .sp-pu .pm-h{animation:spIn .5s ease 1.9s both}
@keyframes spWarn{30%{background:rgba(245,158,11,.18)}}

/* Books: the difference counts down to zero, the account reconciles, the period closes */
.sp-bk .bk-acct{display:flex;align-items:center;gap:12px}
.sp-bk .bk-ini{width:36px;height:36px;border-radius:10px;background:#0F1A2B;color:#fff;display:grid;place-items:center;font:800 12px/1 "Plus Jakarta Sans",sans-serif}
.sp-bk .bk-acct b{display:block;font:800 15px/1.2 "Plus Jakarta Sans",sans-serif}
.sp-bk .bk-acct small{display:block;font-size:11.5px;color:#626976;margin-top:2px}
.sp-bk .bk-compass{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;border:1px solid #D6DEE8;border-radius:12px;padding:12px 14px;font:500 12px/1.3 "Inter",sans-serif;color:#626976}
.sp-bk .ci{display:inline-flex;align-items:baseline;white-space:nowrap}
.sp-bk .ci b{margin-left:5px;font:700 13.5px/1.2 "Inter",sans-serif;color:#0F1A2B;font-variant-numeric:tabular-nums}
.sp-bk .ci i{font-style:normal;margin-left:4px}
.sp-bk .bk-nb{max-width:0;margin-left:-16px;opacity:0;overflow:hidden}
.sp-bk .bk-pills{position:relative;height:24px}
.sp-bk .bk-pills .spill{position:absolute;left:0;top:0}
.sp-bk .bk-open{opacity:0}
.sp-bk .bk-close{display:flex;align-items:center;gap:10px}
.sp-bk .bk-strip,.sp-bk .bk-btn{display:grid}
.sp-bk .bk-strip>em,.sp-bk .bk-btn>em{grid-area:1/1}
.sp-bk .bk-strip{flex:1;padding:9px 12px;border-radius:9px;background:rgba(30,142,90,.08);color:#1E8E5A;font:600 12px/1.2 "Inter",sans-serif}
.sp-bk .bk-btn>em{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:9px;font:700 11.5px/1 "Inter",sans-serif}
.sp-bk .bk-cp{background:#0F1A2B;color:#fff;border:1px solid #0F1A2B}
.sp-bk .bk-lock{background:rgba(30,142,90,.12);border:1px solid rgba(30,142,90,.35);color:#0F1A2B}
.sp-bk .bk-btn .ic{width:13px;height:13px}
.sp-bk .bk-lock .ic{color:#1E8E5A}
.sp-bk .ba{visibility:hidden}
.motion .shot .sp-bk .ba{visibility:visible}
.motion .shot.in .sp-bk .ba{animation:spOut .3s ease 3.5s forwards}
.motion .shot:not(.in) .sp-bk .bb{opacity:0}
.motion .shot.in .sp-bk .bb{animation:spIn .45s ease 3.6s both}
@keyframes spOut{to{opacity:0}}
.motion .shot .sp-bk .bk-nb{max-width:170px;margin-left:0;opacity:1}
.motion .shot.in .sp-bk .bk-nb{max-width:0;margin-left:-16px;opacity:0;transition:max-width .45s ease 2.1s,margin .45s ease 2.1s,opacity .3s ease 2.1s}
.motion .sp-bk .bk-open{opacity:1}
.motion .shot.in .sp-bk .bk-open{opacity:0;transition:opacity .35s 2s}
.motion .shot:not(.in) .sp-bk .bk-ok,.motion .shot:not(.in) .sp-bk .bk-close{opacity:0}
.motion .shot.in .sp-bk .bk-ok{animation:stamp .5s cubic-bezier(.2,.7,.2,1) 2.15s both}
.motion .shot.in .sp-bk .bk-close{animation:spIn .5s ease 2.6s both}

/* Expenses: a receipt is read and the line fills itself in */
.sp-ex .ex-row{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;align-items:center}
.sp-ex .ex-rcpt{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 10px 16px;background:#FBFBF7;border-radius:3px;box-shadow:0 2px 8px rgba(15,26,43,.14);
  font:500 8px/1.3 "SF Mono",Monaco,monospace;color:#374151;transform:rotate(-2deg);overflow:hidden}
.sp-ex .ex-rcpt b{font-size:9.5px;font-weight:800}
.sp-ex .ex-rcpt span{height:3px;background:#E5E7EB;border-radius:1px;margin:2px 0}
.sp-ex .ex-scan{position:absolute;left:0;right:0;top:0;height:2px;background:#1E8E5A;box-shadow:0 0 10px 2px rgba(52,194,127,.5);opacity:0}
.sp-ex .ex-lh,.sp-ex .ex-lr{display:grid;grid-template-columns:62px minmax(0,1fr) 60px 46px 58px;gap:6px;align-items:center}
.sp-ex .ex-lh{font:700 9.5px/1 "Inter",sans-serif;letter-spacing:.04em;color:#334155;padding:9px 10px;background:#EEF2F6;border-radius:8px 8px 0 0}
.sp-ex .ex-lr{padding:10px;border:1px solid #E6ECF2;border-top:0;border-radius:0 0 8px 8px;font-size:11.5px}
.sp-ex .f{display:block;padding:5px 6px;border-radius:6px;border:1px solid rgba(0,0,0,.1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-ex .r{text-align:right}
.sp-ex .ex-rc{position:relative;height:24px}
.sp-ex .ex-rc em{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font:700 11px/1 "Inter",sans-serif;font-style:normal}
.sp-ex .ex-reading{color:#626976;background:rgba(0,0,0,.04);opacity:0}
.sp-ex .ex-view{color:#2563EB;background:rgba(37,99,235,.1)}
.sp-ex .ex-info{display:flex;gap:6px;align-items:flex-start;margin-top:10px;font-size:11px;line-height:1.45;color:#626976}
.sp-ex .ex-info .ic{width:13px;height:13px;flex:none;margin-top:1px}
.motion .shot.in .sp-ex .ex-scan{animation:pbScan 1.4s ease .2s both}
.motion .shot:not(.in) .sp-ex .ex-view{opacity:0}
.motion .shot.in .sp-ex .ex-reading{animation:spFlash 1.5s ease .1s both}
.motion .shot.in .sp-ex .ex-view{animation:spIn .4s ease 1.55s both}
.motion .shot:not(.in) .sp-ex .ex-info{opacity:0}
.motion .shot.in .sp-ex .ex-info{animation:spIn .5s ease 2.9s both}
@keyframes spFlash{0%{opacity:0}10%{opacity:1}88%{opacity:1}100%{opacity:0}}

/* Inventory: the health check */
.sp-iv .iv-top{font-size:11.5px;color:#626976;line-height:1.5}
.sp-iv .iv-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sp-iv .iv-tiles div{padding:12px;border-radius:12px;border:1px solid #E6ECF2;background:#FBFCFE;min-height:86px}
.sp-iv .iv-tiles small{display:block;font:700 10px/1.3 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#626976}
.sp-iv .iv-tiles b{display:flex;gap:6px;align-items:flex-start;margin-top:8px;font:600 12.5px/1.35 "Inter",sans-serif;color:#1E8E5A}
.sp-iv .iv-tiles .ic{width:15px;height:15px;flex:none;margin-top:1px}
.sp-iv .iv-meth{display:flex;gap:8px}
.sp-iv .iv-meth span{padding:5px 10px;border-radius:999px;border:1px solid #D6DEE8;font:600 11px/1 "Inter",sans-serif;color:#444D5A}

/* Manufacturing: the bill of materials rolls up */
.vg.sp-mf{gap:8px}
.sp-mf .mf-h{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}
.sp-mf .mf-h b{font:800 15px/1.2 "Plus Jakarta Sans",sans-serif}
.sp-mf .mf-h span{font:600 11px/1 "SF Mono",Monaco,monospace;color:#626976}
.sp-mf .mf-l{display:grid;grid-template-columns:1fr 60px 110px;gap:8px;align-items:center;padding:6px 10px;border-radius:8px;background:#F6F9FC;font-size:12px}
.sp-mf .mf-l em{font-style:normal;color:#626976;text-align:right}
.sp-mf .mf-l i{font:600 9.5px/1 "SF Mono",Monaco,monospace;font-style:normal;color:#1E8E5A;text-align:right}
.sp-mf .mf-roll{display:grid;grid-template-columns:repeat(4,1fr);margin-top:8px;border:1px solid #D6DEE8;border-radius:12px;padding:10px 12px}
.sp-mf .mf-roll div+div{border-left:1px solid #E6ECF2;padding-left:10px}
.sp-mf .mf-roll small{display:block;font:600 10.5px/1 "Inter",sans-serif;color:#626976}
.sp-mf .mf-roll b{display:block;font:700 16px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:5px}
.sp-mf .mf-roll .cu b{font-size:17px;color:#1E8E5A}
.sp-mf .mf-roll em{display:block;font-style:normal;font-size:10px;color:#626976;margin-top:3px;line-height:1.3}

/* Point of Sale: the receipt prints */
.vg.sp-ps{justify-content:flex-start;gap:0}
.sp-ps .ps-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#F6F9FC;border:1px solid #E6ECF2;position:relative;z-index:2}
.sp-ps .ps-ok{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,#10B981,#059669);color:#fff}
.sp-ps .ps-ok .ic{width:15px;height:15px}
.sp-ps .ps-bar b{display:block;font:800 13px/1.2 "Plus Jakarta Sans",sans-serif}
.sp-ps .ps-bar small{display:block;font-size:10.5px;color:#626976;margin-top:1px}
.sp-ps .ps-b{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:8px;border:1px solid #D6DEE8;font:700 11px/1 "Inter",sans-serif}
.sp-ps .ps-b+.ps-b{margin-left:0}
.sp-ps .ps-b .ic{width:12px;height:12px}
.sp-ps .ps-new{background:linear-gradient(135deg,#F43F5E,#E11D48);color:#fff;border-color:transparent}
.sp-ps .ps-slot{position:relative;height:214px;overflow:hidden;margin:0 auto;width:262px;padding:0 8px}
.sp-ps .ps-slot::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-radius:0 0 4px 4px;background:#D6DEE8;z-index:1}
.sp-ps .ps-slip{background:#fff;box-shadow:0 2px 10px rgba(15,26,43,.16);padding:12px 14px 14px;font:500 9px/1.45 "Courier New",monospace;color:#111;text-align:center}
.sp-ps .ps-slip>b{display:block;font-size:10.5px;font-weight:900;letter-spacing:.5px}
.sp-ps .ps-slip small{display:block;font-size:8.5px}
.sp-ps .ps-slip p{margin:5px 0 0;text-align:left}
.sp-ps .ps-slip p.mt{margin-top:7px;padding:5px 0 6px;border-top:1.5px dashed #111;border-bottom:1px dashed #111}
.sp-ps .ps-slip .ln{display:flex;justify-content:space-between;gap:8px;margin-top:1px}
.sp-ps .ps-slip .it b{display:block;font-size:9px;font-weight:700}
.sp-ps .ps-slip .ln.v{color:#666;font-size:8px;padding-left:1ch}
.motion .shot:not(.in) .sp-ps .ps-slip{transform:translateY(-100%)}
.motion .shot.in .sp-ps .ps-slip{transition:transform 2.2s steps(14,end) .4s}

/* HR & Payroll: a run goes from draft to paid */
.sp-hr .hr-h{display:flex;align-items:center;gap:10px}
.sp-hr .hr-h>b{font:800 18px/1.2 "SF Mono",Monaco,monospace}
.sp-hr .hr-period{font-size:12px;color:#626976}
.sp-hr .hr-st{position:relative;margin-left:auto;width:96px;height:22px}
.sp-hr .hr-st em{position:absolute;right:0;top:0;padding:3px 9px;border-radius:999px;font:700 11px/1.4 "Inter",sans-serif;font-style:normal;opacity:0}
.sp-hr .s1{color:#94A3B8;background:#94A3B81F}.sp-hr .s2{color:#3B82F6;background:#3B82F61F}.sp-hr .s3{color:#10B981;background:#10B9811F}.sp-hr .s4{color:#059669;background:#0596691F;opacity:1!important}
.sp-hr .hr-track{display:flex;align-items:center;padding:0 6px}
.sp-hr .hr-track .d{width:12px;height:12px;border-radius:50%;background:#0F1A2B;flex:none}
.sp-hr .hr-track .d4{background:#059669;box-shadow:0 0 0 4px rgba(5,150,105,.25)}
.sp-hr .hr-track .l{flex:1;height:2px;background:#0F1A2B}
.sp-hr .hr-lbl{display:flex;justify-content:space-between;font:600 11px/1 "Inter",sans-serif;color:#626976;margin-top:-6px}
.sp-hr .hr-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #D6DEE8;border-radius:12px;padding:10px 14px}
.sp-hr .hr-stats div+div{border-left:1px solid #E6ECF2;padding-left:12px}
.sp-hr .hr-stats small{display:block;font:600 11px/1 "Inter",sans-serif;color:#626976}
.sp-hr .hr-stats b{display:block;font:700 15px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:5px}
.sp-hr .hr-stats .np{color:#7C5CD6}
.sp-hr .hr-je{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#626976}
.sp-hr .hr-je b{color:#0F1A2B;margin-right:4px}
.motion .shot:not(.in) .sp-hr .hr-track .d:not(.d1),.motion .shot:not(.in) .sp-hr .hr-track .l{background:#D6DEE8;box-shadow:none}
.motion .shot.in .sp-hr .hr-track .l1,.motion .shot.in .sp-hr .hr-track .d2{transition:background .3s .7s}
.motion .shot.in .sp-hr .hr-track .l2,.motion .shot.in .sp-hr .hr-track .d3{transition:background .3s 1.4s}
.motion .shot.in .sp-hr .hr-track .l3,.motion .shot.in .sp-hr .hr-track .d4{transition:background .3s 2.1s,box-shadow .4s 2.2s}
.motion .shot:not(.in) .sp-hr .s4{opacity:0!important}
.motion .shot.in .sp-hr .s1{animation:spFlash .9s ease 0s both}
.motion .shot.in .sp-hr .s2{animation:spFlash .8s ease .75s both}
.motion .shot.in .sp-hr .s3{animation:spFlash .8s ease 1.45s both}
.motion .shot.in .sp-hr .s4{animation:spIn .4s ease 2.15s both}

/* CRM: a confirmed quotation moves the deal to won */
.sp-cr .cr-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sp-cr .cr-col{height:150px;border-radius:14px;padding:10px;background:linear-gradient(180deg,rgba(15,26,43,.035),rgba(15,26,43,.01))}
.sp-cr .cr-col.won{background:linear-gradient(180deg,rgba(16,185,129,.10),rgba(16,185,129,.03))}
.sp-cr .cr-ch{display:flex;justify-content:space-between;font:700 12px/1 "Plus Jakarta Sans",sans-serif}
.sp-cr .cr-ch em{font-style:normal;color:#626976;font-weight:600}
.sp-cr .cr-card{position:absolute;left:38px;top:94px;width:228px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #E6ECF2;box-shadow:0 8px 20px -8px rgba(15,26,43,.25);transform:translateX(254px)}
.sp-cr .cr-card b{display:block;font:700 12.5px/1.3 "Inter",sans-serif}
.sp-cr .cr-card small{display:block;font-size:10.5px;color:#626976;margin-top:2px}
.sp-cr .cr-val{display:block;font:750 17px/1.2 "Plus Jakarta Sans",sans-serif;margin-top:8px}
.sp-cr .cr-prob{display:block;height:4px;border-radius:2px;background:rgba(0,0,0,.06);margin-top:8px;overflow:hidden}
.sp-cr .cr-prob b{display:block;height:100%;width:100%;background:#10B981;border-radius:2px}
.sp-cr .cr-log{display:flex;gap:10px;align-items:center;font:600 11.5px/1 "Inter",sans-serif}
.sp-cr .cr-q{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:7px;background:rgba(59,130,246,.1);color:#2563EB}
.sp-cr .cr-q .ic{width:12px;height:12px}
.sp-cr .cr-m{color:#626976}
.motion .shot:not(.in) .sp-cr .cr-card{transform:none}
.motion .shot:not(.in) .sp-cr .cr-prob b{width:50%;background:#3B82F6}
.motion .shot.in .sp-cr .cr-card{transition:transform 1s cubic-bezier(.6,0,.2,1) 1.5s}
.motion .shot.in .sp-cr .cr-prob b{transition:width .6s ease 2.4s,background .6s ease 2.4s}
.motion .shot:not(.in) .sp-cr .cr-q,.motion .shot:not(.in) .sp-cr .cr-m{opacity:0}
.motion .shot.in .sp-cr .cr-q{animation:spIn .45s ease .7s both}
.motion .shot.in .sp-cr .cr-m{animation:spIn .45s ease 2.6s both}

/* Scribe: live values from the books */
.vg.sp-sc2{gap:12px}
.sp-sc2 .sc-t{font:800 22px/1.2 "Plus Jakarta Sans",sans-serif;letter-spacing:-.015em}
.sp-sc2 p{font-size:14px;line-height:1.8;color:#1F2937}
.sp-sc2 .live{font-size:12.5px}
.motion .shot.in .sp-sc2 .live{animation:spLive .9s ease calc(var(--k) * 500ms + 400ms) both}
@keyframes spLive{0%{opacity:0;background:rgba(30,142,90,.18)}40%{opacity:1;background:rgba(30,142,90,.18)}100%{background:rgba(0,0,0,.03)}}

/* Team Chat: an invoice shared into the conversation */
.vg.sp-ct{gap:14px}
.sp-ct .ct-msg{display:flex;gap:10px}
.sp-ct .ct-msg .pf{width:30px;height:30px;font-size:12px}
.sp-ct .who{display:flex;gap:8px;align-items:baseline}
.sp-ct .who b{font-size:12.5px}
.sp-ct .who small{font-size:11px;color:#8892A4}
.sp-ct p{font-size:13px;color:#1F2937;margin-top:2px}
.sp-ct p.sh{margin-top:6px}
.sp-ct .ct-typing{display:flex;align-items:center;gap:4px;height:0;overflow:hidden;opacity:0}
.sp-ct .ct-typing .pf{width:30px;height:30px;font-size:12px;margin-right:6px}
.sp-ct .ct-typing i{width:6px;height:6px;border-radius:50%;background:#98A6B9;animation:spDot 1s ease infinite}
.sp-ct .ct-typing i:nth-child(3){animation-delay:.15s}.sp-ct .ct-typing i:nth-child(4){animation-delay:.3s}
@keyframes spDot{50%{transform:translateY(-3px);opacity:.5}}
.motion .shot:not(.in) .sp-ct .ct-1,.motion .shot:not(.in) .sp-ct .ct-2{opacity:0}
.motion .shot.in .sp-ct .ct-1{animation:spIn .5s ease .2s both}
.motion .shot.in .sp-ct .ct-typing{animation:spType 1.3s ease .8s both}
.motion .shot.in .sp-ct .ct-2{animation:spIn .5s ease 2.1s both}
@keyframes spType{0%{height:0;opacity:0}15%{height:30px;opacity:1}85%{height:30px;opacity:1}100%{height:0;opacity:0}}

/* Calendar: countdowns */
.sp-cl .cl-cds{display:flex;flex-direction:column;gap:8px}
.sp-cl .cd{display:flex;align-items:baseline;gap:14px;padding:11px 16px;border-radius:10px;border:1px solid #EEF0F3;background:#FBFBFD;box-shadow:inset 3px 0 0 var(--c)}
.sp-cl .cd b{font:800 18px/1 "Plus Jakarta Sans",sans-serif;color:var(--c);min-width:92px}
.sp-cl .cd>span{font-size:13px;color:#444D5A}
.sp-cl .cl-tk{display:flex;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid #EEF0F3}
.sp-cl .cl-tk>i{width:8px;height:8px;border-radius:50%;background:var(--c);margin-top:5px;flex:none}
.sp-cl .cl-tk b{display:block;font-size:12.5px;font-weight:600}
.sp-cl .cl-tk small{display:block;font-size:11px;color:#626976;margin-top:2px}

/* Documents & Sign: files that remember their dates */
.vg.sp-dc{gap:8px}
.sp-dc .dc-f{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid #EEF0F3}
.sp-dc .nm{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-dc .nm i{flex:none;width:30px;height:22px;border-radius:5px;display:grid;place-items:center;font:800 8.5px/1 "Inter",sans-serif;font-style:normal;color:#fff}
.sp-dc .nm i.pdf{background:#DC2626}.sp-dc .nm i.img{background:#0EA5E9}
.sp-dc .xp{flex:none;padding:3px 8px;border-radius:6px;font:600 11px/1.3 "Inter",sans-serif;font-style:normal}
.sp-dc .xp.amber{background:#FFF7ED;color:#B45309}.sp-dc .xp.red{background:#FEF2F2;color:#B91C1C}
.sp-dc .dc-sign{margin-top:6px;padding:12px;border-radius:12px;background:#F6F9FC}
.sp-dc .sg-t{display:flex;justify-content:space-between;align-items:center}
.sp-dc .sg-t b{font:700 13px/1.2 "Plus Jakarta Sans",sans-serif}
.sp-dc .sg-t em{font:700 10.5px/1 "Inter",sans-serif;color:#B45309;background:#FFFBEB;padding:4px 7px;border-radius:6px;font-style:normal}
.sp-dc .sg-prog{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:11px;color:#626976}
.sp-dc .sg-prog i{flex:1;height:4px;border-radius:2px;background:rgba(0,0,0,.08);overflow:hidden}
.sp-dc .sg-prog b{display:block;height:100%;width:50%;background:#F59E0B}
.motion .shot:not(.in) .sp-dc .sg-prog b{width:0}
.motion .shot.in .sp-dc .sg-prog b{transition:width 1s ease 1.2s}

/* PDF: stamp and sign */
.vg.sp-pd{flex-direction:row;align-items:center;gap:22px}
.sp-pd .pd-page{position:relative;width:188px;height:252px;flex:none;background:#fff;box-shadow:0 2px 6px rgba(15,26,43,.12),0 14px 30px -14px rgba(15,26,43,.35);overflow:hidden}
.sp-pd .pd-lh{display:flex;align-items:center;gap:7px;padding:10px 12px;background:#0B1F16;color:#fff}
.sp-pd .pd-lh span{width:20px;height:20px;border-radius:5px;background:#17714A;display:grid;place-items:center;font:800 7px/1 "Plus Jakarta Sans",sans-serif}
.sp-pd .pd-lh b{font:700 9.5px/1 "Plus Jakarta Sans",sans-serif}
.sp-pd .pd-body{display:flex;flex-direction:column;gap:7px;padding:14px 12px}
.sp-pd .pd-body small{font:700 6.5px/1 "Inter",sans-serif;letter-spacing:.08em;color:#626976}
.sp-pd .pd-body b{font:800 13px/1 "Plus Jakarta Sans",sans-serif;margin-bottom:4px}
.sp-pd .pd-body i{display:block;height:4px;border-radius:2px;background:#E2E8F0}
.sp-pd .pd-stamp{position:absolute;left:28px;top:120px;padding:5px 12px;border:3px solid #059669;border-radius:7px;color:#059669;font:900 24px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:.1em;transform:rotate(-15deg);opacity:.88}
.sp-pd .pd-sig{position:absolute;left:58px;top:192px;width:118px;height:38px}
.sp-pd .pd-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1}
.sp-pd .pd-tools span{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid #E6ECF2;font:600 12.5px/1 "Inter",sans-serif;color:#444D5A}
.sp-pd .pd-tools span.on{background:rgba(30,142,90,.1);border-color:rgba(30,142,90,.3);color:#1E8E5A}
.sp-pd .pd-tools .ic{width:15px;height:15px}
.motion .shot:not(.in) .sp-pd .pd-stamp{opacity:0}
.motion .shot.in .sp-pd .pd-stamp{animation:pdStamp .6s cubic-bezier(.2,.7,.2,1) .6s both}
@keyframes pdStamp{0%{opacity:0;transform:rotate(-15deg) scale(1.7)}60%{opacity:.9;transform:rotate(-15deg) scale(.94)}100%{opacity:.88;transform:rotate(-15deg) scale(1)}}
.motion .sp-pd .pd-sig path{stroke-dasharray:420;stroke-dashoffset:0}
.motion .shot:not(.in) .sp-pd .pd-sig path{stroke-dashoffset:420}
.motion .shot.in .sp-pd .pd-sig path{transition:stroke-dashoffset 1.4s ease 1.3s}

/* Maintenance: a withdrawal costs the parts to the machine */
.vg.sp-mr{gap:9px}
.sp-mr .mr-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sp-mr .mr-no{font:800 15px/1.2 "SF Mono",Monaco,monospace;color:#D97706}
.sp-mr .mr-eq{width:100%;font-size:12px;color:#444D5A}
.sp-mr .mr-eq b{color:#CA8A04;font:700 11px/1 "SF Mono",Monaco,monospace;margin-right:4px}
.sp-mr .mr-l{display:grid;grid-template-columns:1fr 50px 90px;gap:8px;padding:8px 12px;border-radius:8px;background:#F6F9FC;font-size:12.5px}
.sp-mr .mr-l em{font-style:normal;color:#626976;text-align:right}
.sp-mr .mr-l b{text-align:right;font-weight:600}
.sp-mr .mr-box{margin-top:4px;padding:12px 14px;border-radius:12px;background:rgba(217,119,6,.07);border:1px solid rgba(217,119,6,.25)}
.sp-mr .mr-box small{display:block;font:700 10px/1 "Inter",sans-serif;letter-spacing:.08em;color:#B45309}
.sp-mr .mr-box span{display:block;font-size:11.5px;color:#7C4A03;margin-top:5px}
.sp-mr .mr-box>b{display:block;font:800 22px/1.2 "Plus Jakarta Sans",sans-serif;color:#D97706;margin-top:6px}
.sp-mr .mr-box>b span{display:inline;font:inherit;color:inherit;margin:0}

/* Projects: tasks across the board */
.sp-pj .pj-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sp-pj .pj-col{min-height:140px;padding:9px;border-radius:12px;background:rgba(15,26,43,.035);display:flex;flex-direction:column;gap:7px}
.sp-pj .pj-col>b{font:700 11px/1 "Plus Jakarta Sans",sans-serif;color:#444D5A}
.sp-pj .pj-c{display:block;padding:8px 9px;border-radius:9px;background:#fff;border:1px solid #E6ECF2;font-size:11px;line-height:1.35;font-weight:600}
.sp-pj .pj-c small{display:block;font-weight:500;color:#626976;margin-top:3px}
.sp-pj .pj-c.done{color:#626976;text-decoration:line-through}
.sp-pj .pj-slot{display:block;height:48px}
.sp-pj .pj-move{position:relative}
.sp-pj .pj-ts{display:flex;justify-content:space-between;gap:12px;font-size:11.5px;color:#626976}
.sp-pj .pj-ts b{color:#0F1A2B}
.motion .shot.in .sp-pj .pj-move{animation:pjMove 1.1s cubic-bezier(.6,0,.2,1) 1s both}
@keyframes pjMove{0%{transform:none}40%{transform:translate(20px,-6px) rotate(2deg);box-shadow:0 12px 20px -8px rgba(15,26,43,.3)}100%{transform:translateX(calc(100% + 8px + 18px));box-shadow:none}}

/* Helpdesk: tickets against their SLA */
.vg.sp-hd{gap:8px}
.sp-hd .hd-r{display:grid;grid-template-columns:78px 1fr auto auto;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;border:1px solid #EEF0F3;font-size:12.5px}
.sp-hd .hd-r>b{color:#EC4899;font:800 11px/1 "Inter",sans-serif}
.sp-hd .hd-r>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-hd .pill-h,.sp-hd .sla{font-style:normal;padding:3px 8px;border-radius:6px;font:700 10px/1.3 "Inter",sans-serif;color:var(--sc);background:color-mix(in srgb,var(--sc) 8%,transparent);border:1px solid color-mix(in srgb,var(--sc) 19%,transparent);white-space:nowrap}
.sp-hd .pill-h{letter-spacing:.04em}
.sp-hd .hd-pol{font-size:11.5px;color:#626976;margin-top:4px}
.sp-hd .hd-pol b{color:#0F1A2B}
