/* ============================================================
   SQUID ERP — Microsoft 365-inspired design system
   ============================================================ */
:root{
  /* Brand */
  --squid-navy-900:#081634;
  --squid-navy-800:#0A1B3D;
  --squid-navy-700:#12245A;
  --squid-navy-600:#1B3478;
  --squid-orange:#FF5A2C;
  --squid-magenta:#E5295C;
  --squid-amber:#FF8A1E;
  --squid-grad:linear-gradient(135deg,#E5295C 0%,#FF5A2C 55%,#FF8A1E 100%);

  /* Neutrals (M365 fluent-ish) */
  --canvas:#F3F4F8;
  --surface:#FFFFFF;
  --surface-alt:#FAFBFD;
  --line:#E4E7EF;
  --line-strong:#D2D7E3;
  --ink:#1B1F2A;
  --ink-2:#454B5C;
  --ink-3:#6B7280;
  --ink-disabled:#A0A6B4;

  /* Accent (interactive blue, M365 default) */
  --accent:#2563EB;
  --accent-600:#1D4ED8;
  --accent-soft:#EAF1FE;

  /* Status */
  --ok:#127a3e;--ok-soft:#E7F6EC;
  --warn:#9A6700;--warn-soft:#FBF3DC;
  --danger:#B42318;--danger-soft:#FDECEA;

  --radius:8px;--radius-lg:12px;--radius-pill:999px;
  --shadow-1:0 1.6px 3.6px rgba(8,22,52,.10),0 0.3px 0.9px rgba(8,22,52,.07);
  --shadow-2:0 6.4px 14.4px rgba(8,22,52,.13),0 1.2px 3.6px rgba(8,22,52,.10);
  --shadow-pop:0 12px 28px rgba(8,22,52,.18),0 2px 6px rgba(8,22,52,.12);

  --bar-h:48px;
  --rail-w:260px;
  --rail-w-collapsed:48px;

  --font-ui:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:"Segoe UI",-apple-system,system-ui,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-ui);
  color:var(--ink);
  background:var(--canvas);
  font-size:14px;line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
img{max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.hidden{display:none!important}
.spin{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Scrollbars — thin, fluent */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:#C7CCD9;border-radius:8px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#AEB4C5;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}

/* ============================================================
   PUBLIC CORPORATE SITE (Squid Global)
   ============================================================ */
.site{background:var(--surface)}
.site-wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* Top nav */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(8,22,52,.82);backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid rgba(255,255,255,.08)}
.site-nav .site-wrap{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:flex;align-items:center;gap:10px;color:#fff}
.brand svg,.brand img:not(.brand-logo){width:34px;height:34px;display:block}
.brand .word{font-size:21px;font-weight:700;letter-spacing:.22em;color:#fff}
.brand .tm{font-size:10px;vertical-align:super;opacity:.7;letter-spacing:0}
.site-links{display:flex;gap:4px;margin-left:auto}
.site-links a{color:rgba(255,255,255,.82);font-weight:600;font-size:13.5px;padding:9px 14px;border-radius:var(--radius-pill);transition:background .15s,color .15s}
.site-links a:hover{background:rgba(255,255,255,.10);color:#fff}
.btn-portal{background:var(--squid-grad);color:#fff!important;font-weight:700;padding:10px 20px!important;border-radius:var(--radius-pill);
  box-shadow:0 6px 18px rgba(229,41,92,.35);transition:transform .15s,box-shadow .15s}
.btn-portal:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(229,41,92,.45);background:var(--squid-grad)}
.nav-burger{display:none;background:none;border:0;color:#fff;font-size:22px;margin-left:auto}

/* Hero */
.hero{position:relative;background:radial-gradient(1200px 600px at 78% -10%,#1B3478 0%,transparent 55%),
  linear-gradient(160deg,#0A1B3D 0%,#081634 60%,#0A1B3D 100%);color:#fff;overflow:hidden;isolation:isolate}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:54px 54px;mask-image:radial-gradient(900px 500px at 80% 0,#000 0%,transparent 70%)}
.hero .site-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding-top:74px;padding-bottom:84px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#FFB089;background:rgba(255,90,44,.12);border:1px solid rgba(255,138,30,.30);padding:7px 14px;border-radius:var(--radius-pill)}
.hero h1{font-family:var(--font-display);font-size:clamp(34px,4.6vw,56px);line-height:1.04;font-weight:800;letter-spacing:-.01em;margin:22px 0 0}
.hero h1 .grad{background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:17px;line-height:1.6;color:#C3CCE4;max-width:540px;margin:20px 0 0}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.cta-primary{background:var(--squid-grad);color:#fff;font-weight:700;font-size:15px;padding:14px 26px;border:0;border-radius:var(--radius-pill);
  box-shadow:0 10px 26px rgba(229,41,92,.40);transition:transform .15s,box-shadow .15s;display:inline-flex;align-items:center;gap:9px}
.cta-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(229,41,92,.5)}
.cta-ghost{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.20);color:#fff;font-weight:700;font-size:15px;
  padding:14px 26px;border-radius:var(--radius-pill);transition:background .15s;display:inline-flex;align-items:center;gap:9px}
.cta-ghost:hover{background:rgba(255,255,255,.13)}
.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.hero-pills span{font-size:12.5px;font-weight:600;color:#D5DCF0;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);
  padding:7px 13px;border-radius:var(--radius-pill)}

/* Hero ecosystem panel */
.eco-orbit{position:relative;aspect-ratio:1;max-width:420px;margin-left:auto;width:100%}
.eco-core{position:absolute;inset:32%;border-radius:50%;background:linear-gradient(160deg,#12245A,#0A1B3D);
  border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  box-shadow:inset 0 0 40px rgba(0,0,0,.4),0 18px 50px rgba(0,0,0,.45)}
.eco-core b{font-size:13px;letter-spacing:.08em;color:#fff}
.eco-core small{font-size:10.5px;color:#9FB0D8;letter-spacing:.05em}
.eco-node{position:absolute;width:62px;height:62px;border-radius:16px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);
  box-shadow:var(--shadow-1);animation:floaty 6s ease-in-out infinite}
.eco-node svg{width:26px;height:26px;color:#FFB089}
.eco-ring{position:absolute;inset:6%;border:1px dashed rgba(255,255,255,.13);border-radius:50%;animation:spinSlow 60s linear infinite}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* Sections */
.section{padding:88px 0}
.section.tight{padding:64px 0}
.section-head{max-width:720px;margin:0 auto 52px;text-align:center}
.section-head .kicker{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--squid-magenta)}
.section-head h2{font-family:var(--font-display);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.01em;margin:12px 0 0;color:var(--squid-navy-800)}
.section-head p{font-size:16.5px;color:var(--ink-2);margin:16px 0 0}
.bg-soft{background:var(--canvas)}

/* Capability cards */
.grid{display:grid;gap:20px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.cap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;transition:transform .18s,box-shadow .18s,border-color .18s}
.cap:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}
.cap .ic{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--squid-grad);color:#fff;margin-bottom:16px}
.cap .ic svg{width:24px;height:24px}
.cap h3{font-size:17px;font-weight:700;margin:0 0 8px;color:var(--squid-navy-800)}
.cap ul{margin:10px 0 0;padding:0 0 0 18px;color:var(--ink-2);font-size:14px}
.cap ul li{margin:6px 0}
.cap p{color:var(--ink-2);margin:0;font-size:14.5px}

/* Stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;background:linear-gradient(135deg,#0A1B3D,#12245A);
  border-radius:var(--radius-lg);padding:40px 32px;color:#fff;box-shadow:var(--shadow-2)}
.stat b{display:block;font-family:var(--font-display);font-size:36px;font-weight:800;background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:#B9C4E0;font-size:13.5px;font-weight:600}

/* Solutions / ecosystem chips */
.eco-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.eco-chip{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-weight:600;color:var(--squid-navy-800);transition:border-color .15s,box-shadow .15s}
.eco-chip:hover{border-color:var(--squid-orange);box-shadow:var(--shadow-1)}
.eco-chip .dot{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.eco-chip .dot svg{width:19px;height:19px}

/* Map / presence */
.presence{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.office{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px}
.office .flag{font-size:24px}
.office b{display:block;font-size:14px;color:var(--squid-navy-800);margin:10px 0 4px;letter-spacing:.04em;text-transform:uppercase;font-size:12px}
.office span{font-size:13.5px;color:var(--ink-2);line-height:1.5}

/* Process steps */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.step{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px 18px}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-display);font-size:30px;font-weight:800;
  background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.step h4{font-size:15px;margin:10px 0 6px;color:var(--squid-navy-800)}
.step p{font-size:13px;color:var(--ink-3);margin:0}

/* CTA band */
.cta-band{background:radial-gradient(900px 400px at 20% 0,#1B3478,transparent 60%),linear-gradient(135deg,#0A1B3D,#081634);
  border-radius:18px;padding:56px 48px;color:#fff;text-align:center;box-shadow:var(--shadow-2)}
.cta-band h2{font-family:var(--font-display);font-size:clamp(26px,3.6vw,40px);font-weight:800;margin:0;letter-spacing:-.01em}
.cta-band p{color:#C3CCE4;font-size:16.5px;margin:14px auto 28px;max-width:560px}

/* Footer */
.site-foot{background:var(--squid-navy-900);color:#9FB0D8;padding:54px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
.site-foot h5{color:#fff;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px}
.site-foot a{display:block;color:#9FB0D8;font-size:14px;padding:5px 0;transition:color .15s}
.site-foot a:hover{color:#fff}
.foot-brand .brand .word{font-size:19px}
.foot-brand p{font-size:14px;line-height:1.6;margin:16px 0 0;max-width:300px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:38px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px}

@media (max-width:980px){
  .hero .site-wrap{grid-template-columns:1fr;gap:36px}
  .eco-orbit{max-width:340px;margin:0 auto}
  .grid-3,.grid-4,.presence,.eco-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .site-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:var(--squid-navy-800);padding:12px;gap:2px;border-bottom:1px solid rgba(255,255,255,.1)}
  .site-links.open{display:flex}
  .nav-burger{display:block}
}
@media (max-width:560px){
  .grid-3,.grid-4,.presence,.eco-grid,.steps,.stats,.grid-2,.foot-grid{grid-template-columns:1fr}
}

/* ============================================================
   SECURED ERP WORKSPACE (Microsoft 365-style shell)
   ============================================================ */
.app{display:none;height:100vh;grid-template-rows:var(--bar-h) 1fr;grid-template-columns:1fr;overflow:hidden}
.app.active{display:grid}

/* Command bar */
.cmdbar{grid-row:1;display:flex;align-items:center;gap:8px;height:var(--bar-h);background:var(--squid-navy-800);
  color:#fff;padding:0 8px;position:relative;z-index:60}
.cmd-waffle{width:40px;height:40px;border:0;background:transparent;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .12s}
.cmd-waffle:hover{background:rgba(255,255,255,.12)}
.cmd-waffle svg{width:20px;height:20px}
.cmd-brand{display:flex;align-items:center;gap:9px;padding:0 8px;margin-right:4px;background:none;border:0;color:inherit;cursor:pointer;height:34px;border-radius:6px;transition:background .12s}
.cmd-brand:hover{background:rgba(255,255,255,.10)}
.cmd-brand img,.cmd-brand svg{width:26px;height:26px}
.cmd-brand b{font-size:15px;font-weight:600;letter-spacing:.02em}
.cmd-brand .suite{color:#9FB0D8;font-weight:400}

/* Entity combo box (tenant switcher) */
.entity-combo{position:relative;margin-left:6px;z-index:70}
.entity-btn{display:flex;align-items:center;gap:9px;height:34px;padding:0 10px 0 8px;border-radius:6px;border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);color:#fff;max-width:280px;transition:background .12s,border-color .12s}
.entity-btn:hover{background:rgba(255,255,255,.13)}
.entity-btn .ic{width:22px;height:22px;border-radius:5px;background:var(--squid-grad);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex:0 0 auto;overflow:hidden}
.entity-btn .ic img{width:100%;height:100%;object-fit:cover}
.entity-btn .txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;min-width:0}
.entity-btn .txt b{font-size:12.5px;font-weight:600;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entity-btn .txt small{font-size:10px;color:#9FB0D8}
.entity-btn .chev{width:14px;height:14px;opacity:.8;flex:0 0 auto}
.entity-menu{position:absolute;top:42px;left:0;width:320px;background:var(--surface);color:var(--ink);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:8px;z-index:60;max-height:70vh;overflow:auto;animation:pop .12s ease}
@keyframes pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.entity-menu .menu-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:8px 10px 6px}
.entity-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:8px;transition:background .12s}
.entity-item:hover{background:var(--canvas)}
.entity-item.current{background:var(--accent-soft)}
.entity-item .ic{width:30px;height:30px;border-radius:7px;background:var(--squid-grad);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex:0 0 auto;overflow:hidden}
.entity-item .ic img{width:100%;height:100%;object-fit:cover}
.entity-item .meta{min-width:0;flex:1}
.entity-item .meta b{display:block;font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entity-item .meta small{font-size:11.5px;color:var(--ink-3)}
.entity-item .check{color:var(--accent);width:18px;height:18px;flex:0 0 auto}

/* Command search */
.cmd-search{flex:1;max-width:560px;margin:0 auto;position:relative}
.cmd-search input{width:100%;height:32px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.10);
  color:#fff;padding:0 12px 0 34px;font-size:13.5px}
.cmd-search input::placeholder{color:#9FB0D8}
.cmd-search svg{position:absolute;left:10px;top:8px;width:16px;height:16px;color:#9FB0D8}
.cmd-right{display:flex;align-items:center;gap:4px;margin-left:auto}
.cmd-ic{width:36px;height:36px;border:0;background:transparent;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .12s;position:relative}
.cmd-ic:hover{background:rgba(255,255,255,.12)}
.cmd-ic svg{width:18px;height:18px}
.cmd-ic .badge{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--squid-orange);border:1.5px solid var(--squid-navy-800)}
.cmd-avatar{width:32px;height:32px;border-radius:50%;margin:0 6px 0 4px;border:0;background:var(--squid-grad);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cmd-avatar img{width:100%;height:100%;object-fit:cover}

/* Body split: rail + content */
.app-body{grid-row:2;display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:0}
.app.rail-collapsed .app-body{grid-template-columns:var(--rail-w-collapsed) 1fr}

/* Left nav rail */
.rail{background:var(--surface);border-right:1px solid var(--line);overflow-y:auto;overflow-x:hidden;padding:8px 8px 24px}
.rail-section{margin-top:10px}
.rail-section .rs-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:10px 12px 4px;white-space:nowrap}
.app.rail-collapsed .rs-label{display:none}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;padding:9px 12px;border-radius:6px;color:var(--ink-2);font-size:13.5px;font-weight:600;transition:background .12s,color .12s;position:relative;white-space:nowrap}
.nav-item:hover{background:var(--canvas)}
.nav-item.active{background:var(--accent-soft);color:var(--accent-600)}
.nav-item.active::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:3px;background:var(--squid-grad)}
.nav-item .ni-ic{width:20px;height:20px;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.nav-item .ni-ic svg{width:19px;height:19px}
.nav-item .ni-ic img{width:19px;height:19px;object-fit:contain}
.app.rail-collapsed .nav-item .ni-tx{display:none}
.app.rail-collapsed .nav-item{justify-content:center;padding:9px 0}

/* Content */
.content{background:var(--canvas);overflow-y:auto;min-height:0}
.content-inner{max-width:1280px;margin:0 auto;padding:24px 28px 64px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.page-head h1{font-size:23px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.01em}
.page-head .crumb{font-size:12.5px;color:var(--ink-3);font-weight:600}
.page-head .crumb b{color:var(--squid-magenta)}
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);
  font-weight:600;font-size:13.5px;padding:8px 14px;border-radius:6px;transition:background .12s,border-color .12s,box-shadow .12s}
.btn:hover{background:var(--canvas)}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-600)}
.btn-brand{background:var(--squid-grad);border:0;color:#fff;box-shadow:0 4px 12px rgba(229,41,92,.30)}
.btn-brand:hover{background:var(--squid-grad);color:#fff;filter:brightness(1.06)}
.btn-ghost{background:transparent;border-color:transparent}
.btn-ghost:hover{background:var(--surface)}

/* KPI cards */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 18px 16px;box-shadow:var(--shadow-1);position:relative;overflow:hidden}
.kpi::after{content:"";position:absolute;right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;background:var(--squid-grad);opacity:.07}
.kpi .k-ic{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);margin-bottom:14px}
.kpi .k-ic svg{width:21px;height:21px}
.kpi .k-val{font-size:27px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1}
.kpi .k-lab{font-size:13px;color:var(--ink-3);font-weight:600;margin-top:6px}
.kpi .k-delta{font-size:12px;font-weight:700;margin-top:8px;display:inline-flex;align-items:center;gap:4px}
.k-delta.up{color:var(--ok)}.k-delta.down{color:var(--danger)}

/* Cards / panels */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.panel-head h3{font-size:15px;font-weight:700;margin:0;color:var(--ink)}
.panel-body{padding:18px}
.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-bottom:16px}

/* Module launcher grid (waffle / app launcher) */
.launcher{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.app-tile{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:18px;text-align:left;transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer}
.app-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}
.app-tile .t-ic{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--squid-grad)}
.app-tile .t-ic svg{width:23px;height:23px}
.app-tile .t-ic img{width:26px;height:26px;object-fit:contain;filter:brightness(0) invert(1)}
.app-tile b{font-size:14.5px;color:var(--ink);font-weight:700}
.app-tile small{font-size:12px;color:var(--ink-3);line-height:1.4}

/* Table */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-weight:700;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.tbl tbody tr:hover{background:var(--surface-alt)}
.tbl tbody tr:last-child td{border-bottom:0}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill)}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.danger{background:var(--danger-soft);color:var(--danger)}
.pill.muted{background:var(--canvas);color:var(--ink-3)}

/* Empty / loading states */
.empty{text-align:center;padding:48px 20px;color:var(--ink-3)}
.empty svg{width:46px;height:46px;color:var(--line-strong);margin-bottom:12px}
.empty b{display:block;color:var(--ink-2);font-size:15px;margin-bottom:4px}
.skeleton{background:linear-gradient(90deg,#eef0f5 25%,#e3e6ee 37%,#eef0f5 63%);background-size:400% 100%;animation:sk 1.3s ease infinite;border-radius:6px}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}

/* Waffle flyout (app launcher panel) */
.waffle-panel{position:absolute;top:46px;left:6px;width:360px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:14px;z-index:60;animation:pop .12s ease}
.waffle-panel .wp-head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 12px}
.waffle-panel .wp-head b{font-size:14px;color:var(--ink)}
.waffle-panel .wp-head a{font-size:12.5px;color:var(--accent);font-weight:600}
.waffle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.waffle-app{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;border-radius:9px;text-align:center;transition:background .12s;border:0;background:transparent;cursor:pointer}
.waffle-app:hover{background:var(--canvas)}
.waffle-app .wa-ic{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--squid-grad)}
.waffle-app .wa-ic svg{width:20px;height:20px}
.waffle-app .wa-ic img{width:22px;height:22px;filter:brightness(0) invert(1)}
.waffle-app span{font-size:11.5px;color:var(--ink-2);font-weight:600;line-height:1.2}

/* User flyout */
.user-panel{position:absolute;top:46px;right:8px;width:300px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:8px;z-index:60;animation:pop .12s ease}
.user-card{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.user-card .ua{width:48px;height:48px;border-radius:50%;background:var(--squid-grad);color:#fff;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.user-card .ua img{width:100%;height:100%;object-fit:cover}
.user-card b{font-size:14.5px;color:var(--ink);display:block}
.user-card small{font-size:12px;color:var(--ink-3)}
.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:7px;color:var(--ink-2);font-size:13.5px;font-weight:600;transition:background .12s}
.user-menu-item:hover{background:var(--canvas)}
.user-menu-item svg{width:17px;height:17px;color:var(--ink-3)}

/* ===== Login / auth ===== */
.auth{position:fixed;inset:0;z-index:200;display:none;align-items:stretch;background:var(--canvas)}
.auth.active{display:flex}
.auth-art{flex:1;background:radial-gradient(900px 600px at 70% 10%,#1B3478 0%,transparent 55%),linear-gradient(160deg,#0A1B3D,#081634);
  color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-art::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(700px 500px at 70% 10%,#000,transparent 70%)}
.auth-art .brand .word{color:#fff}
.auth-art h2{font-family:var(--font-display);font-size:34px;font-weight:800;line-height:1.1;margin:0;max-width:420px;position:relative}
.auth-art h2 .grad{background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-art p{color:#B9C4E0;max-width:380px;font-size:15px;position:relative}
.auth-feats{display:flex;flex-direction:column;gap:14px;position:relative}
.auth-feat{display:flex;gap:12px;align-items:flex-start}
.auth-feat .af-ic{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;color:#FFB089;flex:0 0 auto}
.auth-feat .af-ic svg{width:18px;height:18px}
.auth-feat b{font-size:14px;color:#fff;display:block}
.auth-feat small{font-size:12.5px;color:#9FB0D8}
.auth-form{width:min(460px,100%);display:flex;align-items:center;justify-content:center;padding:40px}
.auth-card{width:100%;max-width:380px}
.auth-card .ac-brand{display:none}
.auth-card h1{font-size:26px;font-weight:800;color:var(--ink);margin:0 0 6px;letter-spacing:-.01em}
.auth-card .sub{color:var(--ink-3);font-size:14px;margin:0 0 26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.field input{width:100%;height:44px;border:1px solid var(--line-strong);border-radius:8px;padding:0 14px;font-size:14.5px;background:var(--surface);transition:border-color .12s,box-shadow .12s}
.field input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field .pw-wrap{position:relative}
.field .pw-wrap button{position:absolute;right:6px;top:6px;height:32px;width:32px;border:0;background:transparent;color:var(--ink-3);border-radius:6px;display:flex;align-items:center;justify-content:center}
.field .pw-wrap button:hover{background:var(--canvas)}
.auth-row{display:flex;align-items:center;justify-content:space-between;margin:6px 0 20px}
.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);font-weight:600;cursor:pointer}
.checkbox input{width:16px;height:16px;accent-color:var(--accent)}
.auth-row a{font-size:13px;color:var(--accent);font-weight:600}
.btn-submit{width:100%;height:46px;border:0;border-radius:8px;background:var(--squid-grad);color:#fff;font-weight:700;font-size:15px;
  box-shadow:0 8px 20px rgba(229,41,92,.30);transition:transform .12s,box-shadow .12s;display:flex;align-items:center;justify-content:center;gap:8px}
.btn-submit:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(229,41,92,.42)}
.btn-submit:disabled{opacity:.65;transform:none;cursor:not-allowed}
.auth-err{background:var(--danger-soft);color:var(--danger);border:1px solid #F6C9C4;border-radius:8px;padding:11px 14px;font-size:13px;font-weight:600;margin-bottom:16px;display:none}
.auth-err.show{display:block}
.auth-foot{text-align:center;margin-top:22px;font-size:13px;color:var(--ink-3)}
.auth-foot a{color:var(--accent);font-weight:600}
.auth-back{position:absolute;top:20px;right:24px;font-size:13px;color:#fff;opacity:.85;display:flex;align-items:center;gap:6px;z-index:5}
.auth-back:hover{opacity:1}

/* Toast */
.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:300;display:flex;flex-direction:column;gap:10px}
.toast{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:9px;box-shadow:var(--shadow-pop);
  font-size:13.5px;font-weight:600;animation:toastIn .2s ease;max-width:340px}
.toast.ok{background:#0E5E33}.toast.err{background:#9A2820}
.toast svg{width:18px;height:18px;flex:0 0 auto}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}

/* Backdrop for flyouts */
.flyout-backdrop{position:fixed;inset:0;z-index:50;display:none}
.flyout-backdrop.show{display:block}

@media (max-width:900px){
  .app-body{grid-template-columns:0 1fr}
  .app.rail-open .app-body{grid-template-columns:var(--rail-w) 1fr}
  .rail{position:fixed;top:var(--bar-h);bottom:0;left:0;width:var(--rail-w);z-index:50;transform:translateX(-100%);transition:transform .2s}
  .app.rail-open .rail{transform:none;box-shadow:var(--shadow-pop)}
  .cmd-search{display:none}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .two-col{grid-template-columns:1fr}
  .auth-art{display:none}
  .auth-card .ac-brand{display:flex;align-items:center;gap:9px;margin-bottom:24px}
  .auth-card .ac-brand img,.auth-card .ac-brand svg{width:30px;height:30px}
  .auth-card .ac-brand b{font-size:18px;letter-spacing:.18em;color:var(--squid-navy-800)}
}
@media (max-width:560px){.kpi-grid{grid-template-columns:1fr}.entity-btn .txt small{display:none}}

/* ============================================================
   REAL LOGO sizing + multi-page corporate additions (v305)
   ============================================================ */
.brand-logo{height:34px;width:auto;display:block}
.site-nav .brand-logo{height:36px}
.foot-logo{height:40px;width:auto;display:block;margin-bottom:4px}
.auth-art .brand-logo{height:38px}
.ac-logo{height:34px;width:auto;display:block}
.cmd-brand img{height:24px;width:auto}
@media (max-width:560px){ .site-nav .brand-logo{height:30px} }

/* Sticky solid nav on inner pages (not just hero) */
.site-nav.solid{background:var(--squid-navy-800);border-bottom:1px solid rgba(255,255,255,.08)}

/* Generic page hero (inner pages) */
.page-hero{position:relative;background:radial-gradient(1100px 520px at 80% -20%,#1B3478 0%,transparent 55%),linear-gradient(160deg,#0A1B3D,#081634);color:#fff;overflow:hidden;isolation:isolate}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:54px 54px;mask-image:radial-gradient(800px 460px at 80% 0,#000,transparent 70%)}
.page-hero .site-wrap{padding:64px 24px 56px}
.page-hero .eyebrow{margin-bottom:18px}
.page-hero h1{font-family:var(--font-display);font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.01em;margin:0;max-width:760px;line-height:1.06}
.page-hero h1 .grad{background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero p{color:#C3CCE4;font-size:17px;max-width:620px;margin:18px 0 0;line-height:1.6}

/* Service rows (alternating) */
.svc{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:46px 0;border-bottom:1px solid var(--line)}
.svc:last-child{border-bottom:0}
.svc:nth-child(even) .svc-media{order:-1}
.svc h3{font-size:24px;font-weight:800;color:var(--squid-navy-800);margin:0 0 6px;letter-spacing:-.01em}
.svc .lead{color:var(--ink-2);font-size:16px;margin:0 0 16px}
.svc ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.svc ul li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2);font-size:14.5px}
.svc ul li svg{width:18px;height:18px;color:var(--squid-magenta);flex:0 0 auto;margin-top:2px}
.svc-media{background:linear-gradient(160deg,#0A1B3D,#12245A);border-radius:16px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-2);position:relative;overflow:hidden}
.svc-media::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:34px 34px;opacity:.6}
.svc-media .sm-ic{width:96px;height:96px;border-radius:24px;background:var(--squid-grad);display:flex;align-items:center;justify-content:center;color:#fff;position:relative;box-shadow:0 18px 50px rgba(229,41,92,.4)}
.svc-media .sm-ic svg{width:48px;height:48px}

/* Solutions grid (ecosystem cards) */
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sol{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;transition:transform .18s,box-shadow .18s,border-color .18s}
.sol:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}
.sol .s-ic{width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.sol .s-ic svg{width:24px;height:24px}
.sol h3{font-size:17px;font-weight:700;color:var(--squid-navy-800);margin:0 0 8px}
.sol p{color:var(--ink-2);font-size:14px;margin:0}

/* About: values + tech */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.value{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px}
.value .v-n{font-family:var(--font-display);font-size:24px;font-weight:800;background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.value h3{font-size:16px;color:var(--squid-navy-800);margin:8px 0 6px}
.value p{font-size:14px;color:var(--ink-2);margin:0}
.tech-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.tech-tag{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:9px 16px;font-weight:600;font-size:13.5px;color:var(--squid-navy-800)}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.contact-info{display:grid;gap:14px}
.contact-line{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px}
.contact-line .ci-ic{width:42px;height:42px;border-radius:11px;background:var(--squid-grad);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.contact-line .ci-ic svg{width:20px;height:20px}
.contact-line b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.contact-line span{font-size:15px;color:var(--squid-navy-800);font-weight:600}
.offices-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px}
.office-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px}
.office-card .oc-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.office-card .flag{font-size:26px;line-height:1}
.office-card .oc-head b{font-size:14px;color:var(--squid-navy-800)}
.office-card .oc-head small{display:block;font-size:11.5px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.office-card p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:1.5}
.contact-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-1)}
.contact-form h3{margin:0 0 4px;font-size:18px;color:var(--squid-navy-800)}
.contact-form p.sub{margin:0 0 18px;color:var(--ink-3);font-size:14px}
.contact-form .field input,.contact-form .field textarea,.contact-form .field select{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:11px 14px;font-size:14.5px;font-family:inherit;background:var(--surface);transition:border-color .12s,box-shadow .12s}
.contact-form .field textarea{min-height:110px;resize:vertical}
.contact-form .field input:focus,.contact-form .field textarea:focus,.contact-form .field select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

@media (max-width:980px){
  .svc{grid-template-columns:1fr;gap:24px}
  .svc:nth-child(even) .svc-media{order:0}
  .sol-grid,.values{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr;gap:28px}
}
@media (max-width:560px){
  .sol-grid,.values,.offices-grid,.form-row{grid-template-columns:1fr}
}

/* ============================================================
   STANDARDIZED MODULE COMPONENTS (toolbar, data grid)
   ============================================================ */
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow-1)}
.tb-group{display:flex;align-items:center;gap:8px}
.tb-group label{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.tb-date{height:36px;border:1px solid var(--line-strong);border-radius:6px;padding:0 10px;font-size:13.5px;font-family:inherit;color:var(--ink);background:var(--surface)}
.tb-date:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tb-spacer{flex:1}
.tb-search{position:relative;display:flex;align-items:center;min-width:220px}
.tb-search svg{position:absolute;left:11px;width:16px;height:16px;color:var(--ink-3)}
.tb-search input{width:100%;height:36px;border:1px solid var(--line-strong);border-radius:6px;padding:0 12px 0 34px;font-size:13.5px;background:var(--surface)}
.tb-search input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

.tbl-wrap{overflow-x:auto}
.tbl-wrap .tbl{min-width:560px}

@media (max-width:680px){
  .toolbar{padding:10px}
  .tb-search{min-width:140px;flex:1}
}

/* ============================================================
   STANDARDIZED MODAL (Add / Edit forms)
   ============================================================ */
.modal-backdrop{position:fixed;inset:0;z-index:300;background:rgba(8,22,52,.45);backdrop-filter:blur(2px);
  display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto;animation:fade .15s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);width:min(640px,100%);
  animation:pop .16s ease;overflow:hidden}
.modal.wide{width:min(860px,100%)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}
.modal-head p{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--squid-magenta)}
.modal-head h2{margin:4px 0 0;font-size:20px;font-weight:800;color:var(--squid-navy-800);letter-spacing:-.01em}
.modal-x{width:36px;height:36px;border:0;background:var(--canvas);color:var(--ink-2);border-radius:8px;font-size:20px;line-height:1;flex:0 0 auto;transition:background .12s}
.modal-x:hover{background:var(--line)}
.modal-body{padding:22px 24px;max-height:62vh;overflow-y:auto}
.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:var(--surface-alt)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.form-grid .full{grid-column:1/-1}
.form-grid label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;background:var(--surface);transition:border-color .12s,box-shadow .12s}
.form-grid textarea{min-height:80px;resize:vertical}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.row-action{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line-strong);background:var(--surface);
  color:var(--ink-2);font-weight:600;font-size:12.5px;padding:5px 11px;border-radius:6px;transition:background .12s,border-color .12s,color .12s}
.row-action:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-600)}
.row-action svg{width:14px;height:14px}
.tbl .col-actions{text-align:right;white-space:nowrap}
@media (max-width:560px){ .form-grid{grid-template-columns:1fr} .modal-backdrop{padding:16px 8px} }

/* ============================================================
   PROMOTIONS cards
   ============================================================ */
.promo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.promo-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-1);transition:transform .15s,box-shadow .15s}
.promo-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.promo-card-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.promo-ic{width:42px;height:42px;border-radius:11px;background:var(--squid-grad);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.promo-ic svg{width:20px;height:20px}
.promo-card-top b{display:block;font-size:14.5px;color:var(--squid-navy-800)}
.promo-card-top small{display:block;font-size:12px;color:var(--ink-3)}
.promo-card-top .pill{margin-left:auto}
.promo-card-meta{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--canvas);border-radius:8px;margin-bottom:12px}
.promo-card-meta span{font-size:12px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.promo-card-meta b{font-size:16px;color:var(--squid-navy-800)}
.promo-card-actions{display:flex;justify-content:flex-end}

/* ============================================================
   ACTIVITY MONITOR channels
   ============================================================ */
.chan-list{display:grid;gap:12px}
.chan-row{display:flex;align-items:center;gap:12px}
.chan-name{width:90px;font-size:13px;font-weight:600;color:var(--ink-2);flex:0 0 auto}
.chan-bar{flex:1;height:10px;background:var(--canvas);border-radius:6px;overflow:hidden}
.chan-bar i{display:block;height:100%;background:var(--squid-grad);border-radius:6px}
.chan-row b{width:54px;text-align:right;font-size:13.5px;color:var(--squid-navy-800)}

/* ============================================================
   POS layout
   ============================================================ */
.pos-shell{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.pos-main{min-width:0}
.pos-cats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pos-cat{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:13px;padding:7px 14px;border-radius:var(--radius-pill);transition:all .12s}
.pos-cat:hover{border-color:var(--accent)}
.pos-cat.active{background:var(--squid-navy-800);color:#fff;border-color:var(--squid-navy-800)}
.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.pos-prod{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;min-height:96px;display:flex;flex-direction:column}
.pos-prod:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--accent)}
.pp-name{font-weight:700;font-size:13.5px;color:var(--squid-navy-800);line-height:1.3;margin-bottom:4px}
.pp-sku{font-size:11.5px;color:var(--ink-3);margin-bottom:auto}
.pp-price{font-size:15px;font-weight:800;background:var(--squid-grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-top:8px}
.pos-basket{position:sticky;top:84px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);display:flex;flex-direction:column;max-height:calc(100vh - 110px)}
.pos-basket-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.pos-basket-head h3{margin:0;font-size:15px;color:var(--squid-navy-800)}
.pos-lines{flex:1;overflow-y:auto;padding:8px}
.pos-line{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px}
.pos-line:hover{background:var(--canvas)}
.pl-info{flex:1;min-width:0}
.pl-info b{display:block;font-size:13.5px;color:var(--squid-navy-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-info small{font-size:11.5px;color:var(--ink-3)}
.pl-qty{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.pl-qty button{width:26px;height:26px;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;font-size:15px;line-height:1;color:var(--ink-2);font-weight:700}
.pl-qty button:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-600)}
.pl-qty .pl-x{color:var(--danger,#dc2626)}
.pl-qty b{min-width:20px;text-align:center;font-size:13.5px}
.pos-foot{border-top:1px solid var(--line);padding:16px 18px}
.pos-total-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.pos-total-row span{font-size:13px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.pos-total-row b{font-size:22px;font-weight:800;color:var(--squid-navy-800)}
.pos-settle{width:100%;justify-content:center}
@media (max-width:900px){ .pos-shell{grid-template-columns:1fr} .pos-basket{position:static;max-height:none} }

/* POS button in command bar */
.cmd-pos{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border:0;border-radius:9px;
  background:var(--squid-grad);color:#fff;font-weight:700;font-size:13.5px;cursor:pointer;margin-right:6px;
  box-shadow:0 4px 14px rgba(229,41,92,.35);transition:filter .12s,transform .12s}
.cmd-pos:hover{filter:brightness(1.08);transform:translateY(-1px)}
.cmd-pos svg{width:18px;height:18px}
@media (max-width:680px){ .cmd-pos span{display:none} .cmd-pos{padding:0 11px} }

/* ============================================================
   POS full-page overlay (independent workspace)
   ============================================================ */
body.pos-active{overflow:hidden}
.pos-overlay{position:fixed;inset:0;z-index:400;background:var(--canvas);display:flex;flex-direction:column;animation:fade .15s ease}
.pos-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:62px;padding:0 22px;
  background:linear-gradient(120deg,#0A1B3D,#12245A);color:#fff;flex:0 0 auto;box-shadow:0 2px 14px rgba(8,22,52,.25)}
.pos-brand{display:flex;align-items:center;gap:12px}
.pos-brand img{height:26px}
.pos-brand b{font-size:16px;font-weight:800;display:block;line-height:1.1}
.pos-brand small{font-size:12px;color:#AEB9D6}
.pos-top-actions{display:flex;gap:10px}
.pos-top-btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border-radius:9px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:13.5px;cursor:pointer;transition:background .12s}
.pos-top-btn:hover{background:rgba(255,255,255,.16)}
.pos-top-btn svg{width:16px;height:16px}
.pos-exit{background:var(--squid-grad);border-color:transparent;box-shadow:0 4px 14px rgba(229,41,92,.35)}
.pos-body{flex:1;display:grid;grid-template-columns:1fr 380px;gap:0;min-height:0}
.pos-body .pos-main{padding:20px 22px;overflow-y:auto;min-width:0}
.pos-searchbar{position:relative;display:flex;align-items:center;margin-bottom:16px}
.pos-searchbar svg{position:absolute;left:16px;width:20px;height:20px;color:var(--ink-3)}
.pos-searchbar input{width:100%;height:50px;border:1px solid var(--line-strong);border-radius:12px;padding:0 16px 0 48px;font-size:15px;background:var(--surface);box-shadow:var(--shadow-1)}
.pos-searchbar input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pos-body .pos-basket{position:static;max-height:none;border-radius:0;border:0;border-left:1px solid var(--line);box-shadow:none;background:var(--surface)}
.pos-total-row.sub b{font-size:15px;color:var(--ink-2);font-weight:600}
.pos-total-row.sub span{font-size:12px}
.pos-pay-row{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:6px}
@media (max-width:860px){ .pos-body{grid-template-columns:1fr} .pos-body .pos-basket{border-left:0;border-top:1px solid var(--line)} }

/* ============================================================================
   POS V106N — full independent terminal with skins
   ============================================================================ */
body.pos-active{overflow:hidden}
.pos-app-v{position:fixed;inset:0;z-index:500;display:grid;grid-template-columns:230px 1fr 380px;
  background:var(--pos-bg,#eef1f6);color:var(--pos-ink,#0f1f3d);animation:fade .15s ease;font-size:14px}
/* skins */
.pos-app-v.skin-light{--pos-accent:#dc2626;--pos-accent2:#b91c1c;--pos-side:#ffffff;--pos-side-ink:#1f2937;--pos-bg:#f3f4f6;--pos-ink:#111827}
.pos-app-v.skin-blue{--pos-accent:#2563eb;--pos-accent2:#1e40af;--pos-side:#0f1f3d;--pos-bg:#eef1f6}
.pos-app-v.skin-green{--pos-accent:#10b981;--pos-accent2:#047857;--pos-side:#06281f;--pos-bg:#eef6f2}
.pos-app-v.skin-red{--pos-accent:#ef4444;--pos-accent2:#b91c1c;--pos-side:#2a0f12;--pos-bg:#f6eeef}
.pos-app-v.skin-dark{--pos-accent:#6366f1;--pos-accent2:#4338ca;--pos-side:#0a0a14;--pos-bg:#161622;--pos-ink:#e5e7eb}

/* sidebar */
.pos-side-v{background:var(--pos-side);color:var(--pos-side-ink,#fff);display:flex;flex-direction:column;padding:18px 16px;overflow:hidden;border-right:1px solid rgba(0,0,0,.06)}
.pos-app-v.skin-light .pos-side-v{color:#1f2937}
.pos-app-v.skin-light .pos-side-brand b{color:#111827}
.pos-app-v.skin-light .pos-side-v h3{color:#9ca3af}
.pos-app-v.skin-light .pos-cats-v button{color:#374151}
.pos-app-v.skin-light .pos-cats-v button:hover{background:#f3f4f6}
.pos-app-v.skin-light .act-operator,.pos-app-v.skin-light .pos-side-bottom{border-color:rgba(0,0,0,.08)}
.pos-app-v.skin-light .pos-back-v{background:#f3f4f6;color:#111827}
.pos-app-v.skin-light .skin-title,.pos-app-v.skin-light .pos-powered{color:#9ca3af}
.pos-side-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.pos-side-brand img{height:26px}
.pos-side-brand b{display:block;font-size:15px;font-weight:800}
.pos-side-brand span{font-size:11px;color:rgba(255,255,255,.6)}
.pos-side-v h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.5);margin:0 0 10px}
.pos-cats-v{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;min-height:0;padding-right:4px}
.pos-cats-v::-webkit-scrollbar{width:6px}
.pos-cats-v::-webkit-scrollbar-thumb{background:rgba(128,128,128,.35);border-radius:3px}
.pos-cats-v button{text-align:left;background:transparent;border:0;color:rgba(255,255,255,.8);font-weight:600;font-size:13.5px;padding:9px 12px;border-radius:8px;cursor:pointer;transition:background .12s,color .12s}
.pos-cats-v button:hover{background:rgba(255,255,255,.08);color:#fff}
.pos-cats-v button.active{background:var(--pos-accent);color:#fff}
.pos-side-bottom{margin-top:14px;padding-top:14px;border-top:1px solid rgba(128,128,128,.18);flex:0 0 auto}
.skin-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.5);margin-bottom:8px}
.pos-skin-row{display:flex;gap:8px;margin-bottom:14px}
.skin-dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .12s}
.skin-dot:hover{transform:scale(1.12)}
.skin-dot.active{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.3)}
.skin-dot.blue{background:#2563eb}.skin-dot.green{background:#10b981}.skin-dot.red{background:#ef4444}.skin-dot.dark{background:#6366f1}
.pos-back-v{width:100%;background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:9px;padding:11px;font-weight:700;font-size:13px;cursor:pointer;transition:background .12s}
.pos-back-v:hover{background:rgba(255,255,255,.18)}
.pos-powered{text-align:center;font-size:11px;color:rgba(255,255,255,.4);margin-top:12px}
.pos-powered span{color:#ff5a7a}

/* work area */
.pos-work-v{display:flex;flex-direction:column;padding:18px 22px;overflow:hidden;min-width:0}
.pos-head-v{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}
.pos-head-v p{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--pos-accent)}
.pos-head-v h1{margin:2px 0 0;font-size:24px;font-weight:800;letter-spacing:-.02em}
.pos-head-actions{display:flex;gap:8px}
.pos-head-actions button{background:var(--surface,#fff);border:1px solid rgba(0,0,0,.1);border-radius:9px;padding:9px 14px;font-weight:700;font-size:13px;cursor:pointer;transition:background .12s}
.pos-head-actions button:hover{background:var(--pos-accent);color:#fff;border-color:transparent}
.pos-tabs-v{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.pos-tab{display:inline-flex;align-items:center;gap:8px;background:var(--surface,#fff);border:1px solid rgba(0,0,0,.1);border-radius:9px;padding:8px 12px;font-weight:700;font-size:13px;cursor:pointer;transition:all .12s}
.pos-tab.active{background:var(--pos-accent);color:#fff;border-color:transparent}
.pos-tab b{background:rgba(0,0,0,.1);border-radius:20px;padding:0 7px;font-size:11px;min-width:18px;text-align:center}
.pos-tab.active b{background:rgba(255,255,255,.25)}
.pos-tab em{font-style:normal;font-size:16px;line-height:1;opacity:.6;padding-left:2px}
.pos-tab em:hover{opacity:1}
.pos-tab-add{background:transparent;border:1.5px dashed rgba(0,0,0,.2);border-radius:9px;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer;color:var(--pos-accent)}
.pos-searchbar-v{position:relative;display:flex;align-items:center;gap:8px;margin-bottom:14px}
.pos-searchbar-v svg{position:absolute;left:14px;width:18px;height:18px;color:#94a3b8;pointer-events:none}
.pos-searchbar-v input{flex:1;height:46px;border:1px solid rgba(0,0,0,.12);border-radius:11px;padding:0 14px 0 42px;font-size:15px;background:var(--surface,#fff)}
.pos-searchbar-v input:focus{outline:0;border-color:var(--pos-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--pos-accent) 18%,transparent)}
.pos-searchbar-v>button{height:46px;padding:0 16px;border:1px solid rgba(0,0,0,.12);background:var(--surface,#fff);border-radius:11px;font-weight:700;font-size:13px;cursor:pointer}
.pos-searchbar-v>button.active{background:var(--pos-accent);color:#fff;border-color:transparent}
.pos-products-v{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:12px;align-content:start;align-items:start;grid-auto-rows:max-content;padding-bottom:10px}
.pos-products-v.list{grid-template-columns:1fr;gap:8px}
.pos-product-v{background:var(--surface,#fff);border:1px solid rgba(0,0,0,.08);border-radius:13px;overflow:hidden;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;flex-direction:column;text-align:left;min-height:168px}
.pos-product-v:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(15,31,61,.14);border-color:var(--pos-accent)}
.pos-product-v .pp-img{height:96px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}
.pos-product-v .pp-img img{width:100%;height:100%;object-fit:cover}
.pos-product-v .pp-body{padding:10px 12px;display:flex;flex-direction:column;gap:2px;flex:1 1 auto}
.pos-product-v .pp-body b{font-size:13px;line-height:1.25;color:var(--pos-ink,#0f1f3d)}
.pos-product-v .pp-body small{font-size:11px;color:#94a3b8}
.pos-product-v .pp-price{margin-top:auto;padding-top:6px;font-weight:800;color:var(--pos-accent)}
.pos-products-v.list{display:flex;flex-direction:column;gap:8px;grid-auto-rows:auto}
.pos-products-v.list .pos-product-v{flex-direction:row;align-items:center;min-height:72px}
.pos-products-v.list .pp-img{width:60px;height:60px;flex:0 0 auto;border-radius:8px;margin:6px 0 6px 8px}
.pos-products-v.list .pp-body{flex:1;padding:10px 14px;justify-content:center}
.pos-products-v.list .pp-price{margin:0}

/* basket */
.pos-basket-v{background:var(--surface,#fff);border-left:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;overflow:hidden}
.pos-basket-v.pulse{animation:pulse .4s ease}
@keyframes pulse{0%{box-shadow:inset 0 0 0 0 var(--pos-accent)}40%{box-shadow:inset 4px 0 0 0 var(--pos-accent)}100%{box-shadow:inset 0 0 0 0 transparent}}
.pos-client-box{padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.06)}
.pos-client-btns{display:flex;gap:8px}
.pos-client-btns button{flex:1;height:40px;border:1px solid rgba(0,0,0,.12);background:#f8fafc;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer;transition:background .12s}
.pos-client-btns button:hover{background:#eef2f7}
.pos-client-btns .checksa-btn{background:linear-gradient(135deg,#ff6b00,#ff0040);color:#fff;border:0}
.pos-client-summary{margin-top:10px}
.pos-client-summary b{display:block;font-size:13.5px}
.pos-client-summary small{font-size:11.5px;color:#94a3b8}
.pos-checksa-badge{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#f0c040;border-radius:10px;padding:8px 10px;font-size:11px;margin-top:8px;font-weight:700}
.pos-basket-head-v{padding:14px 16px 8px}
.pos-basket-head-v h2{margin:0;font-size:16px;font-weight:800}
.pos-basket-head-v p{margin:4px 0 0;font-size:12px;color:#94a3b8;line-height:1.4}
.pos-lines-v{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.pos-line-v{padding:12px 13px;border-radius:12px;background:#fff;border:1px solid #e8edf3;box-shadow:0 1px 3px rgba(15,31,61,.06)}
.pos-line-v:hover{box-shadow:0 4px 12px rgba(15,31,61,.1)}
.plv-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}
.plv-name b{display:block;font-size:13.5px;line-height:1.3;color:var(--pos-ink,#0f1f3d)}
.plv-name small{font-size:11.5px;color:#94a3b8}
.plv-x{background:#fef2f2;border:0;color:#dc2626;font-size:16px;line-height:1;cursor:pointer;width:24px;height:24px;border-radius:6px;flex:0 0 auto}
.plv-x:hover{background:#dc2626;color:#fff}
.plv-bot{display:flex;align-items:center;gap:8px}
.plv-qty{display:flex;align-items:center;gap:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
.plv-qty button{width:28px;height:30px;border:0;background:#f8fafc;font-size:15px;line-height:1;cursor:pointer;font-weight:700;color:#475569}
.plv-qty button:hover{background:var(--pos-accent);color:#fff}
.plv-qty input{width:42px;height:30px;border:0;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0;text-align:center;font-size:13.5px;font-weight:700;-moz-appearance:textfield}
.plv-qty input::-webkit-outer-spin-button,.plv-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.plv-discbtn{display:flex;flex-direction:column;align-items:flex-start;background:#f1f5f9;border:0;border-radius:8px;padding:4px 10px;cursor:pointer;line-height:1.2}
.plv-discbtn span{font-size:9px;font-weight:800;letter-spacing:.04em;color:#94a3b8}
.plv-discbtn b{font-size:12.5px;color:var(--pos-accent)}
.plv-discbtn:hover{background:var(--pos-accent);}
.plv-discbtn:hover span,.plv-discbtn:hover b{color:#fff}
.plv-net{margin-left:auto;font-weight:800;font-size:14.5px;color:var(--pos-ink,#0f1f3d)}
.pos-empty-basket{text-align:center;padding:40px 16px;color:#94a3b8}
.pos-empty-basket b{display:block;font-size:14px;color:#64748b;margin-bottom:4px}
.pos-empty-basket span{font-size:12px}
.pos-totals-v{border-top:1px solid rgba(0,0,0,.08);padding:14px 16px}
.pt-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:13px;color:#64748b}
.pt-row b{color:var(--pos-ink,#0f1f3d);font-weight:700}
.pt-row.grand{margin:8px 0 0;padding-top:10px;border-top:1px dashed rgba(0,0,0,.12);font-size:15px}
.pt-row.grand span{font-weight:700;color:var(--pos-ink,#0f1f3d)}
.pt-row.grand b{font-size:22px;font-weight:800;color:var(--pos-accent)}
.pos-final-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.pos-final-actions button{height:48px;border:0;border-radius:11px;font-weight:800;font-size:14px;cursor:pointer;transition:filter .12s}
.pos-final-actions .order{background:#1e293b;color:#fff}
.pos-final-actions .sale{background:var(--squid-grad);color:#fff}
.pos-final-actions button:hover{filter:brightness(1.08)}

/* POS modals */
.pos-modal{position:fixed;inset:0;z-index:600;background:rgba(8,14,30,.6);display:flex;align-items:center;justify-content:center;padding:20px;animation:fade .12s ease}
.pos-modal-card{background:#fff;border-radius:16px;width:min(440px,100%);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;animation:pop .15s ease}
.pos-modal-card.sm{width:min(360px,100%)}
.pos-modal-card.checksa{width:min(420px,100%)}
.pmc-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #eef1f5}
.pmc-head h3{margin:0;font-size:17px;font-weight:800}
.pmc-x{width:32px;height:32px;border:0;background:#f1f5f9;border-radius:8px;font-size:18px;cursor:pointer}
.pmc-search{margin:14px 18px 6px;height:44px;border:1px solid #e2e8f0;border-radius:10px;padding:0 12px;font-size:14px}
.pmc-list{flex:1;overflow-y:auto;padding:8px 12px 12px}
.pmc-item{display:block;width:100%;text-align:left;background:#f8fafc;border:1px solid #eef1f5;border-radius:10px;padding:11px 13px;margin-bottom:6px;cursor:pointer;transition:background .12s,border-color .12s}
.pmc-item:hover{background:#fff;border-color:var(--accent,#2563eb)}
.pmc-item b{display:block;font-size:13.5px}
.pmc-item small{font-size:11.5px;color:#94a3b8}
.pmc-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #eef1f5;background:#f8fafc}
.pmc-pay{padding:14px 18px;overflow-y:auto}
.pmc-pay-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.pmc-pay-row label{font-weight:700;font-size:13.5px}
.pmc-pay-row input{width:130px;height:40px;border:1px solid #e2e8f0;border-radius:9px;padding:0 10px;font-size:14px;text-align:right}
.pmc-pay-summary{padding:12px 18px;background:#f8fafc;border-top:1px solid #eef1f5}
.pmc-pay-summary div{display:flex;justify-content:space-between;margin-bottom:5px;font-size:13px;color:#64748b}
.pmc-pay-summary .rem b{color:var(--squid-magenta,#e5295c);font-size:16px}
.checksa-found{background:#f8fafc;border:1px solid #eef1f5;border-radius:12px;padding:14px;text-align:center}
.checksa-found b{display:block;font-size:15px}
.checksa-found small{font-size:12px;color:#94a3b8}
@media (max-width:980px){ .pos-app-v{grid-template-columns:1fr;grid-template-rows:auto auto 1fr} .pos-side-v{flex-direction:row;align-items:center;overflow-x:auto} .pos-cats-v{flex-direction:row} .pos-side-bottom{display:none} }

/* POS extra modal elements */
.pmc-newclient{background:#16a34a;color:#fff;border:0;border-radius:8px;padding:8px 13px;font-size:12.5px;font-weight:700;cursor:pointer;margin-right:auto;margin-left:12px}
.pmc-newclient:hover{filter:brightness(1.08)}
.pmc-form{padding:16px 18px;display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow-y:auto;max-height:60vh}
.pmc-form .full{grid-column:1/-1}
.pmc-form label{display:block;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:5px}
.pmc-form input,.pmc-form select{width:100%;height:40px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;font-size:13.5px;font-family:inherit}
.pmc-form input:focus,.pmc-form select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pmc-pay-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.pmc-pay-mode{display:flex;align-items:center;gap:10px;flex:1;background:#f8fafc;border:1px solid #e8edf3;border-radius:11px;padding:10px 12px;cursor:pointer;text-align:left;transition:border-color .12s,background .12s}
.pmc-pay-mode:hover{border-color:var(--accent,#2563eb);background:#fff}
.pmc-pay-mode img{width:30px;height:30px;object-fit:contain;border-radius:6px;flex:0 0 auto}
.pmc-pay-mode b{display:block;font-size:13.5px;color:var(--squid-navy-800)}
.pmc-pay-mode small{font-size:11px;color:#94a3b8}
.pmc-pay-row input{width:120px;height:44px;border:1px solid #e2e8f0;border-radius:10px;padding:0 12px;font-size:15px;text-align:right;font-weight:700}
.pmc-pay-row input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* saving / waiting overlay */
.pos-saving{position:fixed;inset:0;z-index:700;background:rgba(8,14,30,.5);display:flex;align-items:center;justify-content:center;animation:fade .12s ease}
.pos-saving-card{background:#fff;border-radius:18px;padding:30px 40px;box-shadow:0 20px 60px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;gap:14px;min-width:240px}
.pos-saving-card b{font-size:15.5px;color:#111}
.pos-saving-card span{font-size:12.5px;color:#64748b}
.pos-spinner{width:40px;height:40px;border:3px solid #fde2e2;border-top-color:var(--squid-magenta,#e5295c);border-radius:50%;animation:spin .7s linear infinite}
.pmc-change{display:flex;align-items:center;gap:8px;background:#fef9c3;border:1.5px solid #fde047;border-radius:12px;padding:12px 16px;margin:10px 18px;font-weight:700;color:#854d0e}
.pmc-change span{flex:1}
.pmc-change b{font-size:20px;font-weight:900}
.pmc-recall-bar{display:flex;gap:8px;padding:14px 18px;align-items:center;flex-wrap:wrap}
.pmc-recall-bar input{height:38px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;font-size:13px}
/* success + ticket */
.pos-modal-card.final{width:min(420px,100%)}
.pos-success{text-align:center;padding:24px 18px 12px}
.success-mark{width:60px;height:60px;border-radius:50%;background:#16a34a;color:#fff;font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-weight:900}
.pos-success h2{margin:0;font-size:20px}
.pos-success p{margin:6px 0 0;color:var(--ink-2);font-size:13px}
.pos-ticket{background:#fff;border:1px dashed var(--line-strong);border-radius:10px;margin:0 18px;padding:14px;font-size:12.5px}
.tk-head{text-align:center;display:grid;gap:2px;margin-bottom:8px}
.tk-head b{font-size:14px}.tk-head span,.tk-head small{color:#64748b;font-size:11px}
.tk-client{margin:6px 0;font-size:12px}
.tk-lines{width:100%;border-collapse:collapse;margin:6px 0}
.tk-lines td{padding:5px 0;border-bottom:1px solid #eef1f5;vertical-align:top}
.tk-lines td:nth-child(2){text-align:center;width:36px}.tk-lines td:nth-child(3){text-align:right;width:80px}
.tk-tot{display:flex;justify-content:space-between;padding:2px 0;color:#64748b;font-size:12.5px}
.tk-tot.grand{font-size:15px;font-weight:800;color:var(--squid-navy-800);border-top:1px solid var(--line-strong);margin-top:4px;padding-top:6px}
.tk-thanks{text-align:center;margin:10px 0 0;font-size:11.5px;color:#64748b}
.pos-final-icons{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:16px 18px}
.pos-final-icons button{display:flex;flex-direction:column;align-items:center;gap:3px;background:#f8fafc;border:1px solid var(--line);border-radius:11px;padding:12px 6px;cursor:pointer;transition:background .12s,border-color .12s}
.pos-final-icons button:hover{background:#fff;border-color:var(--accent)}
.pos-final-icons span{font-size:22px}
.pos-final-icons b{font-size:11.5px}
.pos-final-icons small{font-size:10px;color:#94a3b8}
@media (max-width:520px){ .pos-final-icons{grid-template-columns:repeat(3,1fr)} .pmc-form{grid-template-columns:1fr} }

/* POS terminal payment step (FacePay / MIPS) */
.pos-terminal-head{display:flex;align-items:center;gap:14px;padding:18px 18px 8px}
.pos-terminal-head h3{margin:0;font-size:16px}
.pos-terminal-head p{margin:3px 0 0;font-size:12.5px;color:var(--ink-2)}
.pos-terminal-spinner{width:38px;height:38px;border:3px solid #e0e7ff;border-top-color:var(--accent,#2563eb);border-radius:50%;animation:spin .7s linear infinite;flex:0 0 auto}
.pos-terminal-amount{display:flex;align-items:center;justify-content:space-between;margin:8px 18px;padding:12px 14px;background:#f8fafc;border-radius:10px}
.pos-terminal-amount b{font-size:18px;font-weight:800;color:var(--accent,#2563eb)}
.pos-terminal-steps{padding:0 18px 6px;display:flex;flex-direction:column;gap:6px}
.pos-terminal-steps>div{font-size:12.5px;padding:7px 11px;border-radius:8px;background:#f1f5f9;color:#64748b}
.pos-terminal-steps>div.ok{background:#dcfce7;color:#15803d;font-weight:600}
.pos-terminal-steps>div.wait{background:#eff6ff;color:#1d4ed8}

/* ============================================================================
   ACTIVITY MONITOR — v411 faithful (loading screen + left nav + sections)
   ============================================================================ */
body.activity-active{overflow:hidden}
.activity-app-v{position:fixed;inset:0;z-index:500;display:grid;grid-template-columns:240px 1fr;background:#0f172a;color:#e5e7eb;animation:fade .15s ease;font-family:inherit}

/* loading screen */
.act-boot{position:fixed;inset:0;background:linear-gradient(160deg,#0a1628,#0f172a 40%,#162032);display:flex;align-items:center;justify-content:center;z-index:10}
.act-boot-inner{width:min(440px,92%);text-align:center}
.act-boot-logo{width:74px;height:74px;border-radius:20px;background:linear-gradient(135deg,#3b82f6,#6366f1);display:flex;align-items:center;justify-content:center;margin:0 auto 22px;box-shadow:0 0 40px rgba(59,130,246,.4);animation:amGlow 2.4s ease-in-out infinite}
.act-boot-logo svg{width:36px;height:36px}
.act-boot-eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:#60a5fa;margin:0}
.act-boot-title{font-size:30px;font-weight:800;color:#fff;margin:6px 0 4px}
.act-boot-range{font-size:13px;color:#94a3b8;margin:0 0 18px}
.act-boot-bar{height:4px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin-bottom:18px}
.act-boot-bar i{display:block;height:100%;width:30%;background:linear-gradient(90deg,#3b82f6,#22d3ee);border-radius:3px;animation:amBar 2.3s ease forwards}
@keyframes amBar{from{width:6%}to{width:96%}}
@keyframes amGlow{0%,100%{box-shadow:0 0 30px rgba(59,130,246,.3)}50%{box-shadow:0 0 60px rgba(59,130,246,.55)}}
.act-boot-steps{display:flex;flex-direction:column;gap:8px;text-align:left}
.act-boot-step{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:11px;background:rgba(255,255,255,.04);transition:background .3s,opacity .3s;opacity:.55}
.act-boot-step.active,.act-boot-step.done{opacity:1;background:rgba(255,255,255,.06)}
.act-boot-step.done{background:rgba(34,197,94,.08)}
.ab-ic{width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.06);display:grid;place-items:center;font-size:13px;flex:0 0 auto;color:#64748b}
.ab-ic.loading{color:#60a5fa;animation:spin 1s linear infinite}
.ab-ic.done{background:#16a34a;color:#fff}
.ab-meta b{display:block;font-size:13px;color:#e2e8f0}
.ab-meta small{font-size:11px;color:#64748b}
.ab-meta small.loading{color:#60a5fa}
.ab-meta small.done{color:#22c55e}

/* sidebar with nav */
.act-side-v{background:#0b1220;display:flex;flex-direction:column;padding:18px 14px;border-right:1px solid rgba(255,255,255,.06);overflow:hidden}
.act-side-brand{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.act-logo-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#6366f1);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.act-logo-mark svg{width:22px;height:22px}
.act-side-brand b{display:block;font-size:14px;color:#fff;line-height:1.1}
.act-side-brand span{font-size:9.5px;color:#64748b;letter-spacing:.04em}
.act-operator{background:rgba(255,255,255,.04);border-radius:11px;padding:11px 12px;margin-bottom:14px}
.act-operator small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.act-operator b{display:block;font-size:13px;color:#fff;margin-top:2px}
.act-operator span{font-size:11px;color:#94a3b8}
.act-nav{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.act-nav::-webkit-scrollbar{width:5px}.act-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
.act-nav-btn{display:flex;align-items:center;gap:11px;background:transparent;border:0;border-left:3px solid transparent;color:#94a3b8;font-size:13.5px;font-weight:600;padding:10px 13px;border-radius:8px;cursor:pointer;text-align:left;transition:background .12s,color .12s}
.act-nav-btn i{font-style:normal;font-size:15px;width:18px;text-align:center}
.act-nav-btn:hover{background:rgba(255,255,255,.05);color:#e2e8f0}
.act-nav-btn.active{background:linear-gradient(90deg,rgba(59,130,246,.2),rgba(59,130,246,.04));color:#60a5fa;font-weight:800;border-left-color:#3b82f6}
.act-back-v{margin-top:12px;background:rgba(255,255,255,.06);color:#fff;border:0;border-radius:9px;padding:11px;font-weight:700;font-size:13px;cursor:pointer;flex:0 0 auto}
.act-back-v:hover{background:rgba(255,255,255,.12)}

/* main */
.act-main-v{display:flex;flex-direction:column;overflow:hidden}
.act-head-v{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap}
.act-head-title p{margin:0;font-size:11px;font-weight:800;letter-spacing:.08em;color:#60a5fa}
.act-head-title h1{margin:2px 0 4px;font-size:22px;font-weight:800;color:#fff}
.act-head-date{font-size:11.5px;color:#22c55e}
.act-head-date em{color:#64748b;font-style:normal;margin-left:6px}
.act-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.act-fld{display:flex;flex-direction:column;gap:3px}
.act-fld span{font-size:9.5px;font-weight:700;letter-spacing:.05em;color:#64748b}
.act-fld input,.act-fld select{height:36px;border:1px solid rgba(255,255,255,.14);background:#1e293b;color:#fff;border-radius:8px;padding:0 10px;font-size:12.5px}
.act-refresh{height:36px;align-self:flex-end}
.act-main-body{flex:1;overflow-y:auto;padding:20px 24px}

/* KPI cards (colored top border) */
.act-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:16px}
.act-kpi{background:#1e293b;border:1px solid rgba(255,255,255,.06);border-top:3px solid #64748b;border-radius:13px;padding:14px 16px}
.act-kpi .ak-lab{font-size:10.5px;font-weight:800;letter-spacing:.05em;color:#94a3b8}
.act-kpi .ak-val{font-size:22px;font-weight:800;color:#fff;margin:6px 0 3px;letter-spacing:-.02em}
.act-kpi .ak-sub{font-size:11px;color:#64748b}
.act-kpi.tone-blue{border-top-color:#3b82f6}.act-kpi.tone-blue .ak-val{color:#60a5fa}
.act-kpi.tone-green{border-top-color:#22c55e}.act-kpi.tone-green .ak-val{color:#4ade80}
.act-kpi.tone-orange{border-top-color:#f59e0b}.act-kpi.tone-orange .ak-val{color:#fbbf24}
.act-kpi.tone-purple{border-top-color:#a855f7}.act-kpi.tone-purple .ak-val{color:#c084fc}
.act-kpi.tone-cyan{border-top-color:#06b6d4}.act-kpi.tone-cyan .ak-val{color:#22d3ee}
.act-kpi.tone-red{border-top-color:#ef4444}.act-kpi.tone-red .ak-val{color:#f87171}

/* colored section tiles */
.act-tiles{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin-bottom:18px}
.act-tile{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:13px;border:0;cursor:pointer;text-align:left;color:#fff;transition:transform .12s}
.act-tile:hover{transform:translateY(-3px)}
.act-tile .at-ic{font-size:20px}
.act-tile .at-meta b{display:block;font-size:13px}
.act-tile .at-meta small{font-size:11px;opacity:.85}
.act-tile.tone-green{background:linear-gradient(135deg,#16a34a,#15803d)}
.act-tile.tone-orange{background:linear-gradient(135deg,#ea580c,#c2410c)}
.act-tile.tone-cyan{background:linear-gradient(135deg,#0891b2,#0e7490)}
.act-tile.tone-blue{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
.act-tile.tone-amber{background:linear-gradient(135deg,#d97706,#b45309)}
.act-tile.tone-sky{background:linear-gradient(135deg,#0284c7,#0369a1)}
.act-tile.tone-violet{background:linear-gradient(135deg,#7c3aed,#6d28d9)}
.act-tile.tone-slate{background:linear-gradient(135deg,#475569,#334155)}

/* panels */
.act-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.act-card{background:#1e293b;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:16px 18px}
.act-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}
.act-card h3{margin:0;font-size:15px;color:#fff}
.act-panel-tools{display:flex;gap:6px}
.act-tool{background:#0f172a;border:1px solid rgba(255,255,255,.1);color:#cbd5e1;border-radius:7px;padding:5px 10px;font-size:11.5px;font-weight:600;cursor:pointer}
.act-tool:hover{background:#16a34a;color:#fff;border-color:transparent}
.act-fulllist{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:0;border-radius:7px;padding:6px 12px;font-size:11.5px;font-weight:700;cursor:pointer}
.act-muted{color:#64748b;font-size:13px;margin:6px 0}
.act-card .tbl{color:#e5e7eb;width:100%}
.act-card .tbl thead th{background:#0f172a;color:#94a3b8;font-size:11px}
.act-card .tbl td{border-color:rgba(255,255,255,.06);font-size:12.5px}
.act-card .tbl tbody tr:hover{background:rgba(255,255,255,.03)}

/* pay mix */
.act-paymix{display:flex;flex-direction:column;gap:10px}
.act-paymix-row{display:flex;align-items:center;gap:10px}
.pmx-i{width:20px;color:#64748b;font-size:12px}
.pmx-dot{width:10px;height:10px;border-radius:50%;background:#3b82f6}
.pmx-name{flex:1;font-size:13px;color:#cbd5e1}
.pmx-amt{font-weight:700;color:#fff}
.pmx-pct{font-size:11px;color:#64748b;width:36px;text-align:right}

/* sales trend bars */
.act-trend{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:8px}
.act-trend-bar{flex:1;display:flex;align-items:flex-end;height:100%}
.act-trend-bar i{display:block;width:100%;background:linear-gradient(180deg,#3b82f6,#1d4ed8);border-radius:4px 4px 0 0;min-height:4px}

@media (max-width:1100px){ .act-kpis{grid-template-columns:repeat(3,1fr)} .act-tiles{grid-template-columns:repeat(4,1fr)} .act-grid-2{grid-template-columns:1fr} }
@media (max-width:820px){ .activity-app-v{grid-template-columns:1fr} .act-side-v{flex-direction:row;align-items:center;overflow-x:auto;padding:10px} .act-nav{flex-direction:row} .act-operator,.act-back-v{display:none} }

/* Cash Up till modal */
.cu-head{background:var(--squid-navy-800,#12245A);color:#fff;padding:20px 22px}
.cu-head p{margin:0;font-size:11px;font-weight:800;letter-spacing:.06em;opacity:.7}
.cu-head h3{margin:4px 0 2px;font-size:21px}
.cu-head span{font-size:12.5px;opacity:.85}
.cu-label{display:block;font-size:11.5px;font-weight:800;text-transform:uppercase;color:#374151;margin-bottom:6px}
.cu-input{width:100%;height:48px;border:2px solid #e5e7eb;border-radius:12px;padding:0 14px;font-size:20px;font-weight:700}
.cu-input:focus{outline:0;border-color:var(--accent,#2563eb)}
.cu-open-note{display:flex;align-items:center;gap:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:14px 16px}
.cu-open-note span{font-size:24px}
.cu-open-note b{color:#166534}
.cu-open-note p{margin:2px 0 0;font-size:12px;color:#4b7a5a}

/* Activity mini stats + theme toggle + LIGHT theme */
.act-minis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}
.act-mini{background:#1e293b;border:1px solid rgba(255,255,255,.06);border-radius:11px;padding:11px 13px}
.act-mini span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;display:block}
.act-mini b{font-size:17px;color:#fff;font-weight:800}
.act-theme-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 4px 4px;margin-top:8px}
.act-theme-row span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b}
.act-theme-toggle{background:rgba(255,255,255,.06);border:0;color:#fff;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer}
.act-theme-toggle:hover{background:rgba(255,255,255,.12)}

/* ===== LIGHT THEME (default) ===== */
.activity-app-v.act-light{background:#f3f4f6;color:#1f2937}
.activity-app-v.act-light .act-side-v{background:#fff;border-right-color:#e5e7eb}
.activity-app-v.act-light .act-side-brand b{color:#111827}
.activity-app-v.act-light .act-side-brand span{color:#9ca3af}
.activity-app-v.act-light .act-operator{background:#f8fafc}
.activity-app-v.act-light .act-operator small{color:#9ca3af}
.activity-app-v.act-light .act-operator b{color:#111827}
.activity-app-v.act-light .act-operator span{color:#6b7280}
.activity-app-v.act-light .act-nav-btn{color:#4b5563}
.activity-app-v.act-light .act-nav-btn:hover{background:#f3f4f6;color:#111827}
.activity-app-v.act-light .act-nav-btn.active{background:linear-gradient(90deg,rgba(37,99,235,.12),rgba(37,99,235,.02));color:#2563eb}
.activity-app-v.act-light .act-theme-row span{color:#9ca3af}
.activity-app-v.act-light .act-theme-toggle{background:#f3f4f6;color:#111827}
.activity-app-v.act-light .act-back-v{background:#f3f4f6;color:#111827}
.activity-app-v.act-light .act-head-v{border-bottom-color:#e5e7eb}
.activity-app-v.act-light .act-head-title h1{color:#111827}
.activity-app-v.act-light .act-fld input,.activity-app-v.act-light .act-fld select{background:#fff;border-color:#d1d5db;color:#111827}
.activity-app-v.act-light .act-kpi{background:#fff;border-color:#e5e7eb;box-shadow:0 1px 3px rgba(15,31,61,.06)}
.activity-app-v.act-light .act-kpi .ak-val{color:#111827}
.activity-app-v.act-light .act-kpi.tone-blue .ak-val{color:#2563eb}.activity-app-v.act-light .act-kpi.tone-green .ak-val{color:#16a34a}
.activity-app-v.act-light .act-kpi.tone-orange .ak-val{color:#ea580c}.activity-app-v.act-light .act-kpi.tone-purple .ak-val{color:#9333ea}
.activity-app-v.act-light .act-kpi.tone-cyan .ak-val{color:#0891b2}.activity-app-v.act-light .act-kpi.tone-red .ak-val{color:#dc2626}
.activity-app-v.act-light .act-card{background:#fff;border-color:#e5e7eb;box-shadow:0 1px 3px rgba(15,31,61,.05)}
.activity-app-v.act-light .act-card h3{color:#111827}
.activity-app-v.act-light .act-tool{background:#f3f4f6;border-color:#e5e7eb;color:#4b5563}
.activity-app-v.act-light .act-muted{color:#9ca3af}
.activity-app-v.act-light .act-mini{background:#fff;border-color:#e5e7eb}
.activity-app-v.act-light .act-mini span{color:#9ca3af}
.activity-app-v.act-light .act-mini b{color:#111827}
.activity-app-v.act-light .act-card .tbl{color:#1f2937}
.activity-app-v.act-light .act-card .tbl thead th{background:#f8fafc;color:#6b7280}
.activity-app-v.act-light .act-card .tbl td{border-color:#eef1f5}
.activity-app-v.act-light .act-card .tbl tbody tr:hover{background:#f8fafc}
.activity-app-v.act-light .pmx-name{color:#374151}.activity-app-v.act-light .pmx-amt{color:#111827}
.activity-app-v.act-light .act-trend-bar i{background:linear-gradient(180deg,#3b82f6,#2563eb)}

/* ============================================================================
   CRM page (Clients / Suppliers) — faithful v411
   ============================================================================ */
.crm-page{max-width:1200px;margin:0 auto}
.crm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.crm-head-l p{margin:0;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--squid-magenta,#e5295c);text-transform:uppercase}
.crm-head-l h2{margin:2px 0 0;font-size:28px;font-weight:800;color:var(--squid-navy-800)}
.crm-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.crm-head-actions .btn{height:40px;border-radius:10px;font-weight:700}
.crm-head-actions .btn-brand{background:var(--squid-grad);color:#fff;border:0}
.crm-head-actions .btn-brand:hover{background:var(--squid-grad);color:#fff;filter:brightness(1.06)}
.crm-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.crm-kpi{background:var(--surface,#fff);border:1px solid var(--line);border-radius:13px;padding:16px 18px;box-shadow:var(--shadow-1)}
.crm-kpi span{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--ink-3);text-transform:uppercase}
.crm-kpi b{font-size:24px;font-weight:800;color:var(--squid-navy-800)}
.crm-searchbar{position:relative;display:flex;align-items:center;margin-bottom:14px}
.crm-searchbar svg{position:absolute;left:18px;width:20px;height:20px;color:var(--ink-3)}
.crm-searchbar input{width:100%;height:52px;border:1px solid var(--line-strong);border-radius:14px;padding:0 16px 0 50px;font-size:15px;background:var(--surface);box-shadow:var(--shadow-1)}
.crm-searchbar input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.crm-table-card{background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-1)}
.crm-table{width:100%;border-collapse:collapse}
.crm-table thead th{text-align:left;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;padding:14px 18px;border-bottom:1px solid var(--line);background:#f9fafc}
.crm-table thead th.ta-r{text-align:right}.crm-table thead th.ta-c{text-align:center}
.crm-table tbody td{padding:14px 18px;border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:middle}
.crm-table tbody tr:last-child td{border-bottom:0}
.crm-table tbody tr:hover{background:#f8fafc}
.crm-table td.ta-r{text-align:right;font-weight:700}.crm-table td.ta-c{text-align:center}
.crm-name b{display:block;color:var(--squid-navy-800)}
.crm-name small{font-size:11.5px;color:var(--ink-3)}
.crm-acts{display:inline-flex;gap:6px}
.btn.mini{height:32px;padding:0 12px;font-size:12.5px;border-radius:7px}
.btn.mini.soa{background:var(--squid-navy-800,#1e3a5f);color:#fff;border-color:transparent}
.btn.mini.soa:hover{filter:brightness(1.15)}

/* CRM modal */
.crm-modal{width:min(940px,100%);max-height:90vh}
.crm-modal-body{display:grid;grid-template-columns:1fr 280px;gap:0;overflow:hidden;flex:1;min-height:0}
.crm-form-col{padding:18px 22px;overflow-y:auto}
.crm-history-col{background:#f4f6f9;color:#1f2937;padding:18px;overflow-y:auto;border-left:1px solid var(--line)}
.crm-history-head{font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--squid-navy-800);margin-bottom:14px}
.crm-muted{color:#94a3b8;font-size:12.5px}
.crm-history-col .crm-muted{color:#94a3b8}
.crm-hist-list{display:flex;flex-direction:column;gap:8px}
.crm-hist-row{display:flex;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12px}
.crm-hist-row b{color:var(--squid-navy-800)}
.crm-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px;background:#eef2f6;padding:5px;border-radius:13px}
.crm-type{height:42px;border:0;background:transparent;border-radius:9px;font-weight:700;font-size:14px;cursor:pointer;color:#64748b;transition:all .15s}
.crm-type:hover{color:var(--squid-navy-800,#1e3a5f)}
.crm-type.active{background:#fff;color:var(--squid-magenta,#e5295c);box-shadow:0 1px 4px rgba(15,23,42,.12);border-color:transparent}
.crm-section-label{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--ink-3);text-transform:uppercase;margin:16px 0 10px}
.crm-reg{position:relative;display:flex;align-items:center;margin-bottom:8px}
.crm-reg svg{position:absolute;left:13px;width:17px;height:17px;color:var(--ink-3)}
.crm-reg input{width:100%;height:42px;border:1px solid var(--line-strong);border-radius:10px;padding:0 12px 0 38px;font-size:13.5px}
.crm-reg-results{display:flex;flex-direction:column;gap:4px}
.crm-reg-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:8px 11px;cursor:pointer;font-size:13px}
.crm-reg-item:hover{border-color:var(--accent)}
.crm-reg-item small{font-size:11px;color:var(--ink-3)}
.crm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.crm-grid .full{grid-column:1/-1}
.crm-grid label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);margin-bottom:5px}
.crm-grid input,.crm-grid select{width:100%;height:42px;border:1px solid var(--line-strong);border-radius:9px;padding:0 11px;font-size:13.5px;font-family:inherit}
.crm-grid input:focus,.crm-grid select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.crm-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line);background:#f8fafc}
@media (max-width:760px){ .crm-kpis{grid-template-columns:1fr} .crm-modal-body{grid-template-columns:1fr} .crm-history-col{display:none} .crm-grid{grid-template-columns:1fr} }

/* ============================================================================
   Document editor modal (Goods Receipt / Purchase Order / Credit Note)
   ============================================================================ */
.doc-modal{width:min(1040px,100%);max-height:92vh}
.doc-body{display:grid;grid-template-columns:1fr 280px;gap:0;overflow:hidden;flex:1;min-height:0}
.doc-main{padding:18px 22px;overflow-y:auto}
.doc-summary{background:#f4f6f9;color:#1f2937;padding:18px;overflow-y:auto;border-left:1px solid var(--line)}
.doc-summary-head{font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--squid-navy-800);margin-bottom:14px}
.doc-sum-party{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:12.5px;margin-bottom:14px}
.doc-sum-party b{color:var(--squid-navy-800)}
.doc-sum-row{display:flex;justify-content:space-between;font-size:13px;padding:7px 0;color:#64748b}
.doc-sum-row b{color:var(--squid-navy-800)}
.doc-sum-row.grand{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-size:16px}
.doc-sum-row.grand b{font-size:18px}
.doc-section{margin-bottom:18px}
.doc-section h4{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase}
.doc-party-search,.doc-party-results{position:relative}
.doc-party-search{display:flex;align-items:center}
.doc-party-search svg{position:absolute;left:13px;width:17px;height:17px;color:var(--ink-3)}
.doc-party-search input{width:100%;height:44px;border:1px solid var(--line-strong);border-radius:10px;padding:0 12px 0 38px;font-size:14px}
.doc-party-results{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.doc-party-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:8px 11px;cursor:pointer;font-size:13px}
.doc-party-item:hover{border-color:var(--accent)}
.doc-party-item small{font-size:11px;color:var(--ink-3)}
.doc-party-card{margin-top:8px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:11px 13px}
.doc-party-card b{display:block;color:#166534}
.doc-party-card small{font-size:11.5px;color:#4b7a5a}
.doc-muted{color:var(--ink-3);font-size:12.5px;padding:6px}
.doc-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.doc-meta-grid .full{grid-column:1/-1}
.doc-meta-grid label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);margin-bottom:5px}
.doc-meta-grid input{width:100%;height:42px;border:1px solid var(--line-strong);border-radius:9px;padding:0 11px;font-size:13.5px;box-sizing:border-box}
/* selects (Chart of Account, Payment Method) — match the input styling, with a custom caret */
.doc-meta-grid select{width:100%;height:42px;border:1px solid var(--line-strong);border-radius:9px;padding:0 34px 0 11px;font-size:13.5px;box-sizing:border-box;background:#fff;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}
.doc-meta-grid select:focus{outline:none;border-color:var(--accent)}
.doc-meta-grid input:focus{outline:none;border-color:var(--accent)}
/* The party-search field carries a left search icon; keep its text clear of the icon. */
.doc-meta-grid .doc-party-search input{padding:0 12px 0 40px}
.doc-lines-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.doc-lines-head h4{margin:0}
.doc-lines-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:11px}
.doc-lines{width:100%;border-collapse:collapse;min-width:560px}
.doc-lines thead th{text-align:left;font-size:10.5px;font-weight:800;letter-spacing:.03em;color:var(--ink-3);text-transform:uppercase;padding:9px 11px;border-bottom:1px solid var(--line);background:#f9fafc}
.doc-lines thead th.ta-r{text-align:right}
.doc-lines td{padding:7px 9px;border-bottom:1px solid var(--line);vertical-align:middle}
.doc-lines tr:last-child td{border-bottom:0}
.doc-lines td.ta-r{text-align:right;font-weight:700;white-space:nowrap}
.doc-lines input{width:100%;height:36px;border:1px solid var(--line-strong);border-radius:7px;padding:0 8px;font-size:13px}
.doc-lines .dl-qty,.doc-lines .dl-vat{width:64px}
.doc-lines .dl-cost{width:96px}
.doc-lines td:first-child{position:relative;min-width:200px}
.dl-results{position:absolute;left:9px;right:9px;top:42px;z-index:20;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;max-height:200px;overflow-y:auto}
.dl-results:empty{display:none}
.dl-pick{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:8px 11px;cursor:pointer;font-size:13px}
.dl-pick:hover{background:#f3f4f6}
.dl-pick small{font-size:11px;color:var(--ink-3)}
.dl-rm{border:0;background:#fef2f2;color:#dc2626;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:15px}
.dl-rm:hover{background:#dc2626;color:#fff}
.doc-lines-empty{text-align:center;padding:20px;color:var(--ink-3);font-size:13px}
.doc-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line);background:#f8fafc}
@media (max-width:820px){ .doc-body{grid-template-columns:1fr} .doc-summary{display:none} .doc-meta-grid{grid-template-columns:1fr} }
.doc-lines .il-diff.neg{color:#dc2626}.doc-lines .il-diff.pos{color:#16a34a}
.doc-lines .il-theory,.doc-lines .il-real{width:80px}

/* POS catalogue loading window (first load per entity) */
.pos-loading-overlay{position:absolute;inset:0;z-index:60;display:grid;place-items:center;background:rgba(10,27,61,.55);backdrop-filter:blur(3px)}
.pos-loading-card{background:#fff;border-radius:16px;padding:34px 40px;max-width:420px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;align-items:center;gap:12px}
.pos-loading-card b{font-size:18px;color:var(--squid-navy-800,#12245A)}
.pos-loading-card span{font-size:13px;color:#5A6B8C;line-height:1.4}
.pos-loading-spin{width:46px;height:46px;border-radius:50%;border:4px solid #e7ebf4;border-top-color:var(--squid-magenta,#e5295c);animation:posspin .8s linear infinite}
@keyframes posspin{to{transform:rotate(360deg)}}

/* Statement of Account modal */
.soa-modal{position:fixed;inset:0;z-index:9000;background:rgba(10,15,30,.55);display:grid;place-items:center;padding:16px;backdrop-filter:blur(2px)}
.soa-card{background:#fff;border-radius:18px;max-width:460px;width:100%;overflow:hidden;box-shadow:0 24px 64px rgba(15,23,42,.28)}
.soa-head{background:var(--squid-grad,linear-gradient(120deg,#e5295c,#f6a02a));padding:20px 24px;color:#fff}
.soa-kicker{margin:0;font-size:10.5px;opacity:.85;text-transform:uppercase;font-weight:800;letter-spacing:.06em}
.soa-head h3{margin:6px 0 2px;font-size:20px;font-weight:800}
.soa-sub{font-size:12.5px;opacity:.85}
.soa-body{padding:22px 24px;display:flex;flex-direction:column;gap:16px}
.soa-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.soa-dates label{display:grid;gap:5px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#374151}
.soa-dates input{height:40px;border:1.5px solid #e5e7eb;border-radius:10px;padding:0 12px;font-size:14px;color:#111}
.soa-dates input:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.soa-msg{min-height:18px;font-size:12.5px}
.soa-msg.err{color:#dc2626}.soa-msg.ok{color:#16a34a}.soa-msg.muted{color:#6b7280}
.soa-actions{display:flex;gap:10px}
.soa-actions .btn-brand{flex:1;height:44px;font-size:15px}
.soa-spin{width:13px;height:13px;border:2px solid #e5e7eb;border-top-color:var(--squid-magenta,#e5295c);border-radius:50%;display:inline-block;vertical-align:middle;animation:posspin .7s linear infinite}

/* Table header per-column filter */
.tbl thead th .th-wrap{display:inline-flex;align-items:center;gap:6px}
.tbl thead th[style*="right"] .th-wrap{flex-direction:row-reverse}
.th-label{vertical-align:middle}
.th-filter{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:0;background:transparent;color:#9aa7b8;cursor:pointer;border-radius:5px;padding:0;opacity:.55;transition:all .12s}
.th-filter svg{width:13px;height:13px}
.tbl thead th:hover .th-filter{opacity:1}
.th-filter:hover{background:#eef2f6;color:var(--squid-magenta,#e5295c)}
.th-filter.filtering{opacity:1;color:var(--squid-magenta,#e5295c);background:rgba(229,41,92,.1)}
.th-filter-pop{position:fixed;z-index:9500;background:#fff;border:1px solid #e4eaec;border-radius:10px;box-shadow:0 12px 32px rgba(15,23,42,.18);padding:8px;display:flex;gap:6px;align-items:center}
.th-filter-pop input{height:34px;border:1.5px solid #e5e7eb;border-radius:8px;padding:0 10px;font-size:13px;width:170px;color:#111}
.th-filter-pop input:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.th-fp-clear{height:34px;border:0;background:#f1f5f9;border-radius:8px;padding:0 12px;font-size:12px;font-weight:700;color:#64748b;cursor:pointer}
.th-fp-clear:hover{background:#e5eaf0;color:var(--squid-magenta,#e5295c)}

/* Clickable list rows + sale detail modal */
.tbl tr.row-clickable{cursor:pointer;transition:background .1s}
.tbl tr.row-clickable:hover{background:rgba(229,41,92,.05)}
.sd-section{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:4px 0 2px}
.sd-totals{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-top:1px solid #eef2f6}
.sd-totals>div{display:flex;justify-content:space-between;font-size:13px;color:#475569}
.sd-totals .sd-grand{font-size:16px;font-weight:800;color:var(--squid-navy-800,#12245A);padding-top:6px;border-top:1px solid #eef2f6;margin-top:4px}
.sd-pays{display:flex;flex-direction:column;gap:4px}
.sd-pays>div{display:flex;justify-content:space-between;font-size:13px;color:#475569;background:#f4f7f8;padding:6px 10px;border-radius:6px}

/* ===== Rich Sale / Order editor ===== */
.ose-backdrop{position:fixed;inset:0;z-index:9000;background:rgba(10,15,30,.55);display:grid;place-items:center;padding:18px;backdrop-filter:blur(2px)}
.ose-modal{background:#f7f9fb;border-radius:18px;width:min(1180px,97vw);max-height:94vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(15,23,42,.3)}
.ose-head{background:var(--squid-grad,linear-gradient(120deg,#e5295c,#f6a02a));color:#fff;padding:18px 24px;display:flex;justify-content:space-between;align-items:flex-start}
.ose-head p{margin:0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.ose-head h2{margin:3px 0 2px;font-size:21px;font-weight:800}
.ose-head span{font-size:12.5px;opacity:.85}
.ose-x{background:rgba(255,255,255,.2);border:0;color:#fff;width:34px;height:34px;border-radius:9px;font-size:20px;cursor:pointer;line-height:1}
.ose-x:hover{background:rgba(255,255,255,.32)}
.ose-layout{display:grid;grid-template-columns:1fr 320px;grid-template-areas:"top top" "lines summary";gap:16px;padding:18px;overflow:auto}
.ose-top{grid-area:top;display:grid;grid-template-columns:1fr 1.4fr;gap:16px}
.ose-client,.ose-details{background:#fff;border:1px solid #e7edf1;border-radius:12px;padding:16px}
.ose-client h3,.ose-details h3{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--squid-navy-800,#12245A);text-transform:uppercase;letter-spacing:.03em}
.ose-pred{position:relative}
.ose-pred input,.ose-detail-grid input,.ose-detail-grid select{width:100%;height:38px;border:1.5px solid #e5e7eb;border-radius:9px;padding:0 11px;font-size:13.5px;color:#111;background:#fff}
.ose-pred input:focus,.ose-detail-grid input:focus,.ose-detail-grid select:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.ose-pred-res{position:absolute;top:42px;left:0;right:0;background:#fff;border:1px solid #e7edf1;border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.16);z-index:20;max-height:260px;overflow:auto}
.ose-pred-res:empty{display:none}
.ose-pred-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:0;background:transparent;padding:8px 12px;cursor:pointer;border-bottom:1px solid #f1f5f8}
.ose-pred-item:hover{background:#fdf0f4}
.ose-pred-item b{font-size:13px;color:#1f2937}.ose-pred-item small{font-size:11px;color:#7a8794}
.ose-pred-empty{padding:10px 12px;font-size:12px;color:#94a3b8}
.ose-client-card{margin-top:10px;border:1px dashed #d6dee3;border-radius:10px;padding:12px;font-size:13px;position:relative}
.ose-client-card.muted{color:#94a3b8;font-style:italic}
.ose-client-card b{display:block;color:#12245A}.ose-client-card small{color:#7a8794;font-size:11.5px}
.ose-client-clear{position:absolute;top:8px;right:8px;border:0;background:#f1f5f8;width:24px;height:24px;border-radius:6px;cursor:pointer;color:#64748b}
.ose-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ose-detail-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#64748b}
.ose-lines-panel{grid-area:lines;background:#fff;border:1px solid #e7edf1;border-radius:12px;padding:14px;min-width:0}
.ose-lines-toolbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px;gap:12px}
.ose-lines-toolbar h3{margin:0;font-size:14px;font-weight:800;color:var(--squid-navy-800,#12245A)}
.ose-lines-toolbar span{font-size:11.5px;color:#7a8794}
.ose-line-actions{display:flex;gap:8px;flex-shrink:0}
.ose-line-header,.ose-line{display:grid;grid-template-columns:2.4fr .6fr 1fr .9fr .9fr .5fr .8fr .7fr .9fr .4fr;gap:8px;align-items:center}
.ose-line-header{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#9aa7b3;padding:6px 4px;border-bottom:1px solid #eef2f6}
.ose-line{padding:8px 4px;border-bottom:1px solid #f4f7f9}
.ose-line.draft{background:#fcfdfe}
.ose-cell-prod{min-width:0}
.ose-prod-search{position:relative;display:flex;gap:4px;align-items:center}
.ose-prod-search input{flex:1;min-width:0;height:34px;border:1.5px solid #e5e7eb;border-radius:8px;padding:0 9px;font-size:12.5px}
.ose-prod-search input:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.ose-prod-browse-btn{flex-shrink:0;width:32px;height:32px;border:1.5px solid #e5e7eb;border-radius:8px;background:#f7f9fb;cursor:pointer;display:grid;place-items:center;color:#64748b}
.ose-prod-browse-btn svg{width:15px;height:15px}
.ose-prod-browse-btn:hover{border-color:var(--squid-magenta,#e5295c);color:var(--squid-magenta,#e5295c)}
.ose-line-res{top:36px}
.ose-prod-sel{display:flex;align-items:center;gap:8px;min-width:0}
.ose-prod-info{min-width:0;flex:1}
.ose-prod-info b{display:block;font-size:12.5px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ose-prod-info small{font-size:10.5px;color:#7a8794}
.ose-prod-change{border:0;background:#f1f5f8;border-radius:6px;font-size:10.5px;font-weight:700;padding:3px 8px;cursor:pointer;color:#64748b;flex-shrink:0}
.ose-prod-change:hover{color:var(--squid-magenta,#e5295c)}
.ose-stock{font-size:12px;font-weight:700;text-align:center;padding:3px 6px;border-radius:6px}
.ose-stock.ok{background:#e7f7ee;color:#177245}.ose-stock.bad{background:#fdeaea;color:#c0392b}
.ose-qty{display:flex;align-items:center;gap:2px}
.ose-qty button{width:24px;height:30px;border:1.5px solid #e5e7eb;background:#f7f9fb;border-radius:6px;cursor:pointer;font-size:14px;color:#475569;padding:0}
.ose-qty input{width:42px;height:30px;border:1.5px solid #e5e7eb;border-radius:6px;text-align:center;font-size:12.5px;padding:0}
.ose-money{height:30px;border:1.5px solid #e5e7eb;border-radius:6px;padding:0 7px;font-size:12px;width:100%;text-align:right}
.ose-money:disabled{background:#f4f7f9;color:#aab4bd}
.ose-money:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.ose-rm{border:0;background:transparent;color:#c0392b;font-size:18px;cursor:pointer;border-radius:6px;width:28px;height:28px}
.ose-rm:hover{background:#fdeaea}
.ose-lines-empty{padding:30px;text-align:center;color:#94a3b8}
.ose-lines-empty b{display:block;font-size:14px;color:#64748b}.ose-lines-empty span{font-size:12px}
.ose-summary{grid-area:summary;background:var(--squid-navy-800,#12245A);color:#fff;border-radius:12px;padding:18px;align-self:start;position:sticky;top:0}
.ose-summary h3{margin:0 0 12px;font-size:14px;font-weight:800;color:#fff}
.ose-sum-client{background:rgba(255,255,255,.08);border-radius:9px;padding:10px 12px;margin-bottom:12px}
.ose-sum-client span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.6}
.ose-sum-client b{display:block;font-size:14px;margin-top:2px}.ose-sum-client small{font-size:11px;opacity:.7}
.ose-sum-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;opacity:.92}
.ose-sum-row.total{border-top:1px solid rgba(255,255,255,.18);margin-top:6px;padding-top:10px;font-size:17px;font-weight:800}
.ose-sum-row.total b{color:var(--squid-gold,#FBBA00)}
.ose-sum-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.ose-sum-actions .btn{width:100%;justify-content:center}
/* Product picker window */
.ose-picker-backdrop{position:fixed;inset:0;z-index:9200;background:rgba(10,15,30,.6);display:grid;place-items:center;padding:20px}
.ose-picker{background:#fff;border-radius:16px;width:min(820px,95vw);max-height:88vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 70px rgba(15,23,42,.32)}
.ose-picker-head{background:var(--squid-navy-800,#12245A);color:#fff;padding:16px 22px;display:flex;justify-content:space-between;align-items:flex-start}
.ose-picker-head p{margin:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;opacity:.7;font-weight:800}
.ose-picker-head h2{margin:3px 0 0;font-size:18px}
.ose-picker-body{display:grid;grid-template-columns:1.3fr 1fr;gap:0;overflow:hidden;min-height:0}
.ose-picker-left{border-right:1px solid #eef2f6;display:flex;flex-direction:column;min-height:0;padding:14px}
.ose-picker-left input{height:40px;border:1.5px solid #e5e7eb;border-radius:9px;padding:0 12px;font-size:13.5px;margin-bottom:10px}
.ose-picker-left input:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.ose-picker-list{overflow:auto;min-height:0;flex:1}
.ose-picker-item{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;cursor:pointer;border-radius:8px;border-bottom:1px solid #f4f7f9}
.ose-picker-item:hover{background:#fdf0f4}
.ose-picker-item b{font-size:13px;color:#1f2937;display:block}.ose-picker-item small{font-size:11px;color:#7a8794}
.ose-pp-price{font-size:12.5px;font-weight:700;color:#12245A}
.ose-picker-right{padding:18px;overflow:auto;min-height:0}
.ose-picker-empty{text-align:center;color:#94a3b8;padding:30px 10px}
.ose-picker-empty b{display:block;font-size:14px;color:#64748b}
.ose-prev h3{margin:0 0 2px;font-size:17px;color:#12245A}
.ose-prev-sku{margin:0 0 14px;font-size:12px;color:#7a8794}
.ose-prev-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.ose-prev-grid>div{background:#f4f7f9;border-radius:9px;padding:10px 12px}
.ose-prev-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:700}
.ose-prev-grid b{display:block;font-size:16px;color:#12245A;margin-top:3px}
.ose-prev .btn{width:100%;justify-content:center}
@media(max-width:920px){ .ose-layout{grid-template-columns:1fr;grid-template-areas:"top" "lines" "summary"} .ose-top{grid-template-columns:1fr} .ose-line-header{display:none} .ose-line{grid-template-columns:1fr 1fr;gap:6px} .ose-picker-body{grid-template-columns:1fr} }

/* ===== Rich Products page (tree · list · detail) ===== */
.prod-page{display:grid;grid-template-columns:225px minmax(380px,1fr) 440px;gap:14px;margin-top:14px;height:calc(100vh - 250px);min-height:480px}
.prod-tree{background:#fff;border:1px solid #e7edf1;border-radius:12px;padding:8px;overflow:auto}
.prod-tree-head{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;padding:8px 10px 6px}
.prod-tree-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:9px 10px;border-radius:9px;cursor:pointer;text-align:left;color:#334155;font-size:13px}
.prod-tree-item:hover{background:#f4f7f9}
.prod-tree-item.active{background:var(--squid-navy-800,#12245A);color:#fff}
.prod-tree-item.active .ptree-count{background:rgba(255,255,255,.2);color:#fff}
.ptree-ico{display:inline-flex;width:16px;height:16px;flex-shrink:0;opacity:.8}.ptree-ico svg{width:16px;height:16px}
.ptree-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptree-count{font-size:11px;font-weight:700;background:#eef2f6;color:#64748b;padding:1px 7px;border-radius:20px}
.prod-listcol{display:flex;flex-direction:column;min-height:0}
.prod-search-bar{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e7edf1;border-radius:10px;padding:0 12px;margin-bottom:10px;height:44px}
.prod-search-ico{color:#94a3b8;display:inline-flex}.prod-search-ico svg{width:15px;height:15px}
.prod-search-bar input{flex:1;border:0;outline:none;font-size:13.5px;background:transparent;height:100%}
.prod-count{font-size:11.5px;color:#94a3b8;white-space:nowrap}
.prod-list{flex:1;overflow:auto;background:#fff;border:1px solid #e7edf1;border-radius:12px;padding:6px}
.prod-row{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;padding:9px 10px;border-radius:10px;cursor:pointer;text-align:left;border-bottom:1px solid #f4f7f9}
.prod-row:hover{background:#fbfcfd}.prod-row.active{background:#fdf0f4}
.prod-row-img{width:42px;height:42px;border-radius:8px;object-fit:cover;background:#f4f7f9;flex-shrink:0}
.prod-row-main{flex:1;min-width:0}.prod-row-main b{display:block;font-size:13px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-row-main small{font-size:11px;color:#7a8794}
.prod-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.prod-row-price{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}
.prod-row-price .prp-amt{font-size:14px;font-weight:800;color:#12245A;line-height:1.1}
.prod-row-price .prp-vat{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#aab4c0}
.prod-stock-pill{font-size:11px;font-weight:800;padding:2px 9px;border-radius:20px;min-width:34px;text-align:center}
.prod-stock-pill.ok{background:#e7f7ee;color:#177245}.prod-stock-pill.bad{background:#fdeaea;color:#c0392b}.prod-stock-pill.na{background:#eef2f6;color:#94a3b8}
.prod-list-empty,.prod-detail-empty,.pd-unit-empty{padding:30px;text-align:center;color:#94a3b8;font-size:13px}
.prod-detail-empty b{display:block;font-size:14px;color:#64748b}.prod-detail-empty span{font-size:12px}
.prod-detail{background:#fff;border:1px solid #e7edf1;border-radius:12px;padding:16px;overflow:auto}
.pd-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.pd-img{width:64px;height:64px;border-radius:10px;object-fit:cover;background:#f4f7f9;flex-shrink:0}
.pd-head-info{flex:1;min-width:0}.pd-cat{margin:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:700}
.pd-head-info h3{margin:2px 0;font-size:16px;color:#12245A;line-height:1.2}.pd-sku{font-size:11.5px;color:#7a8794}
.pd-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.pd-facts>div{background:#f4f7f9;border-radius:9px;padding:8px 11px}
.pd-facts span{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8;font-weight:700}
.pd-facts b{display:block;font-size:14px;color:#12245A;margin-top:2px}
.pd-desc{font-size:12.5px;color:#475569;line-height:1.5;margin-bottom:14px;padding:10px 12px;background:#fafbfc;border-radius:8px}
.pd-stock{border-top:1px solid #eef2f6;padding-top:12px}
.pd-stock-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pd-stock-head>span:first-child{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#64748b;flex:1}
.pd-stock-total{font-size:12px;font-weight:800;padding:2px 10px;border-radius:20px;background:#eef2f6;color:#64748b}
.pd-stock-total.ok{background:#e7f7ee;color:#177245}.pd-stock-total.bad{background:#fdeaea;color:#c0392b}
.pd-stock-refresh{border:0;background:#f4f7f9;width:28px;height:28px;border-radius:7px;cursor:pointer;color:#64748b;display:grid;place-items:center}
.pd-stock-refresh svg{width:14px;height:14px}.pd-stock-refresh:hover{color:var(--squid-magenta,#e5295c)}
.pd-stock-refresh.spin svg{animation:posspin .7s linear infinite}
.pd-stock-body{display:flex;flex-direction:column;gap:2px}
.pd-unit-row{display:flex;justify-content:space-between;align-items:center;padding:7px 11px;background:#fafbfc;border-radius:7px;font-size:12.5px;color:#475569}
.pd-unit-row em{font-style:normal;color:#94a3b8;font-size:11px}
.pd-unit-row b{font-size:13px}.pd-unit-row b.ok{color:#177245}.pd-unit-row b.bad{color:#c0392b}
/* product editor photo */
.pe-body{gap:14px}
.pe-photo{display:flex;flex-direction:column;align-items:center;gap:8px;padding-bottom:6px}
.pe-photo img{width:120px;height:120px;border-radius:12px;object-fit:cover;background:#f4f7f9;border:1px solid #eef2f6}
.pe-photo-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--squid-magenta,#e5295c);cursor:pointer;padding:6px 14px;border:1.5px solid #f3d5de;border-radius:9px}
.pe-photo-btn svg{width:14px;height:14px}.pe-photo-btn:hover{background:#fdf0f4}
.pe-photo-name{font-size:11px;color:#94a3b8}
.pe-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pe-fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#64748b}
.pe-fields label.full{grid-column:1/-1}
.pe-fields input,.pe-fields textarea,.pe-fields select{height:38px;border:1.5px solid #e5e7eb;border-radius:9px;padding:0 11px;font-size:13.5px;color:#111;font-weight:400;text-transform:none;letter-spacing:0}
.pe-fields textarea{height:auto;padding:9px 11px;resize:vertical}
.pe-fields input:focus,.pe-fields textarea:focus,.pe-fields select:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
@media(max-width:1100px){ .prod-page{grid-template-columns:200px 1fr;height:auto} .prod-detail{grid-column:1/-1} }
@media(max-width:720px){ .prod-page{grid-template-columns:1fr} .prod-tree{height:auto} .pe-fields{grid-template-columns:1fr} }

/* row action buttons (Edit / Print) */
.row-acts{display:flex;gap:6px;justify-content:flex-end}
.col-actions{white-space:nowrap;text-align:right}

/* goods receipt line table */
.gr-lines th{font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.gr-lines input[type=number]{width:78px}
.gr-lines .gl-sku{width:80px}
.stx-stock{font-weight:700;color:#12245A}

/* payment editor — open invoices/bills allocation table */
.pay-docs th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.pay-docs td{font-size:12.5px;padding:6px 8px}
.pay-docs input[type=number]{height:28px}
.doc-sum-party{font-weight:700;color:#12245A;padding:8px 0;border-bottom:1px solid #eef1f5;margin-bottom:8px}

/* ============ AGE ANALYSIS ============ */
.aa-page{padding:0 2px}
.aa-toggle-row{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.aa-toggle{display:flex;gap:0;background:#f1f5f9;border-radius:14px;padding:4px;box-shadow:inset 0 1px 3px rgba(0,0,0,.08)}
.aa-tg{padding:9px 22px;border:none;border-radius:11px;font-size:13px;font-weight:800;cursor:pointer;background:transparent;color:#64748b;transition:all .18s}
.aa-tg.active[data-type="1"]{background:linear-gradient(135deg,#1e3a5f,#0369a1);color:#fff;box-shadow:0 2px 8px rgba(3,105,161,.35)}
.aa-tg.active[data-type="2"]{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;box-shadow:0 2px 8px rgba(124,58,237,.35)}
.aa-toggle-badge{font-size:12px;color:#6b7280;font-weight:600}
.aa-toolbar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.aa-search{position:relative;flex:1;min-width:220px;display:flex;align-items:center}
.aa-search svg{position:absolute;left:13px;width:16px;height:16px;color:#9ca3af}
.aa-search input{width:100%;height:40px;padding:0 12px 0 40px;border:1.5px solid var(--line-strong);border-radius:10px;font-size:14px;box-sizing:border-box}
.aa-search input:focus{outline:none;border-color:var(--accent)}
.aa-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.aa-kpi{border:1.5px solid;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:5px}
.aa-kpi-l{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;opacity:.85}
.aa-kpi-v{font-size:18px;font-weight:900;font-variant-numeric:tabular-nums}
.aa-kpi-bar{background:rgba(0,0,0,.06);border-radius:20px;height:5px;overflow:hidden;margin-top:2px}
.aa-kpi-bar>div{height:5px;border-radius:20px;opacity:.75}
.aa-kpi-pct{font-size:10px;opacity:.75}
.aa-table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto;min-height:160px}
.aa-table{width:100%;border-collapse:collapse;font-family:inherit}
.aa-table thead th{padding:12px 14px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:2px solid var(--line);background:#f8fafc;color:#374151}
.aa-table th.ta-l,.aa-table td.ta-l{text-align:left}
.aa-table th.ta-r,.aa-table td.ta-r{text-align:right}
.aa-table th.ta-c,.aa-table td.ta-c{text-align:center}
.aa-table tbody td{padding:11px 14px;font-size:13px;border-bottom:1px solid #f1f5f9;white-space:nowrap;vertical-align:middle}
.aa-row{cursor:pointer;transition:background .12s}
.aa-row:hover{background:#eff6ff}
.aa-name{display:flex;align-items:center;gap:8px}
.aa-name b{font-size:13px;color:#111827;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.aa-bar{flex:1;background:#e5e7eb;border-radius:3px;height:6px;min-width:40px;max-width:80px;overflow:hidden;display:inline-block}
.aa-bar>i{display:block;height:6px;background:#0369a1;border-radius:3px;max-width:100%}
.aa-orders{color:#6b7280}
.aa-out{font-weight:700;color:#111827;font-variant-numeric:tabular-nums}
.aa-days{border-radius:20px;padding:2px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.aa-days.d0{background:#f0fdf4;color:#166534}
.aa-days.d30{background:#fffbeb;color:#92400e}
.aa-days.d60{background:#fff7ed;color:#9a3412}
.aa-days.d90{background:#fef2f2;color:#991b1b}
.aa-table tfoot .aa-total td{background:#f0f9ff;font-weight:900;border-top:2px solid #0369a1;color:#1e3a5f;padding:12px 14px;font-size:13px;font-variant-numeric:tabular-nums}
/* AA detail popup */
.aa-detail-totals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.aadt{border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px}
.aadt span{font-size:10px;font-weight:900;text-transform:uppercase}
.aadt b{font-size:18px}
.aadt.green{background:#f0fdf4;border:1px solid #bbf7d0}.aadt.green span{color:#166534}.aadt.green b{color:#166534}
.aadt.blue{background:#eff6ff;border:1px solid #bfdbfe}.aadt.blue span{color:#1e40af}.aadt.blue b{color:#1e40af}
.aa-detail-table{width:100%;border-collapse:collapse;font-size:12.5px}
.aa-detail-table thead th{background:#1e3a5f;color:#fff;padding:9px 12px;font-size:11px;font-weight:900;text-transform:uppercase;white-space:nowrap;position:sticky;top:0}
.aa-detail-table th.ta-l,.aa-detail-table td.ta-l{text-align:left}
.aa-detail-table th.ta-r,.aa-detail-table td.ta-r{text-align:right}
.aa-detail-table th.ta-c,.aa-detail-table td.ta-c{text-align:center}
.aa-detail-table tbody td{padding:8px 12px;border-bottom:1px solid #f1f5f9}
.aa-detail-table tbody tr:nth-child(even){background:#f9fafb}
@media (max-width:820px){ .aa-detail-totals{grid-template-columns:1fr} }

/* ============ PROMOTIONS (v411-style cards) ============ */
.promo-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.promo-card2{background:#fff;border:1.5px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 1px 6px rgba(15,23,42,.05);display:flex;flex-direction:column}
.promo-bar{height:4px}
.promo-body{padding:14px 16px;display:flex;flex-direction:column;gap:0}
.promo-row1{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
.promo-row1 b{font-size:14px;color:#111827;line-height:1.3}
.promo-pill{border-radius:20px;padding:3px 10px;font-size:10px;font-weight:900;white-space:nowrap;flex-shrink:0}
.promo-sub{font-size:11px;color:#6b7280;margin-bottom:8px;min-height:14px}
.promo-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;min-height:4px}
.promo-chip{border-radius:20px;padding:2px 8px;font-size:10px;font-weight:900}
.promo-chip.amber{background:#fef3c7;color:#92400e}
.promo-chip.blue{background:#f0f9ff;color:#0369a1;font-weight:700}
.promo-dates{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.promo-dates>div{background:#f8fafc;border-radius:8px;padding:7px 9px}
.promo-dates span{font-size:9px;color:#6b7280;font-weight:900;text-transform:uppercase;display:block}
.promo-dates b{font-size:11px;color:#1e293b}
.promo-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.promo-acts .btn.small{padding:5px 10px;font-size:11.5px}
.promo-preview{background:#1e3a5f!important;color:#fff!important;border-color:#1e3a5f!important}
.promo-preview:hover{background:#16314f!important}

/* ============ PROMOTION EDITOR (tabbed) ============ */
.promo-ed{width:min(1100px,98vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.promo-tabs{display:flex;background:#1a2e47;flex-shrink:0;border-bottom:2px solid #0f2030}
.promo-tab{background:transparent;color:rgba(255,255,255,.5);border:none;border-bottom:3px solid transparent;padding:10px 22px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:7px}
.promo-tab.active{background:rgba(255,255,255,.12);color:#fff;border-bottom-color:#60a5fa}
.promo-tab-badge{background:#2563eb;color:#fff;border-radius:20px;padding:1px 8px;font-size:10px;font-weight:900}
.promo-tabwrap{flex:1;overflow-y:auto;background:#fff;min-height:0}
.promo-sec-h{background:linear-gradient(90deg,#1e3a5f,#1e4d7b);padding:8px 18px;font-size:11px;font-weight:800;color:#fff;letter-spacing:.06em;text-transform:uppercase}
.promo-feat-grid{display:grid;grid-template-columns:120px 1fr 1fr 120px 1fr;gap:12px;padding:15px 18px;border-bottom:2px solid var(--line)}
.promo-f{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;color:#374151;text-transform:uppercase}
.promo-f input,.promo-f select{height:34px;border:1px solid var(--line-strong);border-radius:7px;padding:0 9px;font-size:12.5px;font-family:inherit;box-sizing:border-box;text-transform:none;font-weight:400;color:var(--ink)}
.promo-4col{display:grid;grid-template-columns:1fr 200px 1.6fr 1fr;border-bottom:2px solid var(--line)}
.promo-2col{display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid var(--line)}
.promo-col{border-right:1.5px solid var(--line)}
.promo-2col .promo-col:last-child,.promo-4col .promo-col:last-child{border-right:none}
.promo-col-h{background:linear-gradient(90deg,#1e3a5f,#1e4d7b);padding:7px 14px;font-size:11px;font-weight:800;color:#fff;letter-spacing:.05em;text-transform:uppercase}
.promo-col-b{padding:13px 14px}
.promo-radio{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:8px;cursor:pointer}
.promo-radio.sm{font-size:12px;margin-bottom:3px}
.promo-check{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:9px}
.promo-mini{width:80px;height:26px;border:1px solid var(--line-strong);border-radius:6px;padding:0 6px;font-size:12px;margin:2px 0 7px 18px;display:block}
.promo-mini-l{font-size:10px;font-weight:800;color:#6b7280;text-transform:uppercase;margin-bottom:3px}
.promo-mini-d{width:100%;height:28px;border:1px solid var(--line-strong);border-radius:6px;padding:0 6px;font-size:12px;box-sizing:border-box;margin-bottom:7px}
.promo-typeval{margin-left:20px;margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:#6b7280}
.promo-typeval input[type=number]{width:64px;height:26px;border:1px solid var(--line-strong);border-radius:6px;padding:0 5px;font-size:12px}
.promo-disp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.promo-disp-checks{display:flex;gap:12px;align-items:center;padding-top:18px}
.promo-eng-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.promo-speed{font-size:10px;color:#6b7280;font-weight:600}
.promo-eng-grid input[type=range]{width:100%}
.promo-eng-grid input[type=text],.promo-eng-grid #pe_bgcolorHex{height:30px;border:1px solid var(--line-strong);border-radius:6px;padding:0 7px;font-size:12px}
/* products tab */
.promo-prod-split{display:grid;grid-template-columns:300px 1fr;height:min(60vh,520px)}
.promo-prod-pick{border-right:1.5px solid var(--line);display:flex;flex-direction:column;background:#fafbfc}
.promo-prod-pick-h{padding:10px;border-bottom:1px solid var(--line)}
.promo-prod-pick-h input{width:100%;height:32px;border:1px solid var(--line-strong);border-radius:7px;padding:0 9px;font-size:12.5px;box-sizing:border-box}
.promo-prod-found{font-size:11px;color:#6b7280;margin-top:5px;font-weight:700}
.promo-prod-list{flex:1;overflow-y:auto}
.promo-prod-item{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:9px 11px;cursor:pointer;font-size:12.5px}
.promo-prod-item:hover{background:#eff6ff}
.promo-prod-item small{color:#6b7280}
.promo-prod-sel{display:flex;flex-direction:column}
.promo-prod-sel-h{padding:9px 14px;background:#f0f4f8;border-bottom:1px solid var(--line);font-size:13px;font-weight:700;color:#374151}
.promo-prod-sellist{flex:1;overflow-y:auto;padding:8px}
.promo-selrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;margin-bottom:7px;background:#fff}
.promo-selrow-nm{flex:1;display:flex;flex-direction:column}
.promo-selrow-nm b{font-size:13px;color:#111827}
.promo-selrow-nm small{font-size:11px;color:#6b7280}
.promo-factor{width:90px;height:30px;border:1px solid var(--line-strong);border-radius:6px;padding:0 7px;font-size:12.5px;text-align:right}
.promo-selx{width:26px;height:26px;border:none;background:#fef2f2;color:#dc2626;border-radius:6px;cursor:pointer;font-size:15px;font-weight:700}
.promo-prod-empty{padding:24px;text-align:center;color:#9ca3af;font-size:13px}
@media (max-width:900px){ .promo-4col{grid-template-columns:1fr 1fr} .promo-2col{grid-template-columns:1fr} .promo-feat-grid{grid-template-columns:1fr 1fr} .promo-prod-split{grid-template-columns:1fr} }

/* ============ GOODS RECEIPTS (v411-style cards) ============ */
.gr-list{display:flex;flex-direction:column;gap:8px}
.gr-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 1px 6px rgba(15,23,42,.05)}
.gr-bar{height:3px}
.gr-row{padding:12px 16px;display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center}
.gr-ic{width:40px;height:40px;border-radius:10px;background:#166534;display:grid;place-items:center;color:#fff;flex-shrink:0}
.gr-ic svg{width:20px;height:20px}
.gr-main{min-width:0}
.gr-line1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}
.gr-line1 strong{font-size:13px;color:#111827}
.gr-pill{border-radius:20px;padding:2px 9px;font-size:10px;font-weight:900}
.gr-sub{font-size:11px;color:#6b7280}
.gr-amt{text-align:right;min-width:90px}
.gr-amt b{font-size:15px;color:#111827;display:block}
.gr-amt small{color:#9ca3af;font-size:10px}
.gr-acts{display:flex;gap:6px}
.gr-acts .btn.small{padding:5px 11px;font-size:11.5px;display:inline-flex;align-items:center;gap:5px}
.gr-acts .btn.small svg{width:13px;height:13px}
.gr-view{background:#f0fdf4!important;border-color:#86efac!important;color:#15803d!important}

/* ============ E-WALLETS ============ */
.ew-list{display:flex;flex-direction:column;gap:10px}
.ew-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 1px 6px rgba(15,23,42,.05);display:flex;flex-direction:column;gap:12px}
.ew-main{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
.ew-ava{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#12245A,#2563eb);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:800;flex-shrink:0}
.ew-id{min-width:0}
.ew-holder{font-size:14px;font-weight:700;color:#111827;display:flex;align-items:center;gap:7px}
.ew-ref{font-size:12px;color:#6b7280;margin-top:2px}
.ew-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;display:inline-block}
.ew-dot.on{background:#16a34a}
.ew-figs{display:flex;gap:10px}
.ew-fig{border-radius:10px;padding:8px 14px;min-width:104px;text-align:right}
.ew-fig span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;opacity:.75}
.ew-fig b{font-size:15px;font-weight:800}
.ew-bal{background:#eff6ff;color:#1e40af}
.ew-hold{background:#fef3c7;color:#92400e}
.ew-avail{background:#f0fdf4;color:#15803d}
.ew-acts{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;border-top:1px solid var(--line);padding-top:11px}
.ew-acts .btn.small{padding:6px 12px;font-size:12px;display:inline-flex;align-items:center;gap:5px}
.ew-acts .btn.small svg{width:13px;height:13px}
.ew-add{background:#12245A!important;color:#fff!important;border-color:#12245A!important}
.ew-add:hover{background:#0d1a44!important}
.ew-soa{background:#f0fdf4!important;border-color:#86efac!important;color:#15803d!important}
/* add-transaction form */
.ew-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px}
.ew-fg{display:flex;flex-direction:column;gap:4px}
.ew-fg.full{grid-column:1/-1}
.ew-fg label{font-size:11px;font-weight:800;color:#374151;text-transform:uppercase;letter-spacing:.03em}
.ew-fg input,.ew-fg select,.ew-fg textarea{height:38px;border:1px solid var(--line-strong);border-radius:9px;padding:0 11px;font-size:13px;font-family:inherit;box-sizing:border-box;color:var(--ink);background:#fff}
.ew-fg textarea{height:auto;padding:9px 11px;resize:vertical}
.ew-chk{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#374151;text-transform:none;cursor:pointer}
.ew-chk input{width:16px;height:16px}
.ew-tx-table td{vertical-align:top}
.ew-cn{display:inline-block;margin-top:3px;background:#fef3c7;color:#92400e;border-radius:20px;padding:1px 8px;font-size:9px;font-weight:900;text-transform:uppercase}
@media (max-width:820px){ .ew-main{grid-template-columns:1fr} .ew-figs{flex-wrap:wrap} .ew-form{grid-template-columns:1fr} }

/* E-Wallets transaction popup extras */
.ew-loading{display:flex;align-items:center;gap:10px;padding:40px;justify-content:center;color:#374151;font-size:14px}
.ew-tx-count{font-size:12px;font-weight:700;color:#6b7280;margin-bottom:8px}

/* ============ CREDIT NOTE ASSISTANT ============ */
.cn-step{display:flex;gap:10px;align-items:flex-end;padding:18px}
.cn-idlabel{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#374151;text-transform:uppercase;flex:1}
.cn-idlabel input{height:38px;border:1px solid var(--line-strong);border-radius:9px;padding:0 12px;font-size:14px;font-family:inherit;text-transform:none;font-weight:400}
.cn-sale-head{display:flex;gap:24px;padding:14px 18px;background:#f8fafc;border-bottom:1px solid var(--line)}
.cn-sale-head>div{display:flex;flex-direction:column;gap:2px}
.cn-sale-head span{font-size:10px;font-weight:800;color:#6b7280;text-transform:uppercase}
.cn-sale-head b{font-size:14px;color:#111827}
.cn-swap{display:grid;grid-template-columns:1fr 1fr;gap:0}
.cn-col{padding:14px 16px;border-right:1px solid var(--line)}
.cn-col:last-child{border-right:none;background:#fafbfc}
.cn-col h4{margin:0 0 2px;font-size:13px;font-weight:800;color:#111827}
.cn-col .doc-muted{font-size:11px;margin:0 0 10px}
.cn-line-list{display:flex;flex-direction:column;gap:7px;min-height:120px;max-height:340px;overflow-y:auto}
.cn-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.cn-line-list.sel .cn-line{border-color:#bbf7d0;background:#f0fdf4}
.cn-line-id{min-width:0}
.cn-line-id b{font-size:13px;color:#111827;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-line-id small{font-size:11px;color:#6b7280}
.cn-line-amt{font-size:13px;font-weight:700;color:#12245A;white-space:nowrap}
.cn-line .btn.small{padding:5px 10px;font-size:11px;white-space:nowrap}
.cn-empty{padding:24px;text-align:center;color:#9ca3af;font-size:12px;border:1px dashed var(--line);border-radius:10px}
.cn-totals{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:5px}
.cn-totals>div{display:flex;justify-content:space-between;font-size:12px;color:#6b7280}
.cn-totals .grand{font-size:15px;font-weight:800;color:#111827;border-top:1px solid var(--line);padding-top:6px;margin-top:2px}
.cn-save{width:100%;margin-top:12px}
.cn-save:disabled{opacity:.5;cursor:not-allowed}
@media (max-width:760px){ .cn-swap{grid-template-columns:1fr} .cn-col{border-right:none;border-bottom:1px solid var(--line)} }

/* CN assistant width + line layout fix */
.cn-modal{width:min(920px,96vw)!important;max-width:920px!important}
.cn-modal .doc-body{padding:0;overflow:hidden;display:flex;flex-direction:column}
.cn-swap{min-height:0}
.cn-line{grid-template-columns:1fr auto auto;gap:8px}
.cn-line-id b{font-size:12.5px}
.cn-line-amt{font-size:12.5px}

/* ============ PURCHASE ORDERS ============ */
.po-row{padding:12px 16px;display:grid;grid-template-columns:auto 1fr auto auto auto;gap:12px;align-items:center}
.po-notes{font-size:11px;color:#64748b;font-style:italic;margin-top:3px}
.po-prog{display:flex;flex-direction:column;gap:4px;min-width:110px}
.po-prog-bar{height:7px;border-radius:20px;background:#e5e7eb;overflow:hidden}
.po-prog-bar i{display:block;height:100%;background:linear-gradient(90deg,#0369a1,#0ea5e9);border-radius:20px;transition:width .3s}
.po-prog span{font-size:10px;font-weight:700;color:#6b7280;text-align:center}
@media (max-width:820px){ .po-row{grid-template-columns:auto 1fr} .po-prog{min-width:0;margin-top:6px} }

/* ============ EXPENSE EDITOR ============ */
.exp-modal{width:min(860px,96vw)!important;max-width:860px!important}
.exp-head-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
.exp-fg{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800;color:#374151;text-transform:uppercase}
.exp-fg.full{grid-column:1/-1}
.exp-fg input{height:36px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;font-size:13px;font-weight:400;text-transform:none;font-family:inherit}
.exp-lines th{font-size:10px}
.exp-lines select,.exp-lines input{height:28px;border:1px solid var(--line-strong);border-radius:6px;padding:0 6px;font-size:12px;font-family:inherit;width:100%;box-sizing:border-box}
.exp-lines .ex-total{font-weight:700;color:#12245A;white-space:nowrap}
.exp-totals{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding:14px 16px;background:#f8fafc;border-radius:12px;max-width:320px;margin-left:auto}
.exp-totals>div{display:flex;justify-content:space-between;font-size:12px;color:#6b7280}
.exp-totals .grand{font-size:16px;font-weight:800;color:#111827;border-top:1px solid var(--line);padding-top:7px;margin-top:3px}
.stx-sku{font-size:11px;color:#6b7280}
@media (max-width:760px){ .exp-head-grid{grid-template-columns:1fr 1fr} .exp-totals{max-width:none} }

/* ============================================================
   TASKS MANAGER (module 13) — Kanban · Gantt · card modal
   ============================================================ */
.tk-vt-wrap{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:var(--surface)}
.tk-vt{border:0;background:transparent;padding:8px 14px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}
.tk-vt+.tk-vt{border-left:1px solid var(--line)}
.tk-vt.active{background:var(--accent-soft);color:var(--accent-600)}
.tk-mine.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-600)}

/* boards row */
.tk-boardsrow{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px}
.tk-bchip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:var(--surface);
  border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap;flex:0 0 auto}
.tk-bchip:hover{background:var(--canvas)}
.tk-bchip.active{background:var(--squid-navy-800);border-color:var(--squid-navy-800);color:#fff}
.tk-bchip .tk-bcount{background:rgba(127,127,127,.18);border-radius:999px;padding:1px 8px;font-size:11.5px}
.tk-bchip.active .tk-bcount{background:rgba(255,255,255,.2)}
.tk-bedit{border:0;background:transparent;color:inherit;opacity:.7;cursor:pointer;font-size:13px;padding:0 0 0 2px}
.tk-bedit:hover{opacity:1}
.tk-bnew{border-style:dashed;color:var(--accent-600)}

/* stats strip */
.tk-stats{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
.tk-st{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--canvas);color:var(--ink-3)}
.tk-st.o{background:#f1f5f9;color:#475569}.tk-st.p{background:#dbeafe;color:#1d4ed8}
.tk-st.d{background:#dcfce7;color:#15803d}.tk-st.r{background:#fee2e2;color:#dc2626}

/* kanban */
.tk-kanban{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding:14px;background:var(--canvas);
  border:1px solid var(--line);border-radius:12px;min-height:420px}
.tk-col{background:var(--surface-alt);border:1px solid var(--line);border-radius:10px;width:290px;flex:0 0 290px;
  display:flex;flex-direction:column;max-height:calc(100vh - 330px)}
.tk-col.clp{width:52px;flex:0 0 52px}
.tk-col.clp .tk-col-body,.tk-col.clp .tk-quick,.tk-col.clp .tk-col-count{display:none}
.tk-col.clp .tk-col-name{writing-mode:vertical-rl;font-size:12px;padding:6px 0}
.tk-col.clp .tk-col-head{flex-direction:column;height:auto;gap:6px;padding:10px 6px}
.tk-col-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:3px solid transparent;border-radius:10px 10px 0 0}
.tk-col-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.tk-col-name{font-size:13.5px;font-weight:800;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-col-count{font-size:11.5px;font-weight:700;background:var(--canvas);border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--ink-3)}
.tk-col-clp{border:0;background:transparent;color:var(--ink-3);cursor:pointer;font-size:13px;line-height:1}
.tk-col-body{padding:4px 10px 8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:60px;flex:1}
.tk-col-body.over{background:var(--accent-soft);border-radius:8px}
.tk-col-empty{border:1.5px dashed var(--line-strong);border-radius:8px;color:var(--ink-disabled);font-size:12.5px;text-align:center;padding:18px 8px}
.tk-ghost{border:2px dashed var(--accent);border-radius:8px;height:42px;background:var(--accent-soft)}
.tk-quick{padding:8px 10px 10px}
.tk-quick input{width:100%;border:1px dashed var(--line-strong);background:transparent;border-radius:8px;height:34px;padding:0 10px;font-size:13px}
.tk-quick input:focus{background:var(--surface);border-style:solid;outline:none;border-color:var(--accent)}
.tk-addcol{flex:0 0 220px;border:1.5px dashed var(--line-strong);background:transparent;border-radius:10px;height:46px;
  font-size:13.5px;font-weight:700;color:var(--ink-3);cursor:pointer}
.tk-addcol:hover{color:var(--accent-600);border-color:var(--accent)}

/* card */
.tk-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px 9px;
  box-shadow:0 1px 2px rgba(16,24,40,.05);cursor:grab;transition:box-shadow .12s, transform .12s}
.tk-card:hover{box-shadow:0 4px 12px rgba(16,24,40,.10);transform:translateY(-1px)}
.tk-card.dragging{opacity:.45;transform:rotate(2deg)}
.tk-card.is-done .tk-card-title{text-decoration:line-through;color:var(--ink-3)}
.tk-stripe{position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0 3px 3px 0}
.tk-card-top{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:5px}
.tk-pill{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 8px;letter-spacing:.02em}
.tk-card-title{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.35;word-break:break-word}
.tk-prog{position:relative;height:6px;border-radius:99px;background:var(--canvas);margin:8px 0 2px;overflow:visible}
.tk-prog i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2563EB,#7C3AED)}
.tk-prog em{position:absolute;right:0;top:-16px;font-size:10px;font-weight:700;color:var(--ink-3);font-style:normal}
.tk-card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:7px;font-size:11.5px;color:var(--ink-3)}
.tk-due{font-weight:700;border-radius:6px;padding:2px 6px}
.tk-due.over{background:#fee2e2;color:#dc2626}
.tk-due.today{background:#fef3c7;color:#b45309}
.tk-due.done{background:#dcfce7;color:#15803d}
.tk-users{font-weight:700}

/* gantt */
.tk-gantt-panel{padding:0;overflow:hidden}
.tk-g-tools{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}
.tk-g-legend{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.tk-gantt{display:flex;max-height:calc(100vh - 330px)}
.tk-g-left{flex:0 0 240px;border-right:1px solid var(--line);overflow:hidden;background:var(--surface)}
.tk-g-corner{height:52px;display:flex;align-items:flex-end;padding:0 12px 6px;font-size:11px;font-weight:800;
  color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.tk-g-lab{display:flex;align-items:center;gap:8px;padding:0 12px;font-size:12.5px;border-bottom:1px solid var(--line);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.tk-g-lab:hover{background:var(--accent-soft)}
.tk-g-lab.head{background:var(--surface-alt);font-weight:800;font-size:12px;cursor:default}
.tk-g-scroll{flex:1;overflow:auto}
.tk-g-hdr{position:sticky;top:0;z-index:3;background:var(--surface);border-bottom:1px solid var(--line)}
.tk-g-months{display:flex;height:24px}
.tk-g-month{font-size:11.5px;font-weight:800;color:var(--ink-2);border-right:1px solid var(--line);
  display:flex;align-items:center;padding-left:8px;overflow:hidden;white-space:nowrap;flex:0 0 auto}
.tk-g-days{display:flex;height:22px}
.tk-g-day{font-size:10px;color:var(--ink-3);text-align:center;border-right:1px solid var(--line);line-height:22px;flex:0 0 auto}
.tk-g-day.we{background:var(--canvas)}
.tk-g-canvas{position:relative;background:var(--surface)}
.tk-g-shade{position:absolute;top:0;bottom:0;background:var(--canvas);opacity:.6}
.tk-g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--squid-magenta);z-index:2}
.tk-g-today em{position:absolute;top:2px;left:4px;font-size:9.5px;font-weight:800;color:var(--squid-magenta);font-style:normal;white-space:nowrap}
.tk-g-deps{position:absolute;left:0;top:0;z-index:1;pointer-events:none}
.tk-g-deps path{fill:none;stroke:#94a3b8;stroke-width:1.5;stroke-dasharray:4 3}
.tk-g-deps circle{fill:#94a3b8}
.tk-g-row{position:relative;border-bottom:1px solid var(--line)}
.tk-g-row.head{background:var(--surface-alt)}
.tk-g-bar{position:absolute;top:6px;bottom:6px;border-radius:6px;background:color-mix(in srgb,var(--bc) 22%,#fff);
  border:1px solid var(--bc);cursor:pointer;overflow:hidden;display:flex;align-items:center;z-index:2}
.tk-g-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--bc);opacity:.35}
.tk-g-bar span{position:relative;font-size:10.5px;font-weight:700;color:var(--ink);padding:0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-g-bar.over{border-color:#dc2626}
.tk-g-bar:hover{box-shadow:0 2px 8px rgba(16,24,40,.18)}

/* card modal */
.modal.wide .tk-cardm{display:grid;grid-template-columns:1fr 280px;gap:22px}
@media (max-width:860px){.modal.wide .tk-cardm{grid-template-columns:1fr}}
.tk-cm-lab{display:block;font-size:11px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 5px}
.tk-cm-lab:first-child{margin-top:0}
.tk-cm-title{width:100%;font-size:17px;font-weight:700;border:1px solid var(--line-strong);border-radius:8px;height:44px;padding:0 12px}
.tk-cm-desc{width:100%;min-height:96px;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;font-size:13.5px;resize:vertical}
.tk-cm-sec{margin-top:20px}
.tk-cm-sec h4{font-size:13.5px;font-weight:800;color:var(--ink);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.tk-cm-pct{font-size:11.5px;font-weight:700;color:var(--ink-3)}
.tk-cm-prog{height:6px;border-radius:99px;background:var(--canvas);margin-bottom:10px;overflow:hidden}
.tk-cm-prog i{display:block;height:100%;background:linear-gradient(90deg,#16a34a,#4ade80);width:0;transition:width .25s}
.tk-ck{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:var(--surface)}
.tk-ck input{width:16px;height:16px;accent-color:#16a34a;flex:0 0 auto}
.tk-ck span{flex:1;font-size:13px}
.tk-ck em{font-size:11px;color:var(--ink-disabled);font-style:normal}
.tk-ck.done span{text-decoration:line-through;color:var(--ink-3)}
.tk-cm-addrow input{width:100%;border:1px dashed var(--line-strong);border-radius:8px;height:36px;padding:0 12px;font-size:13px;background:transparent}
.tk-cm-addrow input:focus{border-style:solid;border-color:var(--accent);background:var(--surface);outline:none}
.tk-cm-empty{font-size:12.5px;color:var(--ink-disabled);padding:6px 2px}
.tk-cm-side label{display:block;font-size:11px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 5px}
.tk-cm-side label:first-child{margin-top:0}
.tk-cm-side select,.tk-cm-side input[type=date]{width:100%;height:36px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;font-size:13px;background:var(--surface)}
.tk-cm-side input[type=range]{width:100%}
.tk-cm-side label b{float:right;color:var(--accent-600)}
.tk-cm-sec2{margin-top:16px;border-top:1px solid var(--line);padding-top:6px}
.tk-mem{display:flex;align-items:center;gap:10px;padding:6px 0}
.tk-mem-av{width:30px;height:30px;border-radius:50%;background:var(--squid-grad);color:#fff;font-weight:800;font-size:13px;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.tk-mem-nm{flex:1;font-size:13px;font-weight:600;line-height:1.25}
.tk-mem-nm small{color:var(--ink-3);font-weight:600}
.tk-mem-nm em{font-style:normal;color:var(--ink-disabled);font-size:11px}
.tk-mem-x{border:0;background:transparent;color:var(--ink-disabled);font-size:16px;cursor:pointer;line-height:1}
.tk-mem-x:hover{color:#dc2626}
.tk-cm-addmem{display:flex;gap:6px;margin-top:8px}
.tk-cm-addmem select{flex:1;min-width:0}
.tk-cm-addmem select:last-of-type{flex:0 0 96px}
.tk-cm-meta{margin-top:16px;font-size:11.5px;color:var(--ink-disabled)}
.tk-danger{color:#dc2626;border-color:#fecaca}
.tk-danger:hover{background:#fef2f2}
.tk-logs{border-left:2px solid var(--line);padding-left:14px;display:flex;flex-direction:column;gap:10px}
.tk-log{position:relative;font-size:12.5px}
.tk-log-dot{position:absolute;left:-19px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.tk-log small{color:var(--ink-3)}

/* labels manager */
.tk-lab-grid{display:flex;flex-direction:column;gap:8px}
.tk-lab-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.tk-lab-sw{width:34px;height:20px;border-radius:6px;flex:0 0 auto}
.tk-lab-nm{font-weight:700;font-size:13.5px}
.tk-lab-dt{flex:1;color:var(--ink-3);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn.small{padding:5px 10px;font-size:12px}

/* ============================================================
   v433 PORT — POS gate, dark-skin contrast, Activity split pane
   ============================================================ */
/* A6/A7 — Cash Up gate (clean full-screen, no POS behind) */
.pos-cashup-gate-v{position:fixed;inset:0;z-index:9990;display:grid;place-items:center;background:#0f172a;color:#e2e8f0;text-align:center;padding:24px}
.pos-cashup-gate-v .pcg-inner{max-width:420px}
.pos-cashup-gate-v .pcg-lock{font-size:44px;margin-bottom:12px}
.pos-cashup-gate-v h2{margin:0 0 8px;font-size:22px;color:#fff}
.pos-cashup-gate-v p{margin:0 0 20px;color:#94a3b8;font-size:14px;line-height:1.5}
.pos-cashup-gate-v .pcg-open{padding:12px 24px;font-size:15px}
.pos-cashup-gate-v .pcg-back{margin-top:14px}
.pos-cashup-gate-v .pcg-back a{color:#94a3b8;font-size:13px;text-decoration:none;cursor:pointer}
.pos-cashup-gate-v .pcg-back a:hover{color:#e2e8f0}
/* Cash Up modals sit ABOVE the gate/POS (v427 z-index lesson) */
#posCashUpModal{z-index:2147483000}

/* A2 — POS dark skin contrast */
.pos-app-v.skin-dark .pos-product-v b,.pos-app-v.skin-dark .pos-product-v .pp-name{color:#f8fafc}
.pos-app-v.skin-dark .pos-product-v small,.pos-app-v.skin-dark .pos-product-v .pp-sku{color:#cbd5e1}
.pos-app-v.skin-dark .pos-lines-v,.pos-app-v.skin-dark .pos-lines-v b,.pos-app-v.skin-dark .pos-lines-v span{color:#e2e8f0}
.pos-app-v.skin-dark #posClientSummaryV{color:#e2e8f0}
.pos-app-v.skin-dark .pos-cats-v button{color:#cbd5e1}
.pos-app-v.skin-dark .pos-cats-v button.active{color:#fff}
.pos-app-v.skin-dark .pos-products-v .empty,.pos-app-v.skin-dark .pos-products-v .pos-empty{color:#94a3b8}
.pos-app-v.skin-dark input::placeholder{color:#94a3b8}
.pos-app-v.skin-dark .pos-searchbar-v input{color:#f8fafc}

/* B1 — sales detail split modal */
.act-detail-card{display:flex;flex-direction:column}
.act-split-v106zk{display:flex;gap:0;align-items:stretch;overflow:hidden}
.act-split-v106zk .act-table-left-v106zk{flex:0 0 58%;max-width:58%;overflow:auto;border-right:1px solid var(--line)}
.act-detail-pane-v106zk{flex:1;overflow:auto;background:var(--surface-alt,#f8fafc);padding:14px}
.act-sale-row.sel td{background:var(--accent-soft,#eef2ff)!important}
.adp-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:10px}
.adp-fiscal{background:#dcfce7;color:#15803d;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}
.adp-fiscal.sm{padding:2px 8px;font-size:10.5px}
.adp-line{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.adp-line .adp-nm{font-size:12.5px;font-weight:600}
.adp-line .adp-nm small{display:block;color:var(--ink-3);font-weight:500;margin-top:2px}
.adp-sku{font-style:normal;background:var(--canvas);border:1px solid var(--line);border-radius:5px;padding:0 6px;font-size:10.5px;color:var(--ink-3)}
.adp-line b{font-size:12.5px;white-space:nowrap}
.adp-line.pay{padding:6px 0;font-size:12.5px}
.adp-sec{margin-top:12px;font-size:11px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);padding-bottom:4px}
.adp-total{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:2px solid var(--ink);font-size:14px;font-weight:800}
@media (max-width:900px){.act-split-v106zk{flex-direction:column}.act-split-v106zk .act-table-left-v106zk{flex:none;max-width:100%;max-height:45%;border-right:0;border-bottom:1px solid var(--line)}}
.tk-restore{color:#15803d;border-color:#bbf7d0}
.tk-restore:hover{background:#f0fdf4}

/* ============================================================
   Shared product picker triggers + editor uniformisation
   ============================================================ */
.dl-prodwrap{display:flex;gap:6px;align-items:center;position:relative}
.dl-prodwrap input{flex:1;min-width:0}
.dl-browse{flex:0 0 34px;height:34px;border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-2)}
.dl-browse:hover{border-color:var(--accent);color:var(--accent-600);background:var(--accent-soft)}
.dl-browse svg{width:16px;height:16px}

/* Expense modal — redesigned (tk-style) */
.exp2-card{width:min(980px,96vw);max-height:92vh}
.exp2-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px 14px;border-bottom:1px solid var(--line)}
.exp2-eyebrow{margin:0 0 2px;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--squid-magenta,#e5295c)}
.exp2-head h3{margin:0;font-size:19px}
.exp2-head span{font-size:12.5px;color:var(--ink-3)}
.exp2-body{display:grid;grid-template-columns:1fr 250px;gap:0;overflow:auto;flex:1}
.exp2-main{padding:18px 22px;min-width:0}
.exp2-supwrap{position:relative;display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:10px;height:44px;padding:0 12px;gap:8px;background:var(--surface)}
.exp2-supwrap:focus-within{border-color:var(--accent)}
.exp2-supwrap svg{width:16px;height:16px;color:var(--ink-3);flex:0 0 auto}
.exp2-supwrap input{border:0;outline:0;flex:1;font-size:14px;font-weight:600;background:transparent}
.exp2-supres{position:absolute;left:0;right:0;top:100%;z-index:60}
.exp2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.exp2-f{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.exp2-f input{height:38px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;font-size:13px;font-weight:500;text-transform:none;letter-spacing:0}
.exp2-memo{width:100%;height:38px;border:1px solid var(--line-strong);border-radius:8px;padding:0 12px;font-size:13px}
.exp2-lines-head{display:flex;justify-content:space-between;align-items:center;margin:18px 0 8px}
.exp2-lines-wrap{border:1px solid var(--line);border-radius:10px;overflow:auto}
.exp2-table thead th{background:var(--surface-alt);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.exp2-side{border-left:1px solid var(--line);background:var(--surface-alt);padding:18px;display:flex;flex-direction:column;gap:10px}
.exp2-side-title{font-size:11px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.exp2-sum{display:flex;justify-content:space-between;font-size:13px}
.exp2-sum b{font-variant-numeric:tabular-nums}
.exp2-grand{display:flex;justify-content:space-between;align-items:center;background:var(--squid-grad,linear-gradient(135deg,#12245A,#E5295C));color:#fff;border-radius:10px;padding:12px 14px;font-size:13px;font-weight:700}
.exp2-grand b{font-size:16px;font-variant-numeric:tabular-nums}
.exp2-hint{font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:auto}
.exp2-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line)}
@media (max-width:820px){.exp2-body{grid-template-columns:1fr}.exp2-side{border-left:0;border-top:1px solid var(--line)}}
.ew-sync{font-style:normal;font-size:11px;opacity:.8;animation:ewpulse 1.1s ease infinite}
@keyframes ewpulse{0%,100%{opacity:.35}50%{opacity:1}}

/* Web Manager */
.wm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.wm-card{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;justify-content:space-between;background:var(--surface)}
.wm-card b{display:block;font-size:14px}
.wm-card span{display:block;font-size:12px;color:var(--ink-3);margin-top:2px;line-height:1.45}
.wm-card em{display:inline-block;font-style:normal;background:var(--surface-alt);border:1px solid var(--line);border-radius:6px;padding:1px 8px;font-size:10.5px;color:var(--ink-3);margin-top:6px}
.wm-custom{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.wm-custom input{flex:1;height:38px;border:1px solid var(--line-strong);border-radius:8px;padding:0 12px}

/* ============================================================
   WEB MANAGER (Module 46)
   ============================================================ */
.wm-wrap{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
.wm-side{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;position:sticky;top:76px;max-height:calc(100vh - 100px);display:flex;flex-direction:column}
.wm-side>input{height:38px;border:1px solid var(--line-strong);border-radius:9px;padding:0 12px;margin-bottom:10px}
#wmList{overflow:auto;display:flex;flex-direction:column;gap:6px}
.wm-site{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:9px 10px;cursor:pointer;text-align:left;width:100%}
.wm-site:hover{border-color:var(--accent)}
.wm-site.sel{border-color:var(--accent);background:var(--accent-soft)}
.wm-logo{width:38px;height:38px;flex:0 0 38px;border-radius:9px;background:var(--squid-navy-800,#12245A);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;overflow:hidden}
.wm-logo img{width:100%;height:100%;object-fit:cover}
.wm-logo.lg{width:56px;height:56px;flex-basis:56px;border-radius:12px;font-size:22px}
.wm-meta{min-width:0;flex:1;display:flex;flex-direction:column}
.wm-meta b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-meta small{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px}
.wm-dot.ok{background:#22c55e}.wm-dot.off{background:#cbd5e1}
.wm-main{min-width:0}
.wm-summary{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.wm-sum-head{display:flex;gap:14px;align-items:flex-start}
.wm-sum-id{flex:1;min-width:0}
.wm-sum-id h2{margin:0 0 3px;font-size:19px}
.wm-url{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--accent-600);text-decoration:none;font-weight:600}
.wm-url svg{width:13px;height:13px}
.wm-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.wm-socials{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.wm-soc{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:99px;padding:5px 12px 5px 6px;font-size:12px;font-weight:700;text-decoration:none;color:var(--ink-2)}
.wm-soc i{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;color:#fff;background:#94a3b8}
.wm-soc.in i{background:#0a66c2}.wm-soc.yt i{background:#ff0000}.wm-soc.fb i{background:#1877f2}.wm-soc.ig i{background:#d62976}.wm-soc.tt i{background:#0f172a}
.wm-soc.off{opacity:.45;pointer-events:none}
.wm-soc.on:hover{border-color:var(--accent)}
.wm-creds{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}
.wm-cred{display:flex;align-items:center;gap:8px;font-size:12px}
.wm-cred span{font-weight:800;color:var(--ink-3);text-transform:uppercase;font-size:10px;letter-spacing:.05em}
.wm-cred code{background:var(--surface-alt);border:1px solid var(--line);border-radius:7px;padding:3px 9px;font-size:11.5px}
.wm-tabs{display:flex;gap:4px;margin:16px 0 10px;border-bottom:2px solid var(--line)}
.wm-tabs button{border:0;background:transparent;padding:9px 16px;font-size:13px;font-weight:700;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}
.wm-tabs button.active{color:var(--accent-600);border-bottom-color:var(--accent)}
.wm-tab-tools{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-bottom:10px}
.wm-tab-tools .muted{margin-right:auto;font-size:12px;color:var(--ink-3)}
.wm-tab-tools input{height:34px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px}
.wm-modal{width:min(760px,96vw);max-height:92vh}
.wm-modal-body{padding:16px 22px;overflow:auto;flex:1}
.wm-bi{margin-bottom:12px}
.wm-bi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wm-bi-grid input{height:38px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px}
.wm-bi-grid textarea{min-height:88px;border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;resize:vertical;font:inherit;font-size:13px}
.wm-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}
.wm-check{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;font-weight:600}
.wm-socf{margin-top:8px}
.wm-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.wm-cat{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}
.wm-cat:hover{border-color:var(--accent);background:var(--accent-soft)}
.wm-cat-ic{font-size:26px}
.wm-cat b{font-size:12.5px;text-align:center}
.wm-cat small{font-size:10px;color:var(--ink-3)}
@media (max-width:900px){.wm-wrap{grid-template-columns:1fr}.wm-side{position:static;max-height:none}}

/* ============================================================
   WM combo fix + ACCOUNTING REVIEW (Module 16)
   ============================================================ */
/* Selects inside the WM/exp2 field labels inherited the uppercase
   label styling and browser default chrome — normalise them. */
.exp2-f select,.wm-modal select,.wm-modal-body select{height:38px;border:1px solid var(--line-strong);border-radius:8px;
  padding:0 10px;font-size:13px;font-weight:500;text-transform:none;letter-spacing:0;background:var(--surface);
  color:var(--ink);appearance:auto;width:100%}
.exp2-f select:focus,.wm-modal select:focus{outline:none;border-color:var(--accent)}

.acc-arrow{font-weight:700;color:var(--ink-3);margin:0 2px}
.page-head input[type=date]{height:38px;border:1px solid var(--line-strong);border-radius:9px;padding:0 10px;font-size:13px;background:var(--surface)}
.acc-tabs{margin-top:14px}
.acc-tools{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.acc-tools input,.acc-tools select{height:36px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;background:var(--surface)}
.acc-tools .muted{margin-left:auto;font-size:12px;color:var(--ink-3)}
.acc-tbl td.mono,.mono{font-variant-numeric:tabular-nums}
.acc-total-row td{font-weight:800;border-top:2px solid var(--ink);background:var(--surface-alt)}
.acc-report{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 24px;max-width:760px}
.acc-rep-title{font-size:17px;font-weight:800;text-align:center;margin-bottom:14px}
.acc-rep-title small{font-weight:600;color:var(--ink-3);font-size:12px}
.acc-sec{margin-bottom:14px}
.acc-sec-h{font-weight:800;font-size:12px;background:var(--surface-alt);padding:7px 12px;border-radius:8px;margin:12px 0 4px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.acc-sec-h em{font-style:normal;color:var(--ink-3);font-weight:700}
.acc-line{display:flex;justify-content:space-between;gap:14px;padding:5px 12px;font-size:12.5px;border-bottom:1px dashed var(--line)}
.acc-line.total{font-weight:800;border-bottom:2px solid var(--ink)}
.acc-line.grand{font-weight:800;font-size:14px;background:var(--surface-alt);border:0;border-radius:8px;margin:10px 0;padding:10px 12px}
.acc-line.grand.net{background:var(--squid-grad,linear-gradient(135deg,#12245A,#E5295C));color:#fff}
.acc-line.muted span{color:var(--ink-3)}
.acc-note{font-size:11px;color:var(--ink-3);margin-top:10px}
.acc-glgrp{margin-bottom:16px}

/* WM bilingual identification + HTML editors */
.wm-bi-col{display:flex;flex-direction:column;gap:4px;min-width:0}
.wm-lang{font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--ink-3);display:inline-flex;align-items:center;gap:4px}
.wm-lang.en{color:#1d4ed8}.wm-lang.fr{color:#be123c}
.wm-html-badge{background:#0f172a;color:#7dd3fc;border-radius:5px;padding:1px 7px;font-size:9.5px;font-weight:800;margin-left:6px;font-family:ui-monospace,Consolas,monospace}
textarea.wm-html{font-family:ui-monospace,'Cascadia Code',Consolas,monospace;font-size:12px;background:#0b1220;color:#e2e8f0;border-color:#1e293b;min-height:110px}
textarea.wm-html::placeholder{color:#475569}

/* POS instant boot veil */
.pos-boot-veil{position:fixed;inset:0;z-index:9980;background:rgba(10,15,30,.55);backdrop-filter:blur(2px);display:grid;place-items:center;animation:fade .12s ease}
.pbv-card{background:#fff;border-radius:16px;padding:26px 34px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 30px 70px rgba(15,23,42,.35)}
.pbv-card b{font-size:15px}
.pbv-card small{color:var(--ink-3);font-size:12px}
.pbv-spin{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--squid-magenta,#E5295C);border-radius:50%;animation:pbvspin .8s linear infinite}
@keyframes pbvspin{to{transform:rotate(360deg)}}

/* Rich HTML editor */
.wm-rich{border:1px solid var(--line-strong);border-radius:9px;overflow:hidden;background:var(--surface)}
.wm-rich-bar{display:flex;align-items:center;gap:2px;background:var(--surface-alt);border-bottom:1px solid var(--line);padding:4px 6px;flex-wrap:wrap}
.wm-rich-bar button{border:0;background:transparent;border-radius:6px;min-width:28px;height:26px;padding:0 7px;font-size:12px;cursor:pointer;color:var(--ink-2);font-weight:700}
.wm-rich-bar button:hover{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-strong)}
.wm-rich-bar button.on{background:#0f172a;color:#7dd3fc}
.wm-rb-sep{width:1px;height:16px;background:var(--line-strong);margin:0 4px}
.wm-rb-grow{flex:1}
.wm-rich-edit{min-height:120px;max-height:280px;overflow:auto;padding:10px 12px;font-size:13px;line-height:1.55;outline:none}
.wm-rich-edit:focus{background:#fffefb}
.wm-rich-edit h2{font-size:17px;margin:.4em 0 .25em}
.wm-rich-edit h3{font-size:14.5px;margin:.4em 0 .2em}
.wm-rich-edit p{margin:.35em 0}
.wm-rich-edit ul,.wm-rich-edit ol{padding-left:22px;margin:.35em 0}
.wm-rich-edit a{color:var(--accent-600)}
.wm-rich-src{width:100%;min-height:150px;border:0;border-radius:0;display:block}

/* Real module icons + profile page */
.ni-modimg{width:20px;height:20px;object-fit:contain;border-radius:5px}
.waffle-app .ni-modimg{width:26px;height:26px}
.ni-svg-fb{display:none;align-items:center;justify-content:center}
.prof-grid{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start;max-width:1020px}
.prof-photo img{width:170px;height:170px;border-radius:50%;object-fit:cover;border:4px solid var(--surface-alt);box-shadow:0 8px 26px rgba(15,23,42,.14)}
@media (max-width:860px){.prof-grid{grid-template-columns:1fr}}

/* Global search palette */
.cmd-search{position:relative}
.cmd-results{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:340px;max-height:min(480px,70vh);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px rgba(15,23,42,.25);z-index:1200;padding:6px}
.cmdr-group{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:8px 10px 4px}
.cmdr-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:7px 10px;cursor:pointer}
.cmdr-item:hover,.cmdr-item.sel{background:var(--accent-soft)}
.cmdr-ic{width:26px;height:26px;flex:0 0 26px;display:flex;align-items:center;justify-content:center;background:var(--surface-alt);border-radius:7px;font-size:13px}
.cmdr-tx{min-width:0;flex:1;display:flex;flex-direction:column}
.cmdr-tx b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdr-tx small{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdr-go{font-size:9.5px;color:var(--ink-3);font-weight:700;white-space:nowrap}
.cmdr-empty{padding:16px;text-align:center;color:var(--ink-3);font-size:12.5px}

/* Ecosystem apps */
.eco-item .eco-lock{margin-left:auto;font-size:11px;opacity:.7}
.eco-item.eco-locked{opacity:.55}
.eco-overlay{position:fixed;inset:0;z-index:9500;background:var(--canvas,#f1f5f9);display:flex;flex-direction:column}
.eco-bar{display:flex;align-items:center;gap:14px;padding:10px 14px;background:#0f172a;color:#fff}
.eco-bar b{font-size:14px}
.eco-bar .eco-note{font-size:11.5px;color:#94a3b8;margin-right:auto}
.eco-bar .btn{background:#1e293b;border-color:#334155;color:#e2e8f0}
.eco-frame{flex:1;border:0;width:100%;background:#fff}

/* Integrations panel */
.integ-panel{position:fixed;top:56px;right:56px;width:min(400px,94vw);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 70px rgba(15,23,42,.3);z-index:1300;padding:12px}
.integ-panel .wp-head{display:flex;align-items:baseline;justify-content:space-between;padding:4px 6px 10px}
.integ-sub{font-size:10.5px;color:var(--ink-3)}
.integ-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:8px}
.integ-card.soon{opacity:.72}
.integ-logo{width:40px;height:40px;flex:0 0 40px;border-radius:10px;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;overflow:hidden}
.integ-logo img{width:26px;height:26px;object-fit:contain}
.integ-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.integ-tx b{font-size:13.5px;display:flex;align-items:center;gap:8px}
.integ-soon{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.05em;background:var(--surface-alt);border:1px solid var(--line-strong);border-radius:99px;padding:2px 8px;color:var(--ink-3);text-transform:uppercase}
.integ-tx small{font-size:11.5px;color:var(--ink-2);line-height:1.45}
.integ-site{font-size:10.5px;color:var(--accent-600);text-decoration:none;font-weight:700}
/* System settings */
.sets-note{background:var(--accent-soft);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:12.5px;margin-bottom:14px}
.sets-panel{margin-bottom:14px}
.sets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 14px}
.sets-f{display:flex;flex-direction:column;gap:3px}
.sets-f span{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.sets-f input{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:12.5px;background:var(--surface-alt);color:var(--ink-2)}
.sets-sec-h{font-weight:800;font-size:11.5px;background:var(--surface-alt);padding:6px 12px;border-radius:8px;margin:14px 0 8px;display:flex;justify-content:space-between}
.sets-sec-h em{font-style:normal;color:var(--ink-3)}

/* ============================================================
   MOBILE RESPONSIVE PASS (secured side) — v70
   ============================================================ */
@media (max-width:900px){
  /* Rail drawer: darken content behind the open drawer */
  .app.rail-open::after{content:'';position:fixed;inset:var(--bar-h) 0 0 var(--rail-w);background:rgba(10,15,30,.35);z-index:49}
  #view{padding:14px 12px 40px}
  .page-head{flex-wrap:wrap;gap:10px}
  .page-head h1{font-size:19px}
  .page-head .btn{padding:0 12px;height:36px;font-size:12px}
  .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tbl{min-width:560px}
  .kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .acc-tabs,.wm-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .acc-tabs button,.wm-tabs button{white-space:nowrap;padding:9px 12px}
  .acc-tools{flex-wrap:wrap}
  .acc-report{padding:14px}
  .launcher{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}
@media (max-width:680px){
  .cmdbar{gap:6px;padding:0 8px}
  .cmd-brand b{display:none}
  .cmd-search{min-width:0;flex:1}
  .cmd-search input{font-size:12px}
  .cmd-results{position:fixed;left:8px;right:8px;top:calc(var(--bar-h) + 4px);min-width:0}
  .entity-btn{max-width:132px}
  .entity-btn .txt b{max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cmd-ic{width:34px}
  .waffle-panel,.user-panel,.entity-menu{left:8px!important;right:8px!important;width:auto!important;max-width:none}
  .integ-panel{right:8px;left:8px;width:auto;top:calc(var(--bar-h) + 4px)}
  /* Modals go full screen */
  .pos-modal-card,.wm-modal{width:100vw!important;height:100dvh;max-height:100dvh;border-radius:0}
  .wm-bi-grid{grid-template-columns:1fr}
  .wm-row3{grid-template-columns:1fr 1fr}
  .exp2-grid,.form-row{grid-template-columns:1fr!important}
  .page-head input[type=date]{flex:1;min-width:120px}
  .sets-grid{grid-template-columns:1fr 1fr}
  /* Tasks board: horizontal swipe */
  .tk-board{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tk-col{min-width:240px}
  /* Activity monitor overlay */
  .act-side-v{display:none}
  .activity-app-v{grid-template-columns:1fr!important}
  .act-filters{flex-wrap:wrap}
}
@media (max-width:560px){
  .kpi-grid{grid-template-columns:1fr 1fr}
  .kpi b,.kpi .kpi-num{font-size:16px}
  .sets-grid,.wm-row3{grid-template-columns:1fr}
  .prof-photo img{width:130px;height:130px}
  .cmd-pos{display:none}   /* POS reachable via modules on phones */
  .integ-card{flex-direction:column}
  .dash-cols,.dash-grid{grid-template-columns:1fr!important}
}

/* v72 — mobile shell hardening: no grid columns on phones (the rail is a
   fixed drawer), no horizontal blow-outs, and table min-width only inside
   scrollable wrappers. */
@media (max-width:900px){
  html,body{overflow-x:hidden}
  .app-body{display:block!important}
  .app.rail-open .app-body{grid-template-columns:none}
  #view{width:100%;max-width:100vw;box-sizing:border-box;overflow-x:hidden}
  .tbl{min-width:0}
  .tbl-wrap .tbl{min-width:560px}
  .panel,.wm-summary,.acc-report{max-width:100%;box-sizing:border-box}
  img,svg,iframe{max-width:100%}
  .app.rail-open::after{inset:var(--bar-h) 0 0 0;left:var(--rail-w)}
}

/* v73 — integration wordmark logos */
.integ-card{flex-direction:column;gap:8px}
.integ-head{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}
.integ-logo{width:auto;height:34px;flex:0 1 auto;background:transparent;border-radius:0;padding:0;font-size:18px}
.integ-logo img{height:34px;width:auto;max-width:170px;object-fit:contain}
@media (max-width:560px){.integ-card{flex-direction:column}.integ-logo img{max-width:140px}}

/* ============================================================
   CALENDAR (Module 14) — Outlook-like agenda
   ============================================================ */
.cal-wrap{display:grid;grid-template-columns:230px 1fr;gap:16px;align-items:start}
.cal-side{position:sticky;top:76px}
.cal-mini-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-mini-h b{font-size:12.5px}
.cal-mini-h button{border:0;background:transparent;cursor:pointer;font-size:14px;color:var(--ink-3);padding:2px 8px;border-radius:6px}
.cal-mini-h button:hover{background:var(--surface-alt)}
.cal-mini-g{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;font-size:10px;text-align:center}
.cal-mini-g>span{color:var(--ink-3);font-weight:800;padding:3px 0}
.cal-mini-g button{position:relative;border:0;background:transparent;border-radius:7px;padding:5px 0;font-size:10.5px;cursor:pointer}
.cal-mini-g button:hover{background:var(--surface-alt)}
.cal-mini-g button.today{background:var(--squid-navy-800,#12245A);color:#fff;font-weight:800}
.cal-mini-g button.sel{box-shadow:inset 0 0 0 2px var(--accent)}
.cal-mini-g button i{position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--squid-magenta,#E5295C)}
.cal-legend{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}
.cal-leg-h{font-size:9.5px;font-weight:800;letter-spacing:.06em;color:var(--ink-3);margin-bottom:6px}
.cal-cat{display:flex;align-items:center;gap:7px;font-size:12px;padding:4px 2px;cursor:pointer}
.cal-cat.off{opacity:.45}
.cal-cat i{width:11px;height:11px;border-radius:4px;flex:0 0 11px}
.cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.cal-toolbar h2{margin:0 6px;font-size:16.5px;flex:1;min-width:140px}
.cal-views{display:flex;background:var(--surface-alt);border-radius:9px;padding:3px;gap:2px}
.cal-views button{border:0;background:transparent;border-radius:7px;padding:6px 13px;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer}
.cal-views button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(15,23,42,.14)}
/* events */
.cal-ev{--evc:#4F6BED;display:flex;align-items:center;gap:5px;border:0;text-align:left;cursor:pointer;background:transparent;padding:0;width:100%}
.cal-ev .cal-ev-t{font-size:9.5px;font-weight:800;color:var(--evc);flex:0 0 auto}
.cal-ev .cal-ev-n{font-size:10.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-ev.sm{background:color-mix(in srgb,var(--evc) 14%, white);border-left:3px solid var(--evc);border-radius:5px;padding:2px 5px;margin-top:2px}
/* month */
.cal-month{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.cal-mrow{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-mhead div{padding:7px 8px;font-size:10px;font-weight:800;letter-spacing:.05em;color:var(--ink-3);background:var(--surface-alt);border-bottom:1px solid var(--line)}
.cal-mcell{min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 5px;overflow:hidden}
.cal-mcell:nth-child(7n){border-right:0}
.cal-mcell.out{background:var(--surface-alt);opacity:.55}
.cal-mcell.today .cal-mnum{background:var(--squid-magenta,#E5295C);color:#fff}
.cal-mnum{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:800;cursor:pointer}
.cal-more{border:0;background:transparent;color:var(--accent-600);font-size:10px;font-weight:700;cursor:pointer;padding:1px 3px}
/* week/day grid */
.cal-grid{--cols:7;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.cal-grow{display:grid;grid-template-columns:56px repeat(var(--cols),1fr)}
.cal-ghead{padding:8px;font-size:11.5px;border-left:1px solid var(--line);background:var(--surface-alt)}
.cal-ghead.today{background:var(--accent-soft)}
.cal-ghead b{display:block;font-size:10px;color:var(--ink-3);letter-spacing:.05em}
.cal-adrow{border-top:1px solid var(--line);border-bottom:2px solid var(--line-strong)}
.cal-adl{font-size:9px;color:var(--ink-3);display:flex;align-items:center;justify-content:flex-end;padding-right:6px}
.cal-adcell{border-left:1px solid var(--line);padding:2px 4px;min-height:24px}
.cal-gscroll{max-height:calc(100vh - 320px);overflow-y:auto}
.cal-gbody{position:relative}
.cal-gbody .cal-gutter{display:flex;flex-direction:column}
.cal-hour{height:44px;font-size:9.5px;color:var(--ink-3);text-align:right;padding:2px 6px 0 0;border-top:1px solid var(--line)}
.cal-gcol{position:relative;border-left:1px solid var(--line);background:
  repeating-linear-gradient(to bottom, transparent 0 43px, var(--line) 43px 44px);cursor:copy}
.cal-gev{position:absolute;left:3px;right:3px;background:color-mix(in srgb,var(--evc) 16%, white);border-left:3px solid var(--evc);border-radius:6px;padding:3px 6px;overflow:hidden;display:flex;flex-direction:column;gap:1px;cursor:pointer}
.cal-gev b{font-size:10.5px;line-height:1.15}
.cal-gev span{font-size:9px;color:var(--ink-3)}
/* agenda */
.cal-agday{margin-bottom:14px}
.cal-agd{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--ink-3);margin-bottom:4px}
.cal-agrow{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:5px}
.cal-agrow i{width:9px;height:9px;border-radius:50%;background:var(--evc);flex:0 0 9px}
.cal-agt{font-size:11px;font-weight:800;width:56px;flex:0 0 56px;color:var(--ink-2)}
.cal-agn{flex:1;min-width:0;display:flex;flex-direction:column}
.cal-agn b{font-size:12.5px}
.cal-agn small{font-size:10.5px;color:var(--ink-3)}
@media (max-width:900px){
  .cal-wrap{grid-template-columns:1fr}
  .cal-side{position:static;display:flex;gap:16px;align-items:flex-start}
  #calMini{flex:0 0 220px}
  .cal-legend{margin-top:0;border-top:0;padding-top:0;flex:1}
  .cal-gscroll{max-height:60vh}
  .cal-mcell{min-height:64px}
  .cal-ev.sm .cal-ev-t{display:none}
}
@media (max-width:640px){
  .cal-side{flex-direction:column}
  .cal-month{font-size:10px}
  .cal-mcell{min-height:52px;padding:2px 3px}
  .cal-ev.sm .cal-ev-n{display:none}
  .cal-ev.sm{width:8px;height:8px;border-radius:50%;background:var(--evc);border-left:0;padding:0;display:inline-block;margin:2px 1px 0}
  .cal-views button{padding:6px 9px;font-size:11px}
}

/* Calendar drag & drop rescheduling */
.cal-ev[draggable="true"]{cursor:grab}
.cal-ev.dragging{opacity:.45;cursor:grabbing}
.cal-gev.dragging{box-shadow:0 10px 24px rgba(15,23,42,.28);transform:scale(1.02)}
.cal-gcol.drop{background:linear-gradient(color-mix(in srgb,var(--accent) 7%, transparent) 0 0),
  repeating-linear-gradient(to bottom, transparent 0 43px, var(--line) 43px 44px)}
.cal-drop-line{position:absolute;left:2px;right:2px;height:0;border-top:2px solid var(--squid-magenta,#E5295C);z-index:5;pointer-events:none}
.cal-drop-line::before{content:'';position:absolute;left:-1px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--squid-magenta,#E5295C)}
.cal-mcell.drop,.cal-adcell.drop{outline:2px dashed var(--accent);outline-offset:-3px;background:var(--accent-soft)}
.cal-drag-badge{position:fixed;z-index:9999;background:#0f172a;color:#fff;font-size:10.5px;font-weight:800;
  padding:4px 10px;border-radius:99px;pointer-events:none;box-shadow:0 8px 20px rgba(15,23,42,.35);white-space:nowrap}
.cal-gev{transition:top .12s ease, box-shadow .12s ease}

/* SquidChat meetings in Calendar */
.cal-ev-meet{font-size:9px;margin-left:auto}
.cal-meet-opt{display:flex;align-items:center;gap:11px;margin-top:14px;border:1px dashed var(--line-strong);border-radius:11px;padding:11px 13px;cursor:pointer}
.cal-meet-opt:hover{border-color:#8b5cf6;background:#faf5ff}
.cal-meet-opt img{height:22px;width:auto}
.cal-meet-opt span{display:flex;flex-direction:column;gap:1px}
.cal-meet-opt b{font-size:12.5px}
.cal-meet-opt small{font-size:10.5px;color:var(--ink-3)}
.cal-meet{margin-top:14px;border:1px solid #e9d5ff;background:linear-gradient(135deg,#faf5ff,#fdf2f8);border-radius:12px;padding:12px 14px}
.cal-meet-h{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.cal-meet-h img{height:20px;width:auto}
.cal-meet-h b{font-size:12.5px}
.cal-meet-link{display:flex;flex-direction:column;gap:2px;background:#7c3aed;color:#fff;text-decoration:none;border-radius:9px;padding:9px 13px;font-weight:800;font-size:13px}
.cal-meet-link:hover{background:#6d28d9}
.cal-meet-link small{font-weight:500;font-size:9.5px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-meet-meta{display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;font-size:11px;color:var(--ink-2)}
.cal-meet-meta code{background:#fff;border:1px solid #e9d5ff;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}

/* ============================================================
   PRODUCT PACKAGES + MASS UPDATE (Products module)
   ============================================================ */
.pkg-list{display:flex;flex-direction:column;gap:8px}
.pkg-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--surface);cursor:pointer;text-align:left;width:100%}
.pkg-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(15,23,42,.08)}
.pkg-ic{width:44px;height:44px;flex:0 0 44px;border-radius:10px;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden}
.pkg-ic img{width:100%;height:100%;object-fit:cover}
.pkg-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pkg-tx b{font-size:13px;display:flex;align-items:center;gap:8px}
.pkg-off{font-style:normal;font-size:9px;font-weight:800;background:var(--surface-alt);border:1px solid var(--line-strong);border-radius:99px;padding:1px 8px;color:var(--ink-3);text-transform:uppercase}
.pkg-tx small{font-size:11px;color:var(--ink-2)}
.pkg-tx em{font-style:normal;font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pkg-edit{font-size:11px;font-weight:800;color:var(--accent-600);flex:0 0 auto}
.pkg-icup{position:relative;width:56px;height:56px;border:1px dashed var(--line-strong);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;background:var(--surface-alt)}
.pkg-icup img{width:100%;height:100%;object-fit:cover}
.pkg-icup input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pkg-sec-h{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--ink-3);margin:16px 0 8px;display:flex;justify-content:space-between}
.pkg-sec-h em{font-style:normal}
.pkg-addrow{position:relative;margin-bottom:8px}
.pkg-addrow input{width:100%;height:38px;border:1px solid var(--line);border-radius:9px;padding:0 12px;font-size:12.5px;box-sizing:border-box}
.pkg-sugg{position:absolute;left:0;right:0;top:40px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.18);z-index:30;overflow:hidden}
.pkg-sugg button{display:flex;flex-direction:column;width:100%;text-align:left;border:0;background:transparent;padding:8px 12px;cursor:pointer;gap:1px}
.pkg-sugg button:hover{background:var(--surface-alt)}
.pkg-sugg b{font-size:12px}.pkg-sugg small{font-size:10px;color:var(--ink-3)}
.pkg-line{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;margin-bottom:5px}
.pkg-line b{flex:1;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkg-qty{display:flex;align-items:center;gap:4px}
.pkg-qty button{width:24px;height:24px;border:1px solid var(--line);background:var(--surface);border-radius:6px;cursor:pointer;font-weight:800}
.pkg-qty input{width:52px;height:26px;text-align:center;border:1px solid var(--line);border-radius:6px}
/* POS packages */
.pos-cat-pkg{display:inline-flex;align-items:center;gap:6px;border:1px solid #c4b5fd!important;background:linear-gradient(135deg,#faf5ff,#ede9fe)!important;color:#6d28d9!important;font-weight:800!important}
.pos-cat-pkg b{background:#7c3aed;color:#fff;border-radius:99px;font-size:9px;padding:1px 6px}
.pos-pkg-list{display:flex;flex-direction:column;gap:8px}
.pos-pkg{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--surface);cursor:pointer;text-align:left;width:100%}
.pos-pkg:hover{border-color:#7c3aed;box-shadow:0 4px 14px rgba(124,58,237,.14)}
.pos-pkg-ic{width:42px;height:42px;flex:0 0 42px;border-radius:10px;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-size:19px;overflow:hidden}
.pos-pkg-ic img{width:100%;height:100%;object-fit:cover}
.pos-pkg-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pos-pkg-tx b{font-size:13px}.pos-pkg-tx small{font-size:10.5px;color:var(--ink-2)}
.pos-pkg-tx em{font-style:normal;font-size:10px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pos-pkg-add{font-size:11px;font-weight:800;color:#7c3aed;border:1px solid #ddd6fe;background:#f5f3ff;border-radius:99px;padding:5px 11px;flex:0 0 auto}
/* Mass Update */
.mu-wrap{width:min(1060px,97vw)!important;height:min(86vh,780px);display:flex;flex-direction:column}
.mu-sub{font-size:10.5px;color:var(--ink-3);display:block;margin-top:2px}
.mu-toolbar{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line)}
.mu-toolbar input{flex:1;height:36px;border:1px solid var(--line);border-radius:9px;padding:0 12px;font-size:12.5px}
.mu-toolbar b{font-size:11.5px;color:var(--ink-2);white-space:nowrap}
.mu-body{flex:1;display:grid;grid-template-columns:290px 1fr;min-height:0}
.mu-lp{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.mu-rp{display:flex;flex-direction:column;min-height:0}
.mu-ph{font-size:9.5px;font-weight:800;letter-spacing:.06em;color:var(--ink-3);padding:9px 14px;background:var(--surface-alt);border-bottom:1px solid var(--line);text-transform:uppercase}
.mu-list,.mu-elist{flex:1;overflow-y:auto;padding:8px}
.mu-pick{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:7px 9px;cursor:pointer}
.mu-pick:hover{background:var(--surface-alt)}
.mu-pick b{font-size:12px}.mu-pick span{font-size:10px;color:var(--ink-3)}
.mu-nil{padding:24px 14px;color:var(--ink-3);font-size:12px;text-align:center}
.muc{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:var(--surface)}
.muc-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.muc-head b{font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.muc-head small{font-size:9.5px;color:var(--ink-3)}
.muc-rm{border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;border-radius:7px;font-size:10px;font-weight:800;padding:4px 10px;cursor:pointer}
.muc-r1{display:grid;grid-template-columns:2fr 1.4fr .8fr .7fr;gap:8px;margin-bottom:8px}
.muc-r2{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.mf{display:flex;flex-direction:column;gap:3px}
.mf span{font-size:8.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.mf input,.mf select{height:32px;border:1px solid var(--line);border-radius:7px;padding:0 8px;font-size:12px;width:100%;box-sizing:border-box}
.mf-catrow{display:flex;align-items:center;gap:6px}
.muc-cat-nm{flex:1;min-width:0;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);border-radius:7px;height:32px;display:flex;align-items:center;padding:0 8px;background:var(--surface-alt)}
.mf-catbtn{border:1px solid var(--line);background:var(--surface);border-radius:7px;font-size:10px;font-weight:800;padding:0 10px;height:32px;cursor:pointer}
.mu-catlist{max-height:300px;overflow-y:auto;display:flex;flex-direction:column}
.mcp-item{text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:12.5px}
.mcp-item:hover{background:var(--surface-alt)}
@media (max-width:900px){
  .mu-body{grid-template-columns:1fr}
  .mu-lp{max-height:200px;border-right:0;border-bottom:1px solid var(--line)}
  .muc-r1,.muc-r2{grid-template-columns:1fr 1fr}
}

/* Mass Update — visual rework v84 */
.mu-selpill{display:inline-flex;align-items:center;gap:5px;background:var(--surface-alt);border:1px solid var(--line);border-radius:99px;padding:6px 13px;font-size:11px;color:var(--ink-2);white-space:nowrap}
.mu-selpill b{color:var(--ink);font-size:12px}
.mu-pick{border:1px solid transparent}
.mu-pick:hover{background:var(--accent-soft);border-color:var(--line)}
.mu-pick::after{content:'＋ Add';float:right;font-size:9.5px;font-weight:800;color:var(--accent-600);opacity:0;margin-top:2px}
.mu-pick:hover::after{opacity:1}
.muc{transition:border-color .15s ease, box-shadow .15s ease}
.muc.dirty{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.mf input.chg,.mf select.chg{border-color:var(--accent);background:var(--accent-soft);font-weight:700}
.mu-hint{font-size:11.5px;color:var(--ink-2);background:var(--surface-alt);border:1px solid var(--line);border-radius:9px;padding:9px 12px;margin:0 0 4px;line-height:1.5}
.mu-preview{margin-top:14px;font-size:11px;color:var(--ink-3);background:var(--surface-alt);border-radius:9px;padding:9px 12px;min-height:18px}
.mu-preview b{color:var(--ink-2)}
.mu-preview i{font-style:normal;display:inline-block;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2px 8px;margin:2px 3px 0 0;font-weight:700;color:var(--accent-600)}

/* Credit Notes — listing redesign v85 */
.cn-list{display:flex;flex-direction:column;gap:9px}
.cn-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid #e11d48;border-radius:12px;padding:12px 16px;transition:box-shadow .15s ease, transform .15s ease}
.cn-card:hover{box-shadow:0 8px 22px rgba(15,23,42,.09);transform:translateY(-1px)}
.cn-ic{width:42px;height:42px;flex:0 0 42px;border-radius:11px;background:linear-gradient(135deg,#fff1f2,#ffe4e6);border:1px solid #fecdd3;display:flex;align-items:center;justify-content:center}
.cn-ic b{font-size:12px;font-weight:900;color:#be123c;letter-spacing:.03em}
.cn-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.cn-l1{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cn-l1 strong{font-size:13.5px}
.cn-linked{font-size:10px;font-weight:700;color:var(--ink-3);background:var(--surface-alt);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.cn-l2{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-2);min-width:0}
.cn-l2 i{font-style:normal;color:var(--ink-3)}
.cn-avatar{width:20px;height:20px;flex:0 0 20px;border-radius:50%;background:var(--squid-navy-800,#12245A);color:#fff;font-size:8.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.cn-amt{text-align:right;flex:0 0 auto;display:flex;flex-direction:column}
.cn-amt b{font-size:14.5px;color:#be123c;white-space:nowrap}
.cn-amt small{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.cn-acts{flex:0 0 auto}
@media (max-width:680px){
  .cn-card{flex-wrap:wrap;gap:10px}
  .cn-main{flex:1 1 calc(100% - 56px)}
  .cn-amt{text-align:left;flex-direction:row;align-items:baseline;gap:6px}
  .cn-acts{width:100%}
  .cn-acts .btn{width:100%}
}
.cn-time{font-style:normal;font-size:10.5px;font-weight:700;color:var(--ink-3);background:var(--surface-alt);border-radius:5px;padding:1px 6px}
.pos-head-actions [data-packages]{border-color:#c4b5fd;background:linear-gradient(135deg,#faf5ff,#ede9fe);color:#6d28d9;font-weight:800}

/* ============================================================
   HOTEL MANAGEMENT — Mauzil (olive / teal / gold)
   ============================================================ */
.htl{--mz-olive:#5f6b3c;--mz-teal:#0d9488;--mz-gold:#c9a227;--mz-cream:#faf8f2}
.htl-gold{background:linear-gradient(135deg,#c9a227,#a8841a)!important;color:#fff!important;border:0!important;font-weight:800!important}
.htl-gold:hover{filter:brightness(1.06)}
.htl-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.htl-toolbar input{flex:1;min-width:220px;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 13px;font-size:12.5px}
.htl-seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.htl-seg button{border:0;background:var(--surface);padding:8px 15px;font-size:11.5px;font-weight:700;cursor:pointer;color:var(--ink-2)}
.htl-seg button.on{background:#0d9488;color:#fff}
.htl-count{font-size:11px;color:var(--ink-3);white-space:nowrap}
.htl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.htl-card{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);cursor:pointer;text-align:left;transition:box-shadow .15s ease, transform .15s ease}
.htl-card:hover{box-shadow:0 10px 26px rgba(95,107,60,.14);transform:translateY(-1px);border-color:#d9e0c8}
.htl-img{width:58px;height:58px;flex:0 0 58px;border-radius:12px;background:linear-gradient(135deg,#eef2e2,#e0ece9);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.htl-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.htl-img i{font-style:normal;font-size:22px}
.htl-img.big{width:52px;height:52px;flex:0 0 52px;font-size:24px}
.htl-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.htl-tx b{font-size:13.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.htl-feat{font-style:normal;font-size:9px;font-weight:800;color:#a8841a;background:#fdf6e3;border:1px solid #f0e2b6;border-radius:99px;padding:1px 8px}
.htl-tx small{font-size:11px;color:var(--ink-2)}
.htl-stars{color:#c9a227;letter-spacing:1px}
.htl-badges{display:flex;gap:6px}
.htl-mt{font-style:normal;font-size:9.5px;font-weight:800;text-transform:uppercase;border-radius:99px;padding:2px 9px;background:#e0ece9;color:#0f766e}
.htl-mt.villa{background:#eef2e2;color:#5f6b3c}
.htl-st{font-style:normal;font-size:9.5px;font-weight:800;border-radius:99px;padding:2px 9px}
.htl-st.on{background:#ecfdf5;color:#047857}.htl-st.off{background:var(--surface-alt);color:var(--ink-3)}
.htl-go{font-size:11px;font-weight:800;color:#0d9488;flex:0 0 auto}
/* sheet */
.htl-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;flex-wrap:wrap;background:linear-gradient(135deg,#faf8f2,#f2f6f0);border:1px solid #e7e3d4;border-radius:14px;padding:14px 18px}
.htl-sh-id{display:flex;align-items:center;gap:13px}
.htl-sh-id h2{margin:0;font-size:17px;display:flex;align-items:center;gap:9px}
.htl-sh-id small{font-size:11.5px;color:var(--ink-2)}
.htl-dirty{font-style:normal;font-size:9px;font-weight:800;text-transform:uppercase;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:99px;padding:2px 8px}
.htl-sh-cta{display:flex;gap:8px;flex-wrap:wrap}
.htl-gapflag{display:flex;align-items:center;gap:12px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:11px;padding:10px 15px;font-size:12.5px;font-weight:600;margin-bottom:12px}
.htl-tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);margin-bottom:14px;overflow-x:auto}
.htl-tabs button{border:0;background:transparent;padding:10px 15px;font-size:12.5px;font-weight:700;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap}
.htl-tabs button.active{color:#0d9488;border-bottom-color:#0d9488}
.htl-tabs button b{background:#e0ece9;color:#0f766e;border-radius:99px;font-size:9.5px;padding:1px 7px;margin-left:3px}
.htl-sec{font-size:10px;font-weight:800;letter-spacing:.06em;color:#5f6b3c;margin:18px 0 9px;display:flex;gap:10px;align-items:baseline}
.htl-sec:first-child{margin-top:0}
.htl-sec em{font-style:normal;font-weight:600;color:var(--ink-3);text-transform:none;letter-spacing:0}
.htl-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.htl-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.htl-row4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.htl-row6{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.htl-f textarea{min-height:74px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;font-family:inherit}
.htl-tabtools{display:flex;align-items:center;gap:12px;margin-bottom:11px;flex-wrap:wrap}
.htl-seagrp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--line);border-radius:11px;padding:9px 12px;margin-bottom:7px;background:var(--surface)}
.htl-seapill{--sc:#0d9488;display:inline-flex;align-items:center;font-size:11px;font-weight:800;color:#fff;background:var(--sc);border-radius:99px;padding:4px 12px}
.htl-seapill.sm{font-size:9.5px;padding:2px 9px}
.htl-searange{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;background:var(--surface-alt);border:1px solid var(--line);border-radius:8px;padding:4px 9px}
.htl-searange em{font-style:normal;font-size:9px;font-weight:800;color:#b45309}
.htl-searange button{border:0;background:transparent;cursor:pointer;font-size:11px;color:var(--ink-3);padding:0 2px}
.htl-searange button:hover{color:var(--ink)}
.htl-tar td{vertical-align:middle}
.htl-mode{font-style:normal;font-size:9px;font-weight:800;text-transform:uppercase;background:#e0ece9;color:#0f766e;border-radius:99px;padding:2px 8px;white-space:nowrap}
.htl-mode.unit{background:#eef2e2;color:#5f6b3c}
.htl-tag{font-style:normal;font-size:9px;font-weight:700;background:var(--surface-alt);border:1px solid var(--line);border-radius:99px;padding:1px 7px;margin:1px 2px 1px 0;display:inline-block;white-space:nowrap}
.htl-tag.new{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.htl-tag.mand{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.htl-imp td{background:#fdfaef!important}
.htl-imp td:first-child{border-left:3px solid #c9a227}
.htl-band{display:flex;align-items:center;gap:7px;font-size:12px;margin-bottom:6px}
.htl-band input{width:76px;height:32px;border:1px solid var(--line);border-radius:7px;padding:0 8px}
.htl-band input[data-bp]{width:110px}
.htl-modewrap{margin-top:6px}
.htl-repkpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:6px}
.htl-repkpis>div{border:1px solid var(--line);border-radius:11px;padding:12px;text-align:center;background:var(--surface)}
.htl-repkpis b{font-size:19px;display:block}
.htl-repkpis span{font-size:10px;color:var(--ink-3);text-transform:uppercase;font-weight:700;letter-spacing:.04em}
.htl-repkpis .bad{border-color:#fde68a;background:#fffbeb}
.htl-repkpis .bad b{color:#b45309}
.htl-formula td{background:var(--surface-alt)!important;font-size:10px;padding-top:2px!important}
.htl-formula code{font-size:10px;color:var(--ink-2);word-break:break-all}
.htl-badrow td{background:#fff8f1!important}
.htl-drop{display:flex;flex-direction:column;align-items:center;gap:4px;border:2px dashed #c9d4a3;background:#fbfcf6;border-radius:14px;padding:30px;cursor:pointer;position:relative;text-align:center}
.htl-drop:hover{border-color:#5f6b3c}
.htl-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.htl-drop b{font-size:13.5px}.htl-drop span{font-size:11px;color:var(--ink-3)}
.htl-aiwrap{width:min(1080px,97vw)!important;max-height:92vh;display:flex;flex-direction:column}
.htl-aibody{overflow-y:auto}
.htl-aiwarn{background:#fffbeb;border:1px solid #fde68a;border-radius:11px;padding:11px 15px;margin-bottom:6px}
.htl-aiwarn b{font-size:12px;color:#92400e}
.htl-aiwarn ul{margin:6px 0 0;padding-left:18px}
.htl-aiwarn li{font-size:11.5px;color:#78350f;margin-bottom:2px}
.htl-aisea{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:7px 11px;margin-bottom:6px}
.htl-aiinp{border:1px solid var(--line);border-radius:7px;height:30px;padding:0 8px;font-size:12px}
.htl-aiinp.nm{width:170px;font-weight:700}
.htl-aiinp.xs{width:56px}
.htl-aiinp.num{width:76px;text-align:right}
.htl-nomatch{border-color:#fca5a5!important;background:#fef2f2!important}
@media (max-width:900px){
  .htl-row4,.htl-row6{grid-template-columns:1fr 1fr}
  .htl-row3{grid-template-columns:1fr}
  .htl-sheet-head{flex-direction:column;align-items:stretch}
  .htl-sh-cta .btn{flex:1}
  .htl-repkpis{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){ .htl-grid{grid-template-columns:1fr} .htl-row2{grid-template-columns:1fr} }
/* Hotel list view (v89) */
.htl-ltab tbody tr{cursor:pointer}
.htl-ltab tbody tr:hover td{background:var(--surface-alt)}
.htl-lt-img{width:52px}
.htl-img.sm{width:38px;height:38px;flex:0 0 38px;border-radius:9px;font-size:16px;display:flex}

/* Hotel images gallery + room editing (v95) */
.htl-room-desc{max-width:280px;font-size:11px;color:var(--ink-2)}
.htl-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.htl-galitem{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);cursor:zoom-in;transition:box-shadow .15s ease}
.htl-galitem:hover{box-shadow:0 10px 24px rgba(15,23,42,.13)}
.htl-galitem img{width:100%;height:130px;object-fit:cover;display:block;background:linear-gradient(135deg,#eef2e2,#e0ece9)}
.htl-galitem.broken img{height:60px;opacity:.15}
.htl-galitem figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 10px}
.htl-galitem figcaption span{font-size:9.5px;color:var(--ink-3)}
.htl-tag.room{background:#e0ece9;border-color:#a7d3cd;color:#0f766e}
.htl-lb{position:relative;max-width:min(920px,94vw);max-height:90vh;display:flex;flex-direction:column;align-items:center}
.htl-lb img{max-width:100%;max-height:78vh;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.5);background:#fff}
.htl-lb-cap{margin-top:10px;display:flex;align-items:center;gap:10px;color:#fff;font-size:12px}
.htl-lb-x{position:absolute;top:-14px;right:-14px;width:34px;height:34px;border-radius:50%;border:0;background:#fff;font-size:18px;cursor:pointer;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.htl-lb-nav{position:absolute;top:45%;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:22px;cursor:pointer;z-index:2}
.htl-lb-nav.prev{left:-16px}.htl-lb-nav.next{right:-16px}
@media (max-width:680px){ .htl-gal{grid-template-columns:repeat(2,1fr)} .htl-lb-nav.prev{left:4px}.htl-lb-nav.next{right:4px} }

/* Availability planner + promotions (v97) */
.htl-avleg{display:flex;gap:9px;flex-wrap:wrap;font-size:10px;color:var(--ink-2);align-items:center}
.htl-avleg em{font-style:normal;display:inline-flex;align-items:center;gap:4px}
.htl-avleg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.htl-avwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.htl-av{border-collapse:collapse;width:100%}
.htl-av th,.htl-av td{border:1px solid var(--line);padding:0;font-size:10px}
.htl-av thead th{background:var(--surface-alt);padding:4px 2px;text-align:center;min-width:26px}
.htl-av thead th b{display:block;font-size:11px}
.htl-av thead th span{color:var(--ink-3);font-size:8px}
.htl-av th.rm,.htl-av td.rm{min-width:150px;max-width:190px;padding:6px 10px;text-align:left;background:var(--surface);position:sticky;left:0;z-index:2}
.htl-av td.av{height:30px;background:#d1fae5;cursor:crosshair;position:relative}
.htl-av td.av.we{background:#c2f0dc}
.htl-av td.av[data-slot]{background:var(--avc)!important;opacity:.92}
.htl-av td.av.sel{outline:2px solid #12245A;outline-offset:-2px;filter:brightness(1.12)}
.htl-avctx{position:absolute;z-index:3000;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:0 16px 40px rgba(15,23,42,.25);padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:220px}
.htl-avctx b{font-size:12px}.htl-avctx span{font-size:10.5px;color:var(--ink-2)}
.htl-avctx button{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 10px;font-size:12px;text-align:left;cursor:pointer}
.htl-avctx button:hover{background:var(--surface-alt)}
.htl-stpick{display:flex;flex-wrap:wrap;gap:7px}
.htl-stpick label{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:99px;padding:5px 11px;font-size:11.5px;cursor:pointer}
.htl-stpick label:has(input:checked){border-color:#12245A;background:var(--surface-alt);font-weight:700}
.htl-stpick i{width:11px;height:11px;border-radius:3px;display:inline-block}
.htl-avdot{width:11px;height:11px;border-radius:3px;display:inline-block;margin-left:6px;vertical-align:middle}
.htl-chkgrid{display:flex;flex-wrap:wrap;gap:6px}
.htl-chkgrid label{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:11.5px;cursor:pointer}
.htl-chkgrid label:has(input:checked){border-color:#0d9488;background:#e0ece9;font-weight:700}
.htl-onreq td{background:#f8fafc!important;color:var(--ink-3)}
.htl-tag.onreq{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
/* market grouping heads (v99) */
.htl-mkt-head{display:flex;align-items:center;gap:9px;margin:16px 0 8px}
.htl-mkt-head:first-of-type{margin-top:4px}
.htl-mkt-head i{width:13px;height:13px;border-radius:4px;display:inline-block}
.htl-mkt-head b{font-size:12.5px}
.htl-mkt-head span{font-size:10px;color:var(--ink-3)}
/* Rate calendar (v106) */
.htl-cal td.cal{height:34px;min-width:44px;text-align:center;font-size:10px;background:var(--surface);cursor:default;position:relative;padding:1px 2px}
.htl-cal td.cal.ok{background:#d1fae5;cursor:pointer}
.htl-cal td.cal.ok:hover{filter:brightness(1.05)}
.htl-cal td.cal.ok b{font-size:10.5px}
.htl-cal td.cal.blk{background:var(--avc);opacity:.85;color:#fff}
.htl-cal td.cal.blk s{opacity:.95}
.htl-cal td.cal.gap{background:#e5e7eb}
.htl-cal td.rm small{display:block;font-size:9px;color:var(--ink-3)}
.cal-ms{position:absolute;top:1px;right:2px;font-style:normal;font-size:7.5px;font-weight:800;background:#fff;color:#92400e;border-radius:4px;padding:0 3px;border:1px solid #fde68a}
/* profile check (v118) */
.htl-chk-ul{margin:0;padding-left:18px;font-size:12.5px;line-height:1.7}
.htl-chk-ul.bad li{color:#b91c1c}
.htl-chk-ul.warn li{color:#92400e}
.htl-chk-ul.tip li{color:var(--ink-2)}
/* image ops (v119) */
.htl-galitem{position:relative}
.htl-imgops{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s}
.htl-galitem:hover .htl-imgops{opacity:1}
.htl-imgops button{border:0;border-radius:7px;background:rgba(20,24,16,.72);color:#fff;font-size:13px;width:28px;height:26px;cursor:pointer}
.htl-imgops button:hover{background:rgba(20,24,16,.9)}
/* ===== Tools marketplace (v122) ===== */
.tl-ov{position:fixed;inset:0;background:rgba(20,24,16,.45);backdrop-filter:blur(3px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}
.tl-ov.inner{z-index:1300}
.tl-win{background:#fff;border-radius:16px;width:min(1060px,96vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(20,24,16,.35);overflow:hidden}
.tl-win.small{width:min(560px,94vw)}
.tl-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e7e9df}
.tl-head h3{margin:0;font-size:17px}
.tl-eyebrow{margin:0;font-size:10px;letter-spacing:.14em;color:#b8860b;font-weight:700}
.tl-x{border:1px solid #dfe3d3;background:#fff;border-radius:9px;padding:6px 11px;cursor:pointer;font-size:13px}
.tl-x:hover{background:#f6f7f2}
.tl-body{padding:18px 20px;overflow:auto}
.tl-sub{font-size:12.5px;color:#6b7280;margin:0 0 14px}
.tl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.tl-card{position:relative;text-align:left;border:1.5px solid #e7e9df;border-radius:14px;background:#fff;padding:16px 14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,transform .15s,box-shadow .15s}
.tl-card:hover{border-color:#0d9488;transform:translateY(-2px);box-shadow:0 10px 26px rgba(13,148,136,.14)}
.tl-card b{font-size:14px}
.tl-ic{font-size:24px}
.tl-tag{position:absolute;top:12px;right:12px;font-size:9.5px;font-weight:700;letter-spacing:.06em;color:#5f6b3c;background:#eef0e5;border-radius:99px;padding:3px 8px}
.tl-desc{font-size:11.5px;color:#6b7280;line-height:1.5}
.tl-open{font-size:11.5px;color:#0d9488;font-weight:700;margin-top:auto}
.tl-soon{opacity:.6;cursor:default}
.tl-soon:hover{transform:none;border-color:#e7e9df;box-shadow:none}
.tl-drop{display:flex;flex-direction:column;align-items:center;gap:5px;border:2px dashed #c9cfb6;border-radius:14px;padding:34px;cursor:pointer;background:#fbfcf8}
.tl-drop.on,.tl-drop:hover{border-color:#0d9488;background:#f0faf8}
.tl-drop input{display:none}
.tl-drop b{font-size:14px}
.tl-drop span{font-size:11.5px;color:#6b7280}
.tl-files{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.tl-file{display:flex;align-items:center;gap:12px;border:1px solid #e7e9df;border-radius:12px;padding:8px 12px;background:#fff}
.tl-file.drag{opacity:.4}
.tl-file.over{border-color:#0d9488;box-shadow:0 0 0 2px rgba(13,148,136,.2)}
.tl-grip{cursor:grab;color:#9aa284}
.tl-thumb{width:86px;min-height:56px;display:flex;align-items:center;justify-content:center}
.tl-cnv{max-width:86px;max-height:110px;border:1px solid #e7e9df;border-radius:6px;box-shadow:0 2px 8px rgba(20,24,16,.12)}
.tl-fmeta{flex:1;min-width:0}
.tl-fmeta b{font-size:12.5px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-fmeta span{font-size:11px;color:#6b7280}
.tl-fops{display:flex;gap:4px}
.tl-fops button{border:1px solid #dfe3d3;background:#fff;border-radius:8px;width:30px;height:28px;cursor:pointer}
.tl-fops button:hover{background:#f6f7f2}
.tl-foot{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #e7e9df}
.tl-hint{font-size:11.5px;color:#6b7280}
.tl-btn{border:1px solid #dfe3d3;background:#fff;border-radius:10px;padding:9px 15px;font-size:12.5px;cursor:pointer;font-weight:600}
.tl-btn:hover{background:#f6f7f2}
.tl-btn.brand{background:#0d9488;border-color:#0d9488;color:#fff;margin-left:auto}
.tl-btn.brand:hover{background:#0b7f74}
.tl-btn:disabled{opacity:.5;cursor:default}
.tl-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid #e7e9df;border-radius:12px;background:#fbfcf8;margin-bottom:12px;font-size:12px}
.tl-toolbar>button{border:1px solid #dfe3d3;background:#fff;border-radius:9px;padding:7px 11px;cursor:pointer;font-size:12px}
.tl-toolbar>button.on{background:#0d9488;border-color:#0d9488;color:#fff}
.tl-toolbar label{display:flex;align-items:center;gap:5px;color:#374151}
.tl-sep{width:1px;height:22px;background:#e7e9df}
.tl-stage{max-height:62vh;overflow:auto;background:#eceee4;border-radius:12px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:20px}
.tl-page{position:relative;background:#fff;box-shadow:0 6px 22px rgba(20,24,16,.2)}
.tl-page.cropped{outline:3px dashed #b8860b}
.tl-layer{position:absolute;inset:0}
.tl-white{position:absolute;background:#fff;outline:1px dashed rgba(13,148,136,.55)}
.tl-croprect{position:absolute;outline:2px dashed #b8860b;background:rgba(184,134,11,.08)}
.tl-text{position:absolute;min-width:12px;line-height:1.25;font-family:Helvetica,Arial,sans-serif;outline:1.5px dashed rgba(13,148,136,.7);background:rgba(255,255,255,.01);padding:0 1px;cursor:text;white-space:pre-wrap}
.tl-sig{position:absolute;cursor:move;outline:1.5px dashed rgba(13,148,136,.5)}
.tl-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.tl-pg{position:relative;border:2px solid #e7e9df;border-radius:10px;padding:6px;cursor:pointer;display:flex;justify-content:center;background:#fff}
.tl-pg canvas{max-width:100%;border-radius:4px}
.tl-pg span{position:absolute;bottom:6px;right:8px;font-size:10.5px;font-weight:700;color:#fff;background:rgba(20,24,16,.6);border-radius:6px;padding:1px 7px}
.tl-pg.sel{border-color:#0d9488;box-shadow:0 0 0 2px rgba(13,148,136,.25)}
.tl-qr{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.tl-qrout{display:flex;align-items:center;justify-content:center;border:1.5px dashed #c9cfb6;border-radius:14px;min-height:260px;background:#fbfcf8}
.tl-lbl{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:#5f6b3c;display:block;margin-bottom:5px}
.tl-toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);background:#141810;color:#fff;border-radius:11px;padding:11px 18px;font-size:12.5px;opacity:0;transition:all .3s;z-index:1400;max-width:80vw}
.tl-toast.on{opacity:1;transform:translate(-50%,0)}
.tl-toast.err{background:#b91c1c}
@media (max-width:760px){ .tl-qr{grid-template-columns:1fr} }
/* tools v124: live tools + pins */
.tl-pin{position:absolute;top:10px;left:10px;font-size:15px;color:#b8860b;cursor:pointer;opacity:.45}
.tl-pin.on,.tl-pin:hover{opacity:1}
.tl-wx{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;margin-top:8px}
.tl-wxd{border:1px solid #e7e9df;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:3px;font-size:12px;background:#fff}
.tl-wxd.today{border-color:#0d9488;box-shadow:0 0 0 2px rgba(13,148,136,.15)}
.tl-wxi{font-size:22px}
.tl-fx{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
.tl-fx input,.tl-fx select{min-width:120px}
.tl-fxsw{cursor:pointer;font-size:18px;padding:8px;align-self:end;color:#0d9488}
.tl-fxout{margin-top:14px;border:1px solid #e7e9df;border-radius:12px;padding:14px;background:#fbfcf8;font-size:13.5px}
.tl-fxout .big{font-size:19px;color:#0d9488}
.tl-fxgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-top:12px}
.tl-fxr{border:1px solid #e7e9df;border-radius:10px;padding:8px 12px;font-size:12px;display:flex;justify-content:space-between;background:#fff}
.tl-mkt{border:1px solid #e7e9df;border-radius:12px;overflow:hidden;margin-top:8px}
.tl-mrow{display:grid;grid-template-columns:44px 1.6fr 1fr .8fr .8fr 1fr;gap:8px;padding:8px 12px;font-size:12.5px;border-top:1px solid #f0f1e9;align-items:center}
.tl-mrow:first-child{border-top:0}
.tl-mrow.head{background:#f6f7f2;font-weight:700;font-size:11px;letter-spacing:.04em}
.tl-mrow.past{opacity:.5}
.tl-mrow .up{color:#1a7f37;font-weight:700}.tl-mrow .dn{color:#b91c1c;font-weight:700}
.tl-msym{display:flex;align-items:center;gap:7px}
.tl-msym em{color:#6b7280;font-style:normal;font-size:11px}
.ta-r{text-align:right}
.tl-dash{margin:0 0 18px;border:1.5px dashed #c9cfb6;border-radius:14px;padding:12px 14px;background:#fbfcf8}
.tl-dashrow{display:flex;gap:10px;flex-wrap:wrap}
.tl-dashcard{position:relative;display:flex;align-items:center;gap:8px;border:1px solid #e7e9df;background:#fff;border-radius:11px;padding:9px 26px 9px 12px;cursor:pointer;font-size:12.5px}
.tl-dashcard:hover{border-color:#0d9488}
.tl-dashcard em{position:absolute;top:2px;right:7px;font-style:normal;color:#9aa284;cursor:pointer}
.tl-dashcard em:hover{color:#b91c1c}
/* ===== Mail / Communication (module 17, v127 — Outlook-grade) ===== */
.ml-app{display:flex;flex-direction:column;height:calc(100vh - 118px);min-height:540px;border:1px solid #e3e3e3;border-radius:10px;overflow:hidden;background:#faf9f8;font-family:'Segoe UI',system-ui,Arial,sans-serif}
.ml-svg{width:18px;height:18px;flex-shrink:0}
.ml-ribbon{display:flex;align-items:center;gap:4px;padding:6px 10px;background:linear-gradient(#fff,#f3f2f1);border-bottom:1px solid #e1dfdd;box-shadow:0 1px 0 #edebe9}
.ml-rb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:58px;height:56px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-size:11px;color:#323130;line-height:1.15;padding:4px 8px}
.ml-rb .rb{width:20px;height:20px}
.ml-rb span{text-align:center}
.ml-rb:hover:not(:disabled){background:#eef6fc;border-color:#c7e0f4}
.ml-rb:disabled{opacity:.4;cursor:default}
.ml-rb.primary{background:#0a6cf5;color:#fff;min-width:64px}
.ml-rb.primary:hover{background:#0958ce}
.ml-rb.icon{min-width:42px;height:56px}
.ml-rb.icon.on{background:#eef6fc;border-color:#c7e0f4;color:#0a6cf5}
.ml-rgrp{display:flex;gap:2px;padding:0 2px}
.ml-rsep{width:1px;height:44px;background:#e1dfdd;margin:0 4px}
.ml-searchwrap{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #d1d1d1;border-radius:18px;padding:0 14px;height:34px}
.ml-searchwrap .sr{width:15px;height:15px;color:#605e5c}
.ml-searchwrap input{border:0;outline:0;width:210px;font-size:13px;background:transparent}
.ml-body{display:grid;grid-template-columns:248px 400px 1fr;flex:1;min-height:0}
.ml-body.nopane{grid-template-columns:248px 1fr}
.ml-body.nopane .ml-readp{display:none}
/* tree */
.ml-tree{background:#f3f2f1;border-right:1px solid #e1dfdd;overflow:auto;padding-bottom:14px}
.ml-treeload,.ml-noacc{padding:20px;color:#605e5c;font-size:13px;text-align:center}
.ml-noacc{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:30px}
.ml-noacc .ml-svg{width:40px;height:40px;color:#a19f9d}
.ml-treehd{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 6px;font-size:11px;font-weight:700;letter-spacing:.04em;color:#605e5c;text-transform:uppercase}
.ml-treeadd{border:0;background:transparent;cursor:pointer;color:#0a6cf5;padding:2px;border-radius:5px}
.ml-treeadd .ml-svg{width:18px;height:18px}
.ml-treeadd:hover{background:#e1dfdd}
.ml-acch{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:0;background:transparent;padding:9px 12px;cursor:pointer}
.ml-acch:hover{background:#eae9e8}
.ml-acc.open>.ml-acch{background:#eef6fc}
.ml-accava{width:30px;height:30px;border-radius:50%;background:#0a6cf5;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}
.ml-acctxt{flex:1;min-width:0;display:flex;flex-direction:column}
.ml-acctxt b{font-size:13px;color:#201f1e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-acctxt small{font-size:11px;color:#605e5c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-acccar{color:#605e5c;font-size:11px}
.ml-folders{padding:2px 0 6px}
.ml-fold{width:100%;display:flex;align-items:center;gap:9px;text-align:left;border:0;background:transparent;padding:7px 14px 7px 26px;cursor:pointer;font-size:13px;color:#323130}
.ml-fold .fic{width:17px;height:17px;color:#605e5c}
.ml-fold:hover{background:#eae9e8}
.ml-fold.on{background:#dbeeff;color:#0a4fa8;font-weight:600;box-shadow:inset 3px 0 0 #0a6cf5}
.ml-fold.on .fic{color:#0a6cf5}
.ml-fold span{flex:1}
.ml-badge{background:#0a6cf5;color:#fff;border-radius:10px;font-size:10.5px;font-weight:700;padding:1px 7px;font-style:normal}
.ml-cnt{color:#a19f9d;font-size:11px}
/* list */
.ml-list{border-right:1px solid #e1dfdd;overflow:hidden;display:flex;flex-direction:column;background:#faf9f8}
.ml-listhd{display:flex;align-items:baseline;justify-content:space-between;padding:12px 16px 8px}
.ml-listhd b{font-size:15px;color:#201f1e}
.ml-listhd span{font-size:11.5px;color:#605e5c}
.ml-listload{padding:20px;color:#605e5c;font-size:13px}
.ml-scroll{overflow:auto;flex:1}
.ml-item{width:100%;display:flex;gap:9px;align-items:flex-start;text-align:left;border:0;border-bottom:1px solid #edebe9;background:transparent;padding:10px 14px 10px 8px;cursor:pointer;position:relative}
.ml-item:hover{background:#f3f2f1}
.ml-item.on{background:#dbeeff}
.ml-unreaddot{width:9px;height:9px;border-radius:50%;background:#0a6cf5;margin-top:15px;flex-shrink:0}
.ml-unreaddot.ghost{background:transparent}
.ml-ava{width:34px;height:34px;border-radius:50%;background:#7a7574;color:#fff;display:grid;place-items:center;font-weight:600;font-size:14px;flex-shrink:0;margin-top:2px}
.ml-item.unread .ml-ava{background:#0a6cf5}
.ml-imain{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ml-irow1{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ml-irow1 b{font-size:13px;color:#323130;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-item.unread .ml-irow1 b{color:#0a4fa8;font-weight:700}
.ml-idate{font-size:11px;color:#605e5c;flex-shrink:0}
.ml-isubj{font-size:12.5px;color:#323130;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-item.unread .ml-isubj{font-weight:600}
.ml-iprev{font-size:12px;color:#605e5c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-iprev .ip{width:13px;height:13px;vertical-align:-2px;color:#605e5c}
.ml-urg{color:#c50f1f;font-style:normal;font-weight:600}
/* reading pane */
.ml-readp{overflow:auto;background:#fff;display:flex;flex-direction:column}
.ml-empty{margin:auto;text-align:center;color:#a19f9d;padding:40px}
.ml-empty .ml-svg{width:46px;height:46px;margin-bottom:12px;color:#c8c6c4}
.ml-empty p{font-size:15px;color:#605e5c;margin:0 0 4px}
.ml-empty small{font-size:12px}
.ml-empty.small .ml-svg{width:34px;height:34px}
.ml-read{display:flex;flex-direction:column;height:100%;padding:20px 24px}
.ml-readhd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.ml-readhd h2{margin:0;font-size:19px;font-weight:600;color:#201f1e;line-height:1.3}
.ml-readacts{display:flex;gap:8px;flex-shrink:0}
.ml-readfrom{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #edebe9;margin-bottom:14px}
.ml-ava.big{width:42px;height:42px;font-size:16px}
.ml-fromtxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ml-fromtxt b{font-size:14px;color:#201f1e}
.ml-fromtxt small{color:#605e5c}
.ml-to{font-size:12px;color:#605e5c}
.ml-readdate{font-size:12px;color:#605e5c;flex-shrink:0}
.ml-atts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.ml-att{display:inline-flex;align-items:center;gap:7px;border:1px solid #e1dfdd;border-radius:8px;padding:7px 12px;font-size:12px;background:#faf9f8;text-decoration:none;color:#201f1e}
.ml-att .ml-svg{width:15px;height:15px;color:#0a6cf5}
.ml-att small{color:#605e5c}
.ml-att.cmp em{color:#c50f1f;cursor:pointer;font-style:normal;margin-left:4px}
.ml-frame{flex:1;border:0;min-height:220px;width:100%;background:#fff}
/* buttons */
.ml-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #d1d1d1;background:#fff;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;color:#201f1e}
.ml-btn .ml-svg{width:15px;height:15px}
.ml-btn:hover{background:#f3f2f1}
.ml-btn.primary{background:#0a6cf5;border-color:#0a6cf5;color:#fff}
.ml-btn.primary:hover{background:#0958ce}
.ml-btn.ghost{background:transparent;border-color:transparent}
.ml-btn.ghost:hover{background:#f3f2f1}
.ml-btn.save{background:#107c10;border-color:#107c10;color:#fff}
.ml-btn.save:hover{background:#0b5e0b}
.ml-btn.danger{background:#c50f1f;border-color:#c50f1f;color:#fff}
.ml-btn.ghost.danger{background:transparent;color:#c50f1f;border-color:transparent}
.ml-btn.danger:hover{background:#a80d1a}
/* overlays */
.ml-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(2px);z-index:1260;display:flex;align-items:center;justify-content:center;padding:20px}
/* compose window (Outlook) */
.ml-cwin{background:#fff;border-radius:8px;width:min(880px,96vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 25px 60px rgba(0,0,0,.35);overflow:hidden}
.ml-ctitle{display:flex;align-items:center;justify-content:space-between;background:#0a6cf5;color:#fff;padding:11px 16px;font-size:14px;font-weight:600}
.ml-ctitle span{display:flex;align-items:center;gap:8px}
.ml-ctitle .ml-svg{width:16px;height:16px}
.ml-cx{border:0;background:transparent;color:#fff;font-size:15px;cursor:pointer;width:28px;height:28px;border-radius:5px}
.ml-cx:hover{background:rgba(255,255,255,.2)}
.ml-cx.light{color:#fff}
.ml-cribbon{display:flex;align-items:center;gap:4px;padding:8px 14px;background:#f3f2f1;border-bottom:1px solid #e1dfdd;flex-wrap:wrap}
.ml-cribbon>button{min-width:32px;height:30px;border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer;font-size:13px}
.ml-cribbon>button:hover{background:#e1dfdd}
.ml-cribbon input[type=color]{width:30px;height:28px;border:1px solid #d1d1d1;border-radius:5px;background:#fff;cursor:pointer;padding:2px}
.ml-csep{width:1px;height:22px;background:#d1d1d1;margin:0 4px}
.ml-cattbtn{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;padding:6px 10px;border-radius:5px;cursor:pointer;color:#201f1e}
.ml-cattbtn:hover{background:#e1dfdd}
.ml-cattbtn .ml-svg{width:15px;height:15px;color:#0a6cf5}
.ml-curg{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;margin-left:auto;color:#323130}
.ml-cfields{padding:4px 16px}
.ml-cfrow{display:flex;align-items:center;gap:10px;border-bottom:1px solid #edebe9;padding:7px 0}
.ml-cfrow>label{width:58px;font-size:12.5px;color:#605e5c;flex-shrink:0}
.ml-cfrow input,.ml-cfrow select{flex:1;border:0;outline:0;font-size:13.5px;background:transparent;color:#201f1e}
.ml-cfrow.half{gap:0}
.ml-cfrow.half>div{flex:1;display:flex;align-items:center;gap:10px}
.ml-cfrow.half>div:first-child{border-right:1px solid #edebe9;padding-right:10px}
.ml-cfrow.half>div:last-child{padding-left:10px}
.ml-cfrow.half label{width:34px;font-size:12.5px;color:#605e5c}
.ml-cbody{flex:1;overflow:auto;min-height:240px;padding:16px;font:14px/1.6 'Segoe UI',Arial;outline:none;color:#242424}
.ml-cfoot{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid #e1dfdd;background:#faf9f8}
.ml-cmsg{font-size:12px;color:#c50f1f}
.ml-atts.cmp{margin:6px 0 0}
/* assistant (add account / manager) */
.ml-asst{background:#fff;border-radius:10px;width:min(600px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 60px rgba(0,0,0,.4)}
.ml-asst.wide{width:min(720px,96vw)}
.ml-asst-hd{background:linear-gradient(90deg,#1f6fe5,#3b82f6);color:#fff;padding:12px 18px;display:flex;align-items:center;justify-content:space-between}
.ml-asst-brand{font-size:16px;font-weight:800;letter-spacing:.02em}
.ml-asst-brand em{font-style:normal;font-weight:400;opacity:.9}
.ml-asst-body{padding:20px 22px;overflow:auto;background:linear-gradient(160deg,#fff 60%,#eef4ff)}
.ml-asst-intro{font-size:13px;color:#323130;margin:0 0 16px}
.ml-provgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ml-provcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:96px;border:1px solid #e1dfdd;border-radius:12px;background:#fff;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:transform .12s,box-shadow .12s,border-color .12s}
.ml-provcard:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(10,108,245,.16);border-color:var(--pc,#0a6cf5)}
.ml-provlogo{font-size:26px}
.ml-provcard b{font-size:13px;color:#201f1e}
.ml-provnote{margin:14px 0 0;font-size:12px;color:#605e5c;background:#fff7e6;border:1px solid #ffe1a8;border-radius:8px;padding:8px 12px}
.ml-asst-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ml-asst-col h4{margin:0 0 8px;font-size:12px;font-weight:700;color:#0a4fa8;text-transform:uppercase;letter-spacing:.03em}
.ml-asst-col label{display:block;font-size:12px;color:#323130;margin:8px 0 3px}
.ml-asst-col input,.ml-asst-col textarea,.ml-asst-col select{width:100%;border:1px solid #d1d1d1;border-radius:6px;padding:7px 10px;font-size:13px;outline:none;background:#fff}
.ml-asst-col input:focus,.ml-asst-col textarea:focus{border-color:#0a6cf5}
.ml-inline{display:flex;align-items:flex-end;gap:16px}
.ml-chk{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#323130;margin-top:8px;cursor:pointer}
.ml-chk.big{font-weight:600;margin:14px 0 6px}
.ml-typerow{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.ml-typerow>span{font-size:12px;font-weight:700;color:#0a4fa8;text-transform:uppercase}
.ml-radio{display:flex;align-items:center;gap:5px;font-size:13px;cursor:pointer}
.ml-testbox{background:#eaf5ff;border:1px solid #c7e0f4;border-radius:10px;padding:12px;margin-bottom:14px}
.ml-testbox>span{display:block;font-size:12px;font-weight:600;color:#0a4fa8;margin-bottom:8px}
.ml-testbtn{width:100%;background:#2aa3d6;border:0;color:#fff;border-radius:6px;padding:9px;font-size:13px;font-weight:600;cursor:pointer}
.ml-testbtn:hover{background:#1e8fbf}
.ml-testout{margin-top:8px;font-size:12px;border-radius:6px;padding:0;max-height:0;overflow:hidden;transition:all .2s}
.ml-testout.run,.ml-testout.ok,.ml-testout.err{padding:8px 10px;max-height:80px}
.ml-testout.run{background:#fff;color:#605e5c}
.ml-testout.ok{background:#dff6dd;color:#0b5e0b}
.ml-testout.err{background:#fde7e9;color:#a80d1a}
.ml-asst-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid #e1dfdd;background:#f3f2f1}
.ml-acctlist{display:flex;flex-direction:column}
.ml-acctrow{display:grid;grid-template-columns:1.2fr 1.4fr 30px;gap:10px;align-items:center;padding:12px 14px;border-radius:8px;cursor:pointer;border:1px solid transparent}
.ml-acctrow.head{font-size:11px;font-weight:700;color:#605e5c;text-transform:uppercase;letter-spacing:.04em;cursor:default;padding:6px 14px}
.ml-acctrow:not(.head):hover{background:#eef6fc;border-color:#c7e0f4}
.ml-acctdesc{display:flex;align-items:center;gap:9px;font-size:13.5px;color:#201f1e;min-width:0}
.ml-acctlogo{width:26px;height:26px;border-radius:50%;background:#eef4ff;display:grid;place-items:center;font-size:13px;flex-shrink:0}
.ml-acctemail{font-size:13px;color:#605e5c;overflow:hidden;text-overflow:ellipsis}
.ml-acctgo{color:#605e5c;text-align:center}
.ml-defbadge{font-style:normal;font-size:10px;font-weight:700;color:#0a6cf5;background:#dbeeff;border-radius:9px;padding:1px 7px;margin-left:4px}
@media(max-width:980px){ .ml-body{grid-template-columns:210px 1fr} .ml-body .ml-readp{display:none} .ml-asst-cols{grid-template-columns:1fr} .ml-provgrid{grid-template-columns:repeat(2,1fr)} }
/* v129 mail additions */
.ml-check{width:15px;height:15px;margin-top:12px;flex-shrink:0;opacity:0;transition:opacity .12s;cursor:pointer;accent-color:#0a6cf5}
.ml-item:hover .ml-check,.ml-item.checked .ml-check,.ml-item.on .ml-check{opacity:1}
.ml-item.checked{background:#eef6fc}
.ml-asst-tabs{display:flex;gap:2px;background:#f3f2f1;border-bottom:1px solid #e1dfdd;padding:0 14px}
.ml-asst-tabs button{border:0;background:transparent;padding:11px 16px;font-size:13px;font-weight:600;color:#605e5c;cursor:pointer;border-bottom:2.5px solid transparent}
.ml-asst-tabs button.on{color:#0a6cf5;border-bottom-color:#0a6cf5}
.ml-asst-tabs button:hover{color:#201f1e}
.ml-sigwrap{position:relative}
.ml-sigwrap>button{border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer;font-size:12.5px;padding:6px 10px}
.ml-sigwrap>button:hover{background:#e1dfdd}
.ml-sigmenu{position:absolute;top:34px;left:0;background:#fff;border:1px solid #d1d1d1;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.18);min-width:220px;z-index:10;padding:5px;display:flex;flex-direction:column}
.ml-sigmenu button{border:0;background:transparent;text-align:left;padding:8px 12px;font-size:12.5px;border-radius:6px;cursor:pointer}
.ml-sigmenu button:hover{background:#eef6fc}
.ml-signone{font-size:11.5px;color:#605e5c;padding:8px 10px;display:block}
/* v130 mail refinements */
.ml-asst-hd.plain{background:#0a6cf5}
.ml-asst-hd.plain span{font-size:15px;font-weight:700}
.ml-accgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.ml-accsec h4{margin:0 0 10px;font-size:11.5px;font-weight:700;color:#0a4fa8;text-transform:uppercase;letter-spacing:.04em}
.ml-frow{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.ml-frow>label:first-child{width:88px;flex-shrink:0;font-size:12.5px;color:#323130;font-weight:600}
.ml-frow input,.ml-frow select{flex:1;border:1px solid #d1d1d1;border-radius:6px;padding:7px 10px;font-size:13px;outline:none;background:#fff}
.ml-frow input:focus{border-color:#0a6cf5}
.ml-seg{display:inline-flex;border:1px solid #d1d1d1;border-radius:7px;overflow:hidden}
.ml-seg button{border:0;background:#fff;padding:7px 22px;font-size:12.5px;font-weight:600;cursor:pointer;color:#323130}
.ml-seg button.on{background:#0a6cf5;color:#fff}
.ml-outhead{display:flex;align-items:center;justify-content:space-between;margin:16px 0 10px}
.ml-outhead h4{margin:0}
.ml-sigform{max-width:640px}
.ml-sigrow{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ml-sigrow>label:first-child{width:70px;font-size:12.5px;font-weight:600;color:#323130;flex-shrink:0}
.ml-sigrow input,.ml-sigrow select{flex:1;border:1px solid #d1d1d1;border-radius:6px;padding:7px 10px;font-size:13px;outline:none}
.ml-sigbody{border:1px solid #d1d1d1;border-radius:0 0 6px 6px;min-height:170px;padding:12px;background:#fff;font:13.5px/1.6 'Segoe UI',Arial;outline:none}
.ml-siglbl{font-size:14px;margin-left:2px}
.ml-sigsel{border:1px solid #d1d1d1;border-radius:6px;height:30px;font-size:12.5px;max-width:210px;background:#fff;padding:0 6px}
.ml-urgbtn{min-width:32px;height:30px;border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer;font-size:14px;filter:grayscale(1);opacity:.55}
.ml-urgbtn:hover{background:#e1dfdd}
.ml-urgbtn.on{filter:none;opacity:1;background:#fde7e9;border-color:#f1b8bd}
.ml-cwin.big{width:min(1020px,97vw);height:min(760px,94vh)}
.ml-bigbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#f3f2f1;border-bottom:1px solid #e1dfdd}
/* v131 POS: final screen split (buttons left / ticket right), clear basket, package animation */
.pos-modal-card.final.split{width:min(880px,96vw) !important;display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start;text-align:left}
.pos-modal-card.final.split .pos-final-left{display:flex;flex-direction:column;gap:14px}
.pos-modal-card.final.split .pos-success{text-align:center}
.pos-final-icons.stack{display:flex;flex-direction:column;gap:9px}
.pos-final-icons.stack button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:10px 13px;cursor:pointer}
.pos-final-icons.stack button:hover{border-color:#0d9488;background:#f0fdfa}
.pos-final-icons.stack button span{font-size:21px}
.pos-final-icons.stack button b{display:block;font-size:12.5px}
.pos-final-icons.stack button small{display:block;font-size:10.5px;color:#6b7280}
.pos-modal-card.final.split .pos-final-right{max-height:74vh;overflow:auto;border:1px solid #e5e7eb;border-radius:12px;padding:10px;background:#fafaf9}
@media(max-width:760px){ .pos-modal-card.final.split{grid-template-columns:1fr} }
.pos-clear-basket{width:100%;border:1.5px dashed #fca5a5;background:#fff5f5;color:#b91c1c;border-radius:10px;padding:8px;font-size:12px;font-weight:700;cursor:pointer;margin-bottom:8px}
.pos-clear-basket:hover{background:#fee2e2}
.pos-pkg-veil{position:fixed;inset:0;z-index:1400;background:rgba(15,23,42,.5);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}
.pos-pkg-anim{background:#fff;border-radius:18px;padding:26px 38px;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:260px;box-shadow:0 25px 60px rgba(0,0,0,.35)}
.pos-pkg-anim .pkg-box{font-size:44px;animation:pkgBounce .8s ease-in-out infinite}
.pos-pkg-anim .pkg-box.done{animation:pkgPop .4s ease-out;color:#15803d}
.pos-pkg-anim b{font-size:14px;color:#111827}
.pos-pkg-anim small{font-size:11.5px;color:#6b7280}
.pkg-prog{width:200px;height:8px;background:#e5e7eb;border-radius:99px;overflow:hidden}
.pkg-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0d9488,#14b8a6);border-radius:99px;transition:width .12s}
@keyframes pkgBounce{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}
@keyframes pkgPop{0%{transform:scale(.4)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
.pos-cn-row{border:2px solid #a855f7 !important;background:linear-gradient(135deg,#7c3aed12,#a21caf18);border-radius:14px}
/* v132 — CashUp Manager rebuild (faithful ref v484, enhanced) */
.cu-wrap{display:flex;flex-direction:column;gap:14px}
.cu-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #e7e9df;border-radius:14px;padding:12px 16px}
.cu-toolbar label{display:grid;gap:3px;font-size:10.5px;font-weight:800;text-transform:uppercase;color:#6b7280}
.cu-toolbar input{height:36px;border:1px solid #d1d5db;border-radius:10px;padding:0 8px}
.cu-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:2px}
.cu-kpis>div{background:#fff;border:1px solid #e7e9df;border-radius:14px;padding:12px 16px}
.cu-kpis span{display:block;font-size:10px;font-weight:900;text-transform:uppercase;color:#94a3b8;margin-bottom:3px}
.cu-kpis b{font-size:17px;color:#141810}
.cu-list{display:flex;flex-direction:column;gap:10px}
.cu-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;box-shadow:0 2px 8px rgba(15,23,42,.05)}
.cu-card-main{display:flex;align-items:flex-start;gap:14px;min-width:0}
.cu-ic{background:#1e3a5f;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:18px;flex-shrink:0}
.cu-info{min-width:0;flex:1}
.cu-r1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.cu-r1 strong{font-size:14px;color:#111827}
.cu-pill{border-radius:20px;padding:2px 10px;font-size:11px;font-weight:900;white-space:nowrap}
.cu-date{font-size:12px;color:#6b7280}
.cu-r2{font-size:12px;color:#374151;font-weight:700;margin-bottom:8px}
.cu-tiles{display:flex;gap:6px;flex-wrap:wrap}
.cu-tile{border-radius:8px;padding:5px 10px;min-width:90px}
.cu-tile span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;color:#94a3b8;margin-bottom:2px}
.cu-tile b{font-size:13px}
.cu-modal{background:#fff;border-radius:20px;max-width:820px;width:100%;margin:auto;overflow:hidden;display:flex;flex-direction:column;max-height:90vh}
.cu-mhead{background:#1e3a5f;padding:20px 24px;color:#fff;display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0}
.cu-mhead p{margin:0;font-size:11px;opacity:.7;text-transform:uppercase;font-weight:900}
.cu-mhead h2{margin:4px 0 2px;font-size:20px}
.cu-mhead>div>span{font-size:12px;opacity:.8}
.cu-mhead-a{display:flex;align-items:center;gap:10px}
.cu-mhead-a>button:first-child{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:9px;padding:7px 14px;font-size:12px;font-weight:800;cursor:pointer}
.cu-x{background:rgba(255,255,255,.15);border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer}
.cu-mbody{overflow:auto;flex:1;padding:20px;display:flex;flex-direction:column;gap:16px}
.cu-zgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:700px){ .cu-zgrid{grid-template-columns:1fr} }
.cu-zsec{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px 18px}
.cu-zsec>p{margin:0 0 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#dc2626}
.cu-zrow{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0}
.cu-zrow.top{border-top:1.5px solid #e5e7eb;margin-top:4px;padding-top:9px}
.cu-zrow span{font-size:12px;color:#475569}
.cu-zrow span.strong{color:#0f172a;font-weight:900}
.cu-diff{margin-top:8px;border:1.5px solid;border-radius:10px;padding:9px 12px;display:flex;justify-content:space-between;align-items:center}
.cu-coin{background:#fffbeb;border:1px solid #fde68a;border-radius:14px;padding:14px 18px}
.cu-coin>p{margin:0 0 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#b45309}
.cu-coin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:4px 14px}
.cu-coin-grid div{font-size:12px;color:#78350f;font-weight:700}
.cu-remarks{margin:8px 0 0;font-size:12px;color:#57534e}
.cu-sect{font-size:11px;font-weight:900;text-transform:uppercase;color:#374151;margin:0 0 10px}
.cu-bars{display:flex;align-items:flex-end;gap:8px;height:130px;padding:4px 0;overflow-x:auto}
.cu-bar{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:52px}
.cu-bar>div{width:32px;border-radius:6px 6px 0 0}
.cu-bar span{font-size:10px;color:#64748b;font-weight:700}
.cu-bar b{font-size:11px}
.cu-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.cu-extra>div{background:#f8fafc;border-radius:10px;padding:10px 12px}
.cu-extra span{font-size:10px;color:#64748b;font-weight:900;text-transform:uppercase;display:block}
.cu-extra b{font-size:15px;color:#374151}
.cu-mfoot{padding:14px 20px;border-top:1px solid #e5e7eb}
/* v133 — PDF Editor v2 (Sejda-class) */
.pe2{display:flex;flex-direction:column;min-height:420px}
.pe2-drop{border:2.5px dashed #c7d2fe;border-radius:16px;padding:60px 20px;text-align:center;cursor:pointer;background:#f8faff}
.pe2-drop.over{background:#eef2ff;border-color:#0a6cf5}
.pe2-drop-in b{display:block;font-size:16px;margin:6px 0 2px}
.pe2-drop-in span{font-size:12.5px;color:#6b7280}
.pe2-bar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:7px 10px;position:sticky;top:0;z-index:30}
.pe2-tb{border:1px solid transparent;background:transparent;border-radius:8px;padding:8px 11px;font-size:12.5px;font-weight:600;cursor:pointer;color:#1f2937;white-space:nowrap}
.pe2-tb:hover{background:#eef2ff}
.pe2-tb.on{background:#dbeafe;border-color:#93c5fd;color:#0a4fa8}
.pe2-dd{position:relative}
.pe2-menu{position:absolute;top:40px;left:0;background:#fff;border:1px solid #d1d5db;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.18);min-width:210px;z-index:60;padding:8px;display:flex;flex-direction:column;gap:2px}
.pe2-menu.wide{min-width:250px}
.pe2-menu b{font-size:9.5px;font-weight:900;letter-spacing:.05em;color:#94a3b8;padding:6px 8px 3px;text-transform:uppercase}
.pe2-menu>button,.pe2-mrow>button{border:0;background:transparent;text-align:left;padding:8px 10px;font-size:12.5px;border-radius:8px;cursor:pointer;flex:1}
.pe2-menu>button:hover,.pe2-mrow>button:hover{background:#eef2ff}
.pe2-mrow{display:flex;align-items:center;gap:6px}
.pe2-sw{display:inline-flex;gap:4px;padding-right:8px}
.pe2-sw i{width:15px;height:15px;border-radius:50%;border:1.5px solid #d1d5db;cursor:pointer;display:inline-block}
.pe2-sw i:hover{transform:scale(1.2)}
.pe2-zoom{display:inline-flex;align-items:center;gap:6px;border:1px solid #e5e7eb;border-radius:8px;padding:2px 6px}
.pe2-zoom button{border:0;background:transparent;font-size:15px;cursor:pointer;width:24px}
.pe2-zoom i{font-style:normal;font-size:11.5px;color:#6b7280;min-width:38px;text-align:center}
.pe2-save{background:#16a34a;border:0;color:#fff;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer}
.pe2-save:hover{background:#15803d}
.pe2-hint{font-size:11.5px;color:#6b7280;margin:8px 2px}
.pe2-pages{display:flex;flex-direction:column;gap:18px;align-items:center;background:#eceff3;border-radius:14px;padding:18px;max-height:72vh;overflow:auto}
.pe2-page{position:relative;box-shadow:0 4px 22px rgba(0,0,0,.16);background:#fff;flex-shrink:0}
.pe2-page canvas{display:block}
.pe2-layer{position:absolute;inset:0;cursor:crosshair}
.pe2-ghost{position:absolute;border:1.6px dashed #0a6cf5;background:#0a6cf51a;display:none;pointer-events:none}
.pe2-obj{position:absolute;touch-action:none}
.pe2-obj.sel{outline:1.6px dashed #0a6cf5;outline-offset:2px}
.pe2-wo{cursor:move}
.pe2-wo.patch{pointer-events:none}
.pe2-cell{min-width:24px;cursor:move;border:1.4px dashed transparent;border-radius:4px}
.pe2-cell:hover,.pe2-cell.sel{border-color:#60a5fa;background:#dbeafe33}
.pe2-txt{outline:none;white-space:pre-wrap;line-height:1.18;min-width:16px;padding:1px 3px;cursor:text}
.pe2-img{cursor:move}
.pe2-img img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.pe2-shape{cursor:move}
.pe2-shape svg{width:100%;height:100%;overflow:visible}
.pe2-sym{cursor:move}
.pe2-annot i{position:absolute;pointer-events:none}
.pe2-annot{cursor:move}
.pe2-freesvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pe2-freesvg.keep{pointer-events:auto;cursor:move}
.pe2-form{border:1.6px dashed #7c3aed;background:#7c3aed10;border-radius:6px;cursor:move;display:flex;align-items:center;justify-content:center}
.pe2-form em{font-style:normal;font-size:10.5px;font-weight:700;color:#6d28d9;pointer-events:none;padding:0 4px;overflow:hidden;white-space:nowrap}
.pe2-radio{width:16px;height:16px;border:2px solid #6d28d9;border-radius:50%;display:block}
.pe2-cb{width:15px;height:15px;border:2px solid #6d28d9;border-radius:3px;display:block}
.pe2-link{border:1.6px dashed #0a6cf5;background:#0a6cf510;border-radius:6px;cursor:move;display:flex;align-items:center;justify-content:center}
.pe2-link em{font-style:normal;pointer-events:none}
.pe2-rz{position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;background:#0a6cf5;border:2px solid #fff;border-radius:50%;cursor:nwse-resize;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.pe2-mini{position:absolute;display:flex;align-items:center;gap:2px;background:#fff;border:1px solid #cbd5e1;border-radius:9px;box-shadow:0 8px 24px rgba(0,0,0,.2);padding:3px 5px;z-index:80}
.pe2-mini button{border:1px solid transparent;background:transparent;border-radius:6px;min-width:27px;height:26px;font-size:12.5px;cursor:pointer}
.pe2-mini button:hover{background:#eef2ff;border-color:#c7d2fe}
.pe2-mini .pe2-move{cursor:move}
.pe2-colors{display:inline-flex;gap:3px;padding:0 4px}
.pe2-colors i{width:14px;height:14px;border-radius:50%;border:1.5px solid #d1d5db;cursor:pointer}
.pe2-colors i:hover{transform:scale(1.2)}
.pe2-ov{position:fixed;inset:0;z-index:1500;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}
.pe2-sigcard{background:#fff;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 25px 60px rgba(0,0,0,.4)}
.pe2-sigcard h4{margin:0;font-size:15px}
#peSigCv{border:1.6px dashed #cbd5e1;border-radius:10px;touch-action:none;cursor:crosshair}
.pe2-sigfoot{display:flex;gap:10px}
/* v134 — Hotels: tariff filter bar + group sub-headers + AI import extras */
.htl-tfl{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;text-transform:uppercase;color:#6b7280}
.htl-tfl select{height:30px;border:1px solid #d1d5db;border-radius:8px;padding:0 6px;font-size:12px;background:#fff;max-width:170px}
.htl-tarhead{display:flex;align-items:center;gap:8px;margin:14px 0 6px;padding:8px 12px;background:linear-gradient(135deg,#1e3a5f,#27496d);color:#fff;border-radius:10px;font-size:13px;position:sticky;top:0;z-index:5}
.htl-tarhead b{font-size:13.5px}
.htl-tarhead em{font-style:normal;font-size:11px;opacity:.75;margin-left:auto}
.htl-aiinp.xs{width:44px}
/* v143 — Offers tab (Test a price) */
.htl-offcard{border:1px solid #e5e7eb;border-radius:16px;padding:14px 16px;margin-bottom:12px;background:#fff}
.htl-offhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.htl-offgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:680px){ .htl-offgrid{grid-template-columns:1fr} }
.htl-offchip{border:1px solid #fde68a;background:#fffdf2;border-radius:12px;padding:9px 11px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.htl-offchip.off{border-color:#e5e7eb;background:#fafafa;opacity:.75;justify-content:space-between}
.htl-offchip label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;flex:1;min-width:0}
.htl-offchip b{font-size:12.5px;display:block}
.htl-offchip small{font-size:11px;color:#57534e;display:block}
.htl-offamt{background:#14532d;color:#fff;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:800;white-space:nowrap}

/* v151 — mini help icons + single-line field labels */
.htl-q{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:5px;
  border-radius:50%;background:#e2e8f0;color:#475569;font-size:9.5px;font-weight:700;font-style:normal;
  cursor:help;vertical-align:1px;flex:none}
.htl-q:hover{background:#0f6cbd;color:#fff}
.htl-f>span{display:flex;align-items:center;min-width:0}
.htl-f>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v154 — Test-a-price: shared criteria header stays pinned while results scroll */
.tp-head{position:sticky;top:0;z-index:6;background:#fff;padding:2px 0 12px;border-bottom:1px solid #eef0f3;margin-bottom:2px}
.pos-modal .wm-modal-body{overflow:auto}

/* v163 — inject-into-sheet busy overlay */
.ai-injov{position:absolute;inset:0;background:rgba(255,255,255,.82);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:40;border-radius:inherit}
.ai-injcard{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 12px 34px rgba(15,23,42,.16);
  padding:20px 26px;min-width:320px;text-align:center;font-size:13.5px}
.ai-injbar{height:8px;border-radius:6px;background:#eef0f3;margin-top:12px;overflow:hidden}
.ai-injbar > #aiInjFill{height:100%;width:4%;background:linear-gradient(90deg,#b45309,#f59e0b);border-radius:6px;transition:width .35s ease}

/* v164 — ported Statistics dashboard (from v146 branch) */
.htl-statcards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:680px){ .htl-statcards{grid-template-columns:repeat(2,1fr)} }
.htl-statcard{border:1.5px solid #e5e7eb;border-radius:14px;padding:12px 10px;background:#fff;cursor:pointer;text-align:center;transition:all .15s}
.htl-statcard b{display:block;font-size:24px;font-weight:900;color:#141810}
.htl-statcard span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}
.htl-statcard:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.07)}
.htl-statcard.on{border-color:#1e3a5f;box-shadow:0 0 0 2px #1e3a5f22}
.htl-statcard.bad b{color:#b91c1c}.htl-statcard.warn b{color:#b45309}.htl-statcard.good b{color:#15803d}
.htl-statfrow th{background:#f8fafc;padding:5px 8px}
.htl-statfrow input,.htl-statfrow select{width:100%;height:27px;border:1px solid #d1d5db;border-radius:7px;padding:0 6px;font-size:11.5px;background:#fff}
