/* ============================================================
   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.solo{grid-template-columns:1fr}
.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:minmax(0,1fr) 380px;grid-template-areas:"top summary" "lines summary";gap:16px;padding:18px;overflow:auto;align-items:start}
.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:4fr .6fr 1fr .95fr .95fr .5fr 1.1fr 1fr .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:#dc2626;display:inline-block}   /* v392: inactive = red */
.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}
/* v188: empty cell = NO DATA = no coloring. Only explicit stored slots paint
   (Freesales is now stored server-side and shows solid green like the rest). */
.htl-av td.av{height:30px;background:var(--surface,#fff);cursor:crosshair;position:relative}
.htl-av td.av.we{background:var(--surface-alt,#f6f7f9)}
.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 */
/* v376 (ref v501): confirmation split — actions in a LEFT column, virtual
   ticket centred in a scrollable RIGHT pane. The × must be absolute: as a
   static child of the grid card it grabbed the first cell and shifted the
   whole layout. The card itself scrolls (base .pos-modal-card ships
   overflow:hidden, which clipped everything below 86vh on phones). */
.pos-modal-card.final.split{position:relative;width:min(940px,96vw) !important;max-height:92vh;display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;align-items:start;text-align:left;padding:18px;overflow:auto}
.pos-modal-card.final.split>.pmc-x{position:absolute;top:12px;right:12px;z-index:3}
.pos-modal-card.final.split .pos-final-left{display:flex;flex-direction:column;gap:12px;min-width:0}
.pos-modal-card.final.split .pos-success{text-align:center;padding:10px 6px 0}
.pos-final-icons.stack{display:flex;flex-direction:column;gap:9px;padding:0;margin:0}
.pos-final-icons.stack button{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;width:100%;text-align:left;border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:11px 14px;cursor:pointer}
.pos-final-icons.stack button:hover{border-color:#0d9488;background:#f0fdfa}
.pos-final-icons.stack button span{font-size:20px;flex-shrink:0}
.pos-final-icons.stack button b{display:block;font-size:13px}
.pos-final-icons.stack button small{display:block;font-size:10.5px;color:#6b7280;margin-left:auto;text-align:right;flex-shrink:0}
.pos-modal-card.final.split .pos-final-right{max-height:76vh;overflow:auto;border:1.5px solid #e2e8f0;border-radius:12px;padding:12px;background:#f8fafc;min-width:0}
.pos-modal-card.final.split .pos-final-right .pos-ticket{width:min(330px,100%);margin:0 auto;box-shadow:0 10px 26px rgba(15,23,42,.08)}
@media(max-width:820px){
  .pos-modal-card.final.split{grid-template-columns:1fr;gap:12px;padding:14px}
  .pos-modal-card.final.split .pos-final-left{order:1}
  .pos-modal-card.final.split .pos-final-right{order:2;max-height:44vh}
  .pos-final-icons.stack button{min-height:46px}
}
.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}
/* v377: selected-client line with a remove × */
.pcl-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#fff;border:2px solid #e2e8f0;flex-shrink:0;box-shadow:0 2px 8px rgba(2,6,23,.10)}
.pos-client-line{display:flex;align-items:center;gap:10px;justify-content:space-between}
.pos-client-line .pcl-id{min-width:0}
.pos-client-line .pcl-id b,.pos-client-line .pcl-id small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-client-remove{flex-shrink:0;width:28px;height:28px;border:1px solid #fca5a5;background:#fff5f5;color:#b91c1c;border-radius:8px;font-size:16px;font-weight:800;cursor:pointer;line-height:1}
.pos-client-remove:hover{background:#fee2e2}
/* v377: wallet figures on client search rows */
.pmc-wallet-chip{display:inline-block;margin-top:5px;background:linear-gradient(135deg,#ecfeff,#e0f2fe);border:1px solid #7dd3fc;color:#075985;border-radius:8px;padding:2px 8px;font-size:10.5px;font-weight:800}
.pmc-nopos-chip{display:inline-block;margin-top:5px;margin-left:6px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:2px 8px;font-size:10.5px;font-weight:800}
/* v377: Cashless wallet modal */
.pos-modal-card.wallet{width:min(520px,100%)}
.pos-modal-card.wallet .pmc-list{max-height:44vh;overflow:auto}
.pos-wallet-card{position:relative;background:linear-gradient(135deg,#0f2557,#1d4ed8 60%,#2563eb);color:#fff;border-radius:16px;padding:14px 16px;cursor:pointer;box-shadow:0 16px 34px rgba(29,78,216,.28);user-select:none}
.pos-wallet-card .pwc-top{display:flex;align-items:center;gap:10px}
.pos-wallet-card .pwc-top img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#fff;flex-shrink:0}
.pos-wallet-card .pwc-top b{display:block;font-size:14.5px}
.pos-wallet-card .pwc-top small{display:block;font-size:11px;opacity:.85;letter-spacing:.08em}
.pos-wallet-card .pwc-spin{margin-left:auto;font-size:18px;animation:walletspin .8s linear infinite}
@keyframes walletspin{to{transform:rotate(360deg)}}
.pos-wallet-card .pwc-figs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.pos-wallet-card .pwc-figs>div{background:rgba(255,255,255,.12);border-radius:10px;padding:7px 9px}
.pos-wallet-card .pwc-figs span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;opacity:.8}
.pos-wallet-card .pwc-figs b{display:block;font-size:13.5px;margin-top:2px}
.pos-wallet-card .pwc-figs .avail{background:rgba(74,222,128,.25);outline:1.5px solid rgba(74,222,128,.65)}
.pos-wallet-card .pwc-nopos{margin-top:10px;background:#7f1d1d;border-radius:9px;padding:6px 9px;font-size:11.5px;font-weight:800;text-align:center}
.pos-wallet-card .pwc-hint{margin-top:9px;font-size:10px;opacity:.7;text-align:center}
.pos-wallet-badge{cursor:pointer}
.pcl-wallet{display:block;margin-top:3px;color:#075985;font-weight:800;font-size:11px}
.pcl-wallet b{color:#0c4a6e}
.btn.wallet-charge{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:0;font-weight:800}
.btn.wallet-charge[disabled]{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}
/* v379: FAST till (business unit NoPrint) */
.pos-client-btns .wallet-btn.wallet-solo{flex:1 1 100%}
.pos-quickdone{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.28);backdrop-filter:blur(2px);animation:pqdin .18s ease-out;pointer-events:none}
.pos-quickdone.out{animation:pqdout .5s ease forwards}
.pqd-card{background:#fff;border-radius:20px;padding:26px 40px;text-align:center;box-shadow:0 30px 70px rgba(2,6,23,.35)}
.pqd-card .pqd-check{width:64px;height:64px;margin:0 auto 10px;border-radius:50%;background:linear-gradient(135deg,#16a34a,#86efac);color:#fff;font-size:36px;font-weight:900;display:flex;align-items:center;justify-content:center}
.pqd-card b{display:block;font-size:19px;font-weight:900;color:#0f172a}
.pqd-card small{display:block;margin-top:3px;font-size:12.5px;color:#64748b;font-weight:700}
/* v382: MRA fiscal QR on the ticket preview */
.pos-ticket .tk-qr{margin-top:12px;text-align:center;border-top:1px dashed #cbd5e1;padding-top:10px}
.pos-ticket .tk-qr img{width:124px;height:124px;image-rendering:pixelated}
.pos-ticket .tk-qr small{display:block;margin-top:4px;font-size:9px;color:#475569;word-break:break-all;line-height:1.25}
/* v387: per-item note on the booking Summary */
.bka-sum-noterow td{padding:2px 10px 10px !important;border-top:0 !important}
.bka-inote{width:100%;border:1px dashed #cbd5e1;border-radius:8px;padding:7px 10px;font-size:12px;background:#f8fafc}
.bka-inote:focus{outline:none;border-color:#3b82f6;background:#fff}
/* v389: standby+pickup pair in the import table, auto-sync panel */
.pl-imtimes{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#64748b;font-weight:800}
.pl-imtimes input{width:86px}
.im-sync{margin-top:10px;padding:10px 12px;border:1px dashed #a855f7;border-radius:10px;background:#faf5ff}
.im-sync>b{font-size:12.5px;color:#6b21a8}
.im-sync-row{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}
.im-sync-row select,.im-sync-row input{height:32px;border:1px solid var(--line-strong,#cbd5e1);border-radius:8px;padding:0 8px;font-size:12px}
.im-sync #imSyncInfo{display:block;margin-top:6px;font-size:10.5px;line-height:1.5}
/* v390: import table — tabs, filters, saved/changed flags */
.im-toolbar{margin:8px 0 6px;display:flex;flex-direction:column;gap:6px}
.im-tabs{display:flex;gap:6px;flex-wrap:wrap}
.im-tab{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:5px 12px;font-size:11.5px;font-weight:800;color:#475569;cursor:pointer}
.im-tab.on{background:#12245a;border-color:#12245a;color:#fff}
.im-range{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}
.im-range input[type=date]{height:30px;border:1px solid #cbd5e1;border-radius:8px;padding:0 6px;font-size:12px}
#imTbl .im-th{cursor:pointer;user-select:none;white-space:nowrap}
#imTbl .im-th:hover{color:#12245a;text-decoration:underline}
#imTbl .im-fr th{padding:3px 6px;background:#f8fafc}
#imTbl .im-fr input,#imTbl .im-fr select{width:100%;min-width:64px;height:26px;border:1px solid #e2e8f0;border-radius:6px;font-size:11px;padding:0 6px;background:#fff}
.im-flag{font-size:9.5px;font-weight:900;border-radius:6px;padding:1px 6px;vertical-align:1px}
.im-flag.saved{background:#dcfce7;color:#166534}
.im-flag.chg{background:#fef3c7;color:#92400e}
tr.im-r-saved td{background:#f6fdf8}
tr.im-r-chg td{background:#fffdf3}
/* v392: transfer route swap */
button.bka-trswap{cursor:pointer;border:1px solid #cbd5e1;background:#fff;border-radius:999px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#12245a;align-self:start;margin-top:22px;transition:transform .15s ease, background .15s ease}   /* v393: sits on the segmented row, not mid-column */
button.bka-trswap:hover{background:#eef2ff;transform:rotate(180deg)}
/* v395: airport picker inside a transfer route point */
.bka-trair{width:100%;height:36px;border:1px solid var(--line-strong,#cbd5e1);border-radius:9px;padding:0 8px;font-size:12.5px;font-weight:700;background:#fff;color:#0f172a}
.bka-trair:focus{outline:none;border-color:#3b82f6}
.man-route select[data-manf$="Air"]{min-width:170px}
/* v396: manual rows mirroring an engine-quoted basket line */
.man-row.man-auto{border-left:3px solid #7c3aed;background:#fbf9ff}
.man-badge{display:inline-block;margin-top:4px;font-size:9.5px;font-weight:900;color:#5b21b6;background:#ede9fe;border-radius:6px;padding:1px 6px;white-space:nowrap}
/* v397: car rental — pick-up / drop-off points */
.bka-place{width:100%;height:36px;border:1px solid var(--line-strong,#cbd5e1);border-radius:9px;padding:0 9px;font-size:12.5px;background:#fff}
.bka-place:focus{outline:none;border-color:#3b82f6}
.bka-carpts{margin-top:8px;border-top:1px dashed #e2e8f0;padding-top:8px}
.man-carpt{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;color:#475569}
.man-carpt .bka-place{height:30px;min-width:190px;font-size:11.5px}
/* v399: till label for the paired customer display */
.pos-station{width:100%;margin:4px 0 10px;height:32px;border-radius:9px;border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.10);color:#fff;padding:0 10px;font-size:12px;font-weight:700}
.pos-station::placeholder{color:rgba(255,255,255,.55);font-weight:600}
.pos-station:focus{outline:none;border-color:#fff}
@keyframes pqdin{from{opacity:0}to{opacity:1}}
@keyframes pqdout{to{opacity:0}}
@media(max-width:520px){ .pos-wallet-card .pwc-figs{grid-template-columns:1fr 1fr} .pos-wallet-card .pwc-figs .avail{grid-column:1/-1} }
/* v374: two-step finalize status banner on the confirmation screen */
.pos-finalize-status{margin:10px 0 2px;padding:9px 12px;border-radius:10px;font-size:12.5px;font-weight:800;text-align:center;border:1.5px solid transparent}
.pos-finalize-status.busy{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.pos-finalize-status.ok{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}
.pos-finalize-status.err{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.pos-finalize-status button{margin-left:8px;background:#dc2626;color:#fff;border:none;border-radius:7px;padding:4px 12px;font-size:12px;font-weight:800;cursor:pointer}
/* 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}

/* ===== v190: Booking module filter bar ===== */
.bk-flt label{display:block;font-size:11px;font-weight:700;color:var(--ink-3,#6b7280);letter-spacing:.02em;margin-bottom:4px;text-transform:uppercase}
.bk-flt input{height:34px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 10px;font-size:13px;background:var(--surface,#fff);color:inherit;width:100%;box-sizing:border-box}
.bk-flt input[type="date"]{width:150px}
.bk-flt input:focus{outline:2px solid #12245A22;border-color:#12245A}
#bkCliRes button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line,#e5e7eb);background:none;padding:8px 10px;font-size:12.5px;cursor:pointer}
#bkCliRes button:hover{background:var(--surface-alt,#f6f7f9)}

/* ===== v192: Booking Assistant ===== */
.bka{max-width:1240px}
.bka-steps{display:flex;gap:8px;margin:6px 0 18px;flex-wrap:wrap}
.bka-steps button{display:flex;align-items:center;gap:9px;border:1px solid var(--line-strong,#d1d5db);background:var(--surface,#fff);border-radius:999px;padding:8px 16px 8px 9px;font-size:12.5px;font-weight:700;color:#6b7280;cursor:pointer}
.bka-steps button b{width:24px;height:24px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:12px}
.bka-steps button.active{border-color:#12245A;color:#12245A;box-shadow:0 2px 8px rgba(18,36,90,.12)}
.bka-steps button.active b{background:#12245A;color:#fff}
.bka-steps button.done{color:#15803d;border-color:#bbf7d0}
.bka-steps button.done b{background:#dcfce7;color:#15803d}
.bka-steps button:disabled{opacity:.5;cursor:not-allowed}
.bka-card{max-width:860px}
.bka-h{margin:0;font-size:19px;color:#141810}
.bka-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:10px}
.bka-clisearch{position:relative;max-width:460px}
.bka-clisearch svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#9ca3af}
.bka-clisearch input{width:100%;height:40px;border:1px solid var(--line-strong,#d1d5db);border-radius:10px;padding:0 12px 0 34px;font-size:13.5px;box-sizing:border-box}
.bka-clisearch input:focus{outline:2px solid #12245A22;border-color:#12245A}
.bka-clires{max-width:460px;position:relative}
.bka-clires button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line,#e5e7eb);background:var(--surface,#fff);padding:9px 12px;cursor:pointer;font-size:12.5px}
.bka-clires button:hover{background:var(--surface-alt,#f6f7f9)}
.bka-clires button small{display:block;color:#6b7280;font-size:11px}
.bka-clicard{display:flex;flex-direction:column;gap:2px;position:relative;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:10px;padding:12px 40px 12px 14px;max-width:460px;margin-top:12px}
.bka-clicard b{font-size:14px}.bka-clicard small{color:#166534;font-size:11.5px}
.bka-x{position:absolute;top:8px;right:8px;border:0;background:none;font-size:16px;font-weight:800;color:#9ca3af;cursor:pointer;line-height:1}
.bka-x:hover{color:#b91c1c}
.bka-empty{color:#9ca3af;font-size:12.5px;padding:10px}
.bka-grid{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
@media(max-width:1000px){.bka-grid{grid-template-columns:1fr}}
.bka-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.bka-cats button{border:1px solid var(--line-strong,#d1d5db);background:var(--surface,#fff);border-radius:999px;padding:8px 15px;font-size:12.5px;font-weight:700;cursor:pointer;color:#374151}
.bka-cats button.active{background:#12245A;border-color:#12245A;color:#fff}
.bka-search{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.bka-search input{flex:1;max-width:380px;height:36px;border:1px solid var(--line-strong,#d1d5db);border-radius:9px;padding:0 11px;font-size:13px}
.bka-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.bka-hcard{display:flex;gap:10px;align-items:center;border:1px solid var(--line-strong,#d1d5db);background:var(--surface,#fff);border-radius:11px;padding:8px;cursor:pointer;text-align:left}
.bka-hcard:hover{border-color:#12245A}
.bka-hcard.on{border-color:#12245A;box-shadow:0 0 0 2px #12245A22}
.bka-himg{position:relative;width:64px;height:52px;border-radius:8px;overflow:hidden;background:#eef0f4;flex:none;display:flex;align-items:center;justify-content:center}
.bka-himg i{font-style:normal;font-size:20px;color:#9ca3af}
.bka-himg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bka-htx b{display:block;font-size:12.5px;line-height:1.3}
.bka-htx small{color:#6b7280;font-size:11px}
.bka-avail{border:1px solid var(--line-strong,#d1d5db);border-radius:12px;background:var(--surface,#fff);padding:14px;margin-bottom:14px}
.bka-avail-head b{font-size:14.5px}.bka-avail-head small{display:block;color:#6b7280;font-size:11.5px;margin-bottom:10px}
.bka-avail-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.bka-avail-form label,.bka-guestform label,.bka-ages label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#6b7280}
.bka-avail-form input,.bka-avail-form select,.bka-guestform input,.bka-guestform select,.bka-ages select,.bka-trpoint input{height:34px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 9px;font-size:13px;background:var(--surface,#fff)}
.bka-avail-form input[type=number]{width:74px}
.bka-ages{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.bka-room{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line,#e5e7eb);padding:12px 2px;align-items:center}
.bka-room-tx b{font-size:13.5px}
.bka-room-tx small{display:block;color:#6b7280;font-size:11.5px;margin-top:2px}
.bka-meals{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:12px}
.bka-meals label{display:flex;align-items:center;gap:5px;cursor:pointer}
.bka-meals em{font-style:normal;color:#12245A;font-weight:700;font-size:11px}
.bka-room-cta{text-align:right;flex:none}
.bka-room-cta small{display:block;color:#9ca3af;font-size:10px;text-transform:uppercase;font-weight:800}
.bka-room-cta b{display:block;font-size:16px;margin:2px 0 6px}
.bka-basket{position:sticky;top:74px;border:1px solid var(--line-strong,#d1d5db);border-radius:13px;background:var(--surface,#fff);padding:12px;max-height:calc(100vh - 100px);overflow:auto}
.bka-bk-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #12245A;padding-bottom:8px;margin-bottom:6px}
.bka-bk-head b{font-size:13.5px}.bka-bk-head span{font-size:11px;color:#6b7280}
.bka-line{position:relative;border-bottom:1px dashed var(--line,#e5e7eb);padding:9px 2px}
.bka-line-top{display:flex;justify-content:space-between}
.bka-line-t{font-size:10px;font-weight:800;letter-spacing:.05em;color:#12245A;text-transform:uppercase}
.bka-line-n{display:block;font-size:12.5px;line-height:1.3}
.bka-line small{display:block;color:#6b7280;font-size:11px}
.bka-line-price{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:10.5px;font-weight:800;color:#6b7280;text-transform:uppercase}
.bka-line-price input{width:110px;height:30px;border:1px solid #d1d5db;border-radius:7px;padding:0 8px;font-size:13px;font-weight:700;text-align:right}
.bka-line-price input:focus{outline:2px solid #12245A22;border-color:#12245A}
.bka-bk-tot{margin-top:10px;font-size:12.5px}
.bka-bk-tot div{display:flex;justify-content:space-between;padding:4px 0;gap:10px}
.bka-bk-tot div span{color:#6b7280}
.bka-bk-tot .grand{border-top:2px solid #12245A;margin-top:5px;padding-top:8px;font-size:14.5px}
.bka-continue{width:100%;margin-top:10px}
.bka-guestform{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.bka-payopts{display:grid;gap:10px;max-width:520px}
.bka-payopts label{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line-strong,#d1d5db);border-radius:11px;padding:13px 14px;cursor:pointer}
.bka-payopts label.on{border-color:#12245A;box-shadow:0 0 0 2px #12245A22}
.bka-payopts b{display:block;font-size:13.5px}.bka-payopts small{color:#6b7280;font-size:11.5px}
.bka-sumgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:10px}
.bka-sumblk{border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:10px 12px}
.bka-sumblk label{display:block;font-size:10px;font-weight:800;text-transform:uppercase;color:#6b7280;letter-spacing:.05em;margin-bottom:3px}
.bka-sumblk small{display:block;color:#6b7280;font-size:11px}
.bka-trroute{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start}
.bka-trarrow{align-self:center;font-size:18px;font-weight:800;color:#12245A}
.bka-lbl{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;color:#6b7280;margin-bottom:5px}
.bka-trpoint .htl-seg{margin-bottom:6px}
.bka-trpoint input{width:100%;box-sizing:border-box}
.bka-trres{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--surface,#fff);border:1px solid var(--line-strong,#d1d5db);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:220px;overflow:auto}

/* ===== v193: Mauzil-style room cards in the booking assistant ===== */
.bka-roomcard{display:flex;justify-content:space-between;gap:16px;border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:14px;margin-top:10px;background:var(--surface,#fff)}
.bka-roomcard .bka-room-tx{flex:1;min-width:0}
.bka-sub{margin-top:10px}
.bka-sub h5{margin:0 0 6px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#6b7280}
.bka-meals{display:flex;gap:8px;flex-wrap:wrap}
.bka-meals label{display:flex;align-items:center;gap:7px;border:1px solid var(--line-strong,#d1d5db);border-radius:9px;padding:7px 11px;font-size:12px;cursor:pointer;background:var(--surface,#fff)}
.bka-meals label.selected{border-color:#12245A;box-shadow:0 0 0 2px #12245A1c}
.bka-meals label em{font-style:normal;font-weight:800;font-size:11.5px;color:#12245A}
.bka-promos{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.bka-promo{position:relative;display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line-strong,#d1d5db);border-radius:10px;padding:9px 11px;font-size:12px}
.bka-promo.inc{background:#f0fdf4;border-color:#bbf7d0;color:#166534;flex-direction:column;gap:2px;font-weight:700}
.bka-promo.inc em{font-style:normal;font-weight:600;font-size:10.5px;color:#15803d}
.bka-promo.opt{cursor:pointer;background:var(--surface,#fff)}
.bka-promo.opt.on{border-color:#12245A;box-shadow:0 0 0 2px #12245A1c}
.bka-promo.opt span b{display:block;font-size:12px;line-height:1.3}
.bka-promo.opt span small{color:#6b7280;font-size:10.5px}
.bka-promo.opt em{font-style:normal;font-weight:800;font-size:11.5px;color:#b91c1c;margin-left:auto;white-space:nowrap}
.bka-q{border:1px solid #d1d5db;background:#f6f7f9;border-radius:50%;width:18px;height:18px;font-size:11px;font-weight:800;color:#6b7280;cursor:pointer;flex:none;line-height:1}
.bka-room-cta del{display:block;color:#9ca3af;font-size:12px}
.bka-notes{cursor:help;color:#6b7280;font-size:10.5px;display:block;margin:-3px 0 5px}

/* ===== v195: pickup badge + catalogue refresh ===== */
.bk-pu{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#eef2ff;color:#12245A;font-size:11px;margin-left:5px;cursor:help}
.bka-refresh{margin-left:auto;border:1px dashed var(--line-strong,#d1d5db);background:var(--surface,#fff);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:700;color:#6b7280;cursor:pointer}
.bka-refresh:hover{color:#12245A;border-color:#12245A}
.bka-refresh:disabled{opacity:.6;cursor:wait}

/* ===== v198: booking confirmation (items by type) ===== */
.bka-conf-sec{margin-top:14px;border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:12px 14px}
.bka-conf-sec h4{margin:0 0 4px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#12245A}
.bka-conf-row{display:flex;justify-content:space-between;gap:14px;align-items:center;border-top:1px dashed var(--line,#e5e7eb);padding:10px 0}
.bka-conf-row:first-of-type{border-top:0}
.bka-conf-tx b{font-size:13.5px}
.bka-conf-tx small{display:block;color:#6b7280;font-size:11.5px;margin-top:2px}
.bka-conf-cta{text-align:right;flex:none;display:flex;align-items:center;gap:12px}
.bka-conf-cta b{font-size:14.5px}

/* ===== v203: batch update — greyed scopes + processing pane ===== */
.bt-off{opacity:.4;pointer-events:none;filter:grayscale(1)}
.bt-proc{border:1px solid var(--line-strong,#d1d5db);border-radius:12px;padding:14px 16px;background:var(--surface,#fff);animation:btIn .25s ease}
@keyframes btIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.bt-proc-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.bt-proc-head b{font-size:14px;flex:1}
.bt-proc-head span#btPPct{font-weight:800;font-size:13px;color:#12245A}
.bt-spin{width:16px;height:16px;border:3px solid #e5e7eb;border-top-color:#12245A;border-radius:50%;animation:btSpin .8s linear infinite;flex:none}
.bt-spin.done{animation:none;border-color:#16a34a;position:relative}
@keyframes btSpin{to{transform:rotate(360deg)}}
.bt-bar{height:10px;border-radius:999px;background:#eef0f4;overflow:hidden}
.bt-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#12245A,#3b82f6);transition:width .45s ease;position:relative;overflow:hidden}
.bt-bar-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:btShimmer 1.2s linear infinite}
@keyframes btShimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.bt-cur{margin:10px 0 8px;font-size:12.5px;animation:btPulse 1.6s ease infinite}
@keyframes btPulse{0%,100%{opacity:1}50%{opacity:.55}}
.bt-proclog{max-height:230px;overflow:auto;border-top:1px solid var(--line,#e5e7eb);padding-top:6px;font-size:12px}
.bt-line{padding:3px 0;border-bottom:1px dashed var(--line,#e5e7eb);animation:btIn .2s ease}

/* ===== v207: planning module ===== */
.pl-grid{border-collapse:collapse;width:100%;min-width:860px}
.pl-grid th,.pl-grid td{border:1px solid var(--line,#e5e7eb);vertical-align:top}
.pl-grid thead th{position:sticky;top:0;background:var(--surface,#fff);z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px 6px}
.pl-rh{background:#f8fafc;font-size:12px;font-weight:800;padding:8px 10px;text-align:left;min-width:130px;position:sticky;left:0;z-index:1}
.pl-dh.pl-today,.pl-rh.pl-today{background:#eef4ff;color:#12245A}
.pl-cell{min-width:110px;height:52px;padding:3px;cursor:cell}
.pl-cell:hover{background:#fafbff}
.pl-item{border-radius:6px;padding:3px 6px;margin-bottom:3px;cursor:pointer;font-size:11px;line-height:1.25;transition:transform .08s ease}
.pl-item:hover{transform:translateY(-1px)}
.pl-item b{display:block;font-size:11.5px}
.pl-item small{display:block;color:#4b5563;font-size:10px}
.pl-schedrow{display:flex;gap:8px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--line,#e5e7eb);font-size:12.5px}
.pl-schedrow small{flex:1}
.bt-report table td{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* v212: planning fluidity */
.pl-grid{transition:opacity .18s ease}

/* v213: planning toolbar combo */
#plBtns .pl-sel{height:36px;border:1px solid var(--line-strong,#d1d5db);border-radius:9px;padding:0 12px;font:600 12.5px/1 'Segoe UI',system-ui,sans-serif;color:#12245A;background:var(--surface,#fff);max-width:240px;cursor:pointer}
#plBtns .pl-sel:focus{outline:2px solid #12245A22}
#plBtns .htl-seg button{min-width:44px}

/* v215: planning status, dnd, card actions */
.pl-item{position:relative;user-select:none}
.pl-item.pl-dragging{opacity:.4}
.pl-cell.pl-drop{background:#eef4ff;outline:2px dashed #12245A55;outline-offset:-2px}
.pl-item .pl-act{position:absolute;top:2px;right:2px;display:none;gap:2px}
.pl-item:hover .pl-act{display:flex}
.pl-item .pl-act button{border:1px solid var(--line-strong,#d1d5db);background:#fff;border-radius:6px;font-size:11px;padding:1px 4px;cursor:pointer;line-height:1.3}
.pl-item .pl-act button:hover{background:#eef4ff}
.pl-st-cancelled{opacity:.55;text-decoration:none}
.pl-st-cancelled b{text-decoration:line-through}

/* ===== v217: planning list view, type badges, import wizard ===== */
.pl-ty{display:inline-block;color:#fff;font-size:9px;font-weight:800;letter-spacing:.04em;border-radius:5px;padding:1px 5px;margin-right:4px;vertical-align:middle}
.pl-ph{display:block;font-weight:400;font-size:10px;color:#6b7280;margin-top:1px}
.pl-list{border-collapse:collapse;width:100%;min-width:980px}
.pl-list th,.pl-list td{border-bottom:1px solid var(--line,#e5e7eb);padding:7px 8px;text-align:left;vertical-align:top;font-size:12px}
.pl-list thead th{position:sticky;top:0;background:var(--surface,#fff);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;z-index:1}
.pl-list tbody tr:hover{background:#fafbff}
.pl-list td b{font-size:12.5px}
.pl-list td small{display:block;color:#6b7280;font-size:10.5px;margin-top:1px}
.pl-list input[type=time]{width:88px;height:28px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;padding:0 4px;font-size:11.5px}
.pl-list input[type=text]{height:28px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;padding:0 6px;font-size:11.5px}
.pl-list select{height:28px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;font-size:11.5px;max-width:150px}
.pl-list tr.pl-st-4 td{opacity:.55}
.pl-list tr.pl-st-4 td b{text-decoration:line-through}
.pl-lact{white-space:nowrap}
.pl-lact button{border:1px solid var(--line-strong,#d1d5db);background:#fff;border-radius:7px;font-size:12px;padding:2px 6px;cursor:pointer;margin-left:3px}
.pl-lact button:hover{background:#eef4ff}
.pl-st-cancelled b{text-decoration:line-through}

/* v218: one-row planning toolbar, period at top right */
.pl-period{display:flex;gap:8px;align-items:center}
#plBtns{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin:2px 0 10px}
#plBtns::-webkit-scrollbar{height:6px}
#plBtns .btn,#plBtns .pl-sel{flex:0 0 auto}

/* ===== v220: flight board + list bubbles ===== */
.fl-bar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.fl-bar input[type=date]{height:34px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 8px}
.fl-board{background:#0b1220;border-radius:12px;padding:6px;min-height:180px;max-height:56vh;overflow:auto}
.fl-empty{color:#93a4c3;text-align:center;padding:40px 10px;font-size:13px}
.fl-tbl{width:100%;border-collapse:collapse;font:12.5px/1.35 'Segoe UI',system-ui,sans-serif}
.fl-tbl thead th{position:sticky;top:0;background:#0b1220;color:#7d8db1;font-size:10px;text-transform:uppercase;letter-spacing:.09em;text-align:left;padding:8px 8px;z-index:1}
.fl-tbl td{padding:7px 8px;border-top:1px solid #1c2740;color:#e7ecf7;vertical-align:middle}
.fl-dir{font-size:14px}
.fl-no{font-weight:800;letter-spacing:.03em;font-family:'Consolas','Segoe UI',monospace;color:#ffd76a}
.fl-air{display:flex;align-items:center;gap:7px;min-width:130px}
.fl-air img{height:18px;width:auto;max-width:52px;object-fit:contain;background:#fff;border-radius:4px;padding:1px 3px}
.fl-iata{font-weight:800;color:#9fd0ff}
.fl-t{font-family:'Consolas',monospace;font-size:13px}
.fl-est{color:#ffd76a}
.fl-dl.late{color:#ff9d9d;font-weight:800}
.fl-dl.early{color:#8be3a8;font-weight:800}
.fl-st{display:inline-block;border-radius:999px;padding:2px 10px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:#233150;color:#c7d3ec}
.fl-st.ok{background:#0d3a24;color:#7bf1a8}
.fl-st.bad{background:#46121a;color:#ff9d9d}
.fl-st.warn{background:#4a3410;color:#ffd76a}
.fl-st.info{background:#12304d;color:#8ecdff}
.fl-st.brd{background:#31174d;color:#d3b3ff}
.fl-r{border:1px solid #2a3a5f;background:#141e35;color:#c7d3ec;border-radius:7px;padding:2px 6px;cursor:pointer}
.fl-r:hover{background:#1d2a48}
.pl-bub{display:block;width:fit-content;max-width:260px;border-radius:10px;padding:2px 9px;font-size:10.5px;line-height:1.35;margin-top:3px}
.pl-bub-rem{background:#fef9c3;color:#854d0e}
.pl-bub-int{background:#dbeafe;color:#1e40af}
.pl-route{color:#334155;font-weight:600}

/* v221: flight status chips on planning items */
.pl-fst{display:inline-block;font-size:11px;line-height:1;vertical-align:-1px;filter:saturate(1.2)}
.pl-fst-bad{color:#dc2626}.pl-fst-warn{color:#d97706}.pl-fst-ok{color:#16a34a}.pl-fst-info{color:#2563eb}
.pl-fst-sch{color:#64748b}

/* ===== v224: client editor as a full second plane ===== */
.pos-modal.crm-plane{align-items:stretch;justify-content:flex-end;padding:0}
.crm-plane .pos-modal-card.crm-modal{width:min(1240px,100vw);max-width:100vw;height:100vh;max-height:100vh;border-radius:0;display:flex;flex-direction:column;animation:crmSlide .22s ease;box-shadow:-18px 0 40px rgba(2,6,23,.25)}
.crm-plane .crm-modal-body{flex:1;overflow:auto}
@keyframes crmSlide{from{transform:translateX(48px);opacity:.5}to{transform:none;opacity:1}}
.crm-checks{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12.5px}
.crm-checks label{display:flex;gap:7px;align-items:center;font-weight:600;color:#1f2937}
.crm-grid textarea{width:100%;border:1px solid var(--line-strong,#d1d5db);border-radius:9px;padding:8px;font:12.5px/1.45 'Segoe UI',system-ui,sans-serif}
/* planning header filters */
.pl-hfrow th{padding:3px 6px !important;background:#f8fafc}
.pl-hf{width:100%;height:26px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;font-size:11px;padding:0 4px}
#plHideEmpty.on{background:#12245A;color:#fff;border-color:#12245A}

/* ===== v225: client editor as a routed page ===== */
.crm-editpage .crm-ep-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.crm-ep-main{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:16px}
.crm-ep-tabs{margin-bottom:14px}
.crm-ep-pane{animation:crmFade .15s ease}
.crm-editpage .crm-history-col{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden;position:sticky;top:12px;max-height:calc(100vh - 130px);display:flex;flex-direction:column}
.crm-editpage .crm-history-body{overflow:auto}
@media(max-width:1080px){.crm-editpage .crm-ep-grid{grid-template-columns:1fr}.crm-editpage .crm-history-col{position:static;max-height:340px}}
@keyframes crmFade{from{opacity:.4}to{opacity:1}}

/* ===== v226: pastel option cards in the client editor ===== */
.crm-optcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin:4px 0 6px}
.crm-opt{display:flex;gap:11px;align-items:flex-start;border:1.5px solid transparent;border-radius:12px;padding:11px 13px;cursor:pointer;transition:box-shadow .12s ease,border-color .12s ease;user-select:none}
.crm-opt input[type=checkbox]{appearance:auto;accent-color:#12245A;width:17px;height:17px;margin-top:2px;flex:0 0 auto;cursor:pointer}
.crm-opt span{display:block;min-width:0}
.crm-opt b{display:block;font-size:12.5px;font-weight:800;letter-spacing:.01em;color:#111827;line-height:1.3}
.crm-opt small{display:block;font-size:11px;line-height:1.45;color:#4b5563;margin-top:2px;font-weight:500}
.crm-opt:hover{box-shadow:0 2px 10px rgba(2,6,23,.08)}
.crm-opt:has(input:checked){border-color:#12245A55;box-shadow:inset 0 0 0 1px #12245A22}
.crm-opt-amber{background:#fef3c7}.crm-opt-amber input{accent-color:#b45309}
.crm-opt-blue{background:#dbeafe}.crm-opt-blue input{accent-color:#1d4ed8}
.crm-opt-violet{background:#ede9fe}.crm-opt-violet input{accent-color:#6d28d9}
.crm-opt-rose{background:#ffe4e6}.crm-opt-rose input{accent-color:#be123c}
.crm-opt-green{background:#dcfce7}.crm-opt-green input{accent-color:#15803d}

/* ===== v228: control-panel settings + user photo + status dot ===== */
.sets-cp{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:14px;align-items:start}
.sets-card{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:14px 16px}
.sets-card-h{display:flex;gap:11px;align-items:flex-start;border-bottom:1px solid var(--line,#e5e7eb);padding-bottom:10px;margin-bottom:6px}
.sets-ic{font-size:22px;line-height:1;background:#eef4ff;border-radius:10px;padding:8px}
.sets-card-h b{font-size:13.5px;display:block}
.sets-card-h small{color:#6b7280;font-size:11.5px;line-height:1.4;display:block;margin-top:1px}
.sets-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px dashed #eef0f4}
.sets-row:last-child{border-bottom:none}
.sets-row b{font-size:12.5px;font-weight:700}
.sets-row small{display:block;color:#6b7280;font-size:11px;margin-top:1px}
.sets-chip{border-radius:999px;padding:2px 11px;font-size:11px;font-weight:800}
.sets-chip.on{background:#dcfce7;color:#15803d}
.sets-chip.off{background:#f1f5f9;color:#64748b}
.sets-val{font-size:12.5px;font-weight:700;color:#12245A;text-align:right;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sets-mini-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin:10px 0 4px}
.usr-photo{width:96px;height:96px;border-radius:50%;overflow:hidden;margin:2px auto 12px;border:3px solid #eef4ff;box-shadow:0 2px 10px rgba(2,6,23,.12)}
.usr-photo img{width:100%;height:100%;object-fit:cover}
.usr-photo-ini{display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:#fff;background:linear-gradient(135deg,#12245A,#e5295c)}

/* ===== v234: listing filter combo + delay popup ===== */
#lmFS{height:36px;border:1px solid var(--line-strong,#d1d5db);border-radius:10px;background:var(--surface,#fff);font:600 12.5px 'Segoe UI',system-ui,sans-serif;color:#111827;padding:0 10px;margin-right:10px;min-width:180px;cursor:pointer}
#lmFS:focus{outline:2px solid #12245A33;border-color:#12245A}
.dl-warnbar{background:#fef3c7;border:1px solid #f59e0b55;color:#92400e;font-weight:700;font-size:12.5px;border-radius:10px;padding:10px 13px;margin:0 0 12px}
.dl-tbl td{vertical-align:top;font-size:12px}
.dl-tbl small{color:#6b7280}
tr.dl-delay td:first-child{border-left:4px solid #f59e0b}
tr.dl-divert td:first-child{border-left:4px solid #7c3aed}
tr.dl-cancel td:first-child{border-left:4px solid #dc2626}
#plDelays{color:#b45309;font-weight:800}

/* v235 delay popup nav */
.dl-nav{display:flex;gap:8px;align-items:center;margin:0 0 10px}
.dl-nav input[type=date]{height:32px;border:1px solid var(--line-strong,#d1d5db);border-radius:9px;padding:0 8px;font:600 12.5px 'Segoe UI',system-ui,sans-serif}

/* v236 gsheet source */
.im-gsheet{margin-top:12px;padding:11px 13px;background:#f0fdf4;border:1px solid #86efac;border-radius:11px;font-size:12.5px}
.im-gsheet input{height:34px;border:1px solid var(--line-strong,#d1d5db);border-radius:9px;padding:0 10px;font:500 12px 'Segoe UI',system-ui,sans-serif}

/* v240 mapping assistant */
.ma-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 12px}
.ma-f{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;color:#374151}
.ma-f select{height:32px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;font-size:11.5px;padding:0 6px}

/* v243 transfer options */
.bka-tropts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;padding:8px 2px 2px;border-top:1px dashed #e5e7eb;margin-top:8px}
.bka-tropt{display:flex;gap:8px;align-items:flex-start;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;padding:7px 11px;cursor:pointer;font-size:12px}
.bka-tropt input{accent-color:#12245A;margin-top:2px}
.bka-tropt b{display:block;font-size:12px}
.bka-tropt small{color:#64748b;font-size:10.5px}
.bka-tropt:has(input:checked){border-color:#12245A;background:#eef4ff}

/* v247 fallback note */
.bka-fbnote{grid-column:1/-1;background:#eff6ff;border:1px solid #93c5fd;color:#1e3a8a;font-weight:700;font-size:12px;border-radius:10px;padding:9px 12px;margin:0 0 4px}

/* v252 market chip */
.bka-mkt{display:block;margin-top:4px;color:#1e3a8a;background:#eff6ff;border-radius:7px;padding:3px 8px;font-size:11px;width:fit-content}

/* ===== v256: Tour Activities management ===== */
.ta-wrap{display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px;align-items:start}
.ta-list-col{position:sticky;top:10px}
#taList{max-height:calc(100vh - 200px);overflow:auto;display:flex;flex-direction:column;gap:8px}
.ta-card{display:flex;gap:10px;background:var(--surface,#fff);border:1.5px solid var(--line,#e5e7eb);border-radius:12px;padding:9px;cursor:pointer;transition:border-color .12s}
.ta-card:hover{border-color:#94a3b8}
.ta-card.on{border-color:#12245A;box-shadow:inset 0 0 0 1px #12245A33}
.ta-thumb{width:56px;height:56px;border-radius:9px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;flex:0 0 auto}
.ta-thumb img{width:100%;height:100%;object-fit:cover}
.ta-tx b{font-size:12.5px;display:block;line-height:1.25}
.ta-tx small{display:block;color:#64748b;font-size:10.5px;margin-top:2px}
.ta-detail{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden}
.ta-hero{position:relative;min-height:150px;background:linear-gradient(120deg,#12245A,#1e3a8a)}
.ta-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4}
.ta-hero-tx{position:relative;padding:22px}
.ta-hero-tx h2{color:#fff;margin:0 0 8px;font-size:20px}
.ta-chips{display:flex;flex-wrap:wrap;gap:6px}
.ta-chip{background:#ffffffd9;border-radius:999px;padding:3px 11px;font-size:11px;font-weight:800;color:#12245A}
.ta-days{margin-top:10px;display:flex;gap:4px}
.ta-day{width:30px;text-align:center;border-radius:7px;padding:2px 0;font-size:10px;font-weight:800;background:#ffffff33;color:#ffffff88}
.ta-day.on{background:#22c55e;color:#fff}
.ta-body{padding:16px 20px 22px}
.ta-desc{font-size:12.5px;line-height:1.6;color:#374151;white-space:pre-wrap}
.ta-segs{display:flex;flex-wrap:wrap;gap:6px}
.ta-segs .ta-chip{background:#eef4ff}
.ta-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.ta-gimg{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:#f1f5f9}
.ta-gimg img{width:100%;height:100%;object-fit:cover}
.ta-gimg span{position:absolute;top:5px;left:5px;background:#12245A;color:#fff;font-size:9px;font-weight:800;border-radius:6px;padding:2px 7px}
@media(max-width:1000px){.ta-wrap{grid-template-columns:1fr}.ta-list-col{position:static}}

/* v261 tour sheet */
.ta-hero.sm{min-height:110px}
.ta-days-dark .ta-day{background:#e2e8f0;color:#94a3b8}
.ta-days-dark .ta-day.on{background:#22c55e;color:#fff}

/* v262 tour sheet = hotels design */
.ta-daychips{display:flex;flex-wrap:wrap;gap:8px}
.ta-daychip{display:flex;gap:7px;align-items:center;border:1.5px solid var(--line-strong,#d1d5db);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;background:#fff;color:#64748b}
.ta-daychip.on,.ta-daychip:has(input:checked){background:#dcfce7;border-color:#22c55e;color:#15803d}
.ta-daychip input{accent-color:#15803d}
.ta-chip.dk{background:#eef4ff;color:#12245A}

/* ===== v264: field base (htl-f) + experience editor modal ===== */
.htl-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.htl-f>span{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#6b7280;display:flex;align-items:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.htl-f input,.htl-f select{height:34px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 10px;font-size:12.5px;width:100%;background:#fff;font-family:inherit}
.htl-f input:focus,.htl-f select:focus,.htl-f textarea:focus{outline:2px solid #12245A22;border-color:#12245A}
.htl-f input:disabled{background:#f3f4f6;color:#6b7280}
.htl-f textarea{width:100%}
.ta-modal-card{width:min(430px,94vw);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 18px 50px rgba(2,6,23,.35)}
.ta-modal-h{background:#12245A;color:#fff;padding:12px 16px;font-weight:800;font-size:14px;display:flex;justify-content:space-between;align-items:center}
.ta-modal-h button{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;line-height:1}
.ta-modal-b{padding:14px 16px;display:flex;flex-direction:column;gap:11px;max-height:74vh;overflow:auto}
.ta-modal-f{padding:11px 16px;background:#0b1830;display:flex;justify-content:flex-end;gap:8px}
.ta-checkrow{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;font-weight:700;color:#374151}
.ta-checkrow label{display:flex;gap:6px;align-items:center;cursor:pointer}
.ta-checkrow input{accent-color:#12245A}

/* v267 file reference + car seat offer */
.bka-fileref,.bka-carseat{border:1.5px solid var(--line,#e5e7eb);border-radius:12px;padding:12px 14px;margin:0 0 14px;background:#f8fafc}
.bka-carseat{background:#fffbeb;border-color:#fcd34d}
.bka-cs-row{display:flex;gap:9px;align-items:center;font-size:12.5px;font-weight:600;padding:5px 0;cursor:pointer}
.bka-cs-row input{accent-color:#b45309}
.bka-cs-row small{color:#92400e;font-weight:800;margin-left:6px}
.bka-carseat[hidden]{display:none!important}

/* v268 dossier groups */
.bk-grp{cursor:pointer;background:#f1f5f9}
.bk-grp:hover{background:#e2e8f0}
.bk-grp td{border-top:2px solid #cbd5e1!important;font-size:12px}
.bk-caret{display:inline-block;width:14px;color:#475569;font-size:11px}
.bk-sub td:first-child{padding-left:26px}

/* v277 order/sale editor as a page — keeps the original two-column grid
   (lines left, sticky navy summary right); only the shell changes. */
.ose-page{display:block}
.ose-page .ose-layout{padding:0;overflow:visible}
.ose-page .ose-summary{top:14px}
.ose-page .ose-prod-search input{width:100%}

/* v284 basket VAT line */
.bka-vat span{color:#64748b}
.bka-vat b{color:#12245A}

/* v285 booking currency bar */
.bka-fxrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0}
.bka-fxrow>span:last-child{display:flex;gap:6px;align-items:center}
.bka-fxrow select{height:30px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;padding:0 8px;font-size:12px;font-weight:700}
.bka-fxrow input{width:96px;height:30px;border:1px solid #f59e0b;border-radius:7px;padding:0 8px;font-size:12px;font-weight:700;background:#fffbeb}
.bka-fxnote{background:#fffbeb;border:1px solid #fcd34d;color:#92400e;border-radius:8px;padding:6px 9px;font-size:11px;margin:2px 0 6px}

/* v288 handling fee editor */
.bka-hfgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end}
.bka-hfgrid .btn{height:34px}
@media(max-width:780px){.bka-hfgrid{grid-template-columns:1fr 1fr}}

/* ===== v295: Odoo/M365/SAP blend — inline facet toggle + on-demand panel,
   chatter, bottom totals. The panel visibility is driven ONLY by the native
   [hidden] attribute; nothing in this file may set display on .fx-panel
   without also excluding [hidden], or the dropdown becomes permanently
   visible regardless of the attribute (the exact bug hit here — same family
   as the earlier car-seat CSS issue). ===== */
.fx-chiprow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.fx-inline{position:relative;display:inline-flex}
.fx-chip{display:inline-flex;align-items:center;gap:6px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:8px;padding:3px 6px 3px 10px;font-size:11.5px;font-weight:700}
.fx-chip.grp{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.fx-chip em{font-style:normal;opacity:.65;font-weight:600}
.fx-chip button{border:none;background:none;cursor:pointer;color:inherit;font-size:13px;line-height:1;padding:0 2px}
.fx-toggle{border:1px solid var(--line-strong,#d1d5db);background:#fff;border-radius:9px;height:36px;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.fx-toggle:hover{border-color:#12245A}
.fx-panel:not([hidden]){display:grid}
.fx-panel[hidden]{display:none!important}
.fx-panel{position:absolute;left:0;top:42px;z-index:40;grid-template-columns:repeat(3,minmax(150px,1fr));gap:0;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:12px;box-shadow:0 16px 40px rgba(2,6,23,.16);overflow:hidden;min-width:520px}
.fx-col{padding:12px 14px;border-right:1px solid #eef0f3}
.fx-col:last-child{border-right:none}
.fx-col h4{margin:0 0 8px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#64748b}
.fx-item{display:block;width:100%;text-align:left;border:none;background:none;padding:5px 6px;border-radius:7px;font-size:12.5px;cursor:pointer;color:#0f172a}
.fx-item:hover{background:#f1f5f9}
.fx-item.on{background:#12245A;color:#fff;font-weight:700}
.fx-none{font-size:11.5px;color:#94a3b8;margin:2px 0}
.fx-save{margin-top:8px;border:1px dashed #cbd5e1;background:none;border-radius:8px;padding:5px 8px;font-size:11.5px;cursor:pointer;width:100%}
tr.lm-grp{background:#f1f5f9;cursor:pointer}
tr.lm-grp td{border-top:2px solid #cbd5e1!important;font-size:12px;padding:7px 12px!important}
tr.lm-grp em{font-style:normal;color:#64748b;font-weight:700;margin-left:6px}
.lm-caret{display:inline-block;width:14px;color:#475569;font-size:11px}
/* chatter */
.ose-chatter{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden;position:sticky;top:12px;max-height:calc(100vh - 150px);display:flex;flex-direction:column}
.och-tabs{display:flex;border-bottom:1px solid var(--line,#e5e7eb);background:#f8fafc}
.och-tabs button{flex:1;border:none;background:none;padding:11px 6px;font-size:12px;font-weight:700;color:#64748b;cursor:pointer;border-bottom:2px solid transparent}
.och-tabs button.active{color:#12245A;border-bottom-color:#12245A;background:#fff}
.och-body{padding:12px;overflow:auto;display:flex;flex-direction:column;gap:10px}
.och-compose{border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:9px}
.och-seg{display:flex;gap:6px;margin-bottom:7px}
.och-seg button{border:1px solid var(--line-strong,#d1d5db);background:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;cursor:pointer;color:#64748b}
.och-seg button.on{background:#12245A;border-color:#12245A;color:#fff}
.och-compose textarea{width:100%;border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:inherit;resize:vertical}
.och-compose-cta{display:flex;justify-content:flex-end;margin-top:7px}
.och-msg{border-left:3px solid #12245A;background:#f8fafc;border-radius:0 10px 10px 0;padding:8px 10px}
.och-msg.cli{border-left-color:#e5295c;background:#fff5f7}
.och-msg-h{display:flex;gap:8px;align-items:baseline;font-size:11px;color:#64748b}
.och-msg-h b{font-size:12px;color:#0f172a}
.och-msg-h em{font-style:normal;background:#e2e8f0;border-radius:6px;padding:1px 6px;font-size:10px}
.och-msg-h span{margin-left:auto}
.och-msg p{margin:5px 0 0;font-size:12.5px;white-space:pre-wrap}
.och-log{display:flex;gap:9px;align-items:flex-start;font-size:12px}
.och-dot{width:8px;height:8px;border-radius:50%;background:#12245A;margin-top:5px;flex:none}
.och-log small{display:block;color:#94a3b8;font-size:10.5px}
.och-none{font-size:12px;color:#94a3b8;text-align:center;padding:16px 8px}
.och-actbar,.och-kinds{display:flex;flex-wrap:wrap;gap:6px}
.och-kind{border:1px solid var(--line-strong,#d1d5db);background:#fff;border-radius:8px;padding:5px 10px;font-size:11.5px;font-weight:700;cursor:pointer}
.och-kind:hover{border-color:#12245A}
.och-kind.on{background:#12245A;border-color:#12245A;color:#fff}
.och-act{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:8px 10px;font-size:12px}
.och-act.done{opacity:.55}
.och-act small{display:block;color:#64748b;font-size:10.5px}
.och-act p{margin:5px 0 0;font-size:11.5px;color:#475569}
.och-act .btn{margin-left:auto;white-space:nowrap}
/* totals under the lines */
.ose-summary-bottom{margin-top:14px;background:#0b1830;color:#fff;border-radius:14px;padding:16px 18px}
.ose-summary-bottom h3{color:#fff}
.ose-chatter{grid-area:summary}

/* v293: Odoo-like document layout — compact header top-left, lines + plain
   totals bottom-left, activity panel down the whole right side. */
.ose-page .ose-top{grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.ose-page .ose-top .panel,.ose-page .ose-top>div{align-self:start}
.ose-page .ose-client,.ose-page .ose-details{padding:12px 14px}
.ose-page .ose-details .ose-grid{grid-template-columns:1fr 1fr;gap:9px}
.ose-page .ose-details label span,.ose-page .ose-client h3{font-size:10px}
.ose-chatter-full{grid-area:summary;max-height:calc(100vh - 130px)}
/* plain Odoo-style totals */
.ose-summary-bottom{margin-top:12px;background:none;color:inherit;border-radius:0;padding:0;display:flex;justify-content:flex-end}
.ose-summary-bottom .ose-sum-box{width:min(340px,100%);border-top:1px solid var(--line,#e5e7eb);padding-top:10px}
.ose-summary-bottom .ose-sum-row{display:flex;justify-content:space-between;gap:20px;font-size:12.5px;padding:3px 0;color:#475569}
.ose-summary-bottom .ose-sum-row b{color:#0f172a}
.ose-summary-bottom .ose-sum-row.total{border-top:1px solid #cbd5e1;margin-top:6px;padding-top:8px;font-size:16px}
.ose-summary-bottom .ose-sum-row.total b{font-size:18px;font-weight:800}
.ose-summary-bottom .ose-sum-row.due{border-top:1px solid #e2e8f0;margin-top:6px;padding-top:8px}
.ose-summary-bottom .ose-sum-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

/* v294: totals inside the lines column · collapsible activity panel */
.ose-page .ose-layout.chat-collapsed{grid-template-columns:minmax(0,1fr) 0}
.ose-page .ose-layout.chat-collapsed .ose-chatter{display:none}
.ose-chat-toggle{font-weight:800;letter-spacing:-1px}
.ose-page .ose-lines-panel{display:flex;flex-direction:column}
.ose-page .ose-summary-bottom{margin-top:14px}
.ose-chatter-full{align-self:stretch;height:100%;max-height:none;position:sticky;top:12px}
.ose-page .ose-layout{min-height:calc(100vh - 190px)}

/* v295: grouped ORDER/SALE details — Schedule / Business & pricing */
.ose-detail-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ose-detail-row+.ose-detail-row{margin-top:9px}
.ose-detail-sub{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;margin:14px 0 7px;padding-top:9px;border-top:1px solid var(--line,#eef0f3)}
.ose-details .ose-detail-row:first-of-type{margin-top:2px}

/* v296: compact grouped detail fields (the .ose-detail-grid styling was tied
   to the old class — restore it for the new rows) + delivery in the totals */
.ose-detail-row label{display:flex;flex-direction:column;gap:3px;min-width:0}
.ose-detail-row label>span{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ose-detail-row input,.ose-detail-row select{height:30px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;padding:0 8px;font-size:12px;width:100%;background:#fff;font-family:inherit}
.ose-detail-row input:focus,.ose-detail-row select:focus{outline:2px solid #12245A22;border-color:#12245A}
.ose-detail-row+.ose-detail-row{margin-top:8px}
.ose-detail-sub{margin:11px 0 6px;padding-top:8px}
.ose-details h3{margin-bottom:8px}
.ose-summary-bottom .ose-sum-row.edit input{width:110px;height:28px;border:1px solid var(--line-strong,#d1d5db);border-radius:7px;padding:0 8px;font-size:12px;text-align:right}
.ose-summary-bottom .ose-sum-row.edit{align-items:center}

/* v297: inline-editable delivery + agenda client picker */
.ose-inline-num{width:96px;height:24px;border:1px solid transparent;background:transparent;border-radius:6px;padding:0 6px;font-size:12.5px;font-weight:700;text-align:right;font-family:inherit;color:#0f172a}
.ose-inline-num:hover{border-color:#e2e8f0;background:#f8fafc}
.ose-inline-num:focus{border-color:#12245A;background:#fff;outline:2px solid #12245A22}
.ose-inline-num::-webkit-outer-spin-button,.ose-inline-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cal-cli{position:relative}
.cal-cli-pick{margin-top:6px;font-size:12px;display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:6px 10px}
.cal-cli-pick.is-empty{color:#94a3b8;font-style:italic}
.cal-cli-pick button{margin-left:auto;border:none;background:none;font-size:15px;cursor:pointer;color:#64748b}

/* v298: one pickup card per transfer */
.bka-pu-card{border:1.5px solid var(--line,#e5e7eb);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.bka-pu-head{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.bka-pu-idx{width:24px;height:24px;border-radius:50%;background:#12245A;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:none}
.bka-pu-head b{display:block;font-size:13px}
.bka-pu-head small{display:block;color:#64748b;font-size:11px}

/* ===== v299: live chatter + voice recorder ===== */
.och-del{margin-left:6px;border:none;background:none;color:#cbd5e1;cursor:pointer;font-size:12px;line-height:1;padding:2px 4px;border-radius:5px}
.och-del:hover{background:#fee2e2;color:#dc2626}
.och-msg-t{display:block;font-size:12px;margin-top:4px}
.och-voice{margin-top:6px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:8px;padding:5px 9px;font-size:11.5px;font-weight:700;width:fit-content}
.och-log{position:relative}
.och-log .och-del{position:absolute;right:0;top:0}
.och-log-s{display:block;font-size:11.5px;color:#475569;margin-top:2px}
.och-link{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;color:#12245A}
.och-compose-cta{gap:6px}
/* voice recorder */
.vm-card{width:min(440px,94vw)}
.vm-stage{position:relative;background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:16px;text-align:center}
.vm-dot{width:12px;height:12px;border-radius:50%;background:#cbd5e1;margin:0 auto 8px;transition:background .2s}
.vm-dot.on{background:#dc2626;animation:vmPulse 1.1s infinite}
@keyframes vmPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}50%{box-shadow:0 0 0 9px rgba(220,38,38,0)}}
.vm-time{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;color:#0f172a;letter-spacing:1px}
.vm-wave{width:100%;height:48px;display:block;margin-top:6px}
.vm-hint{font-size:11.5px;color:#64748b;margin:6px 0 0}
.vm-play{width:100%;margin-top:12px}

/* ===== v300: busy overlay, tighter document layout, client chatter ===== */
.sq-busy{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}
.sq-busy.on{display:flex}
.sq-busy-card{background:#fff;border-radius:16px;padding:26px 34px;text-align:center;box-shadow:0 24px 60px rgba(2,6,23,.28);min-width:230px}
.sq-busy-card b{display:block;font-size:14px;margin-top:14px;color:#0f172a}
.sq-busy-card small{display:block;font-size:11.5px;color:#94a3b8;margin-top:3px}
.sq-busy-ring{display:flex;gap:7px;justify-content:center}
.sq-busy-ring span{width:11px;height:11px;border-radius:50%;background:#12245A;animation:sqBounce 1s infinite ease-in-out}
.sq-busy-ring span:nth-child(2){background:#e5295c;animation-delay:.14s}
.sq-busy-ring span:nth-child(3){background:#f59e0b;animation-delay:.28s}
@keyframes sqBounce{0%,80%,100%{transform:translateY(0);opacity:.55}40%{transform:translateY(-10px);opacity:1}}
/* tighter gap between the details block and the lines */
.ose-page .ose-layout{gap:10px}
.ose-page .ose-top{margin-bottom:0}
.ose-page .ose-lines-panel{margin-top:0}
/* activities row: five actions on one line */
.och-actbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.och-actbar .och-kind{padding:6px 4px;font-size:10.5px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.och-kinds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.och-kinds .och-kind{padding:6px 4px;font-size:10.5px;text-align:center}
/* client editor panel */
.crm-history-col .och-tabs button{font-size:11px;padding:9px 4px}
.crm-history-col .och-body{max-height:calc(100vh - 220px)}

/* v302: document upload modal */
.doc-drop{border:2px dashed var(--line-strong,#cbd5e1);border-radius:12px;padding:22px;text-align:center;cursor:pointer;background:#f8fafc;transition:border-color .15s,background .15s}
.doc-drop:hover,.doc-drop.on{border-color:#12245A;background:#eef4ff}
.doc-drop b{display:block;font-size:13px;color:#0f172a}
.doc-drop small{display:block;font-size:11.5px;color:#64748b;margin-top:3px}
.doc-picked{margin-top:10px;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:7px 11px;font-size:12px;display:inline-block}
.doc-picked small{color:#64748b;margin-left:6px}
.doc-list{margin-top:14px;border-top:1px solid var(--line,#eef0f3);padding-top:10px}
.doc-list-h{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#94a3b8;margin-bottom:7px}
.doc-row{display:flex;gap:9px;align-items:center;border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:7px 10px;margin-bottom:6px;font-size:12px}
.doc-row>div{flex:1;min-width:0}
.doc-row b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-row small{display:block;color:#64748b;font-size:10.5px}
.doc-ic{font-size:17px}

/* v303: tighter lines panel top + document/voice rows in the activity list */
.ose-page .ose-lines-panel{padding-top:12px}
.ose-page .ose-lines-panel>h3,.ose-page .ose-lines-panel .ose-lines-head{margin-top:0}
.och-audio{width:100%;margin-top:7px;height:34px}
.och-act .och-cta{display:flex;gap:6px;margin-left:auto;align-items:center}
.och-act .och-cta .btn{white-space:nowrap}
.och-ic{font-size:15px;margin-right:6px}

/* v305: dossier status + foreign reference */
.bk-st{display:inline-block;border-radius:999px;padding:2px 10px;font-size:10.5px;font-weight:800;letter-spacing:.02em}
.bk-st.pend{background:#fef3c7;color:#92400e}
.bk-st.conf{background:#dcfce7;color:#166534}
.bk-st.canc{background:#fee2e2;color:#b91c1c}

.bk-fref{font-style:normal;margin-left:8px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:7px;padding:1px 8px;font-size:10.5px;font-weight:700}

/* v306: dossier status action buttons */
.bk-stcell{white-space:nowrap}
.bk-stbtns{display:inline-flex;gap:5px;margin-left:7px;vertical-align:middle}
.bk-act{border:1px solid transparent;border-radius:7px;height:22px;padding:0 10px;font-size:10.5px;font-weight:800;cursor:pointer;line-height:1}
.bk-act.conf{background:#16a34a;color:#fff}
.bk-act.conf:hover{background:#15803d}
.bk-act.canc{background:#fff;border-color:#fca5a5;color:#b91c1c}
.bk-act.canc:hover{background:#fee2e2}

/* v308: booking status filter + aligned dossier row */
.bk-stfilter{height:34px;min-width:150px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 10px;font-size:12.5px;background:#fff;font-family:inherit}
.bk-stfilter:focus{outline:2px solid #12245A22;border-color:#12245A}
.bk-grp td{vertical-align:middle}
.bk-grp .bk-st{vertical-align:middle}

/* ===== v313: SquidPro — professional services workspace ===== */
.sp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
@media(max-width:900px){.sp-kpis{grid-template-columns:1fr 1fr}}
.sp-kpi{background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:center}
.sp-kpi-ic{font-size:22px}
.sp-kpi b{display:block;font-size:22px;line-height:1.1;color:#0f172a}
.sp-kpi small{display:block;font-size:11.5px;color:#64748b;margin-top:2px}
.sp-kpi em{display:block;font-style:normal;font-size:11px;color:#b45309;margin-top:2px;font-weight:700}
.sp-panel{margin-bottom:14px}
.sp-attn{border-color:#fcd34d;box-shadow:0 0 0 3px rgba(252,211,77,.18)}
.sp-row{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid #f1f5f9}
.sp-row:last-child{border-bottom:none}
.sp-row>div:first-child{flex:1;min-width:0}
.sp-row b{display:block;font-size:13px;color:#0f172a}
.sp-row small{display:block;font-size:11.5px;color:#64748b;margin-top:2px}
.sp-row.over b{color:#b91c1c}
.sp-note{margin:5px 0 0;font-size:11.5px;color:#475569;white-space:pre-wrap}
.sp-note.err{color:#b91c1c}
.sp-sugg{margin:5px 0 0;font-size:11.5px;color:#166534}
.sp-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.sp-due{font-size:11.5px;font-weight:700;color:#475569}
.sp-due.over{color:#b91c1c}
.sp-pill{display:inline-block;border-radius:999px;padding:2px 10px;font-size:10.5px;font-weight:800;white-space:nowrap}
.sp-pill.open,.sp-pill.req{background:#fef3c7;color:#92400e}
.sp-pill.prog,.sp-pill.subm{background:#dbeafe;color:#1e40af}
.sp-pill.acc,.sp-pill.act{background:#dcfce7;color:#166534}
.sp-pill.rej,.sp-pill.err{background:#fee2e2;color:#b91c1c}
.sp-pill.canc,.sp-pill.rev,.sp-pill.dec,.sp-pill.exp,.sp-pill.sus{background:#e2e8f0;color:#475569}
.sp-client{display:flex;gap:12px;align-items:center;padding:12px 6px;border-bottom:1px solid #f1f5f9;cursor:pointer;border-radius:10px}
.sp-client:hover{background:#f8fafc}
.sp-avatar{width:38px;height:38px;border-radius:11px;background:#12245A;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:none}
.sp-client-main{flex:1;min-width:0}
.sp-client-main b{display:block;font-size:13.5px}
.sp-client-main small{display:block;font-size:11.5px;color:#64748b;margin-top:2px}
.sp-client-side{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.sp-scopes{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.sp-scopes em{font-style:normal;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:6px;padding:1px 7px;font-size:10px;font-weight:700}
.sp-badge{background:#dbeafe;color:#1e40af;border-radius:7px;padding:2px 8px;font-size:10.5px;font-weight:800}
.sp-badge.warn{background:#fef3c7;color:#92400e}
.sp-badge.err{background:#fee2e2;color:#b91c1c}
.sp-role{font-size:10px;color:#94a3b8;font-weight:700;text-transform:uppercase}
.sp-ctx{display:flex;gap:9px;align-items:center;background:#12245A;color:#fff;border-radius:12px;padding:10px 14px;font-size:12.5px;margin-bottom:12px}
.sp-ctx b{color:#fff}
.sp-ctx .btn{margin-left:auto;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.sp-ctx-dot{width:9px;height:9px;border-radius:50%;background:#4ade80;flex:none}
.sp-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line,#e5e7eb);margin-bottom:14px}
.sp-tabs button{border:none;background:none;padding:9px 14px;font-size:12.5px;font-weight:700;color:#64748b;cursor:pointer;border-bottom:2px solid transparent}
.sp-tabs button.active{color:#12245A;border-bottom-color:#12245A}
.sp-toolbar{display:flex;gap:9px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.sp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.sp-grid2{grid-template-columns:1fr}}
.sp-def{padding:4px 0}
.sp-defrow{display:flex;justify-content:space-between;gap:14px;padding:6px 4px;border-bottom:1px solid #f4f7f9;font-size:12.5px}
.sp-defrow span{color:#64748b}
.sp-defrow b{text-align:right;color:#0f172a}
.sp-alert{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:11px;margin-bottom:8px;border-left:4px solid #cbd5e1;background:#f8fafc}
.sp-alert.sev2{border-left-color:#f59e0b;background:#fffbeb}
.sp-alert.sev3{border-left-color:#dc2626;background:#fef2f2}
.sp-alert.done{opacity:.55}
.sp-alert>div:first-child{flex:1;min-width:0}
.sp-alert p{margin:5px 0 0;font-size:11.5px;color:#475569}
.sp-v{font-style:normal;background:#e2e8f0;border-radius:5px;padding:0 6px;font-size:10px;color:#475569}
.sp-scopepick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
@media(max-width:720px){.sp-scopepick{grid-template-columns:1fr}}
.sp-scopepick label{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:8px 10px;cursor:pointer;font-size:12px}
.sp-scopepick label:hover{border-color:#12245A;background:#f8fafc}
.sp-scopepick b{display:block;font-size:12px}
.sp-scopepick small{display:block;font-size:10.5px;color:#64748b;margin-top:1px}
.sp-req{display:flex;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid #f1f5f9}
.sp-req>div:first-child{flex:1;min-width:0}
.sp-lead{font-size:13px;color:#0f172a;margin:0 0 8px}
.sp-fine{font-size:11px;color:#94a3b8;margin-top:10px}
.sp-status{background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:9px 12px;font-size:12.5px}
.sp-status em{display:block;font-style:normal;font-size:11.5px;color:#64748b;margin-top:3px}
.sp-addsv{display:grid;grid-template-columns:1.2fr 1.4fr .8fr .9fr auto;gap:6px;margin-top:9px}
.sp-addsv select,.sp-addsv input{height:32px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 8px;font-size:12px;font-family:inherit}
@media(max-width:760px){.sp-addsv{grid-template-columns:1fr 1fr}}
.sp-jhead,.sp-jline{display:grid;grid-template-columns:1fr 2fr .9fr .9fr auto;gap:6px;align-items:center}
.sp-jhead{font-size:10px;font-weight:800;text-transform:uppercase;color:#94a3b8;margin:12px 0 5px}
.sp-jline{margin-bottom:5px}
.sp-jline input{height:31px;border:1px solid var(--line-strong,#d1d5db);border-radius:8px;padding:0 8px;font-size:12px;font-family:inherit}
.sp-jtot{margin-top:9px;font-size:12.5px;font-weight:800;color:#166534;text-align:right}
.sp-jtot.bad{color:#b91c1c}
.sp-switch{display:inline-flex;gap:5px;align-items:center;font-size:11px;color:#64748b;font-weight:700}

/* v315: SquidPro command-bar icons */
.cmd-ic .badge{display:none}
.cmd-ic .badge.on{display:flex;position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;
  border-radius:999px;background:#12245A;color:#fff;font-size:9.5px;font-weight:800;align-items:center;
  justify-content:center;line-height:1;box-shadow:0 0 0 2px var(--surface,#fff)}
.cmd-ic .badge.on.warn{background:#e5295c}
#proFirmBtn,#proClientBtn{position:relative}

/* v316: SquidPro predictive results stay inside their modal */
.sp-pred{position:static;max-height:230px;overflow:auto;margin-top:6px;border:1px solid var(--line,#e5e7eb);border-radius:10px}
.sp-pred:empty{display:none;border:none}
.sp-pred .ose-pred-item{position:static;display:block;width:100%;text-align:left;border:none;
  border-bottom:1px solid #f1f5f9;background:#fff;padding:8px 11px;font-size:12.5px;cursor:pointer}
.sp-pred .ose-pred-item:last-child{border-bottom:none}
.sp-pred .ose-pred-item:hover{background:#f1f5f9}
.sp-pred .ose-pred-item small{display:block;font-size:10.5px;color:#64748b;margin-top:2px}

/* v321: SquidPro client home — discovery code + navigation cards */
.sp-code{background:linear-gradient(135deg,#12245A,#1e3a8a);color:#fff;border-radius:14px;padding:16px 18px;margin-bottom:14px;
  display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}
.sp-code>div:first-child{display:flex;gap:12px;align-items:center}
.sp-code-ic{font-size:26px}
.sp-code small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;opacity:.75}
.sp-code b{display:block;font-size:20px;font-weight:800;letter-spacing:1.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.sp-code b.sp-code-none{font-size:14px;letter-spacing:0;opacity:.7;font-family:inherit}
.sp-code p{margin:0;font-size:12px;line-height:1.5;opacity:.9}
.sp-code .btn{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.34);color:#fff;white-space:nowrap}
@media(max-width:860px){.sp-code{grid-template-columns:1fr}}
.sp-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
@media(max-width:1000px){.sp-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.sp-cards{grid-template-columns:1fr 1fr}}
.sp-card{background:var(--surface,#fff);border:1.5px solid var(--line,#e5e7eb);border-radius:14px;padding:14px 12px;
  text-align:left;cursor:pointer;font-family:inherit;transition:border-color .15s,box-shadow .15s,transform .1s}
.sp-card:hover{border-color:#12245A;transform:translateY(-1px)}
.sp-card.on{border-color:#12245A;box-shadow:0 0 0 3px rgba(18,36,90,.12)}
.sp-card-ic{display:block;font-size:20px;margin-bottom:6px}
.sp-card b{display:block;font-size:24px;line-height:1;color:#0f172a}
.sp-card small{display:block;font-size:11.5px;color:#64748b;margin-top:4px}
.sp-card em{display:block;font-style:normal;font-size:10.5px;font-weight:800;color:#b45309;margin-top:3px}

/* ===== v332: SquidPro — accounting data pane =====
   The generic table dump is replaced by a typed grid: numbers right-aligned
   and tabular-figured so digits line up column-wise, dates in a muted tone so
   they recede behind the amounts, statuses as pills, and a sticky header that
   survives long listings. */
.ds-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:13px}
.ds-seg{display:inline-flex;background:#f1f5f9;border:1px solid var(--line,#e5e7eb);
  border-radius:11px;padding:3px;gap:2px;flex-wrap:wrap}
.ds-seg button{border:none;background:none;padding:7px 13px;border-radius:8px;cursor:pointer;
  font-size:12px;font-weight:700;color:#64748b;white-space:nowrap;transition:background .12s,color .12s}
.ds-seg button:hover{color:#0f172a}
.ds-seg button.on{background:#fff;color:#12245A;box-shadow:0 1px 2px rgba(15,23,42,.10)}
.ds-period{display:flex;align-items:center;gap:7px;font-size:11.5px;color:#64748b;font-weight:700}
.ds-period input{border:1px solid var(--line,#e5e7eb);border-radius:9px;padding:7px 9px;
  font-size:12.5px;font-family:inherit;color:#0f172a;background:#fff}
.ds-meta{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#64748b;margin-left:auto}
.ds-dot{width:7px;height:7px;border-radius:50%;flex:none}
.ds-dot.live{background:#4ade80}
.ds-dot.cache{background:#cbd5e1}
.ds-warn{font-style:normal;color:#b45309;font-weight:700}

.ds-wrap{overflow:auto;max-height:64vh;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:#fff}
.ds-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.ds-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc;text-align:left;
  padding:10px 14px;font-size:10.5px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;
  color:#64748b;border-bottom:1px solid var(--line,#e5e7eb);white-space:nowrap}
.ds-table tbody td{padding:9px 14px;border-bottom:1px solid #f1f5f9;color:#0f172a;vertical-align:middle}
.ds-table tbody tr:last-child td{border-bottom:none}
.ds-table tbody tr:nth-child(even){background:#fcfdfe}
.ds-table tbody tr:hover{background:#f1f6fd}
.ds-table th.r,.ds-table td.r{text-align:right}
.ds-table td.d{white-space:nowrap}
/* tabular figures: without this, 1 is narrower than 8 and the columns wobble */
.ds-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-weight:600;white-space:nowrap}
.ds-num.neg{color:#b91c1c}
.ds-date{color:#475569;font-variant-numeric:tabular-nums;white-space:nowrap}
.ds-nil{color:#cbd5e1}
.ds-table tfoot td{position:sticky;bottom:0;background:#f8fafc;padding:10px 14px;
  border-top:2px solid var(--line,#e5e7eb);font-variant-numeric:tabular-nums;
  font-size:12.5px;color:#0f172a;white-space:nowrap}
@media(max-width:760px){
  .ds-meta{margin-left:0;width:100%}
  .ds-table thead th,.ds-table tbody td,.ds-table tfoot td{padding:8px 10px}
}

/* ===== v333: SquidPro — analysis pane ===== */
.rv-covgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:10px;margin-bottom:14px}
.rv-cov{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:11px 13px;
  border-left:4px solid #cbd5e1}
.rv-cov.ok{border-left-color:#22c55e}
.rv-cov.empty{border-left-color:#cbd5e1}
.rv-cov.denied{border-left-color:#f59e0b}
.rv-cov.nolink,.rv-cov.missing,.rv-cov.error{border-left-color:#dc2626;background:#fffbfb}
.rv-cov-h{display:flex;align-items:center;gap:7px;justify-content:space-between;margin-bottom:5px}
.rv-cov-h b{font-size:12.5px;color:#0f172a}
.rv-cov-n{font-size:17px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}
.rv-cov-n em{font-style:normal;font-size:11px;font-weight:600;color:#64748b}
.rv-cov-n:has(em:only-child){font-size:11.5px;font-weight:600;line-height:1.35}
.rv-cov-n em:only-child{color:#64748b}

.rv-banner{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:12px 14px;margin-bottom:14px}
.rv-banner b{font-size:12.5px;color:#92400e}
.rv-banner .sp-note{color:#78350f}

.rv-find{border-left:4px solid #cbd5e1;background:#f8fafc;border-radius:11px;padding:11px 13px;margin-bottom:9px}
.rv-find.high{border-left-color:#dc2626;background:#fef2f2}
.rv-find.warn{border-left-color:#f59e0b;background:#fffbeb}
.rv-find.info{border-left-color:#3b82f6;background:#f0f7ff}
.rv-find-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rv-find-h b{font-size:13px;color:#0f172a;flex:1;min-width:0}

.rv-cat{display:flex;align-items:center;gap:11px;padding:7px 2px;border-bottom:1px solid #f4f7f9;font-size:12.5px}
.rv-cat:last-child{border-bottom:none}
.rv-cat-n{flex:1;min-width:0;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv-cat-bar{width:120px;height:7px;background:#eef2f7;border-radius:99px;overflow:hidden;flex:none}
.rv-cat-bar i{display:block;height:100%;background:#12245A;border-radius:99px}
.rv-cat-v{font-variant-numeric:tabular-nums;min-width:96px;text-align:right;color:#0f172a}
.rv-cat-p{font-size:11px;color:#64748b;min-width:34px;text-align:right;font-variant-numeric:tabular-nums}

.rv-miss{margin-top:13px;padding-top:12px;border-top:1px dashed var(--line,#e5e7eb)}
.rv-miss>b{font-size:12.5px;color:#92400e}
.rv-chips{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.rv-chips em{font-style:normal;background:#fef3c7;border:1px solid #fcd34d;color:#92400e;
  border-radius:7px;padding:2px 9px;font-size:11px;font-weight:700}
@media(max-width:760px){
  .rv-cat-bar{display:none}
  .rv-covgrid{grid-template-columns:1fr 1fr}
}
/* v334: a dataset that answers 200 with nothing at all — distinct from "no rows" */
.rv-cov.silent{border-left-color:#dc2626;background:#fffbfb}

/* v336: an Odoo app the client never installed — a fact, not a fault, so it is
   presented calmly rather than in the red used for real breakages */
.ds-absent{background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-left:4px solid #94a3b8;
  border-radius:11px;padding:13px 15px}
.ds-absent>b{font-size:13px;color:#0f172a}
.ds-absent code{background:#eef2f7;border-radius:5px;padding:1px 6px;font-size:11.5px;color:#334155}
.rv-cov.absent{border-left-color:#94a3b8;background:#fafbfc}

/* ===== v340: booking save — staged processing overlay ===== */
.bka-saving{position:fixed;inset:0;background:rgba(15,23,42,.44);backdrop-filter:blur(2px);
  z-index:9998;display:flex;align-items:center;justify-content:center;animation:bkaFade .18s ease}
@keyframes bkaFade{from{opacity:0}to{opacity:1}}
.bka-saving-card{background:#fff;border-radius:16px;padding:26px 34px 22px;text-align:center;
  box-shadow:0 18px 50px rgba(15,23,42,.28);min-width:300px;animation:bkaPop .2s ease}
@keyframes bkaPop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.bka-saving-card>b{display:block;font-size:15.5px;color:#0f172a;margin-top:10px}
.bka-saving-card>small{display:block;color:#64748b;font-size:12px;margin-top:3px}
.bka-saving-steps{list-style:none;margin:16px 0 0;padding:0;text-align:left}
.bka-saving-steps li{position:relative;padding:6px 0 6px 26px;font-size:12.5px;color:#94a3b8;transition:color .2s}
.bka-saving-steps li::before{content:'';position:absolute;left:2px;top:9px;width:12px;height:12px;
  border-radius:50%;border:2px solid #cbd5e1;background:#fff;transition:all .2s}
.bka-saving-steps li.now{color:#12245A;font-weight:700}
.bka-saving-steps li.now::before{border-color:#12245A;animation:bkaPulse 1.1s ease infinite}
@keyframes bkaPulse{0%,100%{box-shadow:0 0 0 0 rgba(18,36,90,.35)}50%{box-shadow:0 0 0 5px rgba(18,36,90,0)}}
.bka-saving-steps li.done{color:#0f172a}
.bka-saving-steps li.done::before{border-color:#16a34a;background:#16a34a;
  content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M6.5 10.6 3.9 8l-1 1 3.6 3.6 7-7-1-1z'/%3E%3C/svg%3E");
  background-size:11px;background-position:center;background-repeat:no-repeat}

/* ===== v341: booking detail — Orders-module pattern ===== */
.bkd-head{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;
  background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-radius:13px;padding:14px 16px;margin-bottom:12px}
.bkd-id{flex:1;min-width:220px}
.bkd-id>b{font-size:15.5px;color:#0f172a;display:block}
.bkd-id>small{display:block;color:#64748b;font-size:11.5px;margin-top:3px}
.bkd-facts{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.bkd-facts>div>label{display:block;font-size:10px;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;color:#94a3b8;margin-bottom:3px}
.bkd-facts>div>b{font-size:13px;color:#0f172a}
.bkd-actions{display:flex;align-items:center}
.bkd-strip{background:#f0f7ff;border:1px solid #dbeafe;border-radius:10px;
  padding:8px 12px;font-size:12.5px;color:#1e3a8a;margin-bottom:8px}
.bkd-strip+.htl-sec{margin-top:14px}
.bkd-tbl thead th{white-space:nowrap}
.bkd-more{margin-top:12px}
.bkd-more>summary{cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;color:#64748b;padding:4px 0}
.bkd-more[open]>summary{margin-bottom:8px}
@media(max-width:700px){ .bkd-facts{gap:14px} .bkd-actions{width:100%} .bkd-actions .btn{width:100%} }

/* ===== v342: booking listing filters + detail modal ===== */
/* the popup gains a value list, so it stacks instead of sitting on one row */
.th-filter-pop{flex-direction:column;align-items:stretch;max-width:250px}
.th-fp-vals{display:flex;flex-direction:column;gap:2px;max-height:190px;overflow:auto;margin:2px 0}
.th-fp-vals button{text-align:left;background:none;border:none;padding:5px 8px;border-radius:6px;
  font-size:12px;color:#334155;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th-fp-vals button:hover{background:#f1f5f9;color:#0f172a}
.th-fp-clear{background:#f1f5f9;border:none;border-radius:7px;padding:6px 10px;font-size:11.5px;
  font-weight:700;color:#475569;cursor:pointer}
.th-fp-clear:hover{background:#e2e8f0}

/* arrival + departure on one line */
.bkd-legs{display:flex;gap:26px;flex-wrap:wrap;align-items:center}
.bkd-leg{white-space:nowrap}
.bkd-leg>b{font-weight:800;margin-right:5px}

/* per-line expandable detail */
.bkd-row.has-more{cursor:pointer}
.bkd-row.has-more:hover{background:#f1f6fd}
.bkd-caret{color:#94a3b8;font-size:11px;text-align:center;user-select:none}
.bkd-sub>td{background:#f8fafc;border-top:none}
/* v343: the line's Details field, shown verbatim — it is prose written for a
   human, so it keeps its own line breaks and spacing instead of being parsed */
.bkd-det{white-space:pre-wrap;font-size:12px;line-height:1.55;color:#334155;
  padding:11px 13px;margin:8px 4px 10px;background:#fff;border:1px solid var(--line,#e5e7eb);
  border-left:3px solid #cbd5e1;border-radius:9px;max-height:280px;overflow:auto}

/* header actions */
.bkd-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.bkd-actions .bk-act{font-size:12px;padding:7px 12px}
.bkd-actions .bk-act.conf{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.bkd-actions .bk-act.conf:hover{background:#bbf7d0}
.bkd-actions .bk-act.canc{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.bkd-actions .bk-act.canc:hover{background:#fecaca}

/* v344: direction badge on each pickup card — naming the leg is what stops the
   same flight being entered twice */
.bka-pu-dir{display:inline-block;font-style:normal;font-size:10px;font-weight:800;
  letter-spacing:.03em;border-radius:999px;padding:2px 9px;margin-left:7px;vertical-align:middle}
.bka-pu-dir.arr{background:#dbeafe;color:#1e40af}
.bka-pu-dir.dep{background:#fef3c7;color:#92400e}
.bka-pu-dir.int{background:#e2e8f0;color:#475569}

/* ===== v348: SquidPro — attached documents (EDropBox) ===== */
.sp-docs{margin-top:9px;border-top:1px dashed var(--line,#e5e7eb);padding-top:8px}
.sp-docs-h{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:#94a3b8;margin-bottom:5px}
.sp-doc{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:9px;
  background:#f8fafc;border:1px solid var(--line,#e5e7eb);margin-bottom:5px}
.sp-doc:last-child{margin-bottom:0}
.sp-doc-ic{font-size:15px;flex:none;line-height:1}
.sp-doc-n{flex:1;min-width:0;font-size:12.5px;color:#0f172a;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-doc-n>em{display:block;font-style:normal;font-size:10px;color:#94a3b8;font-weight:700}
.sp-doc-a{display:flex;gap:5px;flex:none}
.sp-doc-a .btn{font-size:11px;padding:4px 10px;text-decoration:none;line-height:1.5}
.sp-doc-miss{font-style:normal;font-size:10.5px;color:#b45309}
@media(max-width:620px){
  .sp-doc{flex-wrap:wrap}
  .sp-doc-a{width:100%;justify-content:flex-end}
}

/* ===== v349: booking detail — one visual family for the four actions ===== */
.bkd-btns{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.bkd-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;
  border-radius:9px;border:1px solid transparent;font-family:inherit;font-size:12.5px;
  font-weight:700;cursor:pointer;white-space:nowrap;line-height:1;
  transition:background .13s,border-color .13s,transform .08s}
.bkd-btn>i{font-style:normal;font-size:13px;line-height:1}
.bkd-btn:active{transform:translateY(1px)}
.bkd-btn:disabled{opacity:.55;cursor:default;transform:none}
/* tint maps to consequence, not to decoration */
.bkd-btn.conf{background:#dcfce7;color:#14532d;border-color:#bbf7d0}
.bkd-btn.conf:hover:not(:disabled){background:#bbf7d0}
.bkd-btn.inv{background:#fef3c7;color:#78350f;border-color:#fcd34d}
.bkd-btn.inv:hover:not(:disabled){background:#fde68a}
.bkd-btn.canc{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.bkd-btn.canc:hover:not(:disabled){background:#fecaca}
.bkd-btn.vou{background:#12245A;color:#fff;border-color:#12245A}
.bkd-btn.vou:hover:not(:disabled){background:#1b3378}
/* invoiced status pill, listing + detail */
.bk-st.inv{background:#fef3c7;color:#92400e}
.sp-pill.inv{background:#fef3c7;color:#92400e}

/* ===== v349: back-office "ignore availability" ===== */
.bka-noav{display:flex;gap:9px;align-items:flex-start;margin-top:10px;padding:9px 12px;
  background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;cursor:pointer}
.bka-noav input{margin-top:2px;flex:none}
.bka-noav span{font-size:11.5px;color:#78350f;line-height:1.45}
.bka-noav b{font-weight:800}
.bka-noav-flag{margin:8px 0 6px;padding:8px 12px;background:#fffbeb;border:1px solid #fcd34d;
  border-radius:9px;font-size:11.5px;color:#78350f}
@media(max-width:620px){ .bkd-btns{width:100%} .bkd-btn{flex:1;justify-content:center} }

/* ===== v350: product editor as a central page (sale/order pattern) ===== */
.pe-page .pe-layout{display:grid;grid-template-columns:250px 1fr;gap:16px;align-items:start}
.pe-col{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:16px 18px}
.pe-col>h3{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:#64748b;margin:0 0 12px}
.pe-col>h3:not(:first-child){margin-top:22px;padding-top:16px;border-top:1px solid #f1f5f9}
.pe-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.pe-grid>label{display:flex;flex-direction:column;gap:5px;min-width:0}
.pe-grid>label.full{grid-column:1/-1}
.pe-grid>label>span{font-size:11px;font-weight:700;color:#64748b}
.pe-grid input,.pe-grid select,.pe-grid textarea{border:1px solid var(--line,#e5e7eb);
  border-radius:9px;padding:9px 11px;font-size:13px;font-family:inherit;color:#0f172a;
  background:#fff;width:100%;box-sizing:border-box}
.pe-grid input:focus,.pe-grid select:focus,.pe-grid textarea:focus{outline:none;
  border-color:var(--squid-magenta,#e5295c)}
.pe-grid textarea{resize:vertical}
.pe-col-media .pe-photo{display:flex;flex-direction:column;align-items:center;gap:10px}
.pe-col-media .pe-photo img{width:100%;aspect-ratio:1;object-fit:contain;background:#f8fafc;
  border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:8px;box-sizing:border-box}
/* margin: colour carries the verdict, so a thin one is visible without reading */
.pe-margin-row{align-items:flex-start}
.pe-margin{font-size:15px;font-variant-numeric:tabular-nums;color:#94a3b8}
.pe-margin.ok{color:#166534}
.pe-margin.low{color:#92400e}
.pe-margin.neg{color:#b91c1c}
@media(max-width:900px){
  .pe-page .pe-layout{grid-template-columns:1fr}
  .pe-col-media .pe-photo img{max-width:220px}
  .pe-grid{grid-template-columns:1fr}
}

/* ===== v353: accounting module — Odoo-style grouped navigation ===== */
.acc-nav{display:inline-flex;gap:2px;align-items:center}
.acc-menu{position:relative}
.acc-menu-btn{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 12px;
  border:1px solid transparent;border-radius:9px;background:none;font-family:inherit;
  font-size:12.5px;font-weight:700;color:#334155;cursor:pointer;white-space:nowrap}
.acc-menu-btn:hover{background:#eef2f7;color:#0f172a}
.acc-menu-btn>i{font-style:normal;font-size:9px;color:#94a3b8}
.acc-menu.open>.acc-menu-btn{background:#12245A;color:#fff;border-color:#12245A}
.acc-menu.open>.acc-menu-btn>i{color:#cbd5e1}
.acc-menu-pop{display:none;position:absolute;top:calc(100% + 5px);left:0;z-index:9400;
  min-width:206px;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:11px;
  box-shadow:0 14px 36px rgba(15,23,42,.16);padding:5px}
.acc-menu.open>.acc-menu-pop{display:block}
.acc-menu-pop button{display:block;width:100%;text-align:left;background:none;border:none;
  padding:8px 11px;border-radius:7px;font-family:inherit;font-size:12.5px;color:#334155;cursor:pointer}
.acc-menu-pop button:hover{background:#f1f5f9;color:#0f172a}
.acc-sep{display:inline-block;width:1px;height:22px;background:var(--line,#e5e7eb);margin:0 8px}
.acc-arrow{color:#94a3b8;margin:0 4px}

.acc-crumb{display:flex;align-items:baseline;gap:10px;margin:2px 0 12px}
.acc-crumb>b{font-size:18px;color:#0f172a}
.acc-crumb>span{font-size:12px}

.acc-tbl thead th.r,.acc-tbl td.r{text-align:right}
.acc-tbl td{font-variant-numeric:tabular-nums}
.acc-tbl tr.acc-foot td{background:#f8fafc;border-top:2px solid var(--line,#e5e7eb)}
.acc-dim td{opacity:.55}
.acc-bad{color:#b91c1c;font-weight:700}
.acc-inuse{font-style:normal;font-size:10.5px;color:#94a3b8}
.acc-draft{font-style:normal;font-size:10px;background:#fef3c7;color:#92400e;
  border-radius:5px;padding:1px 6px;font-weight:700}

.acc-stmt{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;
  padding:22px 26px;max-width:860px;margin:0 auto}
.acc-stmt h2{font-size:19px;margin:0 0 2px;text-align:center}
.acc-sub{color:#64748b;font-size:12px;margin:0 0 18px;text-align:center}
.acc-sec-h{display:flex;justify-content:space-between;align-items:center;font-weight:800;
  font-size:12px;background:#f1f5f9;padding:7px 11px;border-radius:7px;margin:14px 0 6px}
.acc-line{display:flex;justify-content:space-between;padding:5px 11px;font-size:12.5px;
  border-bottom:1px dashed #eef2f7}
.acc-line:last-child{border-bottom:none}
.acc-line.total{font-weight:800;border-bottom:2px solid #0f172a;margin-top:4px}
.acc-line.grand{font-weight:800;font-size:14px;background:#f8fafc;margin:12px 0 0;
  padding:11px 13px;border:none;border-radius:9px}
.acc-line.grand.net{background:#12245A;color:#fff}
.acc-line.grand.warn{background:#fffbeb;border:1px solid #fcd34d;color:#78350f}
.acc-vat .tbl-wrap{margin-bottom:4px}
.acc-gl-acc{margin-bottom:20px}

.acc-absent{background:#f8fafc;border:1px solid var(--line,#e5e7eb);border-left:4px solid #94a3b8;
  border-radius:11px;padding:14px 16px}
.acc-absent>b{font-size:13px;color:#0f172a}
.acc-absent code{background:#eef2f7;border-radius:5px;padding:1px 6px;font-size:11.5px}

.acc-health{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.acc-health-card{background:#fff;border:1px solid var(--line,#e5e7eb);border-left:4px solid #cbd5e1;
  border-radius:13px;padding:18px 20px}
.acc-health-card.ok{border-left-color:#22c55e}
.acc-health-card.warn{border-left-color:#f59e0b;background:#fffdf7}
.acc-health-card.bad{border-left-color:#dc2626;background:#fffbfb}
.acc-health-card .n{display:block;font-size:30px;font-weight:800;color:#0f172a;
  font-variant-numeric:tabular-nums;line-height:1}
.acc-health-card b{display:block;font-size:13px;margin:4px 0 6px}
.acc-health-card p{margin:0;font-size:11.5px;color:#64748b;line-height:1.5}
@media(max-width:760px){
  .acc-nav{flex-wrap:wrap}
  .acc-stmt{padding:16px 14px}
}

/* ===== v354: accounting — entity default accounts ===== */
.acc-ok-banner{background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:11px;
  padding:11px 14px;font-size:12.5px;font-weight:700;margin-bottom:14px}
.acc-def-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:13px}
.acc-def{background:#fff;border:1px solid var(--line,#e5e7eb);border-left:4px solid #e5e7eb;
  border-radius:12px;padding:13px 15px}
/* the tint states the consequence: red blocks posting, amber degrades a feature */
.acc-def.req{border-left-color:#cbd5e1}
.acc-def.warn{border-left-color:#f59e0b;background:#fffdf7}
.acc-def.bad{border-left-color:#dc2626;background:#fffbfb}
.acc-def label{display:block;margin-bottom:8px}
.acc-def label>b{font-size:13px;color:#0f172a}
.acc-def label>small{display:block;font-size:11px;color:#94a3b8;line-height:1.45;margin-top:3px}
.acc-req{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  background:#eef2f7;color:#475569;border-radius:99px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.acc-def.bad .acc-req{background:#fee2e2;color:#b91c1c}
.acc-def select{width:100%;border:1px solid var(--line,#e5e7eb);border-radius:9px;
  padding:9px 11px;font-size:12.5px;font-family:inherit;color:#0f172a;background:#fff;box-sizing:border-box}
.acc-def select:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.acc-def-warn{margin:7px 0 0;font-size:11px;color:#b45309;line-height:1.4}
.acc-def-actions{display:flex;align-items:center;gap:12px;margin-top:16px}
@media(max-width:620px){ .acc-def-grid{grid-template-columns:1fr} }

/* ===== v355: accounting — tax grid templates ===== */
.acc-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:13px}
.acc-tpl{background:#fff;border:1px solid var(--line,#e5e7eb);border-left:4px solid #cbd5e1;
  border-radius:12px;padding:14px 16px}
/* the tint answers the only question the screen is asked: is it in place? */
.acc-tpl.full{border-left-color:#22c55e}
.acc-tpl.part{border-left-color:#f59e0b;background:#fffdf7}
.acc-tpl.none{border-left-color:#94a3b8}
.acc-tpl-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.acc-tpl-h b{font-size:13.5px;color:#0f172a}
.acc-tpl-h small{display:block;font-size:11px;color:#94a3b8;margin-top:2px}
.acc-tpl-d{margin:9px 0 0;font-size:11.5px;color:#64748b;line-height:1.5}
.acc-tpl-n{margin:8px 0 0;font-size:11.5px;color:#0f172a;font-variant-numeric:tabular-nums}
.acc-tpl-a{margin-top:11px}
.acc-tpl-seed{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  margin-top:18px;padding:16px 18px;background:#f8fafc;border:1px solid var(--line,#e5e7eb);
  border-radius:13px}
.acc-tpl-seed b{font-size:13.5px;color:#0f172a}
.acc-tpl-seed .sp-note{margin:5px 0 0;max-width:620px}
@media(max-width:620px){ .acc-tpl-grid{grid-template-columns:1fr} .acc-tpl-seed .btn{width:100%} }


/* ===== v359: booking — manual entry ===== */
.man-toggle{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;margin-bottom:12px;
  background:#fffbeb;border:1px solid #fcd34d;border-radius:11px;cursor:pointer}
.man-toggle input{margin-top:2px;flex:none}
.man-toggle span{font-size:11.5px;color:#78350f;line-height:1.5}
.man-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.man-head b{font-size:14.5px;color:#0f172a}
.man-head small{display:block;font-size:11.5px;color:#64748b;margin-top:3px;max-width:660px;line-height:1.5}
.man-empty{padding:26px;text-align:center;color:#94a3b8;font-size:12.5px;
  background:#f8fafc;border:1px dashed var(--line,#e5e7eb);border-radius:12px}

/* the header and every row share one column template, so they stay aligned */
.man-grid,.man-hdr,.man-line1{display:grid;
  grid-template-columns:118px minmax(180px,1.6fr) minmax(150px,1.2fr) 132px 122px 104px 28px;gap:8px}
.man-hdr{padding:0 11px 6px;font-size:10px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#94a3b8}
.man-rows{display:flex;flex-direction:column;gap:9px}
.man-row{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:11px;padding:10px 11px}
.man-line1{align-items:start}
.man-c{min-width:0}
.man-c input,.man-c select{width:100%;border:1px solid var(--line,#e5e7eb);border-radius:8px;
  padding:7px 9px;font-size:12px;font-family:inherit;color:#0f172a;background:#fff;box-sizing:border-box}
.man-c input:focus,.man-c select:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.man-c-d input+input,.man-c-p input+input{margin-top:5px}
.man-c-m input{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.man-c-x{display:flex;align-items:center;justify-content:center;padding-top:4px}

/* second line: pickup and note, separated so it reads as context, not data */
.man-line2{display:flex;gap:9px;align-items:center;flex-wrap:wrap;
  margin-top:9px;padding-top:9px;border-top:1px dashed #eef2f7}
.man-tick{display:inline-flex;gap:6px;align-items:center;font-size:11.5px;color:#334155;
  white-space:nowrap;cursor:pointer}
.man-pickwrap{min-width:210px;flex:1}
.man-line2 input[type=time]{width:104px;border:1px solid var(--line,#e5e7eb);border-radius:8px;
  padding:6px 8px;font-size:12px;font-family:inherit}
.man-notes{flex:1;min-width:200px;border:1px solid var(--line,#e5e7eb);border-radius:8px;
  padding:6px 9px;font-size:12px;font-family:inherit;color:#0f172a}
.man-notes:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}

.man-pick{position:relative}
.man-pick input{width:100%;border:1px solid var(--line,#e5e7eb);border-radius:8px;
  padding:7px 9px;font-size:12px;font-family:inherit;box-sizing:border-box}
.man-res{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:9200;background:#fff;
  border:1px solid var(--line,#e5e7eb);border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.16);
  max-height:220px;overflow:auto}
.man-res:empty{display:none}
.man-res button{display:block;width:100%;text-align:left;background:none;border:none;
  padding:8px 10px;cursor:pointer;font-family:inherit}
.man-res button:hover{background:#f1f5f9}
.man-res button b{display:block;font-size:12px;color:#0f172a}
.man-res button small{font-size:10.5px;color:#94a3b8}
.man-route{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.man-route select{width:auto;min-width:90px}
.man-route .man-pick{flex:1;min-width:110px}
.man-arrow{color:#94a3b8;font-size:12px}
.man-dim{font-size:11px;color:#cbd5e1;font-style:italic}
.man-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-top:14px;padding-top:12px;border-top:1px solid var(--line,#e5e7eb)}
@media(max-width:1150px){
  .man-hdr{display:none}
  .man-line1{grid-template-columns:1fr 1fr;gap:7px}
  .man-c-x{grid-column:2;justify-content:flex-end}
}

/* ===== v357: booking edit (restored) ===== */
.bk-acts{white-space:nowrap}
.bk-acts .btn+.btn{margin-left:5px}
.bkd-btn.edit{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.bkd-btn.edit:hover:not(:disabled){background:#bfdbfe}
/* An amber flag, not a green one: rewriting an order is not a neutral act */
.bka-editflag{display:inline-flex;align-items:center;height:34px;padding:0 12px;
  background:#fef3c7;border:1px solid #fcd34d;color:#78350f;border-radius:9px;
  font-size:11.5px;font-weight:700;margin-right:8px}
@media(max-width:760px){ .bka-editflag{display:none} }

/* ===== v360: client external reference ===== */
.bka-extwarn{display:block;margin-top:7px;padding:8px 10px;background:#fffbeb;
  border:1px solid #fcd34d;border-radius:9px;font-size:11px;color:#78350f;line-height:1.5}
.bka-extok{display:block;margin-top:6px;font-size:11px;color:#166534}

/* ===== v360: planning list — spreadsheet header ===== */
.pl-listbar{display:flex;align-items:center;gap:12px;justify-content:space-between;
  padding:0 0 10px;flex-wrap:wrap}
.pl-search{position:relative;display:flex;align-items:center;flex:1;max-width:520px}
.pl-search svg{position:absolute;left:11px;width:15px;height:15px;color:#94a3b8;pointer-events:none}
.pl-search input{width:100%;border:1px solid var(--line,#e5e7eb);border-radius:10px;
  padding:9px 32px 9px 33px;font-size:12.5px;font-family:inherit;color:#0f172a;background:#fff}
.pl-search input:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.pl-search button{position:absolute;right:7px;border:none;background:#eef2f7;color:#475569;
  width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;padding:0}
.pl-search button:hover{background:#e2e8f0}
.pl-sortable thead th{cursor:pointer;user-select:none;white-space:nowrap;position:relative}
.pl-sortable thead th:hover{background:#eef2f7}
.pl-sortable thead th.sorted{color:#0f172a}
.pl-sa{font-style:normal;font-size:9px;color:#cbd5e1;margin-left:5px;vertical-align:middle}
.pl-sa.on{color:var(--squid-magenta,#e5295c);font-size:11px}
.pl-sortable thead th:last-child{cursor:default}
.pl-sortable thead th:last-child:hover{background:transparent}

/* ===== v361: planning — Excel-style column filter ===== */
.pl-sortable thead th{position:relative;padding-right:22px}
.pl-hlab{cursor:pointer;user-select:none}
.pl-hlab:hover{color:#0f172a}
.pl-fn{position:absolute;right:5px;top:50%;transform:translateY(-50%);
  border:none;background:none;color:#cbd5e1;font-size:8px;cursor:pointer;
  padding:3px 4px;border-radius:4px;line-height:1}
.pl-fn:hover{background:#e2e8f0;color:#475569}
.pl-fn.on{color:var(--squid-magenta,#e5295c)}
.pl-sortable thead th.filtered{background:#fff5f8}
.pl-clrall{margin-left:8px;border:1px solid #fcd34d;background:#fffbeb;color:#78350f;
  border-radius:7px;padding:3px 9px;font-size:10.5px;font-weight:700;cursor:pointer;font-family:inherit}
.pl-clrall:hover{background:#fef3c7}

.pl-fpop{position:fixed;z-index:9600;width:272px;background:#fff;
  border:1px solid var(--line,#e5e7eb);border-radius:12px;
  box-shadow:0 16px 42px rgba(15,23,42,.20);padding:9px;font-family:inherit}
.pl-fpop-h{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:#94a3b8;padding:2px 4px 7px}
.pl-fpop-sort{display:flex;gap:5px;margin-bottom:7px}
.pl-fpop-sort button{flex:1;border:1px solid var(--line,#e5e7eb);background:#f8fafc;
  border-radius:7px;padding:6px;font-size:11px;color:#334155;cursor:pointer;font-family:inherit}
.pl-fpop-sort button:hover{background:#eef2f7;color:#0f172a}
.pl-fpop-q{width:100%;border:1px solid var(--line,#e5e7eb);border-radius:8px;
  padding:7px 9px;font-size:12px;font-family:inherit;box-sizing:border-box}
.pl-fpop-q:focus{outline:none;border-color:var(--squid-magenta,#e5295c)}
.pl-fpop-tools{display:flex;gap:10px;padding:7px 4px 5px}
.pl-fpop-tools button{border:none;background:none;color:var(--squid-magenta,#e5295c);
  font-size:10.5px;font-weight:700;cursor:pointer;padding:0;font-family:inherit}
.pl-fpop-tools button:hover{text-decoration:underline}
.pl-fpop-list{max-height:214px;overflow:auto;border:1px solid #f1f5f9;border-radius:8px;padding:4px}
.pl-fpop-list label{display:flex;gap:7px;align-items:center;padding:5px 6px;
  border-radius:6px;cursor:pointer;font-size:12px;color:#0f172a}
.pl-fpop-list label:hover{background:#f8fafc}
.pl-fpop-list label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-fpop-a{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}


/* ==========================================================================
   v402 — rooms multiplication + multi-guest booking
   ========================================================================== */

/* The room stepper on a basket line. Deliberately compact: it sits inside a
   narrow basket column beside the price box. */
.bka-line-rooms{display:flex;align-items:center;gap:8px;margin:6px 0 2px;font-size:11.5px;
  font-weight:600;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.03em}
.bka-line-rooms button{width:24px;height:24px;border:1px solid var(--line,#e5e7eb);background:#fff;
  border-radius:6px;font-size:14px;line-height:1;cursor:pointer;color:#111;padding:0}
.bka-line-rooms button:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}
.bka-line-rooms button:disabled{opacity:.35;cursor:default}
.bka-line-rooms b{min-width:18px;text-align:center;font-size:13px;color:#111}

/* The arithmetic, shown under the line. "3 units" beside a one-room price is
   exactly what let the old bug run unnoticed. */
.bka-line-calc{display:block;color:var(--muted,#6b7280);font-variant-numeric:tabular-nums}
.bka-line-legacy{display:block;color:#b45309;font-weight:600}

/* Traveller counter above the guest cards. */
.bka-gcount{border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:9px 12px;margin:0 0 14px;
  font-size:13px;background:#f9fafb}
.bka-gcount.short{border-color:#fcd34d;background:#fffbeb}
.bka-gcount.ok{border-color:#a7f3d0;background:#f0fdf4}
.bka-gcount small{display:block;margin-top:3px;font-size:11px;line-height:1.5}

/* One card per traveller. */
.bka-guests{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.bka-gcard{border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:12px 14px;background:#fff}
.bka-gcard.lead{border-color:#c7d2fe;background:#fbfcff}
.bka-gcard-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.bka-gcard-h>b{font-size:13.5px}
.bka-gcard-h small{flex:1;font-size:11px}
.bka-gcard-h .bka-x{margin-left:auto}
.bka-gtype{display:flex;gap:10px;font-size:12px;font-weight:500}
.bka-gtype label{display:flex;align-items:center;gap:4px;cursor:pointer}
.bka-sumguests{display:block;margin-top:6px;line-height:1.7}


/* v405 — flight board freshness + source hint */
.fl-stale{margin:0 0 10px;padding:9px 12px;border:1px solid #fcd34d;background:#fffbeb;
  border-radius:9px;font-size:12.5px;color:#92400e;line-height:1.5}
.fl-src{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted,#9ca3af);font-weight:600;margin-top:1px}


/* ==========================================================================
   v406 — sell formats (multi-unit) + manufacturing
   ========================================================================== */
.pe-su-row input{height:36px;border:1.4px solid var(--line,#e2e8f0);border-radius:8px;
  padding:0 9px;font-size:13px;width:100%;box-sizing:border-box}
.pe-su-row input[type=radio]{height:auto;width:auto}
.bom-row select,.bom-row input{height:36px;border:1.4px solid var(--line,#e2e8f0);
  border-radius:8px;padding:0 9px;font-size:13px;width:100%;box-sizing:border-box}
#peBomWrap{display:flex;align-items:center;flex-wrap:wrap}

/* ==========================================================================
   v407 — PRODUCT EDITOR
   A sticky section rail beside a single scrolling pane. The rail is the
   navigation AND the change indicator: an agent who edited a price can see
   without scrolling that they have not touched stock or manufacturing.
   ========================================================================== */
.pex .pex-eyebrow{font-size:11px;font-weight:800;letter-spacing:.06em;
  color:var(--squid-magenta,#e5295c);margin:0 0 2px;text-transform:uppercase}

.pex-body{display:grid;grid-template-columns:236px minmax(0,1fr);gap:20px;align-items:start}

/* ---- rail ---- */
.pex-rail{position:sticky;top:16px;display:flex;flex-direction:column;gap:14px}
.pex-rail nav{display:flex;flex-direction:column;gap:2px;background:var(--surface,#fff);
  border:1px solid var(--line,#e4e7ef);border-radius:12px;padding:6px}
.pex-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;
  width:100%;padding:9px 11px;border:0;background:transparent;border-radius:8px;
  font-size:13.5px;font-weight:600;color:var(--ink-2,#454b5c);cursor:pointer;text-align:left}
.pex-nav:hover{background:var(--surface-alt,#fafbfd);color:var(--ink,#1b1f2a)}
.pex-nav.on{background:var(--squid-navy-700,#12245a);color:#fff;font-weight:700}
.pex-nav:focus-visible{outline:2px solid var(--squid-magenta,#e5295c);outline-offset:1px}
/* The count is the point of the rail: it says where the unsaved work is. */
.pex-dot{min-width:19px;height:19px;padding:0 5px;border-radius:10px;
  background:var(--squid-magenta,#e5295c);color:#fff;font-size:11px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center}
.pex-nav.on .pex-dot{background:#fff;color:var(--squid-navy-700,#12245a)}

.pex-photo{background:var(--surface,#fff);border:1px solid var(--line,#e4e7ef);
  border-radius:12px;padding:12px;text-align:center}
.pex-photo img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:9px;
  background:var(--surface-alt,#fafbfd);display:block}
.pex-photo-btn{display:block;margin-top:9px;padding:7px;border:1px solid var(--line-strong,#d2d7e3);
  border-radius:8px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--ink-2,#454b5c)}
.pex-photo-btn:hover{background:var(--surface-alt,#fafbfd)}
.pex-photo small{display:block;margin-top:5px;font-size:11px;color:var(--ink-3,#6b7280);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- pane ---- */
.pex-pane{background:var(--surface,#fff);border:1px solid var(--line,#e4e7ef);
  border-radius:12px;padding:20px 22px 26px;min-height:420px}
.pex-h{margin:0 0 4px;font-size:17px;font-weight:800;color:var(--ink,#1b1f2a)}
.pex-lead{margin:2px 0 14px;font-size:12.5px;color:var(--ink-3,#6b7280);line-height:1.55;max-width:70ch}
.pex-grp{margin:22px 0 8px;font-size:11px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3,#6b7280);
  border-top:1px solid var(--line,#e4e7ef);padding-top:14px}
.pex-grp:first-child{margin-top:4px;border-top:0;padding-top:0}
.pex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 14px}

.pex-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.pex-f.full{grid-column:1/-1}
.pex-f>span{font-size:12px;font-weight:700;color:var(--ink-2,#454b5c)}
.pex-f>span i{font-style:normal;font-size:10px;font-weight:700;color:var(--squid-magenta,#e5295c);
  text-transform:uppercase;letter-spacing:.04em;margin-left:4px}
.pex-f input,.pex-f select,.pex-f textarea{height:38px;border:1.4px solid var(--line,#e4e7ef);
  border-radius:8px;padding:0 10px;font-size:13.5px;font-family:inherit;
  color:var(--ink,#1b1f2a);background:#fff;width:100%;box-sizing:border-box}
.pex-f textarea{height:auto;padding:9px 10px;resize:vertical;line-height:1.5}
.pex-f input:focus,.pex-f select:focus,.pex-f textarea:focus{outline:0;
  border-color:var(--squid-navy-600,#1b3478);box-shadow:0 0 0 3px rgba(27,52,120,.12)}
.pex-f input:disabled{background:var(--surface-alt,#fafbfd);color:var(--ink-3,#6b7280)}
.pex-f small{font-size:11px;color:var(--ink-3,#6b7280);line-height:1.45}
/* A changed field is marked where the change is, not only in the rail. */
.pex-f.dirty>span::after{content:'•';color:var(--squid-magenta,#e5295c);margin-left:5px;font-size:15px;line-height:0}
.pex-f.dirty input,.pex-f.dirty select,.pex-f.dirty textarea{border-color:var(--squid-magenta,#e5295c)}

.pex-check{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;
  border:1.4px solid var(--line,#e4e7ef);border-radius:9px;cursor:pointer;min-width:0}
.pex-check:hover{background:var(--surface-alt,#fafbfd)}
.pex-check input{margin-top:2px;flex:none}
.pex-check b{display:block;font-size:13px;font-weight:700;color:var(--ink,#1b1f2a)}
.pex-check small{display:block;margin-top:2px;font-size:11px;color:var(--ink-3,#6b7280);line-height:1.45}
.pex-check.dirty{border-color:var(--squid-magenta,#e5295c);background:#fff5f8}

.pex-dirty{font-size:12px;font-weight:700;color:var(--ink-3,#6b7280);margin-right:6px}
.pex-dirty.on{color:var(--squid-magenta,#e5295c)}
.pex-load{display:flex;align-items:center;gap:9px;padding:26px 0;
  font-size:13px;color:var(--ink-3,#6b7280);font-weight:600}

/* ---- sell formats ---- */
.pex-su{display:grid;grid-template-columns:1.6fr .7fr 1fr 1.2fr auto auto;gap:7px;
  align-items:center;margin-bottom:7px}
.pex-su input[type=text],.pex-su input[type=number],.pex-su input:not([type]){height:36px;
  border:1.4px solid var(--line,#e4e7ef);border-radius:8px;padding:0 9px;font-size:13px;
  width:100%;box-sizing:border-box}
.pex-su label{display:flex;align-items:center;gap:5px;font-size:11.5px;
  color:var(--ink-2,#454b5c);white-space:nowrap;font-weight:600}
.pex-su .suX{width:30px;height:30px;border:0;border-radius:8px;background:#fee2e2;
  color:#b91c1c;font-weight:900;cursor:pointer;font-size:15px;line-height:1}
.pex-su .suX:hover{background:#fecaca}
.pex-bom{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pex-bom .muted{font-size:12px}

@media (max-width:900px){
  .pex-body{grid-template-columns:1fr}
  .pex-rail{position:static}
  .pex-rail nav{flex-direction:row;flex-wrap:wrap}
  .pex-nav{width:auto}
  .pex-photo{max-width:220px}
}
@media (prefers-reduced-motion:reduce){.pex *{transition:none!important;animation:none!important}}

/* ==========================================================================
   v407b — product listing polish + editor section icons, rows and pickers
   ========================================================================== */

/* ---- listing row -------------------------------------------------------
   A long product name used to push the price out of the row. It is now
   clamped to two lines with the full text on the title attribute, so the
   grid keeps its rhythm and nothing is lost. */
.prod-row{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;
  gap:12px;align-items:center;width:100%;padding:10px 42px 10px 10px;border:0;
  background:transparent;border-radius:10px;text-align:left;cursor:pointer;
  border:1px solid transparent}
.prod-row:hover{background:var(--surface-alt,#fafbfd);border-color:var(--line,#e4e7ef)}
.prod-row.active{background:#eef2ff;border-color:#c7d2fe}
.prod-row:focus-visible{outline:2px solid var(--squid-magenta,#e5295c);outline-offset:1px}
.prod-row-main{min-width:0}
.prod-row-main b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;font-size:13.5px;font-weight:700;line-height:1.35;color:var(--ink,#1b1f2a);
  word-break:break-word}
.prod-row-main small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3,#6b7280);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prod-row-price{text-align:right;white-space:nowrap}
.prod-row-price .prp-amt{display:block;font-size:13.5px;font-weight:800;color:var(--ink,#1b1f2a);
  font-variant-numeric:tabular-nums}
.prod-row-price .prp-vat{display:block;font-size:10px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ink-3,#9ca3af)}
/* The pencil is always in the DOM for the keyboard and screen readers; it
   only becomes visible on hover or focus so the list stays calm. */
.prod-row-edit{position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong,#d2d7e3);border-radius:7px;background:#fff;
  color:var(--ink-2,#454b5c);cursor:pointer;opacity:0;transition:opacity .12s ease}
.prod-row-edit svg{width:14px;height:14px}
.prod-row:hover .prod-row-edit,.prod-row-edit:focus-visible{opacity:1}
.prod-row-edit:hover{background:var(--squid-navy-700,#12245a);color:#fff;border-color:var(--squid-navy-700,#12245a)}

/* ---- editor rail icons ---- */
.pex-nav{gap:9px;justify-content:flex-start}
.pex-nav>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pex-ico{flex:none;width:17px;height:17px;display:inline-flex;color:var(--ink-3,#9ca3af)}
.pex-ico svg{width:17px;height:17px}
.pex-nav:hover .pex-ico{color:var(--squid-magenta,#e5295c)}
.pex-nav.on .pex-ico{color:#fff}
/* [hidden] loses to the class's display:flex — this is why the loading
   banner stayed on screen. The element is removed now, but keep the rule so
   the bug cannot come back through a future .hidden toggle. */
.pex-load[hidden]{display:none!important}

/* ---- generic editable row (BOM, spare parts, accessories) ---- */
.pex-row{display:grid;gap:7px;align-items:center;margin-bottom:7px}
.pex-row-bom{grid-template-columns:minmax(0,2fr) 90px 90px minmax(0,1.4fr) auto}
.pex-row-as{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1.4fr) auto}
.pex-row input,.pex-row select{height:36px;border:1.4px solid var(--line,#e4e7ef);
  border-radius:8px;padding:0 9px;font-size:13px;width:100%;box-sizing:border-box;
  font-family:inherit;color:var(--ink,#1b1f2a);background:#fff}
.pex-row input:focus,.pex-row select:focus{outline:0;border-color:var(--squid-navy-600,#1b3478);
  box-shadow:0 0 0 3px rgba(27,52,120,.12)}
.pex-row .rowX{width:30px;height:30px;border:0;border-radius:8px;background:#fee2e2;
  color:#b91c1c;font-weight:900;cursor:pointer;font-size:15px;line-height:1}
.pex-row .rowX:hover{background:#fecaca}

@media (max-width:760px){
  .pex-row-bom,.pex-row-as{grid-template-columns:1fr auto}
  .prod-row{padding-right:10px}
  .prod-row-edit{opacity:1;position:static;transform:none}
}

/* ==========================================================================
   v409 — language toggle, flag grids, inline-add pickers
   ========================================================================== */

/* A segmented control, not two checkboxes: the languages are exclusive and
   the control should say so by shape before anyone reads it. */
.pex-lang{display:flex;align-items:center;gap:0;margin:0 0 16px;flex-wrap:wrap}
.pex-lang button{padding:6px 14px;border:1.4px solid var(--line-strong,#d2d7e3);
  background:#fff;font-size:12.5px;font-weight:700;color:var(--ink-2,#454b5c);cursor:pointer}
.pex-lang button:first-of-type{border-radius:8px 0 0 8px}
.pex-lang button:last-of-type{border-radius:0 8px 8px 0;border-left:0}
.pex-lang button.on{background:var(--squid-navy-700,#12245a);border-color:var(--squid-navy-700,#12245a);color:#fff}
.pex-lang button:focus-visible{outline:2px solid var(--squid-magenta,#e5295c);outline-offset:1px;z-index:1}
.pex-lang small{flex:1 1 100%;margin-top:6px;font-size:11px;color:var(--ink-3,#6b7280)}

/* Flags sit closer together than fields and never stretch to input height. */
.pex-grid-flags{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.pex-grid-flags .pex-check{padding:8px 10px;align-items:center}
.pex-grid-flags .pex-check small{margin-top:1px}

/* A select with a create button welded to its right edge. */
.pex-withadd{display:flex;gap:0;min-width:0}
.pex-withadd select{border-radius:8px 0 0 8px;min-width:0}
.pex-add{flex:none;width:38px;height:38px;border:1.4px solid var(--line,#e4e7ef);border-left:0;
  border-radius:0 8px 8px 0;background:var(--surface-alt,#fafbfd);color:var(--ink-2,#454b5c);
  font-size:16px;font-weight:800;cursor:pointer;line-height:1}
.pex-add:hover{background:var(--squid-navy-700,#12245a);color:#fff;border-color:var(--squid-navy-700,#12245a)}
.pex-add:focus-visible{outline:2px solid var(--squid-magenta,#e5295c);outline-offset:1px}

/* ==========================================================================
   v410 — specifications and additional information
   ========================================================================== */
.pex-specs{display:flex;flex-direction:column;gap:10px}
.pex-spec{border:1.4px solid var(--line,#e4e7ef);border-radius:11px;padding:11px 13px;background:#fff}
.pex-spec.on{border-color:var(--squid-navy-600,#1b3478);background:#fbfcff}
.pex-spec-h{display:flex;align-items:center;gap:9px;cursor:pointer;margin:0}
.pex-spec-h b{font-size:13.5px;font-weight:700;color:var(--ink,#1b1f2a)}
.pex-spec-n{margin-left:auto;font-size:11px;font-weight:700;color:var(--ink-3,#9ca3af);
  text-transform:uppercase;letter-spacing:.04em}
/* The options are the specification's, not the product's — shown as static
   chips so nobody edits one product and changes every other. */
.pex-spec-opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pex-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;
  background:var(--surface-alt,#f3f4f8);border:1px solid var(--line,#e4e7ef);
  font-size:11.5px;font-weight:600;color:var(--ink-2,#454b5c)}
.pex-chip i{font-style:normal;font-weight:800;color:var(--squid-magenta,#e5295c)}
.pex-chip em{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#0369a1;background:#e0f2fe;padding:1px 4px;border-radius:4px}
.pex-spec-price{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:11px;
  padding-top:11px;border-top:1px dashed var(--line,#e4e7ef)}
.pex-spec-price label{display:flex;align-items:center;gap:5px;font-size:12px;
  font-weight:600;color:var(--ink-2,#454b5c);white-space:nowrap}
.pex-spec-price select,.pex-spec-price input{height:32px;border:1.4px solid var(--line,#e4e7ef);
  border-radius:7px;padding:0 8px;font-size:12.5px;font-family:inherit;background:#fff}
.pex-spec-price input{width:110px}

/* ==========================================================================
   v411 — SPARE PARTS  (listing + add/edit page)
   The editor reuses the product editor's .pex-* classes; only what is new
   to this module is defined here.
   ========================================================================== */
/* Read-only banner while the SPAREPARTS_API_1 legs are not deployed. */
.spp-lite{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;margin:0 0 12px;
  border:1px solid #fde68a;background:#fffbeb;border-radius:10px;font-size:12.5px;
  color:#92400e;line-height:1.5}
.spp-lite>span{font-size:15px;line-height:1.2}
.spp-lite b{color:#78350f}
.spp-lite code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:#fef3c7;padding:1px 5px;border-radius:5px}

/* Listing rows: name clamped to two lines, identifiers on one line under it,
   the whole row clickable and reachable from the keyboard. */
.tbl td.spp-part{max-width:360px}
.tbl td.spp-part b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:13.5px;font-weight:700;color:var(--ink,#1b1f2a);line-height:1.3}
.tbl td.spp-part small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3,#6b7280);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}
.tbl tr.spp-row{cursor:pointer}
.tbl tr.spp-row.lite{cursor:default}
.tbl tr.spp-row:focus-visible{outline:2px solid var(--squid-magenta,#e5295c);outline-offset:-2px}
.tbl tr.spp-row.flash td{animation:spFlash 2.6s ease-out forwards}
@keyframes spFlash{0%{background:#e0e7ff}70%{background:#eef2ff}100%{background:transparent}}
.spp-stock{display:inline-flex;align-items:center;gap:7px;justify-content:flex-end}
.spp-stock b{font-weight:800;color:var(--ink,#1b1f2a)}

/* Rail card: the part's identity and live count, where the product editor
   shows the photo. */
.spp-card{text-align:left}
.spp-card>b{display:block;font-size:13.5px;font-weight:800;color:var(--ink,#1b1f2a);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spp-card>small{display:block;margin-top:4px;font-size:11.5px;color:var(--ink-3,#6b7280);
  line-height:1.45;white-space:normal;overflow:visible}
.spp-card>small b{color:var(--ink,#1b1f2a)}
.spp-card:empty{display:none}

/* Serial rows: one input and a remove button. */
.pex-row-ser{grid-template-columns:minmax(0,1fr) auto}

/* ==========================================================================
   v413 — overlays built with createElement (not PAGE.modal) get a padded
   body above the flush footer; the bill-of-materials overlay gets room for
   its five columns; the manufacturing order moved in page.
   ========================================================================== */
.pos-modal-card .pmc-sheet{padding:20px 20px 8px;overflow-y:auto}
.pos-modal-card .pmc-sheet>h3{margin:0 0 4px;font-size:17px;font-weight:800;color:var(--ink,#1b1f2a)}
.pos-modal-card .pmc-sheet>p.muted,.pos-modal-card .pmc-sheet>p.doc-muted{margin:0 0 16px;padding:0;font-size:12.5px;line-height:1.5}
.pos-modal-card .pmc-sheet .crm-grid{gap:12px 14px}
.pos-modal-card .pmc-sheet .pex-grp{margin-top:16px}
.pos-modal-card.bom{width:min(780px,100%)}

/* One grid for the header row and every component row, so the columns line
   up whatever the text in them. */
.bom-grid{display:grid;grid-template-columns:minmax(0,2fr) 104px 96px minmax(0,1.3fr) 34px;gap:8px;align-items:center}
.bom-grid+.bom-grid{margin-top:8px}
.bom-grid.head{margin-bottom:8px;padding:0 2px}
.bom-grid.head span{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3,#6b7280)}
.bom-grid select,.bom-grid input{height:38px;border:1.4px solid var(--line,#e4e7ef);border-radius:8px;padding:0 10px;
  font-size:13.5px;font-family:inherit;color:var(--ink,#1b1f2a);background:#fff;width:100%;min-width:0;box-sizing:border-box}
.bom-grid select:focus,.bom-grid input:focus{outline:0;border-color:var(--squid-navy-600,#1b3478);box-shadow:0 0 0 3px rgba(27,52,120,.12)}
.bom-grid .bom-x{width:34px;height:34px;border:0;border-radius:8px;background:#fee2e2;color:#b91c1c;font-weight:900;cursor:pointer;font-size:15px;line-height:1}
.bom-grid .bom-x:hover{background:#fecaca}
@media (max-width:640px){.bom-grid{grid-template-columns:minmax(0,1fr) 80px 34px}.bom-grid .bomWaste,.bom-grid .bomNotes,.bom-grid.head span:nth-child(3),.bom-grid.head span:nth-child(4){display:none}}

/* Complete overlay: component / quantity used */
.mo-use{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:10px;align-items:center;margin-bottom:8px;font-size:13.5px}
.mo-use input{height:38px;border:1.4px solid var(--line,#e4e7ef);border-radius:8px;padding:0 10px;font-size:13.5px;font-family:inherit;width:100%;box-sizing:border-box}

/* A row the user just created or changed, on return to a listing. */
.tbl tr.row-flash td{animation:spFlash 2.6s ease-out forwards}

/* v415 — per-line discount (Khoodoruth v495): combo + value in one cell */
.ose-disc{display:flex;gap:4px;align-items:center;min-width:0}
.ose-disc select{height:34px;border:1px solid #d9e0ea;border-radius:8px;padding:0 4px;font-size:12px;font-weight:700;background:#fff;width:52px;flex:0 0 52px}
.ose-disc input{border:1px solid #d9e0ea;border-radius:8px;padding:6px 4px;text-align:right;font-weight:700;background:#fff;font-size:12px;flex:1;min-width:0;width:56px;height:34px;box-sizing:border-box}

/* v417 — a .pos-modal card hosted in the page (promotions editor) */
.pos-modal.inpage{position:static;inset:auto;background:none;display:block;padding:0;z-index:auto;backdrop-filter:none}
.pos-modal.inpage .pos-modal-card{width:auto;max-width:none;max-height:none;box-shadow:none;border:1px solid var(--line,#e4e7ef);border-radius:14px}
