:root{
  --navy:#0F1B3D; --navy-2:#16244D; --blue:#1F4FD1; --bright:#2E6BFF; --red:#E5303A; --sky:#DCE6FF;
  --bg:#F3F5F9; --surface:#FFFFFF; --surface-2:#F8FAFC; --ink:#0F1B3D; --muted:#4A5675; --faint:#67738F; --line:#E1E6F0; --line-2:#EEF1F6;
  --good:#1E7F48; --good-soft:#E5F4EB; --warn:#9A6400; --warn-soft:#FCF1DC; --crit:#B3261E; --crit-soft:#FBE7E5; --info:#1F4FD1; --info-soft:#E7EEFB;
  --f-display:"Space Grotesk","Segoe UI",system-ui,sans-serif; --f-body:"Manrope","Segoe UI",system-ui,sans-serif; --f-mono:"JetBrains Mono",ui-monospace,monospace;
  --r:10px; --shadow:0 1px 2px rgba(15,27,61,.05),0 6px 18px rgba(15,27,61,.06);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
h1,h2,h3{font-family:var(--f-display);margin:0;letter-spacing:-.01em}
h1{font-size:1.55rem}h2{font-size:1.05rem}h3{font-size:.95rem}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--bright);outline-offset:2px}
.boot{display:grid;place-items:center;min-height:100vh;color:var(--muted)}
.mono{font-family:var(--f-mono);font-size:.92em}
.muted{color:var(--muted)}.faint{color:var(--faint)}.tiny{font-size:.78rem}.right{text-align:right}.nowrap{white-space:nowrap}
.hidden{display:none!important}

/* shell */
.shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;overflow-y:auto;background:linear-gradient(180deg,#0F1B3D,#13234F);color:#EEF2FF;padding:16px 12px 20px;display:flex;flex-direction:column;gap:14px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;padding:4px 8px 10px}
.brand img{width:36px;height:auto}
.brand b{font-family:var(--f-display);letter-spacing:.14em;font-size:.95rem}
.brand small{display:block;font-size:.62rem;letter-spacing:.3em;color:#A9C2FF}
.nav-group{display:flex;flex-direction:column;gap:2px}
.nav-group .eyebrow{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#8C99BA;padding:6px 10px 4px}
.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:#D5DCF0;text-decoration:none;font-weight:500}
.nav:hover{background:rgba(255,255,255,.06);color:#fff}
.nav[aria-current="page"]{background:rgba(46,107,255,.22);color:#fff;box-shadow:inset 3px 0 0 var(--red)}
.nav .count{margin-left:auto;background:var(--red);color:#fff;font-size:.68rem;padding:1px 7px;border-radius:999px}
.nav.locked{opacity:.45}
.rail .foot{margin-top:auto;font-size:.75rem;color:#8C99BA;padding:0 10px}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:5;background:rgba(243,245,249,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.banner{background:linear-gradient(90deg,#0F1B3D,#1E3A8A 70%,#2E6BFF);color:#DCE6FF;font-size:.8rem;padding:6px 24px;display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap}
.banner b{color:#fff}.banner .sp{flex:1}
.banner a,.banner button{border:1px solid rgba(220,230,255,.35);background:rgba(255,255,255,.08);color:#fff;font-weight:600;padding:3px 12px;border-radius:999px;text-decoration:none;cursor:pointer}
.banner.warn{background:var(--warn-soft);color:var(--warn)}.banner.warn b{color:var(--warn)}.banner.warn a{color:var(--warn);border-color:var(--warn)}
.topbar-in{display:flex;align-items:center;gap:12px;padding:10px 24px}
.tenant{display:flex;flex-direction:column;line-height:1.2}
.tenant .nm{font-weight:700}.tenant .sub{font-size:.75rem;color:var(--muted)}
.topbar .sp{flex:1}
.menu-btn{display:none}
.content{padding:22px 24px 80px;display:flex;flex-direction:column;gap:18px;max-width:1360px;width:100%}
@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .rail{position:fixed;left:0;top:0;bottom:0;width:264px;z-index:40;transform:translateX(-105%);transition:transform .25s}
  .rail.open{transform:none;box-shadow:0 0 0 100vmax rgba(15,27,61,.4)}
  .menu-btn{display:inline-flex}
  .content,.topbar-in{padding-left:16px;padding-right:16px}
}

/* building blocks */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.page-head p{margin:4px 0 0;color:var(--muted);max-width:70ch}
.eyebrow{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.panel-h .sub{color:var(--muted);font-size:.8rem}
.panel-b{padding:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)!important}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}
.kpi .lbl{font-size:.75rem;color:var(--muted);font-weight:600}
.kpi .val{font-family:var(--f-display);font-size:1.45rem;font-weight:600}
.kpi .foot{font-size:.75rem;color:var(--faint)}
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);padding:7px 14px;border-radius:8px;cursor:pointer;font-weight:600;text-decoration:none;color:var(--ink);white-space:nowrap}
.btn:hover{border-color:#C6CFE0;background:var(--surface-2)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:#1A43B5}
.btn.danger{color:var(--crit);border-color:#F0C4C0}.btn.danger:hover{background:var(--crit-soft)}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:4px 10px;font-size:.8rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--line-2);color:var(--muted);white-space:nowrap}
.p-good{background:var(--good-soft);color:var(--good)}.p-warn{background:var(--warn-soft);color:var(--warn)}.p-crit{background:var(--crit-soft);color:var(--crit)}.p-info{background:var(--info-soft);color:var(--info)}
.empty{padding:34px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font-size:1rem;margin-bottom:4px}

/* tables */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:.87rem}
.tbl th{text-align:left;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);position:sticky;top:0}
.tbl td{padding:9px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:#F6F8FD}
.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tr.bold td{font-weight:700}
.tbl tfoot td{font-weight:700;border-top:2px solid var(--line);background:var(--surface-2)}

/* forms */
form.f{display:flex;flex-direction:column;gap:14px}
[hidden]{display:none!important}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field.wide{grid-column:1/-1}
.field label{font-weight:600;font-size:.82rem}
.field label .req{color:var(--red)}
.field .hint{font-size:.76rem;color:var(--faint);line-height:1.4}
.field .hint.ok{color:var(--good)}.field .hint.bad{color:var(--crit)}
.input,select.input,textarea.input{width:100%;border:1px solid #CFD7E6;background:#fff;border-radius:8px;padding:8px 10px;min-height:38px}
.input:focus{border-color:var(--bright);outline:none;box-shadow:0 0 0 3px rgba(46,107,255,.15)}
textarea.input{min-height:70px;resize:vertical}
.check{display:flex;gap:8px;align-items:flex-start;font-size:.86rem}
.check input{margin-top:3px}
.err{background:var(--crit-soft);color:var(--crit);border-radius:8px;padding:9px 12px;font-size:.86rem}
.lines{width:100%;border-collapse:collapse}
.lines th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);text-align:left;padding:6px 6px}
.lines td{padding:4px 6px;vertical-align:top}
.lines .input{min-height:34px;padding:6px 8px}
.totals{margin-left:auto;min-width:280px;display:flex;flex-direction:column;gap:4px}
.totals div{display:flex;justify-content:space-between;gap:20px}
.totals div.big{font-weight:800;font-size:1.05rem;border-top:1px solid var(--line);padding-top:6px}

/* modal, toast */
.modal-bg{position:fixed;inset:0;background:rgba(15,27,61,.45);z-index:60;display:grid;place-items:center;padding:16px}
.modal{background:#fff;border-radius:14px;width:min(640px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 80px rgba(15,27,61,.35)}
.modal.wide{width:min(980px,100%)}
.modal-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line-2)}
.modal-b{padding:18px 20px}
.modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line-2)}
.x{border:0;background:none;font-size:1.4rem;cursor:pointer;color:var(--muted)}
#toasts{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);max-width:380px}
.toast.bad{background:var(--crit)}

/* alerts */
.alerts{display:flex;flex-direction:column}
.alert{display:flex;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line-2);text-decoration:none;color:inherit;border-left:3px solid var(--line)}
.alert:hover{background:#F6F8FD}
.alert.crit{border-left-color:var(--crit)}.alert.warn{border-left-color:#D99A0C}.alert.info{border-left-color:var(--bright)}
.alert b{display:block}.alert span{font-size:.8rem;color:var(--muted)}
.bars{display:flex;align-items:flex-end;gap:8px;height:160px;padding:10px 0 0}
.bars div{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;font-size:.72rem;color:var(--muted)}
.bars i{display:block;width:100%;max-width:44px;background:linear-gradient(180deg,var(--bright),var(--blue));border-radius:6px 6px 2px 2px;min-height:2px}

/* auth pages */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.auth .side{position:relative;overflow:hidden;background:#0F1B3D;color:#DCE6FF;min-height:100vh;isolation:isolate}
.side-bg{position:absolute;inset:0;z-index:-1}
.side-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:0;transform:scale(1.06);transition:opacity 1.4s ease,transform 7s ease-out}
.side-bg img.on{opacity:1;transform:scale(1)}
.side-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,20,46,.94) 0%,rgba(11,20,46,.72) 34%,rgba(11,20,46,.28) 58%,rgba(11,20,46,.88) 100%),linear-gradient(90deg,rgba(15,27,61,.35),rgba(15,27,61,0) 60%)}
.side-in{position:relative;height:100%;min-height:100vh;padding:36px 40px 26px;display:flex;flex-direction:column;gap:18px}
.auth .side .brand{padding:0}
.auth .side h1{color:#fff;font-size:clamp(1.7rem,2.4vw,2.35rem);line-height:1.12;max-width:17ch;margin:0;letter-spacing:-.01em;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.side-copy{display:flex;flex-direction:column;gap:12px;margin-top:18px;animation:rise .7s ease both}
.side-scene{margin:0;max-width:44ch;display:flex;flex-direction:column;gap:2px;font-size:.92rem;color:#C9D6F5}
.side-scene b{color:#fff;font-family:var(--f-display);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.side-scene.in{animation:rise .6s ease both}
.dots{display:flex;gap:8px}
.dots button{width:26px;height:4px;border-radius:4px;border:0;padding:0;background:rgba(255,255,255,.3);cursor:pointer;transition:background .3s,width .3s}
.dots button.on{background:#fff;width:40px}
.stage{position:relative;flex:1;min-height:250px;margin-top:4px}
.fcard{position:absolute;background:rgba(255,255,255,.94);color:var(--ink);border-radius:14px;padding:12px 14px;box-shadow:0 18px 40px rgba(6,12,32,.38),0 2px 6px rgba(6,12,32,.2);backdrop-filter:blur(8px);
  --px:0px;--py:0px;transform:translate(var(--px),var(--py));transition:transform .35s ease-out;animation:cardIn .8s cubic-bezier(.2,.8,.2,1) backwards}
.fcard>*{animation:none}
.fcard .fc-h{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.fcard em{font-style:normal;font-size:.68rem;padding:2px 7px;border-radius:999px;background:var(--info-soft);color:var(--blue)}
.fcard em.ok{background:var(--good-soft);color:var(--good)}.fcard em.up{background:var(--good-soft);color:var(--good)}
.fc-co{display:block;font-family:var(--f-display);font-size:.9rem;margin:5px 0 6px;max-width:24ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-co.mono{font-family:var(--f-mono);letter-spacing:.04em}
.fcard small{display:block;font-size:.7rem;color:var(--muted)}
.fcard.inv{left:0;top:6%;width:min(270px,62%);animation-delay:.15s}
.inv-b{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.inv-b strong{display:block;font-family:var(--f-display);font-size:1.35rem;margin:1px 0}
.qr{width:52px;height:52px;fill:var(--ink);flex:none;padding:3px;background:#fff;border:1px solid var(--line);border-radius:6px}
.fcard.gst{right:0;top:34%;width:min(240px,56%);animation-delay:.35s}
.fcard.gst.pop{animation:pop .5s cubic-bezier(.2,.9,.3,1.3)}
.mini-bars{display:flex;align-items:flex-end;gap:6px;height:54px;margin:8px 0 6px}
.mini-bars i{flex:1;height:var(--h);border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,var(--bright),var(--blue));transform-origin:bottom;animation:grow .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.6s + var(--d))}
.gst-rows{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;font-size:.78rem;font-weight:600}
.gst-rows span:last-child{grid-column:1/-1}
.fcard.stk{left:12%;bottom:2%;width:min(220px,50%);animation-delay:.55s}
.spark{width:100%;height:40px;margin-top:6px;overflow:visible}
.spark .line{fill:none;stroke:var(--bright);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:160;stroke-dashoffset:160;animation:draw 1.6s .9s ease forwards}
.spark .area{fill:rgba(46,107,255,.12)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{font-size:.74rem;font-weight:600;color:#fff;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(6px);transition:background .2s,transform .2s}
.chips span:hover{background:rgba(255,255,255,.24);transform:translateY(-2px)}
.setup{background:rgba(11,20,46,.62);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px;backdrop-filter:blur(8px)}
.setup-h{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#A9C2FF;margin-bottom:6px}
.setup ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.setup li{display:flex;gap:10px;align-items:flex-start;padding:5px 0;opacity:.55;transition:opacity .3s}
.setup li b{display:block;font-size:.84rem;color:#fff}
.setup li small{display:none;font-size:.75rem;color:#C9D6F5;margin-top:1px}
.setup li.on,.setup li.done{opacity:1}.setup li.on small{display:block;animation:rise .4s ease both}
.tick{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.45);margin-top:1px;display:grid;place-items:center;transition:all .3s}
.setup li.on .tick{border-color:#fff;box-shadow:0 0 0 0 rgba(46,107,255,.7);animation:pulse 1.8s infinite}
.setup li.done .tick{background:#2BB673;border-color:#2BB673}
.setup li.done .tick::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.trust{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.76rem;color:#DCE6FF}
.side-foot{margin:0;color:#A9B6D6}.side-foot a{color:#A9C2FF}
.auth-strip{display:none}
/* control centre side panel cards */
.sec-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.sec-list li{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:600;animation:rise .5s ease both}
.sec-list li:nth-child(2){animation-delay:.9s}.sec-list li:nth-child(3){animation-delay:1.2s}.sec-list li:nth-child(1){animation-delay:.6s}
.sec-list i{font-style:normal;width:22px;text-align:center}.sec-list span{margin-left:auto;font-size:.68rem;color:var(--good);background:var(--good-soft);padding:1px 7px;border-radius:999px}
.donut-row{display:flex;align-items:center;gap:14px;margin-top:8px}
.donut{width:64px;height:64px;border-radius:50%;flex:none;background:conic-gradient(#2E6BFF 0 62%,#7FA3FF 62% 88%,#E5303A 88% 100%);-webkit-mask:radial-gradient(circle 20px,transparent 98%,#000 100%);mask:radial-gradient(circle 20px,transparent 98%,#000 100%);animation:spinIn 1.2s cubic-bezier(.2,.8,.2,1) .5s both}
.legend{list-style:none;margin:0;padding:0;font-size:.74rem;display:flex;flex-direction:column;gap:3px;color:var(--muted)}
.legend b{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.ticker{height:22px;overflow:hidden;margin-top:8px;font-size:.8rem;font-weight:600}
.ticker div{display:flex;flex-direction:column;animation:tick 12s steps(1) infinite}
.ticker span{height:22px;line-height:22px;color:var(--ink)}.ticker span::first-letter{color:var(--good)}
@keyframes tick{0%{transform:translateY(0)}16.6%{transform:translateY(-22px)}33.3%{transform:translateY(-44px)}50%{transform:translateY(-66px)}66.6%{transform:translateY(-88px)}83.3%{transform:translateY(-110px)}100%{transform:translateY(-132px)}}
@keyframes spinIn{from{transform:rotate(-120deg) scale(.6);opacity:0}to{transform:none;opacity:1}}
/* sign-in controls */
.seg{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:var(--line-2);border-radius:12px;margin:18px 0 6px}
.seg button{position:relative;z-index:1;border:0;background:none;padding:9px 6px;border-radius:9px;font:600 .82rem var(--f-body);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:color .2s}
.seg button.on{color:var(--ink)}.seg button:focus-visible{outline:2px solid var(--bright)}
.seg-ink{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;background:#fff;border-radius:9px;box-shadow:0 1px 3px rgba(15,27,61,.12);transition:transform .3s cubic-bezier(.2,.8,.2,1),width .3s}
.seg.locked{opacity:.45;pointer-events:none}
.fade{animation:rise .35s ease both}
.shake{animation:shake .4s ease}
@keyframes shake{0%,100%{transform:none}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
.btn.busy{position:relative;color:transparent!important}.btn.busy::after{content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pw-wrap{position:relative;display:block}.pw-wrap .input{width:100%;padding-right:44px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:none;border-radius:8px;cursor:pointer;display:grid;place-items:center;color:var(--faint)}
.pw-eye:hover{background:var(--line-2);color:var(--ink)}.pw-eye svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.pw-eye .x{stroke-dasharray:23;stroke-dashoffset:0;transition:stroke-dashoffset .25s}.pw-eye.on .x{stroke-dashoffset:23}.pw-eye.on{color:var(--blue)}
.otp{display:grid;grid-template-columns:repeat(3,minmax(0,52px)) 4px repeat(3,minmax(0,52px));gap:8px;margin:6px 0 4px}
.otp input{height:56px;text-align:center;font:600 1.4rem var(--f-mono);border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s,transform .15s;min-width:0}
.otp input:focus{outline:0;border-color:var(--bright);box-shadow:0 0 0 3px rgba(46,107,255,.18);transform:translateY(-1px)}
.otp input:nth-child(4){grid-column:5}
.otp.full input{border-color:var(--good)}
.sent{display:flex;gap:12px;align-items:flex-start;background:var(--info-soft);border-radius:12px;padding:12px 14px}
.sent .env{font-size:1.5rem;animation:bob 2s ease-in-out infinite}.sent p{margin:2px 0 0}
@keyframes bob{50%{transform:translateY(-4px)}}
a.disabled{color:var(--faint);pointer-events:none;text-decoration:none}
.info-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px;margin-top:12px}
.info-card p{color:var(--muted);font-size:.86rem;margin:6px 0 12px}
.app-card{display:flex;gap:18px;align-items:center}
.phone{flex:none;width:112px;height:186px;border-radius:22px;background:linear-gradient(160deg,#16244D,#0F1B3D);border:4px solid #26345F;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#A9C2FF;font-size:.62rem;position:relative;box-shadow:0 12px 26px rgba(15,27,61,.25)}
.phone b{font:600 1.15rem var(--f-mono);color:#fff;letter-spacing:.06em}
.phone i{width:56px;height:4px;border-radius:4px;background:rgba(255,255,255,.18);overflow:hidden;position:relative}
.phone i::after{content:"";position:absolute;inset:0;background:#2E6BFF;transform-origin:left;animation:drain 3s linear infinite}
@keyframes drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
/* my security */
.sec-ways{display:flex;flex-direction:column;gap:12px}
.sec-ways>div{display:grid;grid-template-columns:30px 1fr;column-gap:8px}.sec-ways>div span{grid-row:span 2;font-size:1.2rem}.sec-ways small{color:var(--muted)}
.steps-v{margin:0 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:8px}.steps-v b{display:block}.steps-v span{color:var(--muted);font-size:.84rem}
.qr-wrap{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.qr-wrap img{border:1px solid var(--line);border-radius:12px;padding:6px;background:#fff}
.key{display:inline-block;font:500 .9rem var(--f-mono);background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;padding:8px 10px;letter-spacing:.06em;word-break:break-all}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translate(var(--px),var(--py))}}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{0%{transform:scale(.94)}100%{transform:scale(1)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(169,194,255,.6)}70%{box-shadow:0 0 0 8px rgba(169,194,255,0)}100%{box-shadow:0 0 0 0 rgba(169,194,255,0)}}
@media (prefers-reduced-motion:reduce){.auth *{animation:none!important;transition:none!important}.spark .line{stroke-dashoffset:0}}
.side.reg .fcard.stk{display:none}.side.reg .stage{min-height:200px}.side.reg .fcard.gst{top:30%}
@media (max-height:760px){.stage{min-height:210px}.fcard.stk{display:none}}
.auth .pane{padding:40px;display:flex;flex-direction:column;justify-content:center;max-width:720px;width:100%;margin:0 auto}
.auth .pane h2{font-size:1.4rem;margin-bottom:4px}
.steps{display:flex;gap:6px;margin:14px 0 18px;flex-wrap:wrap}
.steps span{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--line-2);color:var(--muted)}
.steps span.on{background:var(--blue);color:#fff}.steps span.done{background:var(--good-soft);color:var(--good)}
.preview{background:var(--info-soft);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-size:.84rem}
.preview div::before{content:"✓ ";color:var(--good);font-weight:800}
@media (max-width:480px){.otp{gap:6px}.otp input{height:48px;font-size:1.2rem}.app-card{flex-direction:column;align-items:flex-start}.seg button span{display:none}}
@media (max-width:900px){.auth{grid-template-columns:1fr}.auth .side{display:none}.auth .pane{padding:20px 16px 28px;justify-content:flex-start}
  .auth-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 18px}
  .auth-strip figure{margin:0;position:relative;border-radius:12px;overflow:hidden;aspect-ratio:3/3.4;background:var(--navy);animation:rise .6s ease both}
  .auth-strip figure:nth-child(2){animation-delay:.1s}.auth-strip figure:nth-child(3){animation-delay:.2s}
  .auth-strip img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block}
  .auth-strip figcaption{position:absolute;inset:auto 0 0 0;padding:16px 8px 7px;font-size:.66rem;font-weight:700;color:#fff;line-height:1.2;background:linear-gradient(180deg,transparent,rgba(11,20,46,.9))}}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:4px;flex-wrap:wrap}
.tabs a{padding:8px 14px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:2px solid transparent}
.tabs a.on{color:var(--ink);border-bottom-color:var(--red)}
.att td{padding:3px!important;text-align:center}
.att select{border:1px solid var(--line);border-radius:5px;padding:2px;font-size:.75rem;width:46px}
@media print{.rail,.topbar,.no-print{display:none!important}.shell{display:block}.content{padding:0}}

@media (max-width:640px){
  .hide-sm{display:none!important}
  .topbar-in{gap:8px}
  .tenant .nm{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:52vw}
  .tenant .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
  .banner{padding:6px 16px}
  .kpi .val{font-size:1.25rem}
  .page-head h1{font-size:1.3rem}
}

/* phase 2: charts, pipeline board, counter */
.bar-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:.85rem}
.bar{flex:1;height:10px;background:var(--line-2);border-radius:999px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--bright);border-radius:999px}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}
.kcol{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:200px}
.kcol.over{outline:2px dashed var(--bright)}
.kcol-h{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 10px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}
.kcard[draggable=true]{cursor:grab}.kcard a{text-decoration:none;color:var(--ink)}
.input.sm{padding:3px 6px;font-size:.78rem}
.neg{color:var(--crit)}
.pos{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
@media (max-width:980px){.pos{grid-template-columns:1fr}}
.pos-search{font-size:1.1rem;padding:12px 14px}
.pos-results{display:flex;flex-direction:column;max-height:260px;overflow:auto}
.pos-results button{display:flex;justify-content:space-between;gap:8px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-2);padding:9px 12px;cursor:pointer;font:inherit}
.pos-results button:hover,.pos-results button:focus{background:var(--info-soft)}
.pos-total{font-family:var(--f-display);font-size:2rem;font-weight:700}
.pos-cart td input{width:80px}
/* pages with a .print-area (challans) print only that part; every other page prints as it is, without the menus */
@media print{.print-area{box-shadow:none;border:0}.content:has(>.print-area)>*:not(.print-area){display:none!important}.content>.print-area{display:block!important}
  .rail,.topbar,.banner,.nova-guide,.toast,.btn{display:none!important}.main{margin:0!important;padding:0!important}.shell{display:block!important}body{background:#fff!important}}

/* company branding: the company's own logo and name lead the workspace; NEXVORIA™ signs at the foot */
.co-mark{width:40px;height:40px;flex:none;border-radius:10px;object-fit:contain;background:#fff;padding:3px;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.co-mark.ini{display:grid;place-items:center;padding:0;background:linear-gradient(135deg,#2E6BFF,#1E3A8A);color:#fff;font:700 .95rem var(--f-display);letter-spacing:.02em}
.brand.co-brand{gap:11px;padding:4px 6px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2px}
.brand.co-brand img.co-mark{width:40px}
.brand.co-brand span{min-width:0}
.brand.co-brand b{display:block;letter-spacing:.01em;font-size:.95rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.brand.co-brand small{letter-spacing:.06em;text-transform:none;font-size:.7rem;margin-top:2px}
.product-by{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);color:#A9B6D6;text-decoration:none}
.product-by small{font-size:.66rem;letter-spacing:.06em;text-transform:uppercase}
.product-by img{width:22px;height:auto;opacity:.95}
.product-by b{font-family:var(--f-display);letter-spacing:.14em;font-size:.72rem;color:#fff}
.product-by:hover b{color:#A9C2FF}
/* settings: logo and features */
.grid.g-brand{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.logo-set{display:flex;gap:16px;align-items:flex-start}
.co-mark.xl{width:96px;height:96px;border-radius:18px;font-size:2rem;border:1px solid var(--line);box-shadow:none}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.feat{position:relative;display:grid;grid-template-columns:34px 1fr 40px;gap:10px;align-items:start;padding:12px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:#fff;transition:border-color .2s,background .2s,box-shadow .2s}
.feat:hover{box-shadow:var(--shadow)}
.feat.on{border-color:var(--bright);background:#F5F8FF}
.feat input{position:absolute;opacity:0;pointer-events:none}
.feat:focus-within{outline:2px solid var(--bright);outline-offset:2px}
.feat .fi{font-size:1.35rem;line-height:1;filter:grayscale(1);opacity:.6;transition:all .2s}.feat.on .fi{filter:none;opacity:1}
.feat .ft b{display:block;font-size:.88rem}.feat .ft small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}
.feat .ft em{display:inline-block;margin-top:6px;font-style:normal;font-size:.66rem;font-weight:700;color:var(--blue);background:var(--info-soft);padding:1px 7px;border-radius:999px}
.feat .sw{width:36px;height:20px;border-radius:999px;background:#CBD3E3;position:relative;transition:background .2s;margin-top:2px}
.feat .sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s}
.feat.on .sw{background:var(--bright)}.feat.on .sw::after{transform:translateX(16px)}
@media (max-width:900px){.grid.g-brand{grid-template-columns:1fr}}
/* registration: logo drop zone and logo on the sample invoice */
.logo-drop{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1.5px dashed #B9C6E4;border-radius:14px;background:#fff;cursor:pointer;margin-bottom:14px;transition:border-color .2s,background .2s,transform .2s}
.logo-drop:hover,.logo-drop:focus-visible,.logo-drop.over{border-color:var(--bright);background:#F5F8FF;outline:0}
.logo-drop.over{transform:scale(1.01)}
.logo-drop.has{border-style:solid;border-color:#BFE3CC;background:#F6FBF8}
.ld-prev{width:56px;height:56px;flex:none;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#2E6BFF,#1E3A8A);color:#fff;font:700 1.1rem var(--f-display);overflow:hidden}
.logo-drop.has .ld-prev{background:#fff;border:1px solid var(--line);animation:pop .4s cubic-bezier(.2,.9,.3,1.3)}
.ld-prev img{width:100%;height:100%;object-fit:contain;padding:4px}
.ld-txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.ld-txt b{font-size:.92rem}
.inv-co{display:flex;align-items:center;gap:8px;margin:5px 0 6px}.inv-co .fc-co{margin:0}
.inv-logo{width:30px;height:30px;flex:none;border-radius:7px;border:1px solid var(--line);background:#fff;overflow:hidden;animation:pop .4s cubic-bezier(.2,.9,.3,1.3)}
.inv-logo img{width:100%;height:100%;object-fit:contain;padding:2px}
/* the welcome handshake */
.hs-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% 40%,rgba(30,58,138,.55),rgba(11,20,46,.86));backdrop-filter:blur(6px);animation:fadeIn .4s ease both}
.hs-layer.out{animation:fadeOut .45s ease forwards}
.hs-card{width:min(560px,100%);background:#fff;border-radius:22px;padding:34px 28px 26px;text-align:center;box-shadow:0 30px 80px rgba(6,12,32,.45);animation:cardIn .6s cubic-bezier(.2,.8,.2,1) both}
.hs-card h2{margin:22px 0 6px;font-size:1.45rem;animation:rise .5s 1.5s ease both}
.hs-card p{margin:0 0 18px;color:var(--muted);animation:rise .5s 1.65s ease both}
.hs-card .btn{animation:rise .5s 1.8s ease both}
.hs-row{display:grid;grid-template-columns:1fr 96px 1fr;align-items:center}
.hs-side{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.hs-side b{font-family:var(--f-display);font-size:.86rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-mark.hs{width:72px;height:72px;border-radius:18px;font-size:1.5rem;box-shadow:0 8px 22px rgba(15,27,61,.18)}
.co-mark.hs.nx{background:#0F1B3D;padding:12px}
.hs-side.left{animation:fromLeft .9s cubic-bezier(.2,.8,.2,1) .2s both}.hs-side.right{animation:fromRight .9s cubic-bezier(.2,.8,.2,1) .2s both}
.hs-mid{position:relative;height:96px;display:grid;place-items:center}
.hs-hand{font-size:3rem;line-height:1;animation:shake-hands 1.1s cubic-bezier(.2,.8,.2,1) .9s both;position:relative;z-index:2}
.hs-ring{position:absolute;width:74px;height:74px;border-radius:50%;border:3px solid #2E6BFF;opacity:0;animation:ring 1.2s ease-out 1.15s both}
.hs-burst{position:absolute;inset:0}
.hs-burst i{position:absolute;left:50%;top:50%;width:7px;height:11px;border-radius:2px;background:var(--c);opacity:0;transform:rotate(var(--a)) translateY(0);animation:burst 1.1s cubic-bezier(.1,.7,.3,1) calc(1.2s + var(--d)) both}
@keyframes fromLeft{from{opacity:0;transform:translateX(-90px) scale(.8)}to{opacity:1;transform:none}}
@keyframes fromRight{from{opacity:0;transform:translateX(90px) scale(.8)}to{opacity:1;transform:none}}
@keyframes shake-hands{0%{opacity:0;transform:scale(.2) rotate(-30deg)}45%{opacity:1;transform:scale(1.25) rotate(8deg)}60%{transform:scale(1) rotate(-6deg)}75%{transform:translateY(-4px) rotate(4deg)}88%{transform:translateY(2px)}100%{opacity:1;transform:none}}
@keyframes ring{0%{opacity:.8;transform:scale(.6)}100%{opacity:0;transform:scale(1.9)}}
@keyframes burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}80%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(-120px) rotate(200deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){.hs-layer *,.hs-layer{animation:none!important}.hs-burst{display:none}}
@media (max-width:480px){.hs-row{grid-template-columns:1fr 64px 1fr}.co-mark.hs{width:56px;height:56px}.hs-hand{font-size:2.3rem}}

/* add-ons */
.ad-sec{font-size:1rem;margin:22px 0 10px}
.addon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.addon{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s,transform .2s,border-color .2s}
.addon:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.addon.on{border-color:#BFE3CC;background:linear-gradient(180deg,#F6FBF8,#fff 60%)}
.ad-h{display:flex;gap:12px;align-items:flex-start}
.ad-ic{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;font-size:1.35rem;background:var(--info-soft)}
.addon.on .ad-ic{background:var(--good-soft)}
.ad-h b{font-size:.95rem}.ad-h p{margin:4px 0 0;color:var(--muted);font-size:.83rem}
.ad-price{font-size:.88rem}
.ad-act{gap:8px;flex-wrap:wrap;margin-top:auto;align-items:center}
.ad-note{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:6px 10px}
.meter-bar{height:8px;border-radius:99px;background:var(--line-2);overflow:hidden;margin-bottom:4px}
.meter-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2E6BFF,#1F4FD1);transition:width .6s ease}
.meter-bar i.hot{background:linear-gradient(90deg,#F5B400,#E5303A)}
.req-row{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.req-row .grow{flex:1;min-width:0}
.adm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.plan-ticks{display:flex;flex-wrap:wrap;gap:8px}
.plan-ticks label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:.8rem;cursor:pointer;background:#fff}
.plan-ticks label:has(input:checked){border-color:var(--bright);background:#F5F8FF}
.plan-ticks input[type=number]{width:70px;padding:2px 6px;border:1px solid var(--line);border-radius:6px;font-size:.78rem}

/* hiring */
.hint-card{background:linear-gradient(90deg,#EEF3FF,#F8FAFF);border:1px solid #D7E2FF;border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:.88rem}
.kanban.hiring{display:grid;grid-template-columns:repeat(6,minmax(175px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}
.kanban.hiring .kcol{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:160px}
.kcol .kh{display:flex;justify-content:space-between;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kcol .kh span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 8px}
.kcol.flat{flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:10px}.kcol.flat .cand-card{width:240px}
.kempty{text-align:center;padding:16px 0}
.cand-card{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s}
.cand-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.cand-card b{font-size:.9rem}.cand-card span{font-size:.78rem;color:var(--muted)}.cand-card .pill{align-self:flex-start;margin-top:4px;white-space:normal}
.q-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) auto auto;gap:8px;align-items:center;margin-bottom:8px}
.kv{display:flex;flex-direction:column;gap:8px}.kv>div{display:grid;grid-template-columns:140px 1fr;gap:10px;font-size:.88rem}.kv .lbl{color:var(--muted)}
.cv-frame{width:100%;height:640px;border:0;border-radius:0 0 10px 10px;background:#fff}
.timeline{padding:6px 16px}.tl{display:grid;grid-template-columns:14px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2)}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--faint);margin-top:6px}.tl.nova .tl-dot{background:#7B5CFF}.tl.stage .tl-dot{background:var(--bright)}.tl.offer .tl-dot{background:var(--good)}.tl.interview .tl-dot{background:#F5B400}
.tl p{margin:2px 0 0;font-size:.88rem}
.nova-report .lead{font-size:1rem}.nova-report .kv{margin:10px 0 6px}.nova-report h3{margin-top:16px}.score-bars{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.sb{display:grid;grid-template-columns:170px minmax(0,1fr) 60px;gap:4px 12px;align-items:center}.sb .meter-bar{margin:0}.sb .tiny{grid-column:1/-1}
.transcript{white-space:pre-wrap;font:.8rem/1.5 var(--f-mono);background:var(--surface-2);padding:12px;border-radius:8px;max-height:420px;overflow:auto}
.letter{font:.88rem/1.6 var(--f-body)}.letter-view{white-space:pre-wrap;font:.9rem/1.65 var(--f-body);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:16px;max-height:560px;overflow:auto}
.fb{background:var(--surface-2);border-radius:10px;padding:10px 12px;margin:8px 0}.fb p{margin:6px 0}
/* public hiring pages */
.pub{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#F3F6FD,#fff 320px)}
.pub-h{background:#fff;border-bottom:1px solid var(--line)}.pub-in{max-width:1080px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:12px}.pub-in b{font-family:var(--f-display);font-size:1.1rem}
.pub-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:28px 20px 40px}
.pub-f{text-align:center;font-size:.78rem;color:var(--faint);padding:18px}.pub-f a{color:var(--muted)}
.pub-hero{margin:10px 0 24px}.pub-hero h1{font-size:clamp(1.6rem,3vw,2.3rem);margin:0 0 8px}.pub-hero p{color:var(--muted);max-width:60ch}
.job-list{display:flex;flex-direction:column;gap:12px}
.job-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s,border-color .2s}
.job-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:#C9D6F5}
.job-card b{display:block;font-size:1.05rem}.job-card>div>span{color:var(--muted);font-size:.86rem}.job-card .go{grid-row:1/3;grid-column:2;color:var(--blue);font-weight:600;font-size:.88rem}
.job-tags{display:flex;flex-wrap:wrap;gap:6px}.job-tags span{font-size:.76rem;background:var(--line-2);border-radius:999px;padding:3px 10px;color:var(--ink)}
.pub-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start}
.pub-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.pub-card.narrow{max-width:720px;margin:0 auto}.pub-card.center{text-align:center}
.pub-card h1{font-size:1.5rem;margin:0 0 8px}.pub-card h2{font-size:1.05rem;margin:18px 0 8px}.pub-card ul{padding-left:20px;line-height:1.6}
.back{display:inline-block;margin-bottom:12px;text-decoration:none;color:var(--muted)}
.drop{display:block;border:1.5px dashed #B9C6E4;border-radius:12px;padding:16px;text-align:center;cursor:pointer;color:var(--muted);transition:all .2s}.drop:hover,.drop.has{border-color:var(--bright);background:#F5F8FF;color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.done-box{text-align:center;padding:12px 0}.tick-big{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--good-soft);color:var(--good);font-size:1.8rem;animation:pop .5s cubic-bezier(.2,.9,.3,1.3)}
.slot-days{display:flex;flex-direction:column;gap:14px;margin:16px 0}.slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.slot input{position:absolute;opacity:0}.slot span{display:inline-block;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-size:.84rem;cursor:pointer;background:#fff;transition:all .15s}
.slot input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}.slot input:focus-visible+span{outline:2px solid var(--bright)}
.nova-orb{display:block;width:54px;height:54px;border-radius:50%;margin-bottom:10px;background:radial-gradient(circle at 30% 30%,#9DB8FF,#2E6BFF 55%,#1E3A8A);box-shadow:0 0 0 0 rgba(46,107,255,.5);animation:pulse 2.2s infinite}
.stars{display:flex;gap:4px;font-size:1.8rem;margin:6px 0 12px}.stars input{position:absolute;opacity:0}.stars span{cursor:pointer;color:#D2D9E8;transition:color .1s}
.stars label:has(input:checked) span,.stars label:has(~ label input:checked) span{color:#F5B400}
.pre{white-space:pre-wrap}
@media (max-width:900px){.pub-grid{grid-template-columns:1fr}.job-card{grid-template-columns:1fr}.job-card .go{grid-row:auto;grid-column:auto}.q-row{grid-template-columns:1fr}.kv>div{grid-template-columns:1fr}.sb{grid-template-columns:1fr 50px}.sb .meter-bar{grid-column:1/-1;grid-row:2}}

/* ---------- lead sources and Kavya ---------- */
.nova-orb.kavya{background:radial-gradient(circle at 30% 30%,#FFC9D6,#E5306B 55%,#8A1E4B);box-shadow:0 0 0 0 rgba(229,48,107,.45)}
.nova-orb.sm{display:inline-block;width:16px;height:16px;margin:0 6px -2px 0;animation:none}
.score-pill{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--line-2);color:var(--muted)}
.score-pill.hot{background:#FFE4E6;color:#B3261E}.score-pill.warm{background:var(--warn-soft);color:var(--warn)}.score-pill.cold{background:var(--info-soft);color:var(--info)}
.kavya-panel .kv-result:not(:first-child){border-top:1px solid var(--line-2);padding-top:10px;margin-top:6px}.kavya-panel .kv-result>.row{justify-content:space-between}
.kavya-panel details{margin-top:8px}.kavya-panel summary{cursor:pointer;color:var(--blue);font-size:.88rem}
.src-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:16px}
.src-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.src-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,27,61,.1)}.src-card.on{border-color:#BFE3CD}
.src-h{display:flex;gap:10px;align-items:flex-start}.src-h>div{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.src-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-top:auto}
.src-ico{width:34px;height:34px;border-radius:9px;flex:none;background:var(--sky)}
.src-ico.website{background:linear-gradient(135deg,#2E6BFF,#1F4FD1)}.src-ico.facebook{background:linear-gradient(135deg,#1877F2,#E1306C 75%,#F77737)}
.src-ico.indiamart{background:linear-gradient(135deg,#2E3192,#00A0E3)}.src-ico.justdial{background:linear-gradient(135deg,#FF6F00,#F4B400)}
.pill.ok{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}
.code-box{background:var(--navy);color:#DCE6FF;font-family:var(--f-mono);font-size:.78rem;padding:12px;border-radius:8px;overflow:auto;white-space:pre;max-width:100%}

/* ---------- moving to an own database ---------- */
.moving-screen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(15,27,61,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:msIn .3s ease}
@keyframes msIn{from{opacity:0}}
.ms-card{max-width:440px;background:var(--surface);border-radius:18px;padding:30px 28px;box-shadow:0 30px 80px rgba(15,27,61,.35);text-align:center}
.ms-card h2{font-size:1.3rem;margin:14px 0 8px}.ms-card p{color:var(--muted);margin:0 0 18px}
.ms-vault{display:flex;justify-content:center;gap:7px}.ms-vault span{width:14px;height:40px;border-radius:5px;background:linear-gradient(180deg,#2E6BFF,#1F4FD1);animation:msPulse 1.2s ease-in-out infinite}
.ms-vault span:nth-child(2){animation-delay:.15s}.ms-vault span:nth-child(3){animation-delay:.3s}
@keyframes msPulse{0%,100%{transform:scaleY(.55);opacity:.55}50%{transform:scaleY(1);opacity:1}}
.ms-bar{height:4px;border-radius:4px;background:var(--line-2);overflow:hidden}.ms-bar i{display:block;height:100%;width:40%;background:var(--bright);border-radius:4px;animation:msBar 1.6s ease-in-out infinite}
@keyframes msBar{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
@media (prefers-reduced-motion:reduce){.ms-vault span,.ms-bar i{animation:none}}

/* =====================================================================
   Premium layer: quieter surfaces, sharper type, one signature (the rail)
   ===================================================================== */
:root{--ink-deep:#0B1430;--paper:#F4F6FA;--hair:#E4E9F2;--r-sm:8px;--r-md:12px;--r-lg:16px;
  --lift-1:0 1px 0 rgba(14,26,58,.04),0 1px 2px rgba(14,26,58,.05);--lift-2:0 1px 2px rgba(14,26,58,.06),0 10px 28px -12px rgba(14,26,58,.18);--lift-3:0 28px 70px -20px rgba(11,20,48,.45)}
body{background:var(--paper);font-feature-settings:"cv11","ss01";letter-spacing:-.003em}
.val,.num,.tbl td.num,.totals,.kpi .val,.money{font-variant-numeric:tabular-nums lining-nums}
::selection{background:rgba(46,107,255,.18)}

/* the rail: deep navy, a soft light behind the company mark, a red signal on the open page */
.rail{background:radial-gradient(120% 60% at 0% 0%,rgba(46,107,255,.28),transparent 60%),linear-gradient(180deg,#101D44 0%,#0B1430 100%);border-right:1px solid rgba(255,255,255,.04);padding:18px 12px 18px}
.rail::-webkit-scrollbar{width:6px}.rail::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:6px}
.co-brand{padding:6px 8px 14px;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.07)}
.nav-group .eyebrow{text-transform:none;letter-spacing:.01em;font-size:.72rem;font-weight:600;color:#7F8DB3;padding:10px 10px 4px}
.nav{padding:8px 10px 8px 12px;border-radius:9px;color:#C9D2EC;font-weight:500;font-size:.9rem;transition:background .15s,color .15s}
.nav:hover{background:rgba(255,255,255,.05)}
.nav[aria-current="page"]{background:linear-gradient(90deg,rgba(46,107,255,.26),rgba(46,107,255,.08));color:#fff;box-shadow:inset 2px 0 0 var(--red)}
.rail .foot{border-top:1px solid rgba(255,255,255,.07);padding-top:12px}

/* top bar and page head */
.topbar{background:rgba(244,246,250,.85);border-bottom:1px solid var(--hair)}
.topbar-in{padding:11px 28px}
.tenant .nm{font-family:var(--f-display);font-weight:600;letter-spacing:-.01em}
.content{padding:26px 28px 90px;gap:20px}
.page-head h1{font-size:1.75rem;letter-spacing:-.025em;font-weight:600;line-height:1.15}
.page-head .eyebrow{text-transform:none;letter-spacing:0;font-size:.8rem;color:var(--blue);font-weight:600}
.page-head p{font-size:.92rem}

/* surfaces: hairlines first, shadow only where something sits above the page */
.panel{border-color:var(--hair);border-radius:var(--r-md);box-shadow:var(--lift-1)}
.panel-h{padding:15px 18px}.panel-h h2{font-size:1rem;letter-spacing:-.01em}
.panel-b{padding:18px}
.kpi{border-color:var(--hair);border-radius:var(--r-md);box-shadow:var(--lift-1);padding:16px 18px 14px;position:relative;transition:box-shadow .2s,border-color .2s}
a.kpi{text-decoration:none;color:inherit}a.kpi:hover{border-color:#CAD5EA;box-shadow:var(--lift-2)}
.kpi .lbl{font-weight:600;color:var(--muted);font-size:.78rem}
.kpi .val{font-size:1.6rem;letter-spacing:-.02em;margin-top:2px}
.kpi .foot{font-size:.76rem}

/* tables: sentence-case headers, calm rows */
.tbl th{text-transform:none;letter-spacing:0;font-size:.76rem;font-weight:600;color:var(--muted);background:#F8FAFD;padding:10px 14px;border-bottom:1px solid var(--hair)}
.tbl td{padding:11px 14px;border-bottom:1px solid #EEF1F7}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.click:hover td{background:#F4F7FE}
.lines th{text-transform:none;letter-spacing:0;font-size:.76rem;font-weight:600;color:var(--muted)}

/* controls */
.btn{border-radius:var(--r-sm);border-color:#D9E0EC;padding:8px 15px;font-size:.88rem;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(180deg,#2A5BE0,#1F4FD1);border-color:#1C47BD;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 1px 2px rgba(31,79,209,.35)}
.btn.primary:hover{background:linear-gradient(180deg,#2552D1,#1A43B5)}
.btn.sm{padding:5px 11px;font-size:.8rem}
.input,select.input,textarea.input{border-color:#D3DBE9;border-radius:var(--r-sm);min-height:40px;transition:border-color .15s,box-shadow .15s}
.input:hover{border-color:#BCC7DB}
.field label{font-size:.83rem;color:#22305A}
.pill{font-weight:600;letter-spacing:.01em}
.modal{border-radius:var(--r-lg);box-shadow:var(--lift-3)}
.modal-bg{background:rgba(11,20,48,.5);backdrop-filter:blur(3px)}
.toast{border-radius:var(--r-md);box-shadow:var(--lift-3)}
.empty b{font-family:var(--f-display);font-weight:600}
@media (max-width:980px){.content{padding:18px 16px 80px}.topbar-in{padding:10px 16px}}

/* add a customer or vendor without leaving the document */
.party-pick{display:flex;gap:6px;align-items:stretch}.party-pick .input{flex:1;min-width:0}
.party-pick .btn{flex:none;min-height:40px}
.gst-fill{display:block;font-size:.78rem;line-height:1.45;color:var(--good);margin-top:2px}
.gst-fill.busy{color:var(--muted)}.gst-fill.bad{color:var(--crit)}

/* ---------- demo bar inside the app ---------- */
.demo-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 28px;background:linear-gradient(90deg,#0B1430,#16275C 60%,#1F4FD1);color:#DCE6FF;font-size:.82rem}
.demo-bar b{color:#fff;font-weight:600}.demo-bar .sp{flex:1}
.demo-bar .tag{background:#E5303A;color:#fff;font-weight:700;font-size:.7rem;padding:2px 8px;border-radius:999px}
.demo-bar select{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:3px 10px;font-weight:600;font-size:.8rem}
.demo-bar select option{color:#0F1B3D}
.demo-bar a{color:#fff;font-weight:700;text-decoration:none;background:#fff;color:#16275C;padding:4px 13px;border-radius:999px}
.demo-bar a.plain{background:none;color:#C9D6F5;font-weight:600;padding:0}
@media (max-width:980px){.demo-bar{padding:8px 16px}}

/* ---------- demo start page ---------- */
.demo-page{min-height:100vh;background:#0B1430;color:#DCE6FF;position:relative;overflow:hidden;isolation:isolate}
.demo-page::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(90% 70% at 50% 0%,#000 40%,transparent 85%)}
.demo-glow{position:absolute;z-index:-1;width:900px;height:600px;left:50%;top:-320px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(46,107,255,.42),transparent);pointer-events:none}
.demo-top{display:flex;align-items:center;gap:18px;padding:22px clamp(16px,5vw,64px)}
.demo-top .sp{flex:1}
.demo-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.demo-brand img{width:30px}.demo-brand b{font-family:var(--f-display);letter-spacing:.22em;font-weight:600;font-size:.95rem}.demo-brand sup{font-size:.5em;letter-spacing:0}
.demo-brand span{font-size:.72rem;font-weight:700;color:#A9C2FF;border:1px solid rgba(169,194,255,.35);border-radius:6px;padding:1px 6px}
.demo-link{color:#C9D6F5;text-decoration:none;font-weight:600;font-size:.9rem}
.demo-cta{background:#fff;color:#0B1430;text-decoration:none;font-weight:700;font-size:.88rem;padding:8px 16px;border-radius:999px}
.demo-main{max-width:1120px;margin:0 auto;padding:10px clamp(16px,4vw,32px) 80px}
.demo-steps{display:flex;align-items:center;gap:10px;margin:8px 0 34px;font-size:.82rem;color:#7F8DB3;font-weight:600}
.demo-steps span{display:flex;align-items:center;gap:8px;transition:color .3s}
.demo-steps i{font-style:normal;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);font-size:.75rem;transition:all .3s}
.demo-steps span.on{color:#fff}.demo-steps span.on i{background:#2E6BFF;border-color:#2E6BFF;color:#fff}
.demo-steps b{flex:0 1 48px;height:1px;background:rgba(255,255,255,.15)}
.demo-k{color:#8FB0FF;font-weight:600;font-size:.88rem;margin:0 0 10px}
.demo-step h1{color:#fff;font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.04;letter-spacing:-.035em;font-weight:600;margin:0;max-width:16ch}
.demo-sub{max-width:60ch;color:#AFBBD9;font-size:1.02rem;margin:16px 0 34px}
.ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.ind,.dept{position:relative;text-align:left;cursor:pointer;color:#DCE6FF;background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;
  transition:border-color .2s,background .2s,transform .2s;animation:indIn .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes indIn{from{opacity:0;transform:translateY(10px)}}
.ind:hover,.dept:hover,.ind:focus-visible,.dept:focus-visible{border-color:rgba(143,176,255,.6);background:linear-gradient(180deg,rgba(46,107,255,.2),rgba(46,107,255,.06));transform:translateY(-2px)}
.ind .ic,.dept .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:rgba(46,107,255,.18);border:1px solid rgba(143,176,255,.28);margin-bottom:8px;flex:none}
.ind svg,.dept svg{width:21px;height:21px;fill:none;stroke:#BFD0FF;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ind b,.dept b{color:#fff;font-family:var(--f-display);font-weight:600;font-size:1.02rem;letter-spacing:-.01em;line-height:1.25}
.ind small,.dept small{color:#9AA8CB;font-size:.84rem;line-height:1.45}
.ind em{position:absolute;top:16px;right:16px;font-style:normal;font-size:.7rem;font-weight:700;color:#7EE2B0;display:flex;align-items:center;gap:5px}
.ind em::before{content:"";width:6px;height:6px;border-radius:50%;background:#2BB673;box-shadow:0 0 0 3px rgba(43,182,115,.2)}
.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.dept{flex-direction:row;align-items:flex-start;gap:14px;padding:18px}
.dept>div{flex:1;display:flex;flex-direction:column;gap:5px}
.dept .as{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.78rem;color:#8FB0FF;font-weight:600}
.dept .as i{font-style:normal;width:22px;height:22px;border-radius:50%;background:#1F4FD1;color:#fff;display:grid;place-items:center;font-size:.62rem}
.dept .go{color:#8FB0FF;font-size:1.2rem;align-self:center;transition:transform .2s}.dept:hover .go{transform:translateX(3px)}
.demo-back{background:none;border:0;color:#8FB0FF;font-weight:600;cursor:pointer;padding:0;margin-bottom:18px}
.demo-err{margin-bottom:16px}
.demo-open{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(11,20,48,.72);backdrop-filter:blur(10px)}
.do-card{width:min(420px,100%);background:#fff;color:var(--ink);border-radius:18px;padding:28px;box-shadow:var(--lift-3)}
.do-logo span{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#2E6BFF,#1E3A8A);color:#fff;font-family:var(--f-display);font-weight:700}
.do-card h2{margin:16px 0 4px;font-size:1.25rem;letter-spacing:-.02em}.do-card p{margin:0 0 16px;color:var(--muted)}
.do-list{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:9px}
.do-list li{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--faint);transition:color .3s}
.do-list li::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid #D3DBE9;flex:none;transition:all .3s}
.do-list li.done{color:var(--ink)}.do-list li.done::before{background:#2BB673;border-color:#2BB673;box-shadow:inset 0 0 0 3px #fff}
@media (max-width:640px){.demo-top .demo-link{display:none}.dept-grid{grid-template-columns:1fr}.demo-steps{font-size:.74rem;gap:6px}.demo-steps b{flex-basis:14px}}
@media (prefers-reduced-motion:reduce){.ind,.dept{animation:none}}

/* ---------- control centre: storage and recycle bin ---------- */
.store-tag{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;background:#EEF1F7;color:var(--muted)}
.store-tag.own{background:var(--good-soft);color:var(--good)}
.store-tag.own::before{content:"";width:7px;height:7px;border-radius:2px;background:currentColor}
.bulkbar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#FFF6F5;border-bottom:1px solid #F3D3CF;font-size:.85rem}
.demo-try{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px dashed #BFCBE6;border-radius:12px;text-decoration:none;color:var(--ink);background:#F7F9FE;transition:border-color .2s,background .2s}
.demo-try:hover{border-color:var(--bright);background:#EEF3FF}.demo-try span{flex:1;display:flex;flex-direction:column}.demo-try b{font-family:var(--f-display);font-weight:600}
.demo-try small{color:var(--muted);font-size:.8rem}.demo-try i{font-style:normal;font-size:1.4rem;color:var(--blue)}
.demo-open[hidden],.demo-step[hidden]{display:none}

/* ---------- My workplace (employee portal) ---------- */
.col{display:grid;gap:16px;align-content:start}
.wp-bday{display:flex;gap:14px;align-items:center;padding:14px 18px;border-radius:var(--r-md);background:linear-gradient(110deg,#FFF4E0,#FDE7EA);border:1px solid #F6D7B8;margin-bottom:16px}
.wp-bday>span{font-size:1.8rem}.wp-bday b{display:block;font-family:var(--f-display);font-size:1.05rem}.wp-bday small{color:var(--muted)}
.wp-notice{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px 16px;border-radius:var(--r-md);background:var(--info-soft);border:1px solid #CBD9F7;margin-bottom:12px}
.wp-notice.warn{background:var(--warn-soft);border-color:#F1D9A8}.wp-notice a{font-weight:600}.wp-notice span{color:var(--muted);font-size:.85rem}
.wp-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin:12px 0 16px}
@media (max-width:980px){.wp-top{grid-template-columns:minmax(0,1fr)}}
.punch{border-radius:var(--r-lg);padding:20px 22px;color:#EEF2FF;background:radial-gradient(120% 140% at 0% 0%,#2E6BFF 0%,#16244D 55%,#0B1430 100%);box-shadow:var(--lift-2);display:flex;flex-direction:column;gap:10px}
.punch.out{background:radial-gradient(120% 140% at 0% 0%,#1E7F48 0%,#123A2B 60%,#0B1430 100%)}
.punch.done{background:linear-gradient(135deg,#253457,#0F1B3D)}
.punch-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.punch .dk{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;opacity:.8}
.punch .clock{font-family:var(--f-display);font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.punch-b p{margin:0}.punch .tiny{opacity:.85}
.punch-btn{align-self:flex-start;border:0;border-radius:999px;padding:12px 30px;font-weight:700;font-size:1rem;background:#fff;color:var(--navy);cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform .15s}
.punch-btn:hover{transform:translateY(-1px)}.punch-btn:disabled{opacity:.7;cursor:wait}
.punch-done{align-self:flex-start;padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.12);font-weight:600}
.punch-f{margin:0;font-size:.75rem;opacity:.7}
.wp-balances{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;align-content:start}
.bal{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:12px 14px;box-shadow:var(--lift-1)}
.bal b{display:block;font-family:var(--f-display);font-size:1.5rem;line-height:1.1}.bal span{font-size:.75rem;color:var(--muted);font-weight:600}
.wp-quick{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.wp-quick a{padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--hair);text-decoration:none;font-weight:600;font-size:.85rem;color:var(--ink)}
.wp-quick a:hover{border-color:var(--bright);color:var(--blue)}
.cal-h,.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-h span{font-size:.7rem;color:var(--faint);text-align:center;font-weight:700;text-transform:uppercase}
.cd{position:relative;aspect-ratio:1.15;border-radius:8px;background:var(--surface-2);display:flex;align-items:flex-start;justify-content:flex-start;padding:4px 6px;font-size:.8rem}
.cd.blank{background:transparent}.cd.sun{color:var(--faint)}.cd.hol{background:#FDE7EA;color:var(--crit);font-weight:700}
.cd.mine{background:var(--info-soft);color:var(--blue);font-weight:700}.cd.mine.pending{background:repeating-linear-gradient(45deg,var(--info-soft),var(--info-soft) 4px,#fff 4px,#fff 8px)}
.cd.today{outline:2px solid var(--bright);outline-offset:-2px}.cd i{font-style:normal}
.dot{position:absolute;right:4px;bottom:4px;min-width:8px;height:8px;border-radius:999px;font-size:.6rem;line-height:8px;color:#fff;text-align:center}
.dot.bd{background:#F59E0B}.dot.lv{background:var(--muted);height:14px;min-width:14px;line-height:14px;padding:0 3px}
.cal-k{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.75rem;color:var(--muted)}.cal-k span{display:inline-flex;gap:6px;align-items:center}.cal-k .dot{position:static}
.k{display:inline-block;width:12px;height:12px;border-radius:3px}.k.hol{background:#FDE7EA;border:1px solid #F3B7BE}.k.mine{background:var(--info-soft);border:1px solid #BCD0F7}
.idcard-wrap{padding:16px;perspective:900px}
.idcard{position:relative;width:240px;height:340px;margin:0 auto;transform-style:preserve-3d;transition:transform .6s;cursor:pointer}
.idcard.back{transform:rotateY(180deg)}
.id-front,.id-back{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;padding:18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;box-shadow:var(--lift-2)}
.id-front{background:linear-gradient(170deg,var(--navy) 0 34%,#fff 34%);color:var(--ink)}
.id-co{color:#fff;font-family:var(--f-display);font-weight:600;letter-spacing:.06em;font-size:.85rem;min-height:2.4em}
.id-ph{width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid #fff;background:var(--sky);display:grid;place-items:center;font-family:var(--f-display);font-size:1.8rem;color:var(--navy);margin:6px 0 8px}
.id-front b{font-family:var(--f-display);font-size:1.1rem}.id-front span{color:var(--muted);font-size:.85rem}.id-front em{margin-top:auto;font-style:normal;font-family:var(--f-mono);background:var(--paper);padding:4px 12px;border-radius:999px}
.id-back{transform:rotateY(180deg);background:#fff;align-items:stretch;text-align:left;justify-content:space-between}
.id-back dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 10px;font-size:.82rem}.id-back dt{color:var(--muted)}.id-back dd{margin:0;font-weight:600}.id-back small{color:var(--faint);font-size:.7rem}
@media print{body.print-id .shell>.rail,body.print-id .topbar,body.print-id .content>*:not(.grid),body.print-id .grid>*:not(.col),body.print-id .col>*:not(.idcard-wrap),body.print-id .idcard-wrap .row{display:none!important}
  body.print-id .idcard{transform:none!important;display:flex;gap:20px;width:auto;height:340px}body.print-id .id-front,body.print-id .id-back{position:relative;width:240px;transform:none;backface-visibility:visible;box-shadow:none;border:1px solid #ccc}}
.att-tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--line-2);color:var(--muted)}
.a-P{background:var(--good-soft);color:var(--good)}.a-WFH{background:var(--info-soft);color:var(--blue)}.a-L,.a-HD{background:#EEE7FB;color:#5B3BB0}.a-LOP,.a-A{background:var(--crit-soft);color:var(--crit)}.a-H{background:#FDE7EA;color:var(--crit)}
.letter-sheet{max-width:780px;padding:36px 44px;margin:12px 0}.letter-sheet header{border-bottom:2px solid var(--navy);padding-bottom:10px;margin-bottom:22px}
.letter-sheet header b{display:block;font-family:var(--f-display);font-size:1.15rem}.letter-sheet header small{color:var(--muted)}
.letter-body{line-height:1.75;font-size:.95rem}.letter-sheet .signed{margin-top:28px;padding-top:12px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;gap:10px;font-size:.85rem;color:var(--good)}
.sign-box{max-width:780px;border-left:4px solid var(--bright)}.sign-box h3{margin-bottom:4px}
.thread{padding:16px;display:grid;gap:12px}.msg{max-width:78%;padding:10px 14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--hair)}
.msg.me{justify-self:end;background:var(--info-soft);border-color:#CBD9F7}.msg b{margin-right:8px}.msg p{margin:6px 0 0}
.decide-list{display:grid}.decide{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-2)}.decide:first-child{border-top:0}.decide>span{display:flex;gap:6px;flex-shrink:0}
@media (max-width:640px){.decide{flex-direction:column;align-items:stretch}}
.prof-h{display:flex;gap:18px;align-items:center;margin-bottom:14px}
.ph-up{display:grid;justify-items:center;gap:4px;cursor:pointer}.ph-up small{font-size:.72rem;color:var(--blue)}
.ph-up img,.ph-img,.ph-ini{width:84px;height:84px;border-radius:50%;object-fit:cover;background:var(--sky);display:grid;place-items:center;font-family:var(--f-display);font-size:1.6rem;color:var(--navy);border:3px solid #fff;box-shadow:var(--lift-1)}
.input.locked{background:var(--surface-2);color:var(--muted);cursor:not-allowed;min-height:38px;display:flex;align-items:center}
.notes{display:grid}.note{display:grid;gap:2px;padding:12px 16px;border-top:1px solid var(--line-2);text-decoration:none;color:var(--ink)}.note:first-child{border-top:0}
.note.unread{background:var(--info-soft)}.note.unread b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bright);margin-right:7px;vertical-align:middle}
.note span{color:var(--muted);font-size:.85rem}.note small{color:var(--faint);font-size:.72rem}
.bell{position:relative;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--muted);text-decoration:none}.bell:hover{background:var(--line-2);color:var(--ink)}
.bell b{position:absolute;top:2px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--red);color:#fff;font-size:.62rem;line-height:16px;text-align:center}
.bell b[hidden]{display:none}
.auth-tabs{margin-top:14px}.auth-tabs a{cursor:pointer}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}
.letter-sheet .lh-logo{float:right;max-height:52px;max-width:160px;object-fit:contain}
@media print{.letter-sheet{box-shadow:none!important;border:0!important;max-width:none;padding:0}}
/* scanning on documents */
.scanbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;margin:6px 0 10px;border:1px dashed #BCD0F7;border-radius:var(--r-md);background:var(--info-soft)}
.scanbar .input{flex:1;min-width:220px;background:#fff}.scan-ico{font-size:1.2rem;color:var(--blue)}
.scanbar .pos{color:var(--good);font-weight:600}.scanbar .neg{color:var(--crit);font-weight:600}
tr.flash td{animation:rowflash 1.2s ease-out}@keyframes rowflash{0%{background:#D9F2E3}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){tr.flash td{animation:none}}
/* printed reports: letterhead, dense table, headings repeated on every page */
.print-head{display:none}
@media print{
  @page{size:A4;margin:12mm}
  .print-head{display:flex;align-items:center;gap:12px;border-bottom:2px solid #0F1B3D;padding-bottom:8px;margin-bottom:10px}
  .print-head img{max-height:44px;max-width:120px;object-fit:contain}.print-head b{display:block;font-size:15px}.print-head span{font-size:10px;color:#4A5675}
  .print-head .ph-r{margin-left:auto;text-align:right}
  .page-head .row{display:none!important}.page-head h1{font-size:16px}.page-head p{font-size:11px}
  .panel{box-shadow:none!important;border:0!important}.tbl{font-size:10px}.tbl thead{display:table-header-group}.tbl tr{break-inside:avoid}
  .tbl th{background:#0F1B3D!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .tbl tfoot td{border-top:1.5px solid #0F1B3D;font-weight:700}
}
/* demo: your company step */
.demo-form{display:grid;gap:16px;max-width:560px}
.logo-pick{display:flex;align-items:center;gap:16px;padding:16px;border:1px dashed rgba(255,255,255,.25);border-radius:14px;background:rgba(255,255,255,.04);cursor:pointer;position:relative}
.logo-pick:hover,.logo-pick:focus-visible{border-color:#2E6BFF;background:rgba(46,107,255,.08)}
.lp-img{width:72px;height:72px;border-radius:14px;background:rgba(255,255,255,.08);display:grid;place-items:center;flex-shrink:0;overflow:hidden}
.lp-img svg{width:28px;height:28px;stroke:#9DB4F5;fill:none;stroke-width:1.8}.lp-img img{width:100%;height:100%;object-fit:contain;background:#fff}
.logo-pick b{display:block;color:#fff}.logo-pick small{color:#9AA8CC}
.lp-x{position:absolute;top:8px;right:10px;border:0;background:none;color:#C9D6F5;font-size:1.3rem;cursor:pointer}
.df{display:grid;gap:6px}.df label{font-weight:600;color:#fff;font-size:.9rem}
.df input{font:inherit;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff}
.df input::placeholder{color:#7F8DB3}.df input:focus{outline:2px solid #2E6BFF;outline-offset:1px;border-color:transparent}
.df-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:4px}
.demo-cta.big{border:0;cursor:pointer;font-size:1rem;padding:12px 26px}
.demo-link{background:none;border:0;cursor:pointer}
.demo-err-inline{color:#FFB4B4;margin:0;min-height:1em;font-size:.9rem}
.do-logo img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:inherit}
/* Nova, the demo guide */
.nova{position:fixed;right:18px;bottom:18px;z-index:60;width:min(380px,calc(100vw - 24px));background:#0B1430;color:#E6ECFF;border-radius:18px;padding:16px 16px 12px;box-shadow:0 24px 60px -18px rgba(11,20,48,.6),0 0 0 1px rgba(255,255,255,.06);font-size:.92rem;animation:novaIn .35s ease-out}
@keyframes novaIn{from{transform:translateY(16px);opacity:0}}
.nv-h{display:flex;align-items:center;gap:10px}.nv-h b{display:block;font-family:var(--f-display);font-size:1rem;color:#fff}.nv-h small{color:#93A3CC;font-size:.75rem}
.nv-n{margin-left:auto;font-size:.75rem;color:#93A3CC}.nv-close{border:0;background:none;color:#93A3CC;font-size:1.3rem;cursor:pointer;line-height:1;padding:2px 4px}.nv-close:hover{color:#fff}
.nv-av{width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#7FA6FF,#2E6BFF 55%,#1A2E73);display:flex;align-items:center;justify-content:center;gap:3px;flex-shrink:0}
.nv-av i{width:3px;height:8px;border-radius:2px;background:#fff;opacity:.9}
.nv-av.talking i{animation:novaWave .9s ease-in-out infinite}.nv-av.talking i:nth-child(2){animation-delay:.15s}.nv-av.talking i:nth-child(3){animation-delay:.3s}
@keyframes novaWave{0%,100%{height:6px}50%{height:18px}}
.nv-t{margin:12px 0 4px;font-size:1.02rem;color:#fff}.nv-x{margin:0;line-height:1.55;color:#C9D4F2;max-height:34vh;overflow:auto}.nv-w{color:#FFD58A;margin:6px 0 0}
.nv-b{display:flex;gap:8px;margin-top:12px}.nv-b button,.nv-f button{font:inherit;cursor:pointer;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;padding:7px 14px;font-weight:600;font-size:.85rem}
.nv-b button.pri{background:#2E6BFF;border-color:#2E6BFF}.nv-b button:disabled{opacity:.4;cursor:default}.nv-b [data-a=next]{margin-left:auto}
.nv-f{display:flex;gap:8px;margin-top:8px}.nv-f button{padding:4px 10px;font-size:.75rem;color:#B9C6EA}
.rail a.nav.nova-hl{outline:2px solid #7FA6FF;outline-offset:-2px;background:rgba(46,107,255,.28);border-radius:8px;animation:novaPulse 1.6s ease-in-out 2}
@keyframes novaPulse{50%{box-shadow:0 0 0 6px rgba(127,166,255,.25)}}
.nova-btn{border:0;background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}
@media (max-width:640px){.nova{right:8px;left:8px;bottom:8px;width:auto}}
@media (prefers-reduced-motion:reduce){.nova,.nv-av.talking i,.rail a.nav.nova-hl{animation:none}}
@media print{.nova{display:none}}
/* security track: sign-in security, My security, backup codes */
.sec-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.sec-codes code{font:600 1rem var(--f-mono);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;text-align:center;letter-spacing:.08em}
.ok-box{background:rgba(43,182,115,.1);border:1px solid rgba(43,182,115,.35);color:var(--ink);border-radius:10px;padding:12px 14px;margin:8px 0}
.sec-box p{margin:0 0 10px}.tiny.bad{color:var(--crit)}
@media (max-width:480px){.sec-codes{grid-template-columns:minmax(0,1fr)}}

/* Track I: integrations (Settings → Integrations, online payment on invoices) */
.intg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:14px;margin-top:12px}
.intg-card{margin:0}
.intg-card.own{border-color:#BFE3CC}
.intg-choice{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px}
.intg-form .row{margin-top:12px}
.intg-form .fields{margin-top:10px}
.ok-text{color:var(--good)}.err-text{color:var(--crit)}
.pay-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.pay-qr{width:132px;height:132px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:4px}
.pay-row p{margin:0 0 8px;word-break:break-all}
/* ===== Employee lifecycle (track L): probation, exits and F&F, discipline, POSH, certificates, compliance ===== */
.kpi.lc-bad .val{color:var(--crit)}
.lc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 20px;margin:4px 0 12px}
.lc-facts span{display:block;font-size:12px;color:var(--muted)}
.lc-facts b{font-weight:600}
.lc-h3{font-size:14px;margin:16px 0 6px}
.lc-pre{white-space:pre-wrap;margin:4px 0 8px}
.lc-note{border-left:3px solid var(--line);padding:6px 0 6px 12px;margin:0 0 10px}
.lc-amt{max-width:140px;text-align:right}
.lc-sal{margin-top:8px}
@media (max-width:760px){.grid.g2.lc-g2{grid-template-columns:minmax(0,1fr)}}
/* ===== track F: finance operations (bank reconciliation, payment runs, petty cash, subscriptions, RCM) ===== */
.fo-bar{margin:0 0 12px;gap:10px}.fo-bar select{min-width:240px}
.kpi.fo-warn{border-color:var(--warn);background:var(--warn-soft)}.kpi.fo-crit{border-color:var(--crit);background:var(--crit-soft)}
.fo-buckets a.kpi{text-decoration:none;color:inherit}.fo-buckets a.kpi.on{outline:2px solid var(--blue);outline-offset:-1px}
.fo-brs td{padding:6px 4px}.fo-brs tr.bold td{font-weight:700;border-top:2px solid var(--line)}
.fo-note{background:var(--info-soft);border-radius:var(--r);padding:10px 12px;margin:8px 0;font-size:.85rem}
.fo-h3{font-size:.85rem;margin:14px 0 6px;color:var(--muted)}
.fo-banner{border-radius:var(--r);margin:0 0 12px}
.fo-cash{margin-top:14px}
.fo-tile{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px}
.fo-tile span{flex:1;min-width:140px;color:var(--muted);font-size:.85rem}.fo-tile b{font-family:var(--f-display);font-size:1.15rem}.fo-tile small{color:var(--faint)}
.fo-tile.fo-warn{background:var(--warn-soft);border-color:var(--warn)}.fo-tile.fo-crit{background:var(--crit-soft);border-color:var(--crit)}
/* ===== procurement track: purchasing screens and the supplier portal ===== */
a.kpi.pq-tile{text-decoration:none;color:var(--ink)}a.kpi.pq-tile:hover{border-color:#BCD0F7}a.kpi.pq-tile.warn .val{color:var(--warn)}
.pq-aging{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pq-age{position:relative;overflow:hidden;display:grid;gap:2px;padding:12px 14px;border:1px solid var(--hair);border-radius:var(--r-md);background:var(--surface)}
.pq-age span{font-size:.78rem;font-weight:600;color:var(--muted)}.pq-age b{font-family:var(--f-display);font-size:1.25rem}.pq-age small{color:var(--faint);font-size:.75rem}
.pq-age i{position:absolute;left:0;bottom:0;height:4px;background:var(--info)}.pq-age.crit i{background:var(--crit)}.pq-age.crit b{color:var(--crit)}.pq-age.warn i{background:var(--warn)}.pq-age.good i{background:var(--good)}
.pq-lines .input{min-width:0}.pq-pick{border:1px solid var(--hair);border-radius:var(--r-md);padding:12px 14px;margin:14px 0}.pq-pick legend{font-weight:700;padding:0 6px}
.pq-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 14px}.pq-new{margin-top:12px;display:grid;gap:8px}.pq-nv .input{flex:1 1 180px}
.pq-cmp td.pq-low{background:var(--good-soft)}.pq-lvl{margin:6px 0}.pq-doc{padding:8px 0;border-top:1px solid var(--line-2)}.pq-doc:first-of-type{border-top:0}
.sp-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.sp-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 24px;background:var(--navy);color:#DCE6FF}
.sp-brand b{display:block;color:#fff;font-family:var(--f-display);font-size:1.05rem}.sp-brand small{color:#9AA8CC}.sp-sp{flex:1}
.sp-bell{color:#DCE6FF;font-weight:600;text-decoration:none}.sp-bell b{display:inline-block;min-width:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:.72rem;text-align:center}
.sp-nav{display:flex;gap:4px;flex-wrap:wrap;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}
.sp-nav a{padding:11px 12px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:2px solid transparent}.sp-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--blue)}
.sp-main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:22px 24px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-content:start}
.pq-addbtn,.pq-new>.btn,#addL{justify-self:start;width:max-content}
.sp-foot{padding:14px 24px;color:var(--faint);font-size:.78rem;text-align:center}
.sp-auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(160deg,#0F1B3D,#16244D 60%,#1A2E73)}
.sp-card{width:min(460px,100%);background:var(--surface);border-radius:var(--r-lg);padding:28px;box-shadow:0 24px 60px -24px rgba(0,0,0,.5)}.sp-card h1{margin:4px 0 6px;font-size:1.5rem}
@media (max-width:760px){.pq-aging{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-top,.sp-nav,.sp-main{padding-left:16px;padding-right:16px}}
@media print{.sp-top,.sp-nav,.sp-foot{display:none}}
/* ===== Track W: workspace (tasks, meetings, team calendar) and the Ask NEXVORIA assistant ===== */
.ws-over{color:var(--crit);font-weight:600}
.ws-task{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.ws-task .sp,.ask-panel .sp{flex:1}
.ws-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.ws-kv dt{color:var(--muted);font-size:.82rem}.ws-kv dd{margin:0}
.ws-desc{white-space:normal;margin:12px 0 0;line-height:1.6}
.ws-check{display:grid;gap:8px}.ws-check input[type=checkbox]{width:16px;height:16px}
.ws-file{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line-2)}
.msg.ws-q{border-color:#F2D9A6;background:var(--warn-soft)}
.ws-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 12px;max-height:190px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px}
.ws-item{margin-bottom:6px}.ws-item .input{min-width:0}
.ws-card.late{border-left:3px solid var(--crit)}
.ws-calbar{flex-wrap:wrap}.ws-calbar h2{margin-left:6px}.ws-calbar .input{width:auto;max-width:190px;padding-top:6px;padding-bottom:6px}
.ws-h3{margin:14px 0 4px}.ws-save{margin-top:6px}
.ws-types{display:flex;flex-wrap:wrap;gap:6px 16px;padding:10px 18px;border-bottom:1px solid var(--line-2)}
.ws-k{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--c)}
.ws-cal .ws-wk,.ws-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ws-wk span{font-size:.7rem;color:var(--faint);text-align:center;font-weight:700;text-transform:uppercase;padding-bottom:4px}
.ws-day{min-height:104px;border:1px solid var(--line-2);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:3px;background:var(--surface);min-width:0}
.ws-day.out{background:var(--surface-2);opacity:.7}.ws-day.today{border-color:var(--bright);box-shadow:0 0 0 1px var(--bright) inset}
.ws-dn{font-size:.75rem;font-weight:700;color:var(--muted)}
.ws-ev{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);color:var(--ink);font-size:.72rem;line-height:1.3;padding:2px 5px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-ev:hover{background:color-mix(in srgb,var(--c) 20%,#fff)}.ws-ev.late{border-left-color:var(--crit);color:var(--crit)}
.ws-more{border:0;background:none;color:var(--blue);font-size:.72rem;cursor:pointer;text-align:left;padding:0 4px}
.t-lv{--c:#B3261E}.t-wf{--c:#7A4FD1}.t-hd{--c:#1E7F48}.t-bd{--c:#C2571A}.t-iv{--c:#0E7490}.t-fu{--c:#9A6400}.t-tk{--c:#1F4FD1}.t-mt{--c:#0F1B3D}
.ws-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.ws-wday{border:1px solid var(--line-2);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:4px;min-height:220px;min-width:0}
.ws-wday.today{border-color:var(--bright)}.ws-wday h3{font-size:.8rem;color:var(--muted)}
.ws-daylist{display:grid;gap:6px}.ws-daylist .ws-ev{font-size:.85rem;padding:6px 8px}
.ask-fab{position:fixed;right:18px;bottom:18px;z-index:55;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:11px 16px;background:linear-gradient(180deg,#16244D,#0B1430);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 10px 28px -10px rgba(11,20,48,.6)}
.ask-fab:hover{background:linear-gradient(180deg,#1F4FD1,#16244D)}
#toasts{bottom:76px}
.ask-panel{position:fixed;right:18px;bottom:76px;z-index:58;width:min(400px,calc(100vw - 24px));height:min(560px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hair);border-radius:16px;box-shadow:var(--lift-3);overflow:hidden}
.ask-panel[hidden]{display:none}
.ask-panel header{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:12px 14px;background:#0B1430;color:#E6ECFF}.ask-panel header .tiny{color:#A9B6DA;flex-basis:100%;order:3}
.ask-ic{border:0;background:rgba(255,255,255,.08);color:inherit;border-radius:6px;padding:3px 8px;cursor:pointer;font-size:.78rem}.ask-ic[aria-pressed=true]{background:var(--bright)}
.ask-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--paper)}
.ask-msg{max-width:88%;padding:8px 12px;border-radius:12px;font-size:.88rem;line-height:1.45}
.ask-msg.me{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.ask-msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--hair);border-bottom-left-radius:4px}.ask-msg.note{background:var(--warn-soft);border-color:#F2D9A6}
.ask-msg.typing{display:flex;gap:4px}.ask-msg.typing i{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:askDot 1s infinite}.ask-msg.typing i:nth-child(2){animation-delay:.15s}.ask-msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes askDot{50%{opacity:.25;transform:translateY(-2px)}}
.ask-act{margin-top:8px;padding:8px;border:1px dashed var(--bright);border-radius:8px;display:grid;gap:6px;background:var(--info-soft)}
.ask-sug{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid var(--line-2)}.ask-sug[hidden]{display:none}
.ask-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:.76rem;cursor:pointer}.ask-chip:hover{border-color:var(--bright)}
.ask-form{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line)}.ask-form textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-height:42px}
.ask-greet{position:fixed;right:18px;bottom:76px;z-index:57;width:min(340px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--hair);border-left:4px solid var(--bright);border-radius:12px;padding:12px 14px;box-shadow:var(--lift-2);font-size:.86rem}
.ask-greet ul{margin:6px 0 10px;padding-left:18px;display:grid;gap:3px}.ask-greet .ask-ic{float:right;background:var(--line-2);color:var(--ink)}
@media (max-width:900px){.ws-task{grid-template-columns:1fr}.ws-week{grid-template-columns:1fr}.ws-wday{min-height:0}}
@media (max-width:640px){.ws-day{min-height:64px}.ws-ev{font-size:0;height:6px;padding:0;border-left-width:0;background:var(--c)}.ws-ev b{display:none}.ws-more{font-size:.65rem}
  .ask-fab span{display:none}.ask-fab{padding:12px;right:12px;bottom:12px}.ask-panel,.ask-greet{right:8px;left:8px;width:auto;bottom:70px}}
@media print{.ask-fab,.ask-panel,.ask-greet{display:none!important}}

/* ===== track o: wave 1 left-overs (email log, blanket orders, advances, AI invoice reading, Teams, bank sample) ===== */
.el-bad{color:var(--crit)}
.el-kpis .kpi .val.el-bad{color:var(--crit)}
.el-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.el-card{border:1px solid var(--line-2);border-radius:var(--r);padding:14px;background:var(--surface-2)}
.el-card .check b{font-size:.92rem}
.el-sub{margin-top:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.el-actions{margin-top:14px}.el-actions .sp{flex:1}
.el-tabs{padding:0 16px;margin:0}
.el-to{word-break:break-all}
.el-attach{display:flex;align-items:center;gap:8px;margin:10px 0 0;padding:8px 12px;border:1px dashed var(--line);border-radius:8px;background:var(--surface-2);font-weight:600}
.lo-tasks:empty{display:none}
.lo-po{display:flex;flex-direction:column;gap:18px}
.lo-meter{height:10px;border-radius:999px;background:var(--line-2);overflow:hidden}
.lo-meter span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--bright))}
.lo-meter-l{margin-top:8px;font-size:.85rem;color:var(--muted)}.lo-meter-l .sp{flex:1}.lo-meter-l b{color:var(--ink)}
.lo-sub{border-top:1px solid var(--line-2)}
.lo-hint .panel-b{gap:14px}.lo-hint .sp{flex:1}
.lo-warnbox{display:block;padding:10px 14px;margin:8px 0;border:1px solid #F2D9A6;border-left:4px solid var(--warn);border-radius:8px;background:var(--warn-soft);color:#5C3D00;font-size:.88rem}
.lo-warnbox ul{margin:4px 0 0;padding-left:18px;display:grid;gap:2px}
.lo-ai .panel-b{gap:12px}.lo-ai .sp{flex:1}
.lo-ai-ic{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--info-soft);font-size:1.15rem;flex:none}
.lo-file{cursor:pointer;min-height:40px}.lo-file.busy{opacity:.7;pointer-events:none}
.lo-aibtn{margin-top:8px;align-self:flex-start}.lo-aiout{margin-top:4px}
.lo-warnbox.lo-teams{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;margin:0}
.lo-sample{padding:12px;border:1px dashed var(--bright);border-radius:var(--r);background:var(--info-soft)}
.lo-sample .row .input{background:#fff}
.lo-note{margin:8px 0 0;padding:8px 12px;border-radius:8px;background:var(--info-soft);color:var(--info);font-size:.82rem}
.lo-q{max-width:120px;margin-left:auto;text-align:right}
@media (max-width:640px){.lo-hint .panel-b,.lo-ai .panel-b{flex-direction:column;align-items:stretch}.lo-hint .sp,.lo-ai .sp{display:none}.lo-file{justify-content:center}.el-actions .btn{flex:1;justify-content:center}}
.el-search{display:flex;gap:8px;align-items:center;flex:1;max-width:380px;min-width:0}.el-search .input{min-width:0}
.el-cards{align-items:start}
@media (max-width:640px){.el-search{max-width:none;flex-basis:100%}}
.lo-po .panel-h{flex-wrap:wrap}

/* =====================================================================
   Hotel front office (track h): front desk board, booking panel, folios, availability chart, housekeeping
   ===================================================================== */
.ht-tabs{margin-bottom:0}
.ht-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ht-search{position:relative;flex:1 1 320px;display:flex;align-items:center}
.ht-search>svg{position:absolute;left:12px;width:18px;height:18px;stroke:var(--faint);fill:none;stroke-width:2;pointer-events:none}
.ht-search .input{padding-left:38px;min-height:44px;border-radius:12px}
.ht-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--lift-2);padding:6px;max-height:360px;overflow:auto}
.ht-results a{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--ink)}
.ht-results a:hover{background:var(--surface-2)}.ht-results a span{grid-column:1;font-size:.78rem;color:var(--muted)}.ht-results a .pill{grid-row:1/3;grid-column:2;align-self:center}
.ht-results .muted{padding:10px}
.ht-date{display:flex;gap:6px;align-items:center}.ht-date .input{min-height:44px;width:auto;border-radius:12px}.ht-date .btn{min-height:44px;border-radius:12px}
.ht-newbtn{min-height:44px;border-radius:12px;padding:0 18px}
.ht-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px;align-items:start}
.ht-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.ht-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ht-kpi{display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:14px;padding:12px;background:var(--k-bg);color:var(--ink);text-align:left;font:inherit;min-width:0}
button.ht-kpi{cursor:pointer;transition:transform .15s,box-shadow .15s}button.ht-kpi:hover{transform:translateY(-1px);box-shadow:var(--lift-2)}
.ht-kpi svg{flex:none;width:30px;height:30px;stroke:var(--k-fg);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ht-kpi span{display:flex;flex-direction:column;min-width:0}.ht-kpi b{font-family:var(--f-display);font-size:1.35rem;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ht-kpi small{font-size:.74rem;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ht-k-blue{--k-bg:#EAF1FF;--k-fg:#1F4FD1}.ht-k-red{--k-bg:#FDECEC;--k-fg:#C62828}.ht-k-green{--k-bg:#E7F6EC;--k-fg:#1E7F48}.ht-k-indigo{--k-bg:#EEF0FF;--k-fg:#4C51BF}.ht-k-amber{--k-bg:#FFF4E0;--k-fg:#B26A00}
.ht-k-rose{--k-bg:#FDEBF1;--k-fg:#B4245A}.ht-k-violet{--k-bg:#F3EEFF;--k-fg:#6D3FC0}.ht-k-teal{--k-bg:#E3F6F5;--k-fg:#0F766E}.ht-k-slate{--k-bg:#EEF1F6;--k-fg:#334155}
.ht-occ{height:6px;background:var(--line-2);border-radius:6px;overflow:hidden}.ht-occ i{display:block;height:100%;background:linear-gradient(90deg,#2E6BFF,#0F766E);border-radius:6px}
.ht-bar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:10px}
.ht-chips{display:flex;gap:6px;flex-wrap:wrap}
.ht-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;font-weight:600;cursor:pointer;min-height:38px;color:var(--ink)}
.ht-chip span{color:var(--faint);font-weight:600;margin-left:2px}.ht-chip.on{background:var(--blue);border-color:var(--blue);color:#fff}.ht-chip.on span{color:#DCE6FF}
.ht-sel{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ht-sel .input{width:auto;min-height:38px}
.ht-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.ht-seg button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:8px 12px;font-weight:600;cursor:pointer;min-height:38px;color:var(--muted)}
.ht-seg button+button{border-left:1px solid var(--line)}.ht-seg button.on{background:var(--blue);color:#fff}
.ht-seg svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.ht-note{background:var(--info-soft);color:var(--info);border-radius:10px;padding:9px 12px;font-size:.86rem;margin:0 16px 12px}.ht-main>.ht-note{margin:0}
.ht-warnnote{background:var(--warn-soft);color:var(--warn)}
.ht-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.ht-card{background:var(--surface);border:1px solid var(--hair);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--lift-1);transition:box-shadow .2s,border-color .2s}
.ht-card:hover{box-shadow:var(--lift-2)}.ht-card.picked{border-color:var(--blue);box-shadow:0 0 0 2px rgba(31,79,209,.25)}
.ht-photo{position:relative;height:108px;background:var(--surface-2)}.ht-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ht-ph{width:100%;height:100%;display:grid;place-items:center}.ht-ph svg{width:44px;height:44px;stroke:rgba(255,255,255,.85);fill:none;stroke-width:1.4}
.ht-ph-1{background:linear-gradient(135deg,#8C6A4F,#C9A27E)}.ht-ph-2{background:linear-gradient(135deg,#4F5D8C,#8EA0D6)}.ht-ph-3{background:linear-gradient(135deg,#3E6B5A,#86B8A2)}.ht-ph-4{background:linear-gradient(135deg,#7A4F7E,#C69BCB)}
.ht-num{position:absolute;left:10px;bottom:8px;color:#fff;font-family:var(--f-display);font-size:1.5rem;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.ht-tag{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.ht-photo .ht-tag{position:absolute;top:8px;right:8px;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.ht-av{background:#1E7F48;color:#fff}.ht-oc{background:#C62828;color:#fff}.ht-rs{background:#1F4FD1;color:#fff}.ht-cl{background:#E59400;color:#fff}.ht-os{background:#475569;color:#fff}
.ht-cb{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.ht-ct{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.ht-ct b{font-family:var(--f-display);font-size:1.05rem}.ht-ct span{color:var(--muted);font-size:.84rem}
.ht-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--faint);font-size:.74rem}.ht-meta span{display:inline-flex;align-items:center;gap:3px}.ht-meta svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.ht-guest{font-size:.8rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ht-cf{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}.ht-price{font-size:.8rem;color:var(--muted)}.ht-price b{color:var(--ink);font-size:.95rem}
.ht-cf .btn{min-height:34px}.btn.outline{border-color:var(--blue);color:var(--blue)}
.ht-moves .panel-h .sub{background:var(--surface-2);border-radius:999px;padding:1px 9px;font-weight:700}
.ht-mlist{list-style:none;margin:0;padding:6px 10px 10px;display:flex;flex-direction:column}
.ht-mlist li{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px solid var(--line-2)}.ht-mlist li:last-child{border-bottom:0}
.ht-mlist li>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}.ht-mlist small{color:var(--muted);font-size:.76rem}
.ht-rno{flex:none;min-width:48px;text-align:center;font-family:var(--f-display);font-weight:600;background:var(--surface-2);border:1px solid var(--hair);border-radius:10px;padding:6px 4px}
/* booking panel */
.ht-side{position:sticky;top:76px}
.ht-side-in{background:var(--surface);border:1px solid var(--hair);border-radius:16px;box-shadow:var(--lift-2);padding:16px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 96px);overflow:auto}
.ht-side-h{display:flex;justify-content:space-between;align-items:center}.ht-side-h h2{font-size:1.15rem}.ht-close{display:none}
.ht-segw{display:grid;grid-template-columns:repeat(3,1fr)}.ht-segw button{justify-content:center}
.ht-form{display:flex;flex-direction:column;gap:12px}.ht-form .input{min-height:42px}
.ht-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ht-step{display:grid;grid-template-columns:40px 1fr 40px;border:1px solid #CFD7E6;border-radius:8px;overflow:hidden;min-height:42px}
.ht-step button{border:0;background:var(--surface-2);font-size:1.15rem;cursor:pointer;color:var(--ink)}.ht-step output{display:grid;place-items:center;font-weight:600}
.ht-picked{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ht-picked li{display:flex;align-items:center;gap:10px;background:var(--info-soft);border-radius:10px;padding:8px 10px}
.ht-picked svg{width:22px;height:22px;stroke:var(--blue);fill:none;stroke-width:1.8;flex:none}.ht-picked span{flex:1;display:flex;flex-direction:column;min-width:0}.ht-picked small{color:var(--muted)}
.ht-hint{margin:-6px 0 0;font-size:.76rem;color:var(--faint)}
.ht-formc{background:var(--warn-soft);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.ht-formc>b{color:var(--warn);font-size:.85rem}
.ht-biz summary{cursor:pointer;font-weight:600;font-size:.86rem;color:var(--blue);padding:4px 0}.ht-biz[open]{display:flex;flex-direction:column;gap:10px}
.ht-sum{background:var(--surface-2);border:1px solid var(--hair);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px}
.ht-sl{display:flex;justify-content:space-between;gap:10px;font-size:.88rem}.ht-sl b{font-variant-numeric:tabular-nums}
.ht-tot{border-top:1px solid var(--line);padding-top:8px;font-size:1.05rem}.ht-tot span{font-weight:700}
.ht-go{background:#1E7F48;border-color:#1E7F48;color:#fff;justify-content:center;min-height:48px;font-size:1rem;border-radius:12px}.ht-go:hover{background:#18693B}
/* booking page */
.ht-res{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.ht-dl{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;margin:0 0 10px}.ht-dl dt{color:var(--muted);font-size:.82rem}.ht-dl dd{margin:0}
.ht-paysum{display:flex;gap:12px;margin-bottom:10px;flex-wrap:wrap}.ht-paysum div{background:var(--surface-2);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}.ht-paysum small{color:var(--muted);font-size:.75rem}
.ht-h3{margin:14px 0 6px}.ht-inv{list-style:none;margin:0;padding:0}.ht-inv li{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line-2)}
.ht-stay .panel-h{flex-wrap:wrap}.ht-stay .panel-h .row{gap:6px}
.ht-folio tr.ht-void td{color:var(--faint);text-decoration:line-through}.ht-folio tr.ht-void td .tiny{text-decoration:none}
.ht-fol{font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--surface-2);white-space:nowrap}.ht-fol.company{background:#EEF0FF;color:#4C51BF}
.ht-ftot{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;padding:10px 16px 14px;font-size:.88rem;color:var(--muted)}.ht-ftot b{color:var(--ink);margin-left:4px}
.ht-cosum{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.ht-cosum div{background:var(--surface-2);border-radius:10px;padding:10px}.ht-cosum small{display:block;color:var(--muted);font-size:.75rem}.ht-cosum b{font-size:1.1rem}
.ht-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end}
/* availability chart */
.ht-chbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ht-chbar .input{width:auto}
.ht-legend{display:flex;gap:6px 12px;align-items:center;flex-wrap:wrap;font-size:.76rem;color:var(--muted);margin-left:auto}.ht-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:2px;vertical-align:-2px}
.ht-chart-wrap{overflow-x:auto;border-top:1px solid var(--line-2)}
.ht-chart{min-width:calc(110px + var(--n) * 46px)}
.ht-crow{display:grid;grid-template-columns:110px repeat(var(--n),minmax(46px,1fr));position:relative;border-bottom:1px solid var(--line-2);min-height:44px}
.ht-cname{grid-column:1;grid-row:1;position:sticky;left:0;z-index:2;background:var(--surface);padding:6px 10px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}
.ht-cname small{color:var(--faint);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ht-chead{position:sticky;top:0;z-index:3;background:var(--surface-2)}.ht-chead .ht-cname{background:var(--surface-2);font-weight:700;font-size:.78rem;color:var(--muted)}
.ht-cday{grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.72rem;color:var(--muted);border-left:1px solid var(--line-2)}.ht-cday b{color:var(--ink);font-size:.9rem}
.ht-cday.we{background:#F6F2FF}.ht-cday.today{background:var(--info-soft)}.ht-cday.today b{color:var(--blue)}
.ht-ccell{grid-row:1;border:0;border-left:1px solid var(--line-2);background:transparent;cursor:pointer;min-height:44px}.ht-ccell:hover:not([disabled]){background:var(--info-soft)}.ht-ccell[disabled]{cursor:default;background:repeating-linear-gradient(45deg,transparent,transparent 6px,#F5F7FB 6px,#F5F7FB 8px)}
.ht-cbar{grid-row:1;z-index:1;align-self:center;margin:0 3px;height:30px;border-radius:8px;padding:0 8px;display:flex;align-items:center;font-size:.76rem;font-weight:600;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.ht-b-checked_in{background:#C62828}.ht-b-reserved{background:#1F4FD1}.ht-b-tentative{background:repeating-linear-gradient(45deg,#7C93D9,#7C93D9 8px,#6A82CC 8px,#6A82CC 16px)}.ht-b-checked_out{background:#94A3B8}.ht-b-ooo{background:#475569}
/* housekeeping */
.ht-hkbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ht-hkbar .input{width:auto;min-height:42px}
.ht-board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.ht-hkcol{background:var(--surface-2);border:1px solid var(--hair);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:10px;border-top:4px solid var(--hk)}
.ht-hkcol h2{font-size:.92rem;display:flex;justify-content:space-between}.ht-hkcol h2 span{background:var(--surface);border-radius:999px;padding:0 9px;font-size:.8rem}
.ht-hk-dirty{--hk:#C62828}.ht-hk-cleaning{--hk:#E59400}.ht-hk-clean{--hk:#1E7F48}.ht-hk-inspected{--hk:#0F766E}.ht-hk-ooo{--hk:#475569}
.ht-hkcard{background:var(--surface);border:1px solid var(--hair);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--lift-1)}
.ht-hkt{display:flex;align-items:baseline;gap:8px}.ht-hkt b{font-family:var(--f-display);font-size:1.3rem}.ht-hkt span{font-size:.78rem;color:var(--muted)}
.ht-hkflags{display:flex;gap:4px;flex-wrap:wrap}.ht-hkcard p{margin:0}.ht-who{min-height:38px}
.ht-hkact{display:flex;gap:6px;flex-wrap:wrap}.ht-hkact .btn{min-height:38px;flex:1;justify-content:center}.ht-hkempty{text-align:center;margin:8px 0}
/* setup */
.ht-subtabs{display:flex;gap:6px;flex-wrap:wrap}.ht-subtabs a{padding:7px 14px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--muted);font-weight:600;background:var(--surface)}.ht-subtabs a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ht-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:14px}
.ht-tcard{border:1px solid var(--hair);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.ht-tcard>img,.ht-tcard>.ht-ph{height:120px;width:100%;object-fit:cover}.ht-tcard p{margin:0}
.ht-season{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border-radius:8px;padding:2px 6px;font-size:.76rem;margin:2px}
.ht-slabs{max-width:520px}.ht-slabs .input{min-height:36px}.ht-mt{margin-top:12px}.ht-days{display:flex;gap:6px 14px;flex-wrap:wrap}
@media (max-width:1280px){.ht-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1100px){
  .ht-layout{grid-template-columns:1fr}
  .ht-side{position:fixed;inset:0;z-index:45;background:rgba(15,27,61,.45);display:none;padding:12px;overflow:auto}
  .ht-side.open{display:block}.ht-side-in{max-width:460px;margin:0 auto;max-height:none}.ht-close{display:inline-flex}
}
@media (max-width:760px){
  .ht-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ht-kpi{padding:10px}.ht-kpi b{font-size:1.15rem}
  .ht-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ht-photo{height:84px}.ht-num{font-size:1.2rem}
  .ht-res{grid-template-columns:1fr}.ht-filters{grid-template-columns:1fr 1fr}.ht-dl{grid-template-columns:100px 1fr}
  .ht-board{grid-template-columns:repeat(5,minmax(240px,82vw));scroll-snap-type:x mandatory}.ht-hkcol{scroll-snap-align:start}
  .ht-cosum{grid-template-columns:1fr 1fr 1fr}.ht-date{width:100%}.ht-date .input{flex:1}.ht-newbtn{width:100%;justify-content:center}
  .ht-sel{width:100%}.ht-sel .input{flex:1}.ht-chips{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:2px}.ht-chip{flex:none}
  .ht-legend{margin-left:0}
}
@media (max-width:420px){.ht-grid{grid-template-columns:1fr 1fr}.ht-cf{flex-direction:column;align-items:stretch}.ht-cf .btn{justify-content:center}}

/* ===== track q: POS designer, restaurant POS, menu and kitchen display ===== */
.rq,.rq-retail,.rq-open,.rq-pcard,.rq-preset{--rq-accent:var(--blue)}
.rq-food{display:inline-grid;place-items:center;width:13px;height:13px;border:1.5px solid var(--good);border-radius:2px;margin-right:6px;vertical-align:-1px;flex:none;background:#fff}
.rq-food::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--good)}
.rq-food.rq-nonveg{border-color:#A3271D}.rq-food.rq-nonveg::after{background:#A3271D;border-radius:0;width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-bottom:6px solid #A3271D;background:none}
.rq-food.rq-egg{border-color:#B7791F}.rq-food.rq-egg::after{background:#D69E2E}
.rq-cats{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:thin}
.rq-cat{flex:none;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 16px;font-weight:600;cursor:pointer;min-height:40px;color:var(--ink)}
.rq-cat.on{background:var(--rq-accent);border-color:var(--rq-accent);color:#fff}
.rq-tiles{display:grid;gap:12px}
.rq-tile{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;padding:0;box-shadow:var(--shadow);transition:transform .12s,border-color .12s;color:var(--ink)}
.rq-tile:hover{border-color:var(--rq-accent);transform:translateY(-1px)}.rq-tile:active{transform:scale(.98)}
.rq-tile.out{opacity:.5;cursor:not-allowed}
.rq-tile.nopic{padding-top:10px}
.rq-pic{position:relative;display:block;aspect-ratio:4/3;background:var(--surface-2);overflow:hidden}
.rq-pic img{width:100%;height:100%;object-fit:cover;display:block}
.rq-ini{display:grid;place-items:center;width:100%;height:100%;font:600 1.6rem var(--f-display);color:var(--rq-accent);background:color-mix(in srgb,var(--rq-accent) 10%,#fff)}
.rq-badge{position:absolute;left:8px;top:8px;background:var(--red);color:#fff;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:6px}
.rq-soldout{position:absolute;inset:auto 0 0 0;background:rgba(15,27,61,.75);color:#fff;font-size:.75rem;font-weight:700;text-align:center;padding:3px}
.rq-tname{display:flex;align-items:flex-start;padding:8px 10px 0;font-weight:700;font-size:.9rem;line-height:1.25;min-height:2.6em}
.rq-tprice{padding:2px 10px 10px;font-family:var(--f-display);font-weight:600}
.rq-tilebox{max-height:56vh;overflow:auto}
.rq-paybox{position:sticky;top:76px}.rq-go{width:100%;justify-content:center;padding:12px;background:var(--rq-accent,var(--blue));border-color:var(--rq-accent,var(--blue))}
.rq-batches{display:grid;gap:8px}.rq-batch{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}.rq-batch.expired{opacity:.55;cursor:not-allowed;background:var(--crit-soft)}
.rq-open{max-width:540px}.rq-openhead{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.rq-dot{width:14px;height:14px;border-radius:50%;background:var(--rq-accent);flex:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--rq-accent) 18%,transparent)}
/* restaurant screen */
.rq{display:flex;flex-direction:column;gap:14px}
.rq-top{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.rq-search{flex:1 1 260px;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 14px;min-height:50px;box-shadow:var(--shadow)}
.rq-search svg,.rq-chip svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;flex:none;color:var(--muted)}
.rq-search input{border:0;outline:0;background:transparent;flex:1;font-size:1rem;min-width:0}
.rq-chip{display:inline-flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px 14px;min-height:50px;cursor:pointer;box-shadow:var(--shadow);color:var(--ink)}
.rq-chip small{display:block;font-size:.7rem;color:var(--muted);line-height:1}.rq-chip b{font-size:1rem}
.rq-staff select{border:0;background:transparent;font-weight:700;font-size:.95rem;padding:0;max-width:150px}
.rq-seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;box-shadow:var(--shadow)}
.rq-seg button{border:0;background:none;padding:8px 14px;border-radius:9px;font-weight:600;cursor:pointer;color:var(--muted);min-height:40px}
.rq-seg button.on{background:color-mix(in srgb,var(--rq-accent) 12%,#fff);color:var(--rq-accent)}.rq-seg button:disabled{cursor:default}
.rq-body{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:16px;align-items:start}
.rq-left{min-width:0;display:flex;flex-direction:column;gap:12px}
.rq-order{position:sticky;top:76px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 96px);overflow:auto}
.rq-oh{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.rq-oh h2{font-size:1.35rem}
.rq-cust{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rq-cust .wide{grid-column:1/-1}
.rq-lh{display:flex;justify-content:space-between;background:var(--surface-2);border-radius:8px;padding:7px 10px;font-size:.78rem;color:var(--muted);font-weight:600}
.rq-line{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;grid-template-areas:"pic name name tot" "pic qty price act";gap:4px 10px;align-items:center}
.rq-line .rq-lpic{grid-area:pic;align-self:start}.rq-line .rq-lname{grid-area:name}.rq-line .rq-qty{grid-area:qty;justify-self:start}.rq-line .rq-lprice{grid-area:price;font-size:.78rem;color:var(--muted)}.rq-line .rq-ltot{grid-area:tot;align-self:start}.rq-line .rq-lact{grid-area:act;flex-direction:row;justify-content:flex-end}
.rq-line .num,.rq-mrow .num{text-align:right}
.rq-lines{display:flex;flex-direction:column}
.rq-line{padding:9px 0;border-bottom:1px solid var(--line-2);font-size:.88rem}
.rq-line.cancelled{opacity:.55}.rq-line.cancelled .rq-lname b{text-decoration:line-through}
.rq-lpic{width:44px;height:44px;border-radius:8px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;font-size:.7rem;font-weight:700;color:var(--muted)}
.rq-lpic img{width:100%;height:100%;object-fit:cover}
.rq-lname{min-width:0;line-height:1.3}.rq-note{color:var(--warn)}
.rq-st{display:inline-block;font-size:.68rem;font-weight:700;border-radius:999px;padding:1px 7px;margin-top:2px;background:var(--line-2);color:var(--muted)}
.rq-st.st-preparing{background:var(--warn-soft);color:var(--warn)}.rq-st.st-ready{background:var(--good-soft);color:var(--good)}.rq-st.st-served{background:var(--info-soft);color:var(--info)}.rq-st.st-cancelled{background:var(--crit-soft);color:var(--crit)}
.rq-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;justify-self:center}
.rq-qty button{border:0;background:var(--surface);width:30px;height:32px;font-size:1.05rem;cursor:pointer;color:var(--ink)}.rq-qty button:hover{background:var(--surface-2)}
.rq-qty b{min-width:24px;text-align:center}.rq-qty.ro{border:0}
.rq-lact{display:flex;align-items:center;gap:2px}.rq-lact .btn{padding:2px 8px}
.rq-empty{padding:26px 8px;text-align:center;color:var(--faint)}
.rq-instr{resize:vertical;min-height:52px}
.rq-tot{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--line-2);padding-top:8px}
.rq-tot>div{display:flex;justify-content:space-between;gap:8px}
.rq-grand{font:700 1.35rem var(--f-display);border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.linkish{border:0;background:none;color:var(--blue);cursor:pointer;font-size:.78rem;padding:0 0 0 4px;text-decoration:underline}
.rq-acts{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:8px}
.rq-acts .btn{justify-content:center;min-height:50px;font-size:1rem;border-radius:10px}
.rq-clear{color:var(--crit);border-color:#F0C4C0}.rq-save{background:var(--info-soft);border-color:#C9D7F6;color:var(--blue)}
.rq-pay{background:var(--good);border-color:var(--good);color:#fff}.rq-pay:hover{background:#18693B}
.rq-pays{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px}
.rq-paybtn{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 4px;font-size:.78rem;font-weight:600;cursor:pointer;min-height:56px;color:var(--ink)}
.rq-paybtn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.rq-paybtn:hover{border-color:var(--rq-accent);color:var(--rq-accent)}.rq-paybtn:disabled{opacity:.45;cursor:not-allowed}
.rq-floorbar{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap}.rq-floorbar .sp{flex:1}
.rq-legend{display:inline-flex;gap:6px;align-items:center;font-size:.8rem;color:var(--muted)}.rq-legend i{width:12px;height:12px;border-radius:3px;border:1.5px solid var(--line)}
.rq-legend i.free{background:#fff;border-color:var(--good)}.rq-legend i.occupied{background:var(--rq-accent);border-color:var(--rq-accent)}.rq-legend i.billed{background:var(--warn-soft);border-color:var(--warn)}.rq-legend i.reserved{background:#F1ECFE;border-color:#6D28D9;border-style:dashed}
.rq-area h3{margin:0 0 8px;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.rq-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px}
.rq-table{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border-radius:14px;padding:12px 14px;min-height:96px;cursor:pointer;border:1.5px solid var(--good);background:var(--surface);box-shadow:var(--shadow);color:var(--ink)}
.rq-table .rq-tn{font:700 1.3rem var(--f-display)}.rq-table .rq-ts{font-weight:600;font-size:.9rem}.rq-table .rq-tm{font-size:.74rem;opacity:.85}
.rq-table.occupied{background:var(--rq-accent);border-color:var(--rq-accent);color:#fff}
.rq-table.billed{background:var(--warn-soft);border-color:var(--warn);color:#5C3B00}
.rq-table.reserved{background:#F1ECFE;border:1.5px dashed #6D28D9;color:#4C1D95}.rq-table.reserved .rq-ts{font-size:.76rem;font-weight:500}
.rq-tag{position:absolute;right:8px;top:8px;font-size:.62rem;font-weight:700;background:var(--warn);color:#fff;border-radius:6px;padding:1px 6px}
.rq-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.rq-list button{display:flex;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line-2);background:none;padding:12px 14px;text-align:left;cursor:pointer;color:var(--ink)}.rq-list button span{flex:1}.rq-list button.out{opacity:.5}
.rq-pick fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px 10px;margin:0;display:flex;flex-direction:column;gap:4px}
.rq-pick legend{font-weight:700;padding:0 4px}
.rq-opt{display:flex;align-items:center;gap:10px;padding:8px 4px;border-radius:8px;cursor:pointer;min-height:40px}.rq-opt span{flex:1}.rq-opt:hover{background:var(--surface-2)}
.rq-actlist,.rq-actlist2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.rq-actlist .btn,.rq-actlist2 .btn{justify-content:center;min-height:46px}
.modal:has(.rq-actlist) .modal-f{display:none}
.rq-due{display:flex;justify-content:space-between;align-items:baseline;background:var(--surface-2);border-radius:10px;padding:10px 14px}.rq-due b{font:700 1.6rem var(--f-display)}
.rq-splitf{display:flex;flex-direction:column;gap:4px}
@media (max-width:1180px){.rq-body{grid-template-columns:minmax(0,1fr) 360px}}
@media (max-width:980px){.rq-body{grid-template-columns:1fr}.rq-order{position:static;max-height:none;scroll-margin-top:80px}.rq-tilebox{max-height:none}.rq-paybox{position:static}
  .rq-mobilebar:not([hidden]){display:flex;position:sticky;bottom:12px;z-index:4;justify-content:space-between;gap:10px;align-items:center;border:0;border-radius:12px;padding:14px 16px;background:var(--ink);color:#fff;font-weight:600;box-shadow:0 10px 30px rgba(15,27,61,.3);cursor:pointer}}
@media (max-width:560px){.rq-tiles{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.rq-tables{grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:8px}.rq-table{min-height:84px;padding:10px}
  .rq-chip{padding:6px 10px}.rq-seg button{padding:8px 10px;flex:1}.rq-cust{grid-template-columns:1fr}
  .rq-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.rq-search{grid-column:1/-1}.rq-seg{grid-column:1/-1;order:5;display:flex}.rq-staff{min-width:0}.rq-staff select{max-width:100%}}
/* menu management */
.rq-sortlist{list-style:none;margin:0;padding:0}.rq-sortlist li{display:flex;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.rq-sortlist .sp{flex:1}
.rq-sorth{width:26px;height:26px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:.78rem;font-weight:700;color:var(--muted)}
.rq-plain{list-style:none;margin:6px 0 0;padding:0}.rq-plain li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed var(--line-2)}
.rq-orow{display:grid;grid-template-columns:minmax(0,1fr) 120px 36px;gap:8px;margin-bottom:6px}
.rq-mlist{display:flex;flex-direction:column}
.rq-mrow{display:grid;grid-template-columns:56px minmax(0,1fr) 90px 128px auto;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line-2)}
.rq-mrow.out .rq-mpic{filter:grayscale(1);opacity:.6}
.rq-mpic{width:56px;height:56px;border-radius:10px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;font-weight:700;color:var(--muted)}.rq-mpic img{width:100%;height:100%;object-fit:cover}
.rq-mpic.big{width:120px;height:90px}
.rq-mname{min-width:0}.rq-mrow .num{text-align:right}
.rq-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.8rem}.rq-switch input{position:absolute;opacity:0;width:1px;height:1px}
.rq-switch span{width:40px;height:22px;border-radius:999px;background:#C9D1E1;position:relative;transition:background .15s;flex:none}
.rq-switch span::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.rq-switch input:checked+span{background:var(--good)}.rq-switch input:checked+span::after{transform:translateX(18px)}.rq-switch input:focus-visible+span{outline:2px solid var(--bright);outline-offset:2px}
.rq-switch em{font-style:normal;color:var(--muted);min-width:56px}
.rq-imgedit{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.rq-itemform .field>.btn,.rq-edform .field>.btn{align-self:flex-start}
.rq-mobilebar{display:none}
@media (max-width:640px){.rq-mrow{grid-template-columns:48px minmax(0,1fr) auto;row-gap:6px}.rq-mpic{width:48px;height:48px}.rq-mrow .num{grid-column:3;grid-row:1}.rq-mrow .rq-switch{grid-column:2}.rq-mrow>.btn:last-child{grid-column:3}}
/* kitchen display */
.rq-kds{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;align-items:start}
.rq-ticket{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--info);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.rq-ticket.warn{border-top-color:var(--warn)}.rq-ticket.late{border-top-color:var(--crit);background:#FFFBFA}.rq-ticket.done{opacity:.6;border-top-color:var(--good)}
.rq-ticket header{display:flex;gap:8px;align-items:baseline}.rq-ticket header b{font:700 1.1rem var(--f-display)}.rq-ticket header span{flex:1;font-weight:700}
.rq-ticket time{font:700 1rem var(--f-mono)}.rq-ticket.late time{color:var(--crit)}.rq-ticket.warn time{color:var(--warn)}
.rq-ticket ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rq-ticket li button{width:100%;display:block;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:9px 10px;cursor:pointer;position:relative;padding-right:84px;font-size:.92rem;min-height:44px;color:var(--ink)}
.rq-kst{position:absolute;right:8px;top:9px;font-size:.7rem;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--line-2);color:var(--muted)}
.rq-ticket li.st-preparing button{border-color:#EBC77E;background:var(--warn-soft)}.rq-ticket li.st-preparing .rq-kst{background:var(--warn);color:#fff}
.rq-ticket li.st-ready button{border-color:#9BD3B0;background:var(--good-soft)}.rq-ticket li.st-ready .rq-kst{background:var(--good);color:#fff}
.rq-ticket li.st-served button{opacity:.55}.rq-ticket li.st-cancelled{color:var(--crit);font-size:.85rem;padding:2px 4px}
.rq-ticket footer{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
/* POS designer */
.rq-design{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}
.rq-plist{display:flex;flex-direction:column;gap:8px;position:sticky;top:76px}
.rq-pcard{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-decoration:none;color:var(--ink);box-shadow:var(--shadow)}
.rq-pcard .rq-dot{margin-top:4px}.rq-pcard.on{border-color:var(--rq-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--rq-accent) 25%,transparent)}
.rq-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.rq-preset{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}.rq-preset:has(input:checked){border-color:var(--rq-accent);background:color-mix(in srgb,var(--rq-accent) 6%,#fff)}
.rq-edgrid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}
.rq-edform{display:flex;flex-direction:column;gap:14px}.rq-edform h2{margin-bottom:10px}
.rq-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;margin:6px 0 12px}
.rq-radios{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.rq-radio{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px 14px;cursor:pointer;min-height:42px}.rq-radio:has(input:checked){border-color:var(--blue);background:var(--info-soft)}
.rq-swatches{display:flex;gap:10px;flex-wrap:wrap}.rq-swatch input{position:absolute;opacity:0;width:1px;height:1px}
.rq-swatch span{display:block;width:38px;height:38px;border-radius:50%;cursor:pointer;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}.rq-swatch input:checked+span{box-shadow:0 0 0 3px var(--ink)}.rq-swatch input:focus-visible+span{outline:2px solid var(--bright);outline-offset:3px}
.rq-savebar{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;background:rgba(243,245,249,.95);backdrop-filter:blur(6px);border-top:1px solid var(--line);padding:12px 0;z-index:2}.rq-savebar .sp{flex:1}
.rq-prevwrap{position:sticky;top:76px;display:flex;flex-direction:column;gap:8px}
.rq-prev{--rq-accent:var(--blue);background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:10px;font-size:11px;line-height:1.3;box-shadow:var(--shadow);overflow:hidden}
.pv-top{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.pv-search{flex:1 1 100px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:6px 8px;color:var(--faint)}
.pv-chip{background:#fff;border:1px solid var(--line);border-radius:7px;padding:5px 7px}.pv-seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:7px;padding:2px}.pv-seg i{font-style:normal;padding:3px 6px;border-radius:5px;color:var(--muted)}.pv-seg i.on{color:var(--rq-accent);background:color-mix(in srgb,var(--rq-accent) 12%,#fff)}
.pv-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:8px}
.pv-cats{display:flex;gap:4px;margin-bottom:6px;overflow:hidden}.pv-cats span{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 7px;white-space:nowrap}.pv-cats span.on{background:var(--rq-accent);color:#fff;border-color:var(--rq-accent)}
.pv-tiles{display:grid;gap:5px}.pv-tile{background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.pv-pic{aspect-ratio:4/3;background:color-mix(in srgb,var(--rq-accent) 10%,#fff);display:grid;place-items:center;color:var(--rq-accent);font-weight:700;font-size:14px}.pv-pic img{width:100%;height:100%;object-fit:cover}
.pv-tn{padding:4px 5px 0;font-weight:700;display:flex}.pv-tn .rq-food{width:9px;height:9px;margin-right:3px}.pv-tn .rq-food::after{width:4px;height:4px}.pv-tp{padding:0 5px 5px}
.pv-floor{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:6px}.pv-floor i{font-style:normal;text-align:center;border:1.2px solid var(--good);border-radius:5px;padding:5px 0;background:#fff;font-weight:700}
.pv-floor i.occ{background:var(--rq-accent);border-color:var(--rq-accent);color:#fff}.pv-floor i.billed{background:var(--warn-soft);border-color:var(--warn)}.pv-floor i.res{border-style:dashed;border-color:#6D28D9;background:#F1ECFE}
.pv-scan{background:#fff;border:1px solid var(--line);border-radius:7px;padding:6px}.pv-scan table{width:100%;margin-top:6px;border-collapse:collapse}.pv-scan th,.pv-scan td{text-align:left;padding:2px;border-bottom:1px solid var(--line-2)}
.pv-note{margin-top:6px;color:var(--muted)}
.pv-order{background:#fff;border:1px solid var(--line);border-radius:9px;padding:7px;display:flex;flex-direction:column;gap:4px}
.pv-line{display:grid;grid-template-columns:1fr auto auto;gap:4px;border-bottom:1px solid var(--line-2);padding:2px 0}.pv-line span:first-child{display:flex}.pv-line .rq-food{width:9px;height:9px;margin-right:3px}.pv-line .rq-food::after{width:4px;height:4px}
.pv-tot{display:grid;grid-template-columns:1fr auto;gap:1px 6px}
.pv-acts{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:3px}.pv-acts i,.pv-pays i{font-style:normal;text-align:center;border:1px solid var(--line);border-radius:5px;padding:4px 2px}.pv-acts i.go{background:var(--good);color:#fff;border-color:var(--good)}.pv-acts i.wide{grid-column:1/-1;background:var(--rq-accent);border-color:var(--rq-accent)}
.pv-pays{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.pv-rc{color:var(--muted)}
.rq-pltbl{max-height:55vh;overflow:auto;margin:8px 0}
@media (max-width:1240px){.rq-edgrid{grid-template-columns:1fr}.rq-prevwrap{position:static;order:-1}}
@media (max-width:820px){.rq-design{grid-template-columns:1fr}.rq-plist{position:static;flex-direction:row;overflow-x:auto}.rq-pcard{min-width:200px}}

/* ===== industry verticals A: healthcare and education (vx-) ===== */
.vx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.vx-stat{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.vx-stat .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none}
.vx-stat svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.vx-stat b{display:block;font-family:var(--f-display);font-size:1.45rem;line-height:1.1}
.vx-stat small{color:var(--muted);font-weight:600;font-size:.76rem}
.vx-stat.blue{background:#EEF3FF}.vx-stat.blue .ic{background:#DCE6FF;color:var(--blue)}
.vx-stat.amber{background:#FFF7E6}.vx-stat.amber .ic{background:#FCEBC4;color:#9A6400}
.vx-stat.green{background:#ECF8F0}.vx-stat.green .ic{background:#D3F0DD;color:var(--good)}
.vx-stat.violet{background:#F3F0FF}.vx-stat.violet .ic{background:#E4DDFF;color:#5B3FD6}
.vx-stat.red{background:#FFF0EF}.vx-stat.red .ic{background:#FBDAD7;color:var(--crit)}
.vx-stat.teal{background:#EAF7F7}.vx-stat.teal .ic{background:#CFEDEE;color:#0F6E73}
.vx-av{width:34px;height:34px;border-radius:50%;background:var(--sky);color:var(--blue);display:inline-grid;place-items:center;font:700 .78rem var(--f-display);flex:none;object-fit:cover}
.vx-av.lg{width:44px;height:44px;font-size:.95rem}.vx-av.xl{width:84px;height:84px;font-size:1.5rem}
.vx-token{min-width:44px;height:44px;padding:0 6px;border-radius:12px;background:var(--navy);color:#fff;display:inline-grid;place-items:center;font:700 1.15rem var(--f-display);flex:none}
.vx-token.big{min-width:64px;height:64px;font-size:1.7rem;border-radius:16px}
.vx-slot{min-width:44px;height:44px;padding:0 6px;border-radius:12px;background:var(--info-soft);color:var(--blue);display:inline-grid;place-items:center;font:700 .82rem var(--f-mono);flex:none}
.vx-allergy{color:var(--crit);font-weight:700;font-size:.78rem}
.vx-allergy-bar{background:var(--crit-soft);color:var(--crit);font-weight:700;padding:8px 12px;border-radius:10px;margin:0 16px}
.vx-due{color:var(--crit)}
.vx-soon{color:var(--warn);font-weight:700}
.vx-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.vx-doc{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:10px}
.vx-doc-h{display:flex;gap:10px;align-items:center}.vx-doc-h small{display:block;color:var(--muted);font-size:.76rem}
.vx-doc-now{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 10px;background:var(--surface-2);border-radius:10px;padding:8px 12px}
.vx-doc-now span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:700}
.vx-doc-now b{font:700 1.2rem var(--f-display)}.vx-doc-now small{grid-column:1/-1;color:var(--muted)}
.vx-doc-f{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}.vx-doc-f b{color:var(--ink)}.vx-doc-f .btn{margin-left:auto}
.vx-filter{display:flex;gap:6px;flex-wrap:wrap}
.vx-f{padding:6px 12px;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:var(--muted);font-weight:600;font-size:.82rem;background:#fff}
.vx-f.on{background:var(--blue);border-color:var(--blue);color:#fff}
.vx-list{display:flex;flex-direction:column}
.vx-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line-2)}
.vx-row:last-child{border-bottom:0}.vx-row.st-in_consult{background:#F2FBF5}.vx-row.st-cancelled,.vx-row.st-no_show{opacity:.6}
.vx-who{display:flex;flex-direction:column;min-width:0}.vx-who a{color:inherit;text-decoration:none}
.vx-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.vx-search{position:relative}
.vx-results{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(15,27,61,.16);z-index:20;max-height:320px;overflow:auto;padding:4px}
.vx-res{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:9px;cursor:pointer}
.vx-res:hover{background:var(--surface-2)}.vx-res small{display:block;color:var(--muted);font-size:.76rem}.vx-res.new .vx-av{background:var(--good-soft);color:var(--good)}
.vx-picked{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.vx-picked small{display:block;color:var(--muted)}.vx-picked .btn{margin-left:auto}
.vx-book,.vx-bill{display:flex;flex-direction:column;gap:14px}
.vx-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.vx-chips.small{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.vx-chip{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;text-align:left;cursor:pointer;min-height:44px}
.vx-chip small{display:block;color:var(--muted);font-size:.74rem}.vx-chip.on{border-color:var(--blue);background:var(--info-soft);box-shadow:inset 0 0 0 1px var(--blue)}
.vx-chips.small .vx-chip{padding:8px 10px;font-weight:600;font-size:.84rem}.vx-chips.small .vx-chip small{display:inline;font-weight:500}
.vx-seg{display:inline-flex;gap:4px;padding:4px;background:var(--line-2);border-radius:12px;align-self:flex-start;flex-wrap:wrap}
.vx-seg button{border:0;background:none;padding:9px 14px;border-radius:9px;font-weight:600;color:var(--muted);cursor:pointer;min-height:40px}
.vx-seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,27,61,.12)}
.vx-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;margin-top:10px}
.vx-slotbtn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 0;font:600 .84rem var(--f-mono);cursor:pointer;min-height:40px}
.vx-slotbtn.on{background:var(--blue);color:#fff;border-color:var(--blue)}.vx-slotbtn[disabled]{background:var(--line-2);color:var(--faint);text-decoration:line-through;cursor:not-allowed}
.vx-vitals{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.vx-days{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.vx-day{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:6px 8px;border-radius:12px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}
.vx-day small{font-size:.68rem;color:var(--muted);text-transform:uppercase}.vx-day b{font:700 1.1rem var(--f-display)}.vx-day.on{background:var(--navy);border-color:var(--navy);color:#fff}.vx-day.on small{color:#A9C2FF}
.vx-q{background:linear-gradient(160deg,#0F1B3D,#1A2C63);color:#fff;border-radius:18px;padding:22px;min-height:70vh;display:flex;flex-direction:column;gap:18px}
.vx-q:fullscreen{border-radius:0;padding:40px}
.vx-q-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.vx-q-h b{font:700 1.5rem var(--f-display);display:block}.vx-q-h small{color:#A9C2FF}.vx-q-clock{margin-left:auto;font:600 1.6rem var(--f-display)}
.vx-q-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.vx-q-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:12px}
.vx-q-doc b{font-size:1.15rem;display:block}.vx-q-doc small{color:#A9C2FF}
.vx-q-now{display:flex;align-items:baseline;gap:12px}.vx-q-now small{text-transform:uppercase;letter-spacing:.14em;color:#A9C2FF;font-weight:700}.vx-q-now span{font:700 4.2rem/1 var(--f-display);color:#7CF0B0}
.vx-q-next{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vx-q-next small{color:#A9C2FF;margin-right:4px}.vx-q-next i{font-style:normal;font:700 1.25rem var(--f-display);background:rgba(255,255,255,.12);border-radius:10px;padding:4px 12px}.vx-q-next em{color:#A9C2FF}
.vx-q-f{color:#A9C2FF;font-size:.85rem}.vx-q-empty{padding:60px;text-align:center;color:#A9C2FF;font-size:1.2rem}
.vx-prof{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.vx-prof-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px;display:flex;flex-direction:column;align-items:center;gap:14px}
.vx-prof-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.vx-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 12px;margin:0;width:100%;font-size:.86rem}.vx-kv dt{color:var(--muted)}.vx-kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.vx-consult{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.vx-qlist{position:sticky;top:76px}
.vx-qi{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line-2)}.vx-qi small{display:block;color:var(--muted);font-size:.75rem}.vx-qi>div{flex:1;min-width:0}
.vx-qi.st-in_consult{background:#ECF8F0}.vx-qi.st-done{opacity:.55}
.vx-pt{display:flex;flex-direction:column;gap:14px;padding-bottom:16px}
.vx-pt-h{display:flex;gap:14px;align-items:center;padding:16px 16px 0}.vx-pt-h>div{flex:1}.vx-pt-h h2{font-size:1.25rem}
.vx-vit{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:0 16px}.vx-vit div{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:6px 12px;min-width:84px}.vx-vit small{display:block;color:var(--faint);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}
.vx-hist{display:flex;flex-direction:column;gap:2px;padding:0 16px;font-size:.84rem}.vx-hist small{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:700}
#rxEd{padding:0 16px}
.vx-rx-h{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.vx-meds{display:flex;flex-direction:column;gap:8px}
.vx-med{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}
.vx-med-n small{margin-left:8px}
.vx-med-c{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.vx-med-c select{max-width:150px}
.vx-pick{display:inline-flex;gap:4px;flex-wrap:wrap}
.vx-pick button,.vx-pick label{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font:600 .8rem var(--f-mono);cursor:pointer;min-height:36px;display:inline-flex;align-items:center;gap:6px}
.vx-pick button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.vx-days-in{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted)}.vx-days-in .input{width:76px}
.vx-rx-f{padding-top:4px}
.vx-rxview .vx-rx-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px}.vx-rx-meta small{color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:700}.vx-rx-meta p{margin:2px 0 0}
.vx-ph{display:flex;flex-direction:column;gap:14px}.vx-amt{font:700 1.2rem var(--f-display)}
.vx-beds{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:14px 16px}
.vx-bed{border:1px solid var(--line);border-radius:12px;padding:12px;text-align:left;background:#fff;display:flex;flex-direction:column;gap:2px;min-height:84px}
.vx-bed b{font:700 1.05rem var(--f-display)}.vx-bed small{color:var(--muted);font-size:.76rem}
.vx-bed.free{border-left:4px solid var(--good)}.vx-bed.busy{border-left:4px solid var(--crit);background:#FFF8F7;cursor:pointer}.vx-bed.off{opacity:.5}
.vx-bars{display:flex;align-items:flex-end;gap:4px;height:120px;padding:12px 16px 4px}
.vx-bars div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;min-width:0}
.vx-bars i{display:block;width:100%;max-width:26px;background:linear-gradient(180deg,var(--bright),var(--blue));border-radius:5px 5px 2px 2px}.vx-bars small{font-size:.62rem;color:var(--faint)}
.vx-sch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:4px 0}.vx-sch .check{min-width:72px}.vx-sch .input{width:118px}
.vx-schs{display:flex;flex-direction:column}
.vx-batches{display:flex;flex-direction:column}
.vx-batch{display:grid;grid-template-columns:minmax(0,1fr) 110px auto auto;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line-2)}.vx-batch small{display:block;color:var(--muted);font-size:.76rem}
.vx-cap{height:8px;background:var(--line-2);border-radius:999px;overflow:hidden}.vx-cap i{display:block;height:100%;background:linear-gradient(90deg,var(--good),#3BB273);border-radius:999px}
.vx-bcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:14px 16px}
.vx-bcard,.vx-plancard{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;box-shadow:var(--shadow)}
.vx-bcard:hover,.vx-plancard:hover{border-color:#C6CFE0}.vx-bcard small,.vx-plancard small{color:var(--muted);font-size:.78rem}.vx-bcard.today{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.vx-bcard-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.vx-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:14px 16px}
.vx-plan{font-size:.82rem;color:var(--muted);line-height:1.5}.vx-plan b{color:var(--ink)}
.vx-pi{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.vx-pi select{max-width:220px}.vx-pi>.input[type=number]{max-width:130px}
.vx-note{margin:0 16px 12px;background:var(--info-soft);color:#1A3A8F;border-radius:10px;padding:10px 12px;font-size:.84rem}
.vx-adm{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:start}
.vx-photo{width:110px;height:130px;border:2px dashed #C6CFE0;border-radius:14px;display:grid;place-items:center;cursor:pointer;overflow:hidden;color:var(--faint);font-weight:600;background:var(--surface-2)}.vx-photo img{width:100%;height:100%;object-fit:cover}
.vx-cell{display:inline-flex;gap:10px;align-items:center}
.vx-picklist{display:flex;flex-direction:column;gap:6px}
.vx-pickrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.vx-pickrow small{display:block;color:var(--muted);font-size:.76rem}.vx-pickrow input{width:18px;height:18px}
.vx-att{display:flex;flex-direction:column;gap:8px}
.vx-att-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.vx-att-row small{display:block;color:var(--muted);font-size:.76rem}
.vx-pab{display:inline-flex;gap:6px}
.vx-pab button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;font:700 1rem var(--f-display);color:var(--muted);cursor:pointer}
.vx-pab button.on.m-P{background:var(--good);border-color:var(--good);color:#fff}.vx-pab button.on.m-A{background:var(--crit);border-color:var(--crit);color:#fff}
.vx-pab button.on.m-L{background:#D99A0C;border-color:#D99A0C;color:#fff}.vx-pab button.on.m-E{background:var(--muted);border-color:var(--muted);color:#fff}
.vx-savebar{position:sticky;bottom:12px;display:flex;justify-content:flex-end}.vx-savebar .btn{padding:12px 22px;box-shadow:0 10px 30px rgba(31,79,209,.35)}
@media (max-width:980px){
  .vx-prof,.vx-consult{grid-template-columns:minmax(0,1fr)}.vx-qlist{position:static}
  .vx-row{grid-template-columns:auto minmax(0,1fr) auto}.vx-row .vx-acts{grid-column:1/-1;justify-content:flex-start}
  .vx-batch{grid-template-columns:minmax(0,1fr) 80px auto}.vx-batch .btn,.vx-batch .pill{grid-column:1/-1;justify-self:start}
  .vx-adm{grid-template-columns:minmax(0,1fr)}
  .vx-q-now span{font-size:3.2rem}
}
@media (max-width:560px){
  .vx-att-row{grid-template-columns:auto minmax(0,1fr)}.vx-pab{grid-column:1/-1}
  .vx-pab button{flex:1;width:auto}.vx-pab{display:flex;width:100%}
  .vx-pickrow{grid-template-columns:auto minmax(0,1fr) auto}.vx-pickrow>.pill{display:none}
  .vx-stat b{font-size:1.2rem}
}
/* verticals A: long company names no longer push the top bar past a phone's width */
@media (max-width:560px){.topbar-in .tenant{min-width:0;flex:1 1 auto}.topbar-in .tenant .nm,.topbar-in .tenant .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-in .sp{display:none}}

/* ===== verticals B: projects and services, construction, transport ===== */
.scanbar[hidden]{display:none}
.vb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.vb-tile{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;border:1px solid transparent;text-decoration:none;color:var(--ink);box-shadow:0 1px 2px rgba(15,27,61,.04);min-width:0;transition:transform .15s,box-shadow .15s}
a.vb-tile:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.vb-ic{flex:0 0 46px;height:46px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.7)}
.vb-tt{display:flex;flex-direction:column;min-width:0}.vb-tt b{font-family:var(--f-display);font-size:1.5rem;line-height:1.15;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vb-tt span{font-size:.8rem;color:var(--muted);font-weight:600}.vb-tt small{font-size:.72rem;color:var(--faint);margin-top:2px}
.vb-tile.blue{background:#EAF1FF;border-color:#D6E3FF}.vb-tile.blue .vb-ic{color:var(--blue)}
.vb-tile.green{background:#E8F6EE;border-color:#CDEBD9}.vb-tile.green .vb-ic{color:var(--good)}
.vb-tile.amber{background:#FDF4E2;border-color:#F6E3BC}.vb-tile.amber .vb-ic{color:#B7791F}
.vb-tile.red{background:#FCEBEA;border-color:#F6D2CF}.vb-tile.red .vb-ic{color:var(--crit)}
.vb-tile.violet{background:#F1EDFD;border-color:#E0D8FA}.vb-tile.violet .vb-ic{color:#6B4FD8}
.vb-tile.slate{background:#EFF2F7;border-color:#E1E6F0}.vb-tile.slate .vb-ic{color:var(--muted)}
.vb-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.vb-filter>.input{max-width:300px}
.vb-chips{display:flex;flex-wrap:wrap;gap:8px}
.vb-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:7px 15px;border-radius:999px;font-weight:600;font-size:.84rem;cursor:pointer;text-decoration:none;min-height:36px}
.vb-chip span{background:var(--line-2);color:var(--muted);border-radius:999px;padding:0 7px;font-size:.72rem}
.vb-chip.on{background:var(--blue);border-color:var(--blue);color:#fff}.vb-chip.on span{background:rgba(255,255,255,.22);color:#fff}
.vb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.vb-card{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
.vb-card:hover{border-color:#B9CBF3;transform:translateY(-1px)}
.vb-card h3{font-size:1.02rem;margin-top:4px}.vb-card p{margin:0}
.vb-card-h{display:flex;justify-content:space-between;gap:8px;align-items:center}
.vb-card-f{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line-2);padding-top:10px;margin-top:auto}
.vb-card-f small{display:block;font-size:.7rem;color:var(--faint);font-weight:600}.vb-card-f b{font-family:var(--f-display);font-size:.98rem}
.vb-badge{font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.02em}
.vb-badge.blue{background:var(--info-soft);color:var(--info)}.vb-badge.green{background:var(--good-soft);color:var(--good)}.vb-badge.violet{background:#F1EDFD;color:#5B3FC8}
.vb-prog{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted);margin:6px 0}.vb-prog.big{font-size:.86rem;margin-bottom:12px}
.vb-bar{display:block;height:7px;border-radius:999px;background:var(--line-2);overflow:hidden;min-width:80px}.vb-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--bright),var(--blue));border-radius:inherit}
.vb-bar.warn i{background:#D99A0C}.vb-bar.crit i{background:var(--crit)}
.vb-tabbar{display:flex;gap:6px;overflow-x:auto;padding:4px;background:var(--line-2);border-radius:12px;scrollbar-width:none}.vb-tabbar::-webkit-scrollbar{display:none}
.vb-tabbar button{border:0;background:none;padding:9px 16px;border-radius:9px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;min-height:40px}
.vb-tabbar button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,27,61,.12)}
#tabBody{display:flex;flex-direction:column;gap:16px}
.vb-kv{margin:0;display:grid;gap:10px}.vb-kv>div{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:.88rem}.vb-kv dt{color:var(--muted)}.vb-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.vb-h3{margin:18px 0 8px;font-size:.92rem}
.vb-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}
#roles .vb-row{grid-template-columns:2fr 1fr auto}
.vb-actions{justify-content:flex-end;margin-top:18px}
.vb-week{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vb-week>div{display:flex;flex-direction:column}.vb-week .sp{flex:1}
.vb-grid td{vertical-align:middle}.vb-grid th.today{color:var(--blue)}
.vb-grid .vb-pcell{min-width:260px;display:flex;flex-direction:column;gap:6px}.vb-grid .vb-pcell .row{flex-wrap:nowrap}.vb-grid .vb-pcell .row select{flex:1}
.vb-grid input.vb-h{width:64px;text-align:right;padding:6px}.vb-grid input.s-submitted{background:var(--info-soft)}.vb-grid input.s-approved{background:var(--good-soft)}.vb-grid input.s-rejected{background:var(--crit-soft);border-color:#F0C4C0}
.vb-bill{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--muted);white-space:nowrap}
.vb-approvals{display:flex;flex-direction:column}
.vb-ap{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line-2)}.vb-ap>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.vb-ap-n{display:flex;flex-direction:column;align-items:flex-end}.vb-ap-n b{font-family:var(--f-display);font-size:1.1rem}
.vb-sum{max-width:520px;margin-left:auto}.vb-sum td{padding:6px 10px}
.vb-prev{margin-top:12px}
.vb-ra-h,.vb-lr-h{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.vb-ra-sum{margin-top:14px}
.vb-checks{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}
.vb-gta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.vb-gta-o{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.vb-gta-o.on{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.vb-billgrp{border-top:1px solid var(--line-2)}.vb-billgrp-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px}.vb-billgrp-h .sp{flex:1}.vb-billgrp-h select{max-width:300px}
.vb-docs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.vb-docgrid{display:flex;flex-direction:column;gap:8px}.vb-docrow{display:grid;grid-template-columns:150px 1fr 160px 1fr;gap:8px;align-items:center}
.vb-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}.vb-sign span{border-top:1px solid var(--line);padding-top:6px;font-size:.78rem;color:var(--muted);text-align:center}
.vb-calc{margin-top:10px;font-size:.92rem}
.vb-period label{display:flex;align-items:center;gap:6px;font-size:.85rem}
@media (max-width:640px){
  .vb-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vb-tile{padding:12px;gap:10px}.vb-ic{flex-basis:36px;height:36px}.vb-ic svg{width:18px;height:18px}.vb-tt b{font-size:1.15rem}
  .vb-cards{grid-template-columns:1fr}.vb-filter>.input{max-width:none;width:100%}
  .vb-row,#roles .vb-row{grid-template-columns:1fr 1fr auto}.vb-row>:first-child{grid-column:1/-1}
  .vb-kv>div{grid-template-columns:1fr;gap:2px}.vb-ap{grid-template-columns:1fr auto}.vb-ap .row{grid-column:1/-1}
  .vb-docrow{grid-template-columns:1fr 1fr}.vb-docrow b{grid-column:1/-1}.vb-sign{grid-template-columns:1fr}
}
@media print{.vb-tabbar,.vb-chips{display:none!important}}
.panel-b.row>.sp{flex:1}
@media (max-width:640px){.vb-grid .vb-pcell{min-width:200px;position:sticky;left:0;background:var(--surface);z-index:1;box-shadow:2px 0 4px rgba(15,27,61,.06)}}
/* ===== Track D: letterhead and print formats (Settings → Letterhead, and the letter sheet) ===== */
.lh-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
@media (max-width:980px){.lh-grid{grid-template-columns:minmax(0,1fr)}}
.lh-pics{display:grid;gap:12px}
.lh-pic{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.lh-pics.two{margin-top:16px}.lh-pics.two .lh-pic{grid-template-columns:120px minmax(0,1fr)}
.lh-pic-b{min-width:0}.lh-pic-b p{margin:4px 0 8px}
.lh-thumb{border:1px dashed #CFD7E6;border-radius:8px;background:#fff;display:grid;place-items:center;min-height:74px;overflow:hidden}
.lh-thumb img{display:block;width:100%;height:auto;max-height:150px;object-fit:contain}
.lh-thumb.background img{width:auto;max-width:100%;max-height:190px}
.lh-thumb.signature img,.lh-thumb.seal img{max-height:90px;padding:6px}
.lh-thumb.empty span{font-size:.76rem;color:var(--faint);padding:8px;text-align:center}
.lh-thumb.pdf{gap:6px;padding:12px;text-align:center;font-size:.74rem;color:var(--muted)}
.lh-pdfmark{display:inline-block;font:700 .72rem var(--f-mono);letter-spacing:.08em;color:#fff;background:var(--crit);border-radius:4px;padding:3px 8px}
@media (max-width:560px){.lh-pic,.lh-pics.two .lh-pic{grid-template-columns:minmax(0,1fr)}}
.lh-margins{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:start}
.lh-mini{position:relative;width:150px;aspect-ratio:210/297;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);overflow:hidden}
.lh-mini-h{position:absolute;top:0;left:0;width:100%}.lh-mini-f{position:absolute;bottom:0;left:0;width:100%}
.lh-mini-bg{position:absolute;inset:0;width:100%;height:100%}
.lh-mini-pdf{position:absolute;inset:0;display:grid;place-items:center;font-size:.7rem;color:var(--faint);background:repeating-linear-gradient(135deg,#F6F8FC 0 6px,#fff 6px 12px)}
.lh-mini-text{position:absolute;outline:1px dashed rgba(31,79,209,.6);outline-offset:1px;padding:3px;display:flex;flex-wrap:wrap;gap:3px;align-content:flex-start;overflow:hidden}
.lh-mini-text i{display:block;height:3px;width:100%;background:#D3DAE8;border-radius:2px}.lh-mini-text br{display:block;flex-basis:100%;height:3px;content:""}
.lh-mgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-bottom:8px}
.lh-unit{position:relative}.lh-unit .input{padding-right:42px}.lh-unit span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.78rem;color:var(--faint);pointer-events:none}
.lh-note{color:var(--warn);margin:10px 0 0;max-width:150px}
.lh-gap{margin:12px 0 0}
@media (max-width:560px){.lh-margins{grid-template-columns:minmax(0,1fr)}.lh-mini{margin:0 auto}.lh-note{max-width:none;text-align:center}}
.lh-docs{display:grid}
.lh-doc{display:grid;grid-template-columns:minmax(0,1.2fr) auto auto auto;gap:10px 16px;align-items:center;padding:12px 18px;border-top:1px solid var(--line-2)}
.lh-doc:first-child{border-top:0}.lh-doc-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.lh-warn{color:var(--warn)}
.lh-seg{display:inline-grid;grid-template-columns:repeat(3,auto);gap:3px;padding:3px;background:var(--line-2);border-radius:10px}
.lh-seg button{border:0;background:none;padding:7px 14px;border-radius:8px;font:600 .8rem var(--f-body);color:var(--muted);cursor:pointer;min-height:36px;transition:background .15s,color .15s}
.lh-seg button:hover{color:var(--ink)}.lh-seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(15,27,61,.14)}
.lh-sign{font-size:.82rem;white-space:nowrap;align-items:center}.lh-sign input{margin-top:0}
@media (max-width:760px){.lh-doc{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px}.lh-doc-name{grid-column:1/-1}.lh-seg{grid-column:1/-1;width:100%;grid-template-columns:repeat(3,1fr)}}
.lh-color{display:flex;gap:8px;align-items:center}.lh-color input[type=color]{flex:none;width:46px;height:38px;padding:3px;border:1px solid #CFD7E6;border-radius:8px;background:#fff;cursor:pointer}
.lh-swatch{position:relative;margin-top:16px;border:1px solid var(--line);border-radius:8px;padding:14px 14px 12px;overflow:hidden}
.lh-swatch span{position:absolute;left:0;top:0;right:0;height:4px;background:var(--lh-acc)}
.lh-swatch b{display:block;color:var(--lh-acc);font-family:var(--f-display)}.lh-swatch small{color:var(--muted)}
.lh-bar{position:sticky;bottom:12px;z-index:4;display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:14px;padding:10px 14px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
/* the letter on screen matches the printed page */
.lh-sheet{position:relative;max-width:210mm;margin:12px 0;padding:0!important;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);overflow:hidden;color:#0F1B3D;display:flex;flex-direction:column}
.lh-sheet .lh-head,.lh-sheet .lh-foot{display:block;width:100%;height:auto}
.lh-sheet .lh-foot{margin-top:auto}
.lh-sheet.lh-hasbg{aspect-ratio:210/297}
.lh-sheet .lh-bgimg{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.lh-content{position:relative;z-index:1;padding:26px 44px 30px;flex:1}
.lh-letterhead .lh-content{padding:7mm var(--lh-mr,20mm) 8mm var(--lh-ml,20mm)}
.lh-letterhead.lh-hasbg .lh-content,.lh-none .lh-content{padding:var(--lh-mt,40mm) var(--lh-mr,20mm) var(--lh-mb,24mm) var(--lh-ml,20mm)}
.lh-sheet .lh-std{display:flex;gap:14px;align-items:center;margin:0;padding:24px 44px 14px;border-top:5px solid var(--lh-acc);border-bottom:1.5px solid var(--lh-acc)}
.lh-sheet .lh-std img{max-height:56px;max-width:140px;object-fit:contain}
.lh-sheet .lh-std b{display:block;font-family:var(--f-display);font-size:1.2rem;line-height:1.25}
.lh-sheet .lh-std small{display:block;color:var(--muted);font-size:.8rem;line-height:1.45}.lh-sheet .lh-std small.ids{margin-top:2px}
.lh-meta{display:flex;justify-content:space-between;gap:6px 14px;flex-wrap:wrap;font-size:.9rem;margin-bottom:16px}
.lh-to{font-size:.92rem;margin-bottom:14px;line-height:1.5}.lh-to span{color:var(--muted)}
.lh-heading{text-align:center;letter-spacing:.06em;margin:4px 0 14px;font-size:1rem}
.lh-subject{margin:0 0 12px}
.lh-sheet .letter-body{line-height:1.65;font-size:.95rem}.lh-sheet .letter-body p{margin:0 0 .85em;text-align:justify}
.lh-signoff{margin-top:14px;display:flex;flex-direction:column;gap:2px;font-size:.92rem}
.lh-sigs{display:flex;align-items:center;gap:12px;min-height:58px;margin:6px 0}
.lh-sigs .sig{max-height:54px;max-width:170px}.lh-sigs .seal{max-height:74px;max-width:74px}
.lh-signoff span{color:var(--muted)}.lh-signoff small{color:var(--faint);font-size:.75rem}
.lh-accepted{margin-top:18px;padding:10px 12px;border-radius:6px;background:var(--good-soft);color:var(--good);font-size:.86rem}
.lh-stdfoot{border-top:1px solid #DCE2EE;margin:0 44px;padding:8px 0 16px;font-size:.72rem;color:var(--faint)}
.lh-f-times .lh-content,.lh-sheet.lh-f-times .lh-std b{font-family:"Times New Roman",Times,serif}
.lh-f-courier .lh-content,.lh-sheet.lh-f-courier .lh-std b{font-family:"Courier New",Courier,monospace}
@media (max-width:640px){.lh-sheet .lh-content{padding:20px 18px!important}.lh-sheet .lh-std{padding:18px 18px 12px;flex-wrap:wrap}.lh-stdfoot{margin:0 18px}.lh-sheet .letter-body p{text-align:left}}
@page letter{size:A4;margin:0}
@media print{
  .lh-sheet{page:letter;max-width:none!important;width:210mm;min-height:297mm;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .content>.lh-sheet.print-area{display:flex!important}.lh-sheet .lh-content{padding:10mm 18mm}.lh-sheet .lh-std{padding:12mm 18mm 4mm}.lh-stdfoot{margin:0 18mm;padding-bottom:10mm}
  .lh-letterhead .lh-content{padding:7mm var(--lh-mr,20mm) 8mm var(--lh-ml,20mm)}
  .lh-letterhead.lh-hasbg .lh-content,.lh-none .lh-content{padding:var(--lh-mt,40mm) var(--lh-mr,20mm) var(--lh-mb,24mm) var(--lh-ml,20mm)}
  .lh-sheet .letter-body p{text-align:justify}
}

/* ---------- track u: Settings tabs, features, Integrations gallery, Subscription add-ons ---------- */
.st-nav{margin:-4px 0 0}
.st-tabs{display:flex;flex-wrap:wrap;gap:2px;scrollbar-width:thin;border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}
.st-tabs a{flex:none;padding:10px 14px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.88rem;border-bottom:2px solid transparent;white-space:nowrap}
.st-tabs a:hover{color:var(--ink)}
.st-tabs a.on{color:var(--ink);border-bottom-color:var(--red)}
.st-tabs a.st-link{color:var(--faint);font-weight:500}
.st-tabs a.st-link:first-of-type,.st-tabs a[data-tab]+a.st-link{margin-left:10px;border-left:1px solid var(--line)}
.st-select{display:none}
.st-body{display:flex;flex-direction:column;gap:16px}
.st-grid{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:16px;align-items:start}
.st-logo{flex-direction:column}
.st-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:18px 0 10px}
.st-h:first-child{margin-top:0}
.st-lead{margin:0 0 14px}
.st-save{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2)}
.st-save .sp{flex:1}
.st-unsaved{font-size:.78rem;font-weight:600;color:var(--warn);background:var(--warn-soft);padding:3px 10px;border-radius:999px}
.st-filter{display:flex;align-items:center;gap:10px;padding-bottom:0}.st-filter .input{width:auto;min-width:140px}
.ft-group{margin-top:16px}.ft-group:first-of-type{margin-top:0}
.ft-group h3{font-size:.95rem;margin:0 0 10px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ft-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ft-row{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 42px;gap:12px;align-items:center;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;min-height:72px}
.ft-row:hover{box-shadow:var(--shadow)}
.ft-row.on{border-color:#AFC4FF;background:#F6F9FF}
.ft-row input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ft-row:focus-within{outline:2px solid var(--bright);outline-offset:2px}
.ft-ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:1.2rem;background:var(--line-2);filter:grayscale(1);opacity:.7;transition:all .15s}
.ft-row.on .ft-ic{background:var(--info-soft);filter:none;opacity:1}
.ft-t b{font-size:.9rem}.ft-t small{display:block;color:var(--muted);font-size:.78rem;line-height:1.4;margin-top:2px}
.ft-sug{font-style:normal;font-size:.66rem;font-weight:700;color:var(--blue);background:var(--info-soft);padding:1px 7px;border-radius:999px;vertical-align:1px}
.ft-sw{justify-self:end;width:40px;height:22px;border-radius:999px;background:#CBD3E3;position:relative;transition:background .2s}
.ft-sw::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s}
.ft-row.on .ft-sw{background:var(--bright)}.ft-row.on .ft-sw::after{transform:translateX(18px)}
@media (max-width:980px){.st-grid{grid-template-columns:1fr}.ft-list{grid-template-columns:1fr}}
@media (max-width:640px){.st-tabs{display:none}.st-select{display:flex;flex-direction:column;gap:4px;padding-bottom:6px}}

/* gallery */
.ig-mailbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:.88rem}
.ig-mailbar .sp{flex:1}
.ig-dot{width:9px;height:9px;border-radius:50%;background:#B8C2D6;flex:none}.ig-dot.own{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.ig-tools{display:flex;flex-direction:column;gap:10px}
.ig-search{position:relative;display:block;max-width:560px}
.ig-search svg{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--faint)}
.ig-search .input{width:100%;padding-left:38px;min-height:44px;border-radius:12px}
.ig-chips{display:flex;gap:6px;flex-wrap:wrap}
.ig-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer;min-height:34px}
.ig-chip span{font-weight:500;color:var(--faint);margin-left:2px}
.ig-chip:hover{border-color:#BCC7DB;color:var(--ink)}
.ig-chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}.ig-chip[aria-pressed="true"] span{color:#DCE6FF}
.ig-sec{margin-top:6px}.ig-sec h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:10px 0 10px}
.ig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:12px}
.ig-tile{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:10px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;font:inherit;color:inherit;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s}
.ig-tile:hover{transform:translateY(-2px);border-color:#C9D4EA;box-shadow:0 2px 4px rgba(15,27,61,.06),0 12px 26px rgba(15,27,61,.1)}
.ig-tile.st-own{border-color:#BFE3CC}
.ig-tile.soon{background:var(--surface-2);box-shadow:none}.ig-tile.soon .ig-mark{opacity:.55;filter:saturate(.6)}
.ig-tx b{display:block;font-size:.93rem;line-height:1.3}
.ig-tx small{display:block;color:var(--muted);font-size:.78rem;line-height:1.4;margin-top:3px}
.ig-st{grid-column:1/-1}
.ig-mark{display:block;flex:none}
.pill.ig-soon{background:#EEF1F6;color:var(--faint)}
body.ig-lock{overflow:hidden}
.ig-back{position:fixed;inset:0;background:rgba(11,20,48,.42);backdrop-filter:blur(2px);z-index:60;animation:igFade .15s ease}
.ig-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--surface);z-index:61;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(11,20,48,.18);animation:igSlide .2s ease}
@keyframes igSlide{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
@keyframes igFade{from{opacity:0}to{opacity:1}}
.ig-dh{display:flex;gap:14px;align-items:center;padding:18px 20px 12px}
.ig-dt{flex:1;min-width:0}.ig-dt h2{font-size:1.15rem}.ig-dt .row{gap:8px;margin-top:4px}
.ig-dtabs{padding:0 20px;margin:0}
.ig-db{flex:1;overflow-y:auto;padding:16px 20px 40px;display:flex;flex-direction:column;gap:14px}
.ig-db > p{margin:0}
.ig-sec2{border:1px solid var(--line-2);border-radius:12px;padding:14px;background:var(--surface-2)}
.ig-sec2 h3{font-size:.92rem;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.ig-sec2 summary{cursor:pointer}
.ig-num{width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:.72rem;display:inline-grid;place-items:center;flex:none}
.ig-form{display:flex;flex-direction:column;gap:12px}
.ig-form h3{margin:4px 0 0}
.fields.one{grid-template-columns:1fr}
.ig-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ig-acts .sp{flex:1}
.ig-note{border:1px solid #D7E2FF;background:#F3F7FF;border-radius:10px;padding:10px 12px;font-size:.84rem}
.ig-note.warn{border-color:#F2D9A6;background:var(--warn-soft);color:#6B4700}
.ig-note.info{border-color:#CFE0FF}
.ig-steps{margin:0 0 10px;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:.86rem}
.ig-copy{display:flex;align-items:center;gap:8px;margin-top:6px;background:#fff;border:1px dashed #C6D2EA;border-radius:8px;padding:6px 6px 6px 10px}
.ig-copy code{flex:1;min-width:0;font-family:var(--f-mono);font-size:.78rem;overflow-wrap:anywhere;color:var(--ink)}
.ig-acct{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.ig-folder{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.ig-pick{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}
.ig-pick .row .input{flex:1;min-width:160px}
.ig-checks{display:grid;gap:6px}.ig-checks.two{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.ig-files h4{font-size:.82rem;margin:4px 0 6px}
.ig-list,.ig-act{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.84rem}
.ig-act li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:#fff}
.ig-act li > div{flex:1;min-width:0}
.warn-text{color:var(--warn)}
.ig-ds{display:flex;flex-direction:column;gap:6px}
.ig-dsr{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff;border:1px solid var(--line-2);border-radius:10px;padding:8px 10px}
.ig-dsr b{font-size:.86rem}.ig-dsr small{display:block;color:var(--muted);font-size:.76rem}
.ig-toks{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.ig-tok{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.ig-tok > div:first-child{min-width:0}.ig-tok.off{opacity:.6}
.ig-url{overflow-wrap:anywhere}
.ig-code{background:#0F1B3D;color:#DCE6FF;border-radius:10px;padding:12px;font-size:.74rem;overflow-x:auto;margin:8px 0 0;white-space:pre}
@media (max-width:640px){.ig-drawer{width:100vw}.ig-dh{padding:14px 16px 10px}.ig-db{padding:14px 16px 40px}.ig-dtabs{padding:0 16px}.ig-dsr,.ig-tok{flex-direction:column;align-items:stretch}.ig-mailbar .btn{width:100%;justify-content:center}}

/* Subscription → Add-ons */
.sub-addons{scroll-margin-top:80px}
.ad-head p{margin:0 0 6px;max-width:80ch}
.ad-sub{font-size:.9rem;margin:16px 0 10px;color:var(--muted)}
.addon{scroll-margin-top:90px}
.addon.ad-focus,.sub-addons.ad-focus .ad-head{animation:adFocus 2.4s ease 1}
.addon.ad-focus{border-color:var(--bright);box-shadow:0 0 0 4px var(--info-soft)}
@keyframes adFocus{0%,30%{box-shadow:0 0 0 6px rgba(46,107,255,.25)}100%{box-shadow:0 0 0 4px var(--info-soft)}}
.ig-dsr .row{flex-wrap:nowrap;flex:none}
/* screens shown inside Settings as tabs: their own title gives way to the tab, their help text and buttons stay */
.st-body[data-embed]{margin-top:14px}
.st-body[data-embed]>.page-head{margin:0 0 12px;padding:0}
.st-body[data-embed]>.page-head h1,.st-body[data-embed]>.page-head .eyebrow{display:none}
.st-body[data-embed]>.page-head p{margin-top:0}
.st-body[data-embed="hr"]>.tabs{display:none}
/* feature search in the menu */
.rail-find{position:relative;margin:2px 0 4px}
.rail-find input{width:100%;box-sizing:border-box;padding:9px 52px 9px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:#EEF2FF;font:inherit;font-size:.86rem}
.rail-find input::placeholder{color:#9AA8CC}
.rail-find input:focus{outline:2px solid #5B8CFF;outline-offset:1px;background:rgba(255,255,255,.12)}
.rail-find kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 .62rem var(--f-body,inherit);color:#9AA8CC;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:2px 5px;pointer-events:none}
.rail .nav[hidden],.rail .nav-group[hidden]{display:none!important}

/* ===== track poslayout: POS screen layout (buttons placed by the profile's layout) and the layout designer ===== */
.rq.rq-lay-right .rq-body{grid-template-columns:minmax(0,1fr) var(--rq-panel,400px)}
.rq.rq-lay-left .rq-body{grid-template-columns:var(--rq-panel,400px) minmax(0,1fr)}
.rq.rq-lay-left .rq-order{order:-1}
.rq-leftcol{min-width:0;display:flex;flex-direction:column;gap:12px}
.rq-retail-wrap{display:flex;flex-direction:column;gap:14px}
.rq-retail-wrap.rq-lay-right .pos{grid-template-columns:minmax(0,1fr) var(--rq-panel,400px)}
.rq-retail-wrap.rq-lay-left .pos{grid-template-columns:var(--rq-panel,400px) minmax(0,1fr)}
.rq-retail-wrap.rq-lay-left .rq-paybox{order:-1}
.rq-billcol{min-width:0;display:flex;flex-direction:column;gap:16px}
.rq-scanwrap{position:relative;flex:1 1 320px;min-width:0}
.rq-scanwrap .pos-search{width:100%;min-height:50px}
.rq-scanwrap .pos-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(15,27,61,.16)}
.rq-scanwrap .pos-results:empty{display:none}
.rq-ctop .btn,.rq-headbtns .btn{min-height:50px}
.rq-headbtns{display:flex;gap:8px;flex-wrap:wrap}
.rq-ctl{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.rq-ctl svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.rq-ctl:disabled{opacity:.5;cursor:not-allowed}
.rq-flow{display:flex!important;flex-wrap:wrap;gap:8px}
.rq-flow>.rq-ctl{flex:1 1 84px;min-width:0;width:auto}
.rq-flow>.rq-sz-large{flex:2 1 140px;min-height:60px;font-size:1.08rem}
.rq-flow>.rq-sz-full{flex:1 1 100%}
.rq-pays.rq-flow>.rq-paybtn{flex-direction:column;gap:4px}
.rq-pays.rq-flow>.rq-paybtn.rq-sz-large{flex-direction:row;gap:8px;font-size:.95rem}
.rq-fill{margin:4px 0 8px}
.rq-ctl.rq-st-primary{background:var(--good);border-color:var(--good);color:#fff}.rq-ctl.rq-st-primary:hover:not(:disabled){background:#18693B}
.rq-ctl.rq-st-secondary{background:color-mix(in srgb,var(--rq-accent) 10%,#fff);border-color:color-mix(in srgb,var(--rq-accent) 32%,#fff);color:var(--rq-accent)}
.rq-ctl.rq-st-danger{background:var(--surface);color:var(--crit);border-color:#F0C4C0}
.rq-ctl.rq-st-plain{background:var(--surface);color:var(--ink)}
.rq-top>.rq-sz-large{min-height:60px;font-size:1.05rem}.rq-top>.rq-sz-full{flex:1 1 100%}
.rq-top>.rq-chip.rq-ctl{gap:8px}
@media (max-width:1180px){.rq.rq-lay-right .rq-body{grid-template-columns:minmax(0,1fr) min(var(--rq-panel,400px),360px)}.rq.rq-lay-left .rq-body{grid-template-columns:min(var(--rq-panel,400px),360px) minmax(0,1fr)}
  .rq-retail-wrap .pos{grid-template-columns:minmax(0,1fr) min(var(--rq-panel,400px),360px)!important}.rq-retail-wrap.rq-lay-left .pos{grid-template-columns:min(var(--rq-panel,400px),360px) minmax(0,1fr)!important}}
@media (max-width:980px){.rq.rq-lay-right .rq-body,.rq.rq-lay-left .rq-body,.rq-retail-wrap .pos,.rq-retail-wrap.rq-lay-left .pos{grid-template-columns:1fr!important}.rq.rq-lay-left .rq-order,.rq-retail-wrap.rq-lay-left .rq-paybox{order:0}}
@media (max-width:560px){.rq .rq-top,.rq-ctop{display:flex;flex-wrap:wrap;gap:8px}.rq-top .rq-search,.rq-top .rq-seg,.rq-scanwrap{flex:1 1 100%}.rq-top>.rq-chip{flex:1 1 auto}}
/* designer: screen layout */
.pl-sec h2{display:flex;align-items:center;gap:10px}
.pl-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:4px 0 12px}
.pl-preset{display:flex;flex-direction:column;gap:2px;text-align:left;border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px;cursor:pointer;color:var(--ink);min-height:44px}
.pl-preset[aria-pressed="true"]{border-color:var(--blue);background:var(--info-soft)}.pl-preset .tiny{line-height:1.3}
.pl-preset em{font-style:normal;font-size:.68rem;font-weight:700;color:var(--good)}
.pl-arr{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 16px;margin-bottom:8px}.pl-arr .rq-radios{margin-bottom:4px}.pl-arr>div>b{display:block;font-size:.8rem;margin-bottom:4px}
.pl-work{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;align-items:start}
.pl-board{display:flex;flex-direction:column;gap:8px}
.pl-zone{border:1.5px dashed var(--line);border-radius:12px;padding:8px 10px;background:var(--surface-2)}
.pl-zone h4{margin:0 0 6px;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.pl-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:40px}
.pl-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 10px;min-height:38px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;font:inherit;font-size:.85rem;color:var(--ink)}
.pl-chip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;flex:none}
.pl-chip.on{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 30%,transparent)}
.pl-chip.st-primary{border-left:4px solid var(--good)}.pl-chip.st-danger{border-left:4px solid var(--crit)}.pl-chip.st-secondary{border-left:4px solid var(--blue)}
.pl-hidden .pl-chip{opacity:.65}
.pl-empty{color:var(--faint);font-size:.8rem;align-self:center}
.pl-side{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface);display:flex;flex-direction:column;gap:10px;position:sticky;top:76px}
.pl-side h3{margin:0;font-size:1rem}.pl-side .rq-radios{margin:0}.pl-side .rq-radio{padding:6px 10px;min-height:36px;font-size:.85rem}
.pl-side .row{flex-wrap:wrap;gap:6px}
.pl-probs{margin:6px 0 0;padding:8px 12px;border-radius:10px;background:var(--warn-soft);color:#5C3B00;font-size:.85rem}.pl-probs:empty{display:none}
.pl-ghost{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,-60%);opacity:.92;box-shadow:0 10px 26px rgba(15,27,61,.25)}
.pl-dragging{opacity:.35}
.pl-before{box-shadow:-3px 0 0 0 var(--blue)!important}
[data-dropzone].pl-over{outline:2px solid var(--blue);outline-offset:2px}
.pl-prevbox{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--bg);box-shadow:var(--shadow)}
.pl-stage{width:1240px;padding:16px;transform-origin:0 0;position:absolute;left:0;top:0}
.pl-stage [data-ctl]{touch-action:none;cursor:grab}
.pl-stage .pl-sel{outline:3px solid var(--blue);outline-offset:2px}
.pl-stage [data-dropzone]{min-height:44px}
.pl-zoneph{flex:1 1 100%;display:grid;place-items:center;border:1.5px dashed var(--line);border-radius:10px;color:var(--faint);font-size:.85rem;min-height:44px}
.pl-stage .pageh{margin-bottom:12px}
@media (max-width:1240px){.pl-work{grid-template-columns:1fr}.pl-side{position:static}}
.rq-edgrid.pl-edgrid{grid-template-columns:minmax(0,1fr)}
@container (max-width:760px){.pl-work{grid-template-columns:1fr}}
.pl-sec{container-type:inline-size}
.rq-ctop .rq-scanwrap{flex:3 1 380px}.rq-ctop>.btn{flex:0 0 auto}
.pl-arr .rq-radio{padding:7px 10px;min-height:38px}
.pl-stage{box-sizing:border-box}
.pl-prevbox.pl-true{max-height:640px;overflow:auto}.pl-prevbox.pl-true .pl-stage{position:static;width:auto;padding:10px}
@media (max-width:560px){.rq-ctop>.btn,.rq-headbtns>.btn{flex:1 1 auto;min-height:46px}}

/* role groups: grouped role picker on the user form and the grouped roles screen */
.modal:has(.rg-form){width:min(1120px,100%)}
.rg-pick{display:flex;flex-direction:column;gap:12px;min-width:0}
.rg-selbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r)}
.rg-selh{font-weight:700;font-size:.82rem;color:var(--muted);white-space:nowrap}
.rg-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.rg-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #C9D6F8;background:var(--info-soft);color:var(--blue);font-weight:700;font-size:.78rem;padding:4px 10px;border-radius:999px;cursor:pointer;max-width:100%;text-align:left}
.rg-chip:hover{background:var(--sky)}.rg-chip span{font-size:1rem;line-height:1}
.rg-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.rg-tools .input{flex:1 1 260px;min-width:0}
.rg-tools-page{padding:14px 16px;border-bottom:1px solid var(--line-2)}
.rg-all{white-space:normal}
.rg-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.rg-groups{display:flex;flex-direction:column;gap:8px;min-width:0}
.rg-g{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);min-width:0}
.rg-g>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;cursor:pointer;list-style:none;border-radius:var(--r)}
.rg-g>summary::-webkit-details-marker{display:none}
.rg-g>summary::before{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--faint);border-bottom:2px solid var(--faint);transform:rotate(-45deg);transition:transform .15s;margin-right:2px}
.rg-g[open]>summary::before{transform:rotate(45deg)}
.rg-g>summary:hover{background:var(--surface-2)}
.rg-gt{display:flex;flex-direction:column;flex:1;min-width:0}.rg-gt b{font-family:var(--f-display)}
.rg-gx{font-size:.78rem;color:var(--faint)}
.rg-sub{padding:4px 14px 12px}
.rg-sub h4{margin:6px 0 6px;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.rg-role{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:8px;border:1px solid transparent;cursor:pointer}
.rg-role:hover{background:var(--surface-2)}
.rg-role:has(input:checked){background:var(--info-soft);border-color:#C9D6F8}
.rg-role:has(input:focus-visible){outline:2px solid var(--bright);outline-offset:1px}
.rg-role input{margin-top:3px;width:17px;height:17px;flex:none;accent-color:var(--blue)}
.rg-rm{display:flex;flex-direction:column;min-width:0}
.rg-does{font-size:.82rem;color:var(--muted)}
.rg-ind{font-size:.74rem;color:var(--faint)}
.rg-role.rg-no{cursor:not-allowed;opacity:.62}.rg-warn{color:var(--warn);font-weight:600}
.rg-none{padding:10px 4px}
.rg-sum{position:sticky;top:0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);padding:12px 14px;max-height:62vh;overflow:auto}
.rg-sum h3{margin-bottom:8px}
.rg-area{margin-bottom:10px}.rg-area h4{margin:0 0 3px;font-size:.78rem;color:var(--ink)}
.rg-area ul{margin:0;padding-left:18px;font-size:.8rem;color:var(--muted)}.rg-area li{margin:1px 0}
.rg-panel .rg-g{margin:10px 16px}.rg-panel .rg-g:last-of-type{margin-bottom:16px}
.rg-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.rg-card{border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--surface);min-width:0}
.rg-card p{margin:0}.rg-ch{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rg-perms>summary{cursor:pointer;font-size:.8rem;font-weight:600;color:var(--blue)}
.rg-perms[open]{background:var(--surface-2);border-radius:8px;padding:6px 8px}
.rg-permpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.rg-pa{border:1px solid var(--line);border-radius:var(--r);padding:8px 12px 10px;margin:0;min-width:0;display:flex;flex-direction:column;gap:6px}
.rg-pa legend{font-weight:700;font-size:.82rem;padding:0 4px}
.rg-pa .check.rg-no{opacity:.5}
.rg-note{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:.85rem}
@media (max-width:820px){.rg-body{grid-template-columns:minmax(0,1fr)}.rg-sum{position:static;max-height:none}}
@media (max-width:480px){.rg-sub{padding:2px 8px 10px}.rg-g>summary{padding:10px}.rg-panel .rg-g{margin:8px}.rg-cards,.rg-permpick{grid-template-columns:minmax(0,1fr)}}
.rg-pick [hidden],.rg-panel [hidden],.rg-panel[hidden]{display:none!important}
.rg-head{position:sticky;top:0;z-index:2;background:var(--surface);display:flex;flex-direction:column;gap:10px;padding:8px 0 10px;margin-top:-8px}
.rg-head .rg-chips{max-height:84px;overflow:auto}
.rg-sum{top:var(--rg-head,0)}
.rg-ph{margin:2px 0 10px}
@media (max-width:820px){.rg-head{position:static;margin-top:0;padding-top:0}.rg-head .rg-chips{max-height:none}}

/* ===== rule book: business type and tax, periods, rule book, statutory compliance, fixed assets, inventory valuation ===== */
.rb-stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.rb-tabs{margin-bottom:0}
.rb-why{margin:10px 0 0;padding:10px 12px;border-radius:var(--r-sm,8px);background:var(--surface-2);border:1px solid var(--line-2);color:var(--muted);font-size:.84rem}
.rb-why b{color:var(--ink)}
.rb-card{margin:12px 0;padding:12px 14px;border-radius:var(--r-md,12px);background:var(--info-soft);border:1px solid #CFDDF8;font-size:.88rem}
.rb-card.rb-off{background:var(--surface-2);border-color:var(--line)}
.rb-warn{margin:12px 0;padding:10px 14px;border-radius:var(--r-md,12px);background:var(--warn-soft);color:var(--warn);font-size:.86rem}
.rb-list{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:.86rem}
.rb-key{color:var(--muted);margin-bottom:12px}
.rb-prow{display:grid;grid-template-columns:minmax(0,1fr) 96px auto auto;gap:8px;align-items:center;margin-bottom:8px}
.rb-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.rb-month{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;border-radius:var(--r-md,12px);border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;text-align:left;min-height:64px}
.rb-month:hover:not([disabled]){border-color:var(--bright);box-shadow:var(--lift-1)}
.rb-month[disabled]{cursor:default;opacity:.85}
.rb-month.rb-soft{background:var(--warn-soft);border-color:#F1D9A6}.rb-month.rb-closed{background:var(--crit-soft);border-color:#F2C6C2}
.rb-filter{margin-top:12px;gap:10px}.rb-filter .input{flex:1 1 260px;min-width:0}
.rb-chips{gap:6px}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:600;font-size:.8rem;padding:6px 12px;border-radius:999px;cursor:pointer;min-height:34px}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.rb-rule .panel-b{display:flex;flex-direction:column;gap:6px}
.rb-rule-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.rb-value{font-family:var(--f-display);font-size:1rem;font-weight:600;word-break:break-word}
.rb-confirm{color:var(--warn);margin:0}
.rb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.rb-item{background:var(--surface);border:1px solid var(--hair,var(--line));border-radius:var(--r-md,12px);padding:14px 16px;box-shadow:var(--lift-1);display:flex;flex-direction:column;gap:4px;min-width:0;border-left:4px solid var(--line)}
.rb-item h3{font-size:.95rem}
.rb-item-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.rb-s-applies{border-left-color:var(--crit)}.rb-s-approaching{border-left-color:var(--warn)}.rb-s-optional,.rb-s-info{border-left-color:var(--info)}
.rb-meter{display:flex;align-items:center;gap:8px;color:var(--muted);margin-top:4px}
.rb-meter i{display:block;height:6px;border-radius:99px;background:linear-gradient(90deg,var(--bright),var(--red));max-width:60%}
.rb-do{margin:8px 0 0;font-size:.86rem}
.rb-kv{font-size:1.15rem}
.rb-num{width:110px}
@media (max-width:640px){
  .rb-grid{grid-template-columns:1fr}
  .rb-prow{grid-template-columns:minmax(0,1fr) 76px auto}
  .rb-months{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rb-num{width:90px}
}
.rb-wrap{flex-wrap:wrap}
@media (max-width:640px){.rb-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rb-kpis .kpi{padding:12px}.rb-kpis .val{font-size:1.05rem}}

/* ===== field help (track: fieldhelp): "?" on fields, F1 page guide, #/help ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.field.fh-has{position:relative}.field.fh-has>label{padding-right:30px}
.fh-q{display:inline-grid;place-items:center;width:24px;height:24px;min-width:24px;padding:0;border-radius:50%;border:1px solid #C9D3E6;background:var(--surface);color:var(--blue);font:700 .78rem/1 var(--f-body);cursor:pointer;vertical-align:middle;flex:none}
.fh-q:hover,.fh-q[aria-expanded="true"]{background:var(--info-soft);border-color:var(--bright)}
.field.fh-has>.fh-q{position:absolute;top:-3px;right:0}
label.check .fh-q{margin-left:6px}
th .fh-q.fh-th{width:20px;height:20px;min-width:20px;margin-left:4px;font-size:.7rem}
.fh-pop{position:fixed;z-index:90;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(15,27,61,.22);padding:12px 14px;font-size:.86rem;line-height:1.45;text-align:left;font-weight:400;white-space:normal}
.fh-pop b{display:block;font-family:var(--f-display);margin-bottom:2px}.fh-pop p{margin:4px 0 8px}.fh-pop .row{gap:6px}
.fh-top{font-weight:700}.fh-top span[aria-hidden]{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--navy);color:#fff;font-size:.72rem}
.fh-panel{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);z-index:80;background:var(--surface);border-left:1px solid var(--line);box-shadow:-20px 0 50px rgba(15,27,61,.18);display:flex;flex-direction:column;outline:none}
.fh-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:16px 18px 8px}
.fh-head h2{font-size:1.15rem}
.fh-x{border:0;background:transparent;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted);min-width:40px;min-height:40px;border-radius:8px}.fh-x:hover{background:var(--line-2)}
.fh-tools{padding:0 18px 10px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line-2)}
.fh-tools .row{gap:6px}.fh-count{margin:0;min-height:1em}
.fh-body{overflow-y:auto;padding:12px 18px 40px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}
.fh-sec h3,.fh-page .fh-sec h2{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:4px 0 8px}
.fh-sec>p{margin:0 0 6px}
.fh-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.fh-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--surface-2);overflow-wrap:anywhere}
.fh-card h4{margin:0 0 4px;font-size:.92rem;font-family:var(--f-display);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.fh-key{font-family:var(--f-mono);font-size:.7rem;color:var(--faint);font-weight:400}
.fh-card p{margin:0 0 4px}.fh-what{font-weight:600}
.fh-card dl{margin:6px 0 0;font-size:.84rem}.fh-card dt{font-weight:700;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-top:6px}
.fh-card dd{margin:2px 0 0}.fh-card ul{margin:2px 0 0;padding-left:18px}
.fh-card.fh-hit{border-color:var(--bright);box-shadow:0 0 0 3px var(--info-soft)}
.fh-btn h4::before{content:"▸";color:var(--red)}
.fh-index{display:flex;flex-direction:column;gap:14px}
.fh-list{list-style:none;margin:0;padding:6px 16px 12px}.fh-list li{padding:8px 0;border-bottom:1px solid var(--line-2)}.fh-list li:last-child{border-bottom:0}
.fh-page{display:flex;flex-direction:column;gap:16px}
.fh-page .fh-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;align-items:start}
.fh-page .fh-group>h2{grid-column:1/-1}.fh-page .fh-card{margin:0}
@media (max-width:640px){.fh-panel{width:100vw;border-left:0}.fh-page .fh-group{grid-template-columns:minmax(0,1fr)}}
@media print{
  body.fh-printing>*:not(.fh-panel){display:none!important}
  body.fh-printing .fh-panel{position:static;width:auto;box-shadow:none;border:0}
  body.fh-printing .fh-tools,body.fh-printing .fh-x{display:none!important}
  body.fh-printing .fh-body{overflow:visible}
  .fh-card{break-inside:avoid}.fh-q,.fh-pop{display:none!important}
}

/* ===== break-it A: safe saves, amounts, older browsers ===== */
/* the button pressed while its save runs */
.btn.busy{position:relative;color:transparent!important;pointer-events:none}
.btn.busy::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid currentColor;border-color:var(--muted) transparent var(--muted) transparent;animation:nxSpin .8s linear infinite}
.btn.primary.busy::after,.btn.red.busy::after{border-color:#fff transparent #fff transparent}
@keyframes nxSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.btn.busy::after{animation:none}}
/* no internet: the entry stays on screen; Retry sends it again */
.net-bar{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;max-width:calc(100vw - 32px);
  background:var(--navy);color:#fff;padding:10px 12px 10px 16px;border-radius:12px;box-shadow:0 8px 28px rgba(15,27,61,.28)}
.net-bar span{flex:1 1 220px;min-width:0;font-weight:600}
.net-bar .btn.ghost{color:#DCE6FF;border-color:rgba(220,230,255,.35);background:transparent}
.net-bar .pulse{animation:nxPulse 1.2s ease-in-out 3}
@keyframes nxPulse{50%{box-shadow:0 0 0 6px rgba(46,107,255,.35)}}
/* an amount typed as shorthand ("1.25L") is asked about, not guessed */
.amt-ask{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:.8rem;color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:5px 8px}
.amt-ask .btn{min-height:30px}
/* :has() fallbacks (see public/js/compat.js) */
.no-has .plan-ticks label.is-checked{border-color:var(--bright);background:#F5F8FF}
.no-has .stars label.is-lit span{color:#F5B400}
.no-has .modal.has-actlist .modal-f{display:none}
.no-has .modal.has-rgform{width:min(1120px,100%)}
.no-has .rq-preset.is-checked{border-color:var(--rq-accent);background:#F5F8FF}
.no-has .rq-radio.is-checked{border-color:var(--blue);background:var(--info-soft)}
.no-has .rg-role.is-checked{background:var(--info-soft);border-color:#C9D6F8}
/* color-mix() fallbacks (Chrome before 111, Safari before 16.2): plain tints instead of nothing */
@supports not (color:color-mix(in srgb,red 50%,white)){
  .ws-ev{background:#F1F4FA}.ws-ev:hover{background:#E6ECF8}
  .rq-ini,.pv-pic,.rq-ctl.rq-st-secondary{background:#F1F4FA}
  .rq-ctl.rq-st-secondary{border-color:var(--line)}
  .rq-seg button.on{background:#EEF3FF}
  .rq-dot{box-shadow:0 0 0 4px rgba(46,107,255,.18)}
  .rq-pcard.on{box-shadow:0 0 0 2px rgba(46,107,255,.25)}
  .pl-chip.on{box-shadow:0 0 0 2px rgba(31,79,209,.3)}
}
/* a phone turned sideways at the counter: the bill and the Pay button stay on screen beside the items */
@media (orientation:landscape) and (max-height:520px) and (max-width:1024px){
  .topbar{position:static}.banner{padding:3px 16px;font-size:.72rem}
  .rq-retail-wrap .pos,.rq-retail-wrap.rq-lay-left .pos,.pos{grid-template-columns:minmax(0,1fr) minmax(250px,42%)!important;gap:10px}
  .rq.rq-lay-right .rq-body,.rq.rq-lay-left .rq-body,.rq-body{grid-template-columns:minmax(0,1fr) minmax(250px,42%)!important;gap:10px}
  .rq-paybox,.rq-order{position:sticky!important;top:4px;max-height:calc(100vh - 8px);overflow:auto;-webkit-overflow-scrolling:touch}
  .pos-total{font-size:1.5rem}
  .rq-paybox .rq-acts{position:sticky;bottom:-1px;z-index:2;background:var(--surface);padding:8px 0 4px;box-shadow:0 -10px 14px var(--surface)}
  .ask-fab{font-size:0!important;gap:0!important;padding:11px!important;top:8px;bottom:auto!important} /* icon only, out of the way of Pay */
}

/* ===== App QA: menu drawer, page not found, field errors, wide tables, footers, readable text ===== */
@media (max-width:980px){
  .rail{visibility:hidden;transition:transform .25s,visibility 0s linear .25s;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-width:86vw}
  .rail.open{visibility:visible;transition:transform .25s;z-index:59}
  body.rail-locked{overflow:hidden}
  body.rail-locked .ask-greet,body.rail-locked .ask-fab,body.rail-locked .ask-panel{visibility:hidden}
  .menu-btn{min-width:44px;min-height:44px;justify-content:center;font-size:1.1rem}
}
a.tenant{color:inherit;text-decoration:none;min-width:0}a.tenant:hover .nm{text-decoration:underline}
.ctl-top .topbar-in{min-height:52px}@media (min-width:981px){.ctl-top{display:none}}
.link-btn{border:0;background:none;padding:0;font:inherit;color:#A9C2FF;text-decoration:underline;cursor:pointer}
.rail .foot a{color:#A9C2FF}.rail .foot .copy{display:block;margin-top:8px;font-size:.75rem;color:#A9B6D6}
.side-foot [data-copy]{display:block;margin-top:4px}
.nf-panel{max-width:620px;margin:24px auto;width:100%}.nf{padding:36px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.nf-code{margin:0;font:800 3.6rem/1 var(--f-display);color:var(--bright);letter-spacing:-.02em}.nf p{margin:0;color:var(--muted);max-width:46ch}.nf .row{justify-content:center;margin-top:8px}
.nf-public{min-height:100vh;display:grid;place-items:center;padding:16px}
.field.bad .input{border-color:var(--crit);box-shadow:0 0 0 3px rgba(179,38,30,.12)}.field .hint.fe{color:var(--crit);font-weight:600}
.err[role=alert] .btn{margin-left:8px}
/* wide tables scroll inside their own box, with a hint and an edge shadow while there is more to see */
.tbl-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
.tbl-wrap.x-scroll{background:linear-gradient(to right,var(--surface) 30%,rgba(255,255,255,0)) left/40px 100% no-repeat local,linear-gradient(to left,var(--surface) 30%,rgba(255,255,255,0)) right/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(15,27,61,.16),transparent) left/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(15,27,61,.16),transparent) right/14px 100% no-repeat scroll}
.scroll-hint{display:none;margin:0 0 6px;font-size:.78rem;font-weight:600;color:var(--muted)}
.scroll-hint.on{display:block}@media (min-width:981px){.scroll-hint.on{display:none}}
img,video,canvas{max-width:100%}
.auth-foot{display:none;margin:22px 0 0;color:var(--muted);text-align:center}.auth-foot [data-copy]{display:block;margin-top:4px}
@media (max-width:900px){.auth-foot{display:block}}
/* readable text: nothing below 12px, and AA contrast on tinted chips and tiles */
.pill,.nav-group .eyebrow,.brand small,.brand.co-brand small,.demo-bar .tag,.product-by small,.product-by b,.nav .count,.ws-wk span,.fo-tile small,.lh-swatch small,.bars span,.tenant .sub,.rail .foot{font-size:.75rem}
.p-good{color:#17673A}.p-warn{color:#7A4F00}.p-info{color:#1A43B3}.p-crit{color:#9C2019}
.demo-bar .tag{background:#C21F2A}
.ig-sec h2,.pill.ig-soon,.fo-tile small,.kpi.fo-warn .foot,.kpi.fo-crit .foot,.ws-wk span{color:var(--muted)}
.nav-group .eyebrow{color:#9BA8C8}
.auth .field .hint,.sp-auth .field .hint{color:var(--muted)}
.side .chips span,.fcard small,.fcard .fc-h span,.fcard .fc-h em,.fcard .legend li,.fcard .sec-list li span,.side-in .brand small,.setup-h,.pane .steps span,.sp-card .eyebrow,.demo-brand span{font-size:.75rem}
.fcard .fc-h em.ok,.fcard .fc-h em.up,.fcard .sec-list li span{color:#17673A}
.nav.locked{opacity:.8}
:root{--faint:#5B6782}
.btn.red{background:#C21F2A;border-color:#C21F2A}
.cal-h span,.vb-card-f small,.att-tag,.id-back small,.wp-bday small,.vb-tt small,.pl-preset em,.vb-badge,.pl-zone h4,.ph-up small{font-size:.75rem}
.vb-badge.green,.pl-preset em{color:#17673A}.vb-badge.blue{color:#1A43B3}
@media (min-width:641px){.ws-ev,.ws-more{font-size:.75rem}}
@media (max-width:640px){.ws-more{font-size:.75rem}}
.vx-bars small,.vx-vit small,.ht-kpi span small,.vb-chip span,.vx-q-h small,.vx-q-doc small,.vx-q-next small,.vx-q-now small,.vx-hist small,.vx-doc-now span,.vx-doc-now small,.vx-day small,.rq-chip small,.rq-kst,.rq-tag,.rq-tm,.rq-tm b,.rq-badge,.ht-meta span,.ht-tag,.ht-cday small,.ht-cname small{font-size:.75rem}
.ht-tag.ht-cl{background:#9A6100}.att-tag.a-P{color:#17673A}.rq-badge{background:#C21F2A}
.ht-num{text-shadow:0 1px 3px rgba(0,0,0,.55)}
.ht-photo:not(:has(img)) .ht-num{color:var(--ink);text-shadow:none} /* a room type without a photo */

/* ===== customisable dashboard ===== */
.wgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row dense;gap:16px;margin-top:16px;align-items:start}
.wgrid .w{min-width:0}.w-S{grid-column:span 2}.w-M{grid-column:span 3}.w-L{grid-column:span 6}
.wgrid .w .panel-h h2{font-size:1rem}
.w .kpis.in-w{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.w .kpis.in-w .kpi{box-shadow:none}
.w-big{font-size:1.6rem;font-weight:700;margin:0;font-variant-numeric:tabular-nums}
.w-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:.9rem}.w-row:last-child{border-bottom:0}
.w-row>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.w-stats div{background:var(--surface-2);border-radius:10px;padding:10px;display:flex;flex-direction:column}.w-stats b{font-size:1.3rem}.w-stats span{font-size:.74rem;color:var(--muted)}
.w-links{display:flex;flex-wrap:wrap;gap:8px}
.w-ed{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.w-ed select{width:auto;min-height:34px;padding:4px 8px;font-size:.8rem}
.w-grip{cursor:grab;color:var(--faint);font-size:1.1rem;padding:0 4px;user-select:none}
.wgrid.editing .w{outline:2px dashed var(--line);outline-offset:3px}
.wgrid.editing .w.dragging{opacity:.45}.wgrid.editing .w.over{outline-color:var(--info)}
.w-pick .panel-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.w-grp{display:flex;flex-direction:column;gap:6px}.w-grp>b{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

@media (max-width:1100px){.w-S{grid-column:span 3}.w-M{grid-column:span 3}}
@media (max-width:720px){.wgrid{grid-template-columns:1fr}.w-S,.w-M,.w-L{grid-column:auto}.w-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== field staff ===== */
.fv-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.fv-list li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-left:3px solid var(--line);background:var(--surface-2);border-radius:8px}
.fv-list li.open{border-left-color:var(--good)}
.fv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:16px}
.fv-ph{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.fv-pick{max-height:50vh;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin-top:10px}
.fv-pick label[hidden]{display:none}
.cam{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:10px}
.cam-btn{min-height:52px;font-size:1rem;gap:8px}
.cam-prev{max-width:220px;max-height:220px;border-radius:12px;border:1px solid var(--line);object-fit:cover}

/* ===== a company's own sign-in page (acme.nexvoria.in) ===== */
.ws-head{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.ws-head img{width:56px;height:56px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line);padding:4px}
.ws-ini{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;font-weight:700;background:var(--info-soft);color:var(--info);font-size:1.2rem}
.ws-head h2{margin:0}
.auth-tabs{flex-wrap:wrap}
