:root{--sb:#0B3D3A;--sb-text:#D7EFEA;--sb-muted:#7FBFB4;--accent:#14B8A6;--accent-ink:#063B36;--bg:#F4F7F6;--ink:#0F172A;--muted:#64748B;--line:#E2E8F0;--card:#fff;--danger:#DC2626;--warn:#D97706;--ok:#16A34A;--r:10px}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 Manrope,'Noto Sans Bengali',system-ui,sans-serif;background:var(--bg);color:var(--ink)}
a{color:#0F766E;text-decoration:none}a:hover{color:#134E4A}
.app{display:flex;min-height:100vh}
.sb{width:232px;flex-shrink:0;background:var(--sb);color:var(--sb-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.sb__brand{display:flex;align-items:center;gap:10px;padding:18px 18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.sb__logo{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.sb__name{font-weight:800;color:#fff;font-size:15px;letter-spacing:-.2px}.sb__sub{font-size:11px;color:#8FD3C9}
.sb__nav{flex:1;overflow:auto;padding:4px 0}
.sb__group{padding:12px 12px 3px 20px;font-size:10px;letter-spacing:1px;color:var(--sb-muted);font-weight:700;text-transform:uppercase}
.sb__link{display:flex;align-items:center;gap:10px;margin:1px 8px;padding:8px 12px;border-radius:8px;color:var(--sb-text);font-size:13.5px}
.sb__link:hover{background:rgba(255,255,255,.08);color:#fff}
.sb__link.is-active{background:var(--accent);color:var(--accent-ink);font-weight:700}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:14px;padding:12px 28px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top h1{font-size:18px;margin:0;font-weight:800}.top__sp{flex:1}
.content{padding:24px 28px;max-width:1400px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.stat b{display:block;font-size:26px;font-weight:800}.stat span{color:var(--muted);font-size:12px}
.btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:8px;padding:9px 16px;font:700 13px Manrope,sans-serif;cursor:pointer;background:var(--accent);color:var(--accent-ink)}
.btn:hover{filter:brightness(.95)}.btn--ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700;background:#E6F6F3;color:#0F766E}
table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}td{padding:10px;border-bottom:1px solid var(--line)}
input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}
label{display:block;font-size:12px;font-weight:700;margin-bottom:4px}
@media(max-width:860px){.sb{display:none}.content{padding:16px}}

/* ---- front desk ---- */
.muted{color:var(--muted)}.sm{font-size:12px}.pad{padding:14px}.danger{color:var(--danger)}
.fd__head p{margin:0 0 14px}
.fd{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.fd__main{display:grid;gap:16px}.fd__side{display:grid;gap:16px;position:sticky;top:76px}
.card h2{margin:0 0 14px;font-size:18px;font-weight:800;display:flex;gap:10px;align-items:center}
.lbl{display:block;font-size:12px;font-weight:700;margin-bottom:5px;color:#334155}.lbl i{color:var(--danger);font-style:normal}
.row{display:flex;gap:10px}.row input{flex:1}
.btn--dark{background:#0F766E;color:#fff}.btn--dark:hover{background:#0B5F58;filter:none}
.btn--ghost{color:#0F766E}.btn[disabled]{opacity:.6;cursor:wait}
.err{color:var(--danger);font-size:12px;margin:4px 0 0}
.form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.c1{grid-column:span 1}.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}
.age{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.age input{padding:9px 8px}
.dash{width:100%;padding:9px;border:1.5px dashed #CBD5E1;background:#fff;border-radius:8px;color:var(--muted);font:inherit}
.match{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;border:1px solid #A7E8DC;background:#ECFDF8;border-radius:10px}
.match__body{flex:1;font-size:13px;line-height:1.5}.match__body span{color:#475569}
.avatar{width:38px;height:38px;border-radius:50%;background:#0F766E;color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}
.badge{font-size:11px}
.tile{background:#F1F5F4;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;justify-content:center}.tile span{font-size:11px;color:var(--muted)}.tile b{font-size:22px}
.serial{color:#0F766E;font-weight:800}
.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.alert{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-weight:700}.alert--ok{background:#DCFCE7;color:#166534;border:1px solid #BBF7D0}
.qcard{padding:0}.qhead{display:flex;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.qrow{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-size:13px}.qrow:last-child{border:0}
.pill{padding:2px 10px;border-radius:99px;font-size:11px;font-weight:700;background:#F1F5F9;color:#475569}.pill--waiting{background:#FEF3C7;color:#92400E}.pill--in_room{background:#DCFCE7;color:#166534}
.keys{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;font-size:12px;color:var(--muted)}kbd{font:700 11px Manrope;background:#F1F5F9;border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:var(--ink)}
.today{background:#0B3D3A;color:#fff;border-radius:var(--r);padding:16px}.today>div{display:flex;justify-content:space-between;margin-top:10px}.today strong{display:block;font-size:24px}.today span{font-size:12px;color:#8FD3C9}
.sb__foot{margin:10px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.07);font-size:12px}.sb__foot b{display:block;color:#fff}
.sb__foot{transition:background .2s}.sb__foot #conn-s{display:block;opacity:.8}
.sb__foot[data-state=off]{background:rgba(220,38,38,.28)}.sb__foot[data-state=off] .dot{background:#F87171;animation:connpulse 1.2s infinite}
.sb__foot[data-state=warn]{background:rgba(217,119,6,.25)}.sb__foot[data-state=warn] .dot{background:#FBBF24}
.sb__foot[data-state=sync] .dot{background:#60A5FA;animation:connpulse 1s infinite}
@keyframes connpulse{50%{opacity:.35}}
.top form{margin:0}.userbox{display:flex;align-items:center;gap:10px;font-size:12px}.userbox b{display:block;font-size:13px}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:100%;max-width:380px}.login h1{margin:0 0 4px;font-size:22px}.login .f{margin-top:14px}
@media(max-width:1100px){.fd{grid-template-columns:1fr}.fd__side{position:static}.form{grid-template-columns:repeat(2,minmax(0,1fr))}.c3{grid-column:span 2}}
@media(max-width:560px){.form{grid-template-columns:1fr}.c2,.c3,.c4{grid-column:span 1}.actions{flex-direction:column}}

/* ---- shell (design) ---- */
.sb__link.is-soon{opacity:.45;cursor:default}.sb__link.is-soon:hover{background:none;color:var(--sb-text)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#34D399;margin-right:6px}
.gsearch{flex:1;max-width:620px}.gsearch input{background:#F8FAFC;padding:10px 14px}
.branch{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:0}.branch select{width:auto;padding:7px 10px;font-weight:700}
.top{gap:18px}.sm{font-size:12px}.btn.sm{padding:6px 10px}
.phead{margin-bottom:16px}.phead h1{font-size:26px;margin:0;font-weight:800}.phead p{margin:2px 0 0}
.userbox .avatar{width:34px;height:34px}
/* ---- dashboard ---- */
.dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.dhead h1{font-size:26px;margin:0;font-weight:800}.dhead p{margin:2px 0 0}
.seg{display:flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px}.seg a{padding:7px 16px;border-radius:8px;font-weight:700;font-size:13px;color:var(--ink)}.seg a.on{background:#0F766E;color:#fff}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:16px}
.kpi span{font-size:12px;color:var(--muted);font-weight:600}.kpi b{display:block;font-size:26px;font-weight:800;margin:4px 0 2px}.kpi em{font-style:normal;font-size:12px}.kpi .up{color:#047857;font-weight:700}.kpi .down{color:var(--danger);font-weight:700}
.warn{color:#B45309}.kpi--soon{opacity:.6}
.alerts{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.alert-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:#FFF7ED;border:1px solid #FDBA74}.alert-card .n{width:34px;height:34px;border-radius:9px;background:#D97706;color:#fff;display:grid;place-items:center;font-weight:800}.alert-card b{display:block}.alert-card span:not(.n){font-size:12px;color:#B45309}
.dgrid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.chead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-left:8px}
.l-opd{background:#0F766E}.l-lab{background:#14B8A6}.l-pha{background:#99F6E4}.l-ipd{background:#CBD5E1}
.bars{display:flex;align-items:flex-end;gap:16px;height:260px;padding:10px 0}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}.bar__col{width:100%;max-width:90px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;min-height:2px;background:#E2E8F0}.bar__col i{display:block;margin:0}
.bar__v{font-size:11px;font-weight:700;color:var(--muted)}.bar__l{font-size:12px;color:var(--muted)}
.cfoot{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}.cfoot b{color:var(--ink)}
.clist .crow{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.clist .crow:last-child{border:0}
.live{display:grid;grid-template-columns:1fr 1fr;gap:12px}.live>div{background:#F1F5F4;border-radius:10px;padding:12px 14px}.live span{display:block;font-size:12px;color:var(--muted)}.live b{font-size:26px}.live .soon{opacity:.55}
@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dgrid{grid-template-columns:1fr}}
@media(max-width:700px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dhead{flex-direction:column}.gsearch{display:none}.branch{display:none}}

.sb__link svg{flex-shrink:0}.sb__link span{min-width:0}
.bell{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;place-items:center;color:var(--ink);cursor:pointer}.bell:hover{background:#F8FAFC}
.clist .crow>div{display:flex;flex-direction:column}
.top__sp{display:none}.top .branch{margin-left:auto}

/* ---- billing ---- */
.phead--row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.hbtns{display:flex;gap:10px}
.bl{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.bl__main{display:grid;gap:16px;min-width:0}.bl__side{display:grid;gap:16px;position:sticky;top:76px}
.pcard{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pcard__body{flex:1;min-width:200px;line-height:1.6}.nm{font-size:20px}.avatar.lg{width:48px;height:48px;font-size:16px;border-radius:50%;display:grid;place-items:center;margin:0;vertical-align:middle}
.pcard__tags{display:flex;gap:8px}.badge--grey{background:#F1F5F9;color:#475569}
.h3{font-size:17px;font-weight:800}.tscroll{overflow-x:auto}.items th.r,.items td.r{text-align:right}.items td{vertical-align:top}.disc{color:#B45309}.ok{color:#047857;font-weight:700}
.svc{position:relative;width:min(380px,100%)}.svc__list{position:absolute;z-index:6;left:0;right:0;top:100%;margin:4px 0 0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.12)}
.svc__list button{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font:inherit}.svc__list button:hover{background:#ECFDF8}.svc__list em{font-style:normal;font-weight:800;grid-row:span 2;align-self:center}
.x{border:1px solid var(--line);background:#fff;border-radius:6px;width:26px;height:26px;cursor:pointer;color:#64748B}.x:hover{background:#FEF2F2;color:var(--danger)}
.tot{display:grid;grid-template-columns:1fr 280px;gap:24px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tot__sum>div{display:flex;justify-content:space-between;padding:5px 0;color:#475569}.tot__sum b{color:var(--ink)}.tot__sum .disc b{color:#B45309}.tot__sum .pay{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-weight:800;font-size:17px;color:var(--ink)}.tot__sum .pay b{color:#0F766E;font-size:22px}
.warnbox{margin-top:12px;padding:12px 14px;border-radius:10px;background:#FFF7ED;border:1px solid #FDBA74;color:#9A3412;font-size:13px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.warnbox--soft{display:block}
.methods{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}.methods button{padding:12px;border:1px solid var(--line);background:#fff;border-radius:10px;font:700 14px Manrope,sans-serif;cursor:pointer}.methods button.on{background:#ECFDF8;border-color:#14B8A6;color:#0F766E}.methods .soon{opacity:.5;cursor:not-allowed}
.payrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 190px;gap:14px;align-items:end}.grow{flex:1;align-self:center}
.lockbar{padding:12px 16px;background:#EEF2F7;border-radius:10px;color:#475569;font-size:13px}.cancel{display:flex;gap:8px;margin-top:10px;max-width:460px}
.alert--bad{background:#FEF2F2;color:#991B1B;border-color:#FECACA}.alink{margin-left:12px;font-weight:700}.alink a{text-decoration:underline}
.shift{background:#0B3D3A;color:#fff;border-radius:var(--r);padding:18px}.shift__big{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}.shift__big strong{display:block;font-size:24px}.shift__big span{font-size:12px;color:#8FD3C9}.gold{color:#FBBF24}
.shift__rows>div{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;color:#CDEBE6;border-top:1px solid rgba(255,255,255,.08)}.shift__rows b{color:#fff}.shift__rows .gold{color:#FBBF24}
.due{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink)}.due:last-child{border:0}.due--warn{background:#FFF7ED;border-radius:10px;padding:10px 12px;margin-top:10px;border:1px solid #FDBA74}
@media(max-width:1100px){.bl{grid-template-columns:1fr}.bl__side{position:static}.tot{grid-template-columns:1fr}.payrow{grid-template-columns:1fr 1fr}.methods{grid-template-columns:repeat(3,1fr)}}

/* ---- OPD ---- */
textarea{width:100%;font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;resize:vertical}textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}
.opd{display:grid;grid-template-columns:300px minmax(0,1fr) 320px;gap:18px;align-items:start}.opd__l,.opd__m,.opd__r{display:grid;gap:16px;min-width:0}.opd__r{position:sticky;top:76px}
.empty{text-align:center;padding:40px;margin-bottom:16px}
.allergy{margin-top:12px;padding:9px 12px;border-radius:9px;background:#FEF2F2;border:1px solid #FECACA;color:#B91C1C;font-weight:800;font-size:13px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:12px 0 0;font-size:13px}.kv dt{font-weight:800}.kv dd{margin:0;color:#475569}
.vit{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.vit__t{background:#F1F5F4;border-radius:10px;padding:10px 12px}.vit__t span{font-size:11px;color:var(--muted)}.vit__t small{display:block;font-size:11px;color:var(--muted)}
.vin{display:flex;align-items:center;gap:4px;margin:2px 0}.vin input{padding:4px 6px;font-weight:800;font-size:16px;border:1px solid transparent;background:transparent;width:100%}.vin input:hover,.vin input:focus{border-color:var(--line);background:#fff}.vin i{font-style:normal;color:var(--muted)}.bad,.warn{color:#B45309;font-weight:700}.bad{color:var(--danger)}
.hist{background:#F1F5F4;border-radius:10px;padding:10px 12px;margin-top:10px;font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{display:inline-flex;align-items:center;gap:6px;background:#E6F6F3;color:#0F766E;padding:5px 11px;border-radius:99px;font-weight:700;font-size:12px}.chip button{border:0;background:none;color:#0F766E;cursor:pointer;font-size:15px;line-height:1;padding:0}
.rxsearch{border:1.5px solid #14B8A6}.rxnote{margin:12px 0;padding:10px 14px;border-radius:10px;background:#F1F5F4;font-size:13px}.rxnote--bad{background:#FEF2F2;border:1px solid #FECACA;color:#991B1B}
.rx td{vertical-align:middle}.rx input,.rx select{padding:6px 8px}.mini{width:78px;font-weight:800;color:#0F766E}.rx input[type=number].mini{width:64px}.mini2{width:112px}
.qrow--btn{width:100%;border:0;background:none;text-align:left;font:inherit;cursor:pointer}.qrow--btn:hover{background:#F8FAFC}.qrow--on{background:#ECFDF8;box-shadow:inset 3px 0 0 #14B8A6}
@media(max-width:1700px){.opd{grid-template-columns:290px minmax(0,1fr)}.opd__r{grid-column:1/-1;position:static;grid-template-columns:1fr 1fr;align-items:start}}
@media(max-width:860px){.opd,.opd__r{grid-template-columns:1fr}}

.vit .vit__t:first-child{grid-column:1/-1}.vin input{min-width:0}.rx td:first-child{min-width:170px}.rx td input[value]:not(.mini){min-width:150px}
.opd .svc{width:100%}

/* Laboratory */
.kpis--6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi b.amber{color:#B45309}.kpi b.green{color:#047857}
.scan input{border:1px solid #0F766E;border-radius:9px;padding:9px 12px;font:700 13px Manrope,sans-serif;width:170px}
.labgrid{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:14px;align-items:start}
.labl{padding:0;overflow:hidden}.labr .card{padding:16px}
.labtabs{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 8px;flex-wrap:wrap}
.labtabs>button{border:0;background:none;padding:11px 14px;font:700 13px Manrope,sans-serif;color:#475569;border-bottom:2px solid transparent;cursor:pointer}
.labtabs>button.on{color:#0F766E;border-color:#0F766E}.labtabs>button span{margin-left:4px;padding:1px 7px;border-radius:99px;background:#F1F5F9;font-size:11px}.labtabs>button.on span{background:#E6F4F2}
.labf{margin-left:auto;display:flex;gap:8px;padding:6px 8px}.labf input,.labf select{width:auto;padding:7px 10px;font-size:12.5px}
.labt th,.labt td{padding:10px 8px}.labt tr.sel{background:#ECFDF5}.mono{font-family:ui-monospace,monospace;color:#0F766E}
.labfoot{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.lpill{display:inline-block;padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:700;white-space:nowrap}
.lab-p{background:#FEF3C7;color:#92400E}.lab-r{background:#E6F4F2;color:#0F766E}.lab-i{background:#EDE9FE;color:#5B21B6}.lab-v{background:#DBEAFE;color:#1E3A8A}.lab-d{background:#DCFCE7;color:#166534}
.labhead{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.labhead .r{text-align:right}
.labres td{vertical-align:middle;padding:7px 6px}.labres input.mini{width:90px}
.flag{padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700}.flag--high{background:#FEE2E2;color:#991B1B}.flag--low{background:#FEF3C7;color:#92400E}.flag--ok{background:#DCFCE7;color:#166534}
.alert--warn{background:#FFFBEB;color:#92400E;border:1px solid #FDE68A;font-weight:600}
.verify{margin-top:12px;border:1px dashed #0F766E;border-radius:10px;padding:12px;background:#F0FDFA}.verify p{margin:4px 0 8px}
@media(max-width:1200px){.labgrid{grid-template-columns:minmax(0,1fr)}.kpis--6{grid-template-columns:repeat(3,minmax(0,1fr))}}
.labf{width:100%;justify-content:flex-end}.labf input{flex:1;min-width:150px;max-width:260px}

/* Pharmacy */
.phgrid{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:14px;align-items:start}
.phpt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;padding:10px 12px;background:#F8FAFC;border:1px solid var(--line);border-radius:10px}
.phpay{display:grid;grid-template-columns:1fr 260px;gap:18px;margin-top:14px;align-items:start}
.totbox{background:#F8FAFC;border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:6px}.totbox div{display:flex;justify-content:space-between}.totbox .pay b{font-size:20px}
.rcvgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:10px;align-items:end}
tr.ph-bad{background:#FEF2F2}.allergy-ok{display:flex;gap:8px;align-items:center;margin-top:8px;font-weight:700;color:#991B1B}.allergy-ok input{width:auto}
.reo{padding:8px 0;border-bottom:1px solid #F1F5F9}.reo b{margin-right:8px}
.x{border:0;background:none;font-size:20px;cursor:pointer;color:#94A3B8}.x:hover{color:var(--danger)}
@media(max-width:1300px){.phgrid{grid-template-columns:minmax(0,1fr)}.rcvgrid{grid-template-columns:1fr 1fr}.phpay{grid-template-columns:1fr}}

/* Users & Roles */
.ugrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.ugrid2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}
.urow{display:flex;gap:10px;align-items:center}.items th.c,.items td.c{text-align:center}
@media(max-width:1200px){.ugrid2{grid-template-columns:minmax(0,1fr)}}

/* IPD & Beds */
.bedlegend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:14px;font-weight:600;font-size:13px}.bedlegend span{display:inline-flex;gap:6px;align-items:center}
.bd{width:12px;height:12px;border-radius:4px;display:inline-block}.bd--available{background:#22C55E}.bd--occupied{background:#0F766E}.bd--critical{background:#DC2626}.bd--cleaning{background:#F59E0B}.bd--reserved{background:#6366F1}
.ipdgrid{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:14px;align-items:start}.wardc{margin-bottom:14px}.wardh{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.beds{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.bedt{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 10px;border-radius:10px;border:1.5px solid var(--line);background:#fff;cursor:pointer;font:inherit;min-height:74px}
.bedt__c{font:800 12px ui-monospace,monospace;color:#475569}.bedt b{font-size:12.5px;line-height:1.2}.bedt small{color:#64748B;font-size:11px}
.bedt--available{border-color:#86EFAC;background:#F0FDF4}.bedt--occupied{border-color:#99D5CF;background:#F0FDFA}.bedt--critical{border-color:#FCA5A5;background:#FEF2F2}.bedt--cleaning{border-color:#FCD34D;background:#FFFBEB}.bedt--reserved{border-color:#A5B4FC;background:#EEF2FF}
.bedt.is-sel{outline:2.5px solid #0F766E;outline-offset:1px}
.ipdfacts{display:grid;gap:8px}.ipdfacts div{display:flex;justify-content:space-between;gap:12px}
.chgsum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.chgsum div{background:#F8FAFC;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.chgsum span{display:block;font-size:11.5px;color:var(--muted)}.chgsum b{font-size:16px}
@media(max-width:1200px){.ipdgrid{grid-template-columns:1fr}}

/* Appointments, queue */
.daynav{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.apgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.apcols{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.apcol{padding:12px}.aph{display:grid;gap:2px;margin-bottom:8px}
.apc{display:block;width:100%;text-align:left;border:1px solid var(--line);border-left:4px solid #0F766E;background:#fff;border-radius:8px;padding:8px 10px;margin-bottom:6px;font:inherit;cursor:pointer}.apc.is-sel{outline:2.5px solid #0F766E}
.slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.slot{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font:700 12.5px Manrope,sans-serif;cursor:pointer}.slot.on{background:#0F766E;color:#fff;border-color:#0F766E}
@media(max-width:1200px){.apgrid{grid-template-columns:1fr}}
.qrooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.qrooms .qrow{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #F1F5F9}.qbig{font-size:40px;font-weight:800;color:#0F766E;line-height:1}

/* ---- reports centre ---- */
.rpt{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.rpt__nav{padding:10px;position:sticky;top:76px}.rpt__g{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:800;padding:10px 10px 4px}
.rpt__nav a{display:block;padding:7px 10px;border-radius:7px;color:#334155;font-weight:600;font-size:13px}.rpt__nav a:hover{background:#F1F5F9}.rpt__nav a.on{background:#E6F6F3;color:#0F766E}
.rpt__bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:12px 16px;margin-bottom:12px}.rpt__bar label{margin-bottom:3px}.rpt__bar select,.rpt__bar input{width:auto;min-width:130px}
.rpt__custom{display:flex;gap:10px;align-items:flex-end}.rpt__custom[hidden]{display:none}
.rpt__kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.rpt__kpis .kpi span{font-size:12px;color:var(--muted);font-weight:700}.rpt__kpis .kpi b{display:block;font-weight:800;margin:2px 0}.rpt__kpis .kpi em{font-style:normal;font-size:12px}
.rpt__t th.r,.rpt__t td.r{text-align:right;font-variant-numeric:tabular-nums}.rpt__t tfoot td{font-weight:800;background:#F8FAFC;border-top:2px solid var(--line)}
@media(max-width:900px){.rpt{grid-template-columns:1fr}.rpt__nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.rpt__g{width:100%}}
@media print{.sb,.top,.rpt__nav,.rpt__bar{display:none!important}.content{padding:0}.card{border:0}.rpt{display:block}}
/* Emergency */
.er-red{background:#FEE2E2;color:#991B1B}.er-orange{background:#FFEDD5;color:#9A3412}.er-green{background:#DCFCE7;color:#166534}
.er-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.er-dot.er-red{background:#DC2626}.er-dot.er-orange{background:#F97316}.er-dot.er-green{background:#16A34A}
.vit{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin:8px 0}.vit div{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.vit span{display:block;font-size:11.5px;color:#64748B}.vit b{font-size:17px}.vit i{font-style:normal;font-size:11px;font-weight:700;color:#B91C1C;margin-left:4px}
.ernote{border-left:3px solid var(--line);padding:4px 10px;margin:8px 0}.ernote--order{border-color:#14B8A6}.ernote.done{opacity:.6;text-decoration:line-through}
.lpill.lab-x{background:#F1F5F9;color:#64748B}

/* Update 27: phone-width hardening */
.labgrid>*,.rpt>*,.grid2>*{min-width:0}
.tscroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:600px){
  .labl,.labr,.labr .card{max-width:100%;min-width:0}
  .labfoot{flex-wrap:wrap;gap:6px}
  .rpt__nav{width:100%;box-sizing:border-box;min-width:0}
  .rpt__nav a{display:inline-block}
  .card .row{flex-wrap:wrap}.card .row input,.card .row select{min-width:0;max-width:100%}
  .card{max-width:100%;box-sizing:border-box}
}
.labr{min-width:0}.labr .muted.sm{overflow-wrap:anywhere}
.chatgrid{grid-template-columns:320px minmax(0,1fr)}
@media(max-width:900px){.chatgrid{grid-template-columns:minmax(0,1fr)}}
.row textarea{flex:1;min-width:0;width:100%;box-sizing:border-box}.labr input,.labr textarea{max-width:100%;box-sizing:border-box}
@media(max-width:600px){.labr .row{flex-wrap:nowrap}}

.qrow>*{min-width:0}.qrow .pill,.qrow .lpill{white-space:nowrap}

/* Update 30: global search + notification bell */
.gsearch{position:relative}
.gs__box{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px rgba(15,23,42,.16);max-height:min(70vh,520px);overflow:auto;z-index:60;padding:6px}
.gs__box[hidden]{display:none}
.gs__g{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#64748B);padding:8px 10px 4px}
.gs__i{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;min-width:0}
.gs__i b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs__i span{font-size:12px;color:var(--muted,#64748B);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs__i:hover,.gs__i.is-cur{background:#EFF6FF}
.gs__none{padding:14px;color:var(--muted,#64748B);font-size:13px}
.bellwrap{position:relative}.bellwrap[hidden]{display:none}
.bell{position:relative}
.bell__n{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#DC2626;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid #fff;line-height:1}
.bell__n[hidden]{display:none}
.np{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px rgba(15,23,42,.18);z-index:60;max-height:min(75vh,560px);overflow:auto}
.np[hidden]{display:none}
.np__h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.np__all{background:none;border:0;color:#2563EB;font-weight:700;font-size:12.5px;cursor:pointer}
.np__none{padding:22px 14px;text-align:center;color:var(--muted,#64748B);font-size:13px}
.np__i{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid #F1F5F9;color:var(--ink);text-decoration:none;min-width:0}
.np__i:hover{background:#F8FAFC}.np__i>div{min-width:0}.np__i b{display:block;font-size:13.5px}.np__i span{display:block;font-size:12px;color:var(--muted,#64748B)}
.np__i>i{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none;background:#2563EB}
.np__i.lv-warn>i{background:#D97706}.np__i.lv-bad>i{background:#DC2626}
.np__i.is-read{opacity:.55}.np__i.is-read>i{background:#CBD5E1}
@media(max-width:700px){.np{position:fixed;left:12px;right:12px;top:64px;width:auto}}
/* Searchable dropdowns (public/js/searchable-select.js) */
.ss{position:relative;display:block;min-width:0}.ss__native{position:absolute!important;left:0;top:0;opacity:0;pointer-events:none;width:1px!important;min-width:0!important;max-width:1px!important;height:1px!important;margin:0!important;padding:0!important;border:0!important}
.ss__btn{width:100%;text-align:left;font:inherit;color:inherit;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2364748B' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--line,#E2E8F0);border-radius:10px;padding:10px 32px 10px 12px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:40px}
.ss__btn:focus-visible{outline:2px solid #14B8A6;outline-offset:1px}.ss__btn--empty{color:#64748B}.ss__btn:disabled{opacity:.6;cursor:not-allowed}
.ss__panel{position:absolute;z-index:80;left:0;min-width:100%;width:max-content;max-width:min(92vw,420px);top:calc(100% + 4px);background:#fff;border:1px solid var(--line,#E2E8F0);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.18);padding:8px}
.ss__panel--up{top:auto;bottom:calc(100% + 4px)}
.ss__q{width:100%;margin:0 0 6px;padding:9px 10px;border:1px solid var(--line,#E2E8F0);border-radius:8px;font:inherit}
.ss__list{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto}
.ss__list li{padding:8px 10px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:1px;font-size:13.5px}
.ss__list li span{font-size:11.5px;color:#64748B;font-weight:400}.ss__list li.hl{background:#F0FDFA}.ss__list li.on b:before{content:"✓ ";color:#0F766E}.ss__list li.on{background:#CCFBF1}
.ss__none{padding:10px;color:#64748B;font-size:13px}
@media(max-width:560px){.ss__panel{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-width:none;width:auto}.ss__list{max-height:50vh}}
/* Tests & prices (Update 34) */
.tp-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tp-filters input{flex:2 1 220px}.tp-filters select,.tp-filters .ss{flex:1 1 160px;min-width:0}
.tp-adjust,.tp-form{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px;background:#FAFBFC}
.tp-adjust .row label{display:flex;flex-direction:column;gap:4px}
.tp-params td{padding:4px 6px}.tp-params input{width:100%}.tp-off td{opacity:.55}
.tp-ref{background:#EEF6FF;border-radius:8px;padding:6px 10px;margin:10px 0 0}
@media (max-width:760px){.tp-mk{display:none}}
/* Price lists (Update 35) */
.pl-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}.pl-grid>*{min-width:0}
.pl-lists{padding:6px}.pl-item{display:block;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:9px 10px;cursor:pointer}.pl-item .sm{display:block}
.pl-item:hover{background:#F3F4F6}.pl-item.on{background:#EEF6FF;box-shadow:inset 3px 0 0 var(--accent,#2563EB)}
@media (max-width:860px){.pl-grid{grid-template-columns:minmax(0,1fr)}}
.tp-panel{border:1px dashed var(--line);border-radius:8px;padding:10px;margin-top:10px}
.tp-chip{display:inline-flex;gap:4px;align-items:center;background:#F3F4F6;border-radius:999px;padding:3px 4px 3px 10px;margin:3px;font-size:12.5px}.tp-chip button{border:0;background:none;cursor:pointer;padding:0 6px}
.tp-ranges td{padding:3px 4px}.tp-ranges input,.tp-ranges select{padding:5px 6px;font-size:12.5px}
.tp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:6px 0}.tp-kpis>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.tp-kpis b{font-size:18px}
@media (max-width:760px){.tp-kpis{grid-template-columns:1fr 1fr}}
.tp-filters label.tp-lbl{display:flex;flex-direction:column;gap:3px}
/* Pager (Update 36) */
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.pager__btns{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.pager__b{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;color:inherit;text-decoration:none;cursor:pointer}
.pager__b:hover{background:#F3F4F6}.pager__b.is-on{background:var(--accent,#2563EB);border-color:var(--accent,#2563EB);color:#fff;font-weight:600}.pager__b.is-off{opacity:.45;cursor:default}
.pager__gap{padding:0 2px;color:#9CA3AF}
nav[role=navigation] svg{width:16px;height:16px}
.tp-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}
.tp-modal__box{background:#fff;border-radius:14px;max-width:520px;width:100%;padding:20px 22px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.tp-modal__box h2{margin:0 0 2px;font-size:18px}.tp-modal__list{margin:12px 0 16px;padding-left:18px;font-size:13.5px;line-height:1.5}.tp-modal__list li{margin:5px 0}
.btn--danger{background:#DC2626;color:#fff;border-color:#DC2626}.btn--danger:hover{background:#B91C1C}
.tp-removed{display:flex;flex-wrap:wrap;align-items:center;gap:4px;background:#FFFBEB;border:1px solid #FDE68A;border-radius:10px;padding:8px 10px;margin-bottom:12px}
.tp-export{position:relative;display:inline-block}.tp-export__menu{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.12);z-index:30;min-width:240px;padding:4px}
.tp-export__menu a{display:block;padding:8px 10px;border-radius:6px;color:inherit;text-decoration:none;font-size:13px}.tp-export__menu a:hover{background:#F3F4F6}
.tp-help{margin-top:8px}.tp-help summary{cursor:pointer;font-weight:600;font-size:13px}
[x-cloak]{display:none!important}
.phead--row .hbtns{flex-wrap:wrap;justify-content:flex-end}@media (max-width:760px){.phead--row .hbtns{justify-content:flex-start;max-width:100%}}

/* =================== Update 37: mobile & tablet =================== */
.navbtn,.gs-btn,.top__brand,.sb__close{display:none}
.navbtn,.gs-btn{background:none;border:0;color:var(--ink);width:40px;height:40px;border-radius:10px;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.navbtn:hover,.gs-btn:hover{background:#F1F5F9}
.top__brand{align-items:center;gap:8px;color:var(--ink);font-weight:800;min-width:0}.top__brand .sb__logo{width:30px;height:30px;font-size:14px;flex-shrink:0}
.top__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}
.sb-scrim{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:40}
.notices{display:flex;flex-direction:column}

/* Drawer navigation below 1024px */
@media (max-width:1024px){
  .sb{display:flex!important;position:fixed;left:0;top:0;bottom:0;height:100%;width:280px;max-width:86vw;z-index:50;transform:translateX(-105%);transition:transform .22s ease;box-shadow:0 0 40px rgba(0,0,0,.25)}
  body.nav-open .sb{transform:none}
  body.nav-open{overflow:hidden}
  .sb__close{display:flex;position:absolute;right:10px;top:12px;width:36px;height:36px;border:0;border-radius:8px;background:rgba(255,255,255,.1);color:#fff;font-size:16px;align-items:center;justify-content:center;cursor:pointer;z-index:2}
  .sb__link{padding:11px 12px;font-size:14.5px}
  .navbtn,.top__brand{display:inline-flex}
  .top{padding:8px 14px;gap:8px}
  .content{padding:18px 16px}
}
@media (prefers-reduced-motion:reduce){.sb{transition:none}}

/* Phones and small tablets */
@media (max-width:760px){
  .gs-btn{display:inline-flex}
  .gsearch{display:none}
  .top.top--search .gsearch{display:block;position:absolute;left:8px;right:8px;top:6px;z-index:8}
  .top.top--search .gsearch input{height:44px}
  .userbox>div{display:none}
  .userbox .btn{padding:7px 10px}
  .notices .alert{margin:8px 12px 0!important;padding:9px 12px;font-size:12.5px}
  .notices__more{margin:6px 12px 0;align-self:flex-start;background:none;border:0;color:#0F766E;font:700 12.5px Manrope,sans-serif;padding:4px 0;cursor:pointer}
  .content{padding:14px 12px 28px}
  .phead h1,.content h1{font-size:22px}
  /* no zoom-on-focus on iPhone; larger touch targets */
  input,select,textarea{font-size:16px}
  .btn{min-height:40px}
  .btn.sm,.btn--ghost.sm{min-height:34px}
  .card{padding:14px}
  .labf{margin-left:0;flex-wrap:wrap;width:100%;padding:8px}
  .labf>*{flex:1 1 140px;min-width:0;width:auto!important;max-width:100%!important}
  .row{flex-wrap:wrap}
  .row>input,.row>select{min-width:0}
  .tabs,.ttabs{flex-wrap:wrap}
}

/* Tables become cards on phones (mobile.js adds .rt-stack and data-label) */
@media (max-width:760px){
  table.rt-stack{border:0;min-width:0!important;width:100%}
  table.rt-stack thead{display:none}
  table.rt-stack,table.rt-stack tbody,table.rt-stack tr,table.rt-stack td{display:block;width:100%}
  table.rt-stack tr{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0 0 10px;background:#fff;position:relative}
  table.rt-stack tr.sel,table.rt-stack tr.is-sel{border-color:var(--accent);box-shadow:0 0 0 2px rgba(20,184,166,.2)}
  table.rt-stack td{border:0!important;padding:5px 0!important;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;text-align:right;min-height:0}
  table.rt-stack td::before{content:attr(data-label);flex:0 0 auto;max-width:42%;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding-top:2px}
  table.rt-stack td:first-child{display:block;text-align:left;font-size:14.5px;padding-bottom:6px!important}
  table.rt-stack td:first-child::before,table.rt-stack td[data-label=""]::before,table.rt-stack td[colspan]::before{display:none}
  table.rt-stack td[colspan]{display:block;text-align:left}
  table.rt-stack td:empty{display:none}
  table.rt-stack td>input,table.rt-stack td>select,table.rt-stack td>textarea,table.rt-stack td>.svc{flex:1;min-width:0;max-width:65%!important}
  table.rt-stack td .btn{white-space:nowrap}
  .tscroll:has(table.rt-stack){overflow:visible}
  .card[style*="padding:0"] table.rt-stack{padding:10px}
}
@media (max-width:760px){
  .notices.is-collapsed .alert:not(:first-child){display:none!important}
  .userbox .btn{white-space:nowrap}
  .labf>*{flex:0 1 auto}
  .labf>input,.labf>select,.labf>.ss,.labf>label{flex:1 1 140px}
  .pcard{flex-wrap:wrap}.pcard__tags{flex-wrap:wrap;max-width:100%;justify-content:flex-start}
  .pcard__tags label.badge{max-width:100%;flex-wrap:wrap}.pcard__tags select{max-width:100%;min-width:0}
  .chead{flex-wrap:wrap;gap:8px}.chead .svc{flex:1 1 100%;max-width:100%}
  .card,.card>*{min-width:0}
  table.rt-stack tr{display:flex;flex-direction:column}
  table.rt-stack td[data-title]{order:-1;display:block;text-align:left;font-size:14.5px;padding-bottom:6px!important}
  table.rt-stack td[data-title]::before{display:none}
  table.rt-stack td:first-child:not([data-title]){display:flex;font-size:inherit;padding-bottom:5px!important}
  table.rt-stack td:first-child:not([data-title])::before{display:block}
  table.rt-stack td{white-space:normal!important;flex-wrap:wrap}
  table.rt-stack td[data-block]{display:block;text-align:left}
  table.rt-stack td[data-block]::before{display:block;max-width:none;margin-bottom:2px}
  table.rt-stack td[data-actions]{justify-content:flex-start;gap:6px;padding-top:8px!important}
  table.rt-stack td[data-actions]::before{display:none}
}
@media (max-width:760px){
  .ugrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ugrid>[style*="grid-column"]{grid-column:1/-1!important}
  .ugrid>*{min-width:0}
  table.rt-stack td[data-actions]{text-align:left}
  table.rt-stack td[data-actions] form{display:inline-flex}
}
@media (max-width:420px){.ugrid{grid-template-columns:minmax(0,1fr)!important}}

.notices.is-collapsed .alert:not(:first-child){display:none!important}
.notices__more{margin:6px 28px 0;align-self:flex-start;background:none;border:0;color:#0F766E;font:700 12.5px Manrope,sans-serif;padding:4px 0;cursor:pointer}
@media (max-width:760px){.notices__more{margin:6px 12px 0}}
@media (max-width:600px){.two{grid-template-columns:minmax(0,1fr)}.tot{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  table.rt-stack td[data-check]{position:absolute;right:10px;top:8px;width:auto!important;padding:0!important}
  table.rt-stack td[data-check]::before{display:none}
  table.rt-stack tr:has(td[data-check]) td[data-title]{padding-right:34px!important}
}
/* Departments & services (Update 38) */
.ds-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}.ds-grid>*{min-width:0}
.ds-list{position:sticky;top:76px;padding:12px}.ds-items{max-height:calc(100vh - 230px);overflow:auto;margin:0 -6px}
.ds-main{display:grid;gap:14px}
@media (max-width:1024px){.ds-grid{grid-template-columns:minmax(0,1fr)}.ds-list{position:static}.ds-items{max-height:300px}}
.setup-link{display:inline-flex;align-items:center;padding:8px 12px;font-size:13px;color:#0F766E;font-weight:700}

/* ---- Update 40: OPD complete ---- */
.xs{font-size:11px}.opd .muted.xs{display:block}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;cursor:pointer}.chk input{width:auto;margin:0}.chk.sm{font-size:12px}
.opd-flags{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.cond{margin-top:8px}.cond .muted{display:block;margin-bottom:4px}.cond .chip{margin:0 6px 6px 0}
.condadd{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.condadd>input{flex:1 1 140px;min-width:0}.condadd>select{flex:0 0 auto;width:auto}
.chip--soft{background:#F1F5F9;color:#334155}.chip--soft button{color:#64748B}
.chip--btn{border:1px solid #CCEDE7;background:#fff;cursor:pointer;font:700 12px Manrope,sans-serif}.chip--btn:hover{background:#ECFDF8}.chip .lnk{font-weight:700}
.chip--prov{background:#FFF7ED;color:#9A3412}.chip--prov button{color:#9A3412}.chip em{font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;opacity:.8}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;background:rgba(15,118,110,.09);padding:1px 5px;border-radius:5px;margin-right:2px}
.dxhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 6px}
.seg--sm{padding:2px;border-radius:8px}.seg button{border:0;background:none;padding:5px 12px;border-radius:6px;font:700 12px Manrope,sans-serif;color:var(--ink);cursor:pointer}.seg button.on{background:#0F766E;color:#fff}.seg button:disabled{opacity:.6;cursor:default}
.svc__list--tall{max-height:360px;overflow:auto}.svc__list button .muted{grid-column:1}
.chips--quick{align-items:center;gap:6px}.chips--quick .muted{margin-right:2px}
.pane{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;display:flex;flex-wrap:wrap;gap:6px;background:#FBFDFC}
.pane>p{margin:0}.pane .condadd{flex:1 1 100%}
.tplrow{display:flex;align-items:center;gap:10px;flex:1 1 100%;padding:4px 0;border-bottom:1px dashed var(--line)}.tplrow .x{margin-left:auto}
.lnk{border:0;background:none;padding:0;font:inherit;color:#0F766E;cursor:pointer;text-align:left}.lnk:hover{text-decoration:underline}
.btn.on{background:#ECFDF8;border-color:#14B8A6}
.dosecell{display:flex;gap:4px}.mini3{width:68px}
.hint{margin-top:6px;font-size:11.5px;color:#1E40AF;background:#EFF6FF;border-radius:6px;padding:4px 8px}
.rxbtns{white-space:nowrap}.rxbtns .x{margin-left:2px}
.safety{margin-top:12px;padding:10px 14px;border-radius:10px;font-size:13px}.safety ul{margin:6px 0 4px;padding-left:18px}.safety li{margin:3px 0}
.safety--ok{background:#F0FDF4;color:#166534}.safety--warn{background:#FFFBEB;border:1px solid #FDE68A;color:#92400E}.safety--bad{background:#FEF2F2;border:1px solid #FECACA;color:#991B1B}
.safety li.major{color:#991B1B}.safety li.caution{color:#92400E}.safety .ack{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0 4px}.safety .ack input:not([type=checkbox]){flex:1 1 220px;min-width:0}
.hist__a{display:flex;gap:12px;margin-top:4px;font-size:12px;font-weight:700}.hist__a a{color:#0F766E}
.mini-res{width:100%;font-size:12px;margin-top:6px;border-collapse:collapse}.mini-res td,.mini-res th{padding:3px 4px;border-bottom:1px solid #E2E8F0;text-align:left}.mini-res .bad{color:#B91C1C}
.trend{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}.trend svg{max-width:100%;height:auto}
.opd-tabs{padding:0;margin:-4px -4px 6px}.opd-tabs>button{padding:9px 10px}
.qitem{border-bottom:1px solid var(--line)}.qitem:last-child{border:0}.qitem .qrow{border:0;align-items:center;padding:8px 10px 8px 14px}
.qrow__main{display:flex;gap:10px;align-items:center;flex:1;min-width:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer;padding:0}.qrow__main .serial{flex:0 0 40px}
.qmore{border:1px solid var(--line);background:#fff;border-radius:6px;width:28px;height:26px;cursor:pointer;color:#475569;font-weight:800}
.qacts{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px 14px}.qhold{display:flex;gap:6px;flex:1 1 100%}.qhold input,.qhold select{flex:1;min-width:0;padding:6px 8px;font-size:12.5px}
.pill--hold{background:#E0E7FF;color:#3730A3}.pill--no_show{background:#FEE2E2;color:#991B1B}
.btn.danger{color:#B91C1C;border-color:#FECACA}
.hbtns--wrap{flex-wrap:wrap}
@media(max-width:860px){.dxhead{gap:8px}.dosecell{flex-wrap:wrap}.qhold{flex-wrap:wrap}}
.admreq{margin-bottom:14px}.admreq__row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}.admreq__row.on{background:#ECFDF8;margin:0 -12px;padding:10px 12px;border-radius:8px}
.qitem .qrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
.qrow__main>div{min-width:0}.qrow__main>div b{overflow-wrap:anywhere}
.opd__r .qcard{max-height:680px;overflow:auto}
.opd .chead .hbtns{flex-wrap:wrap;gap:6px}
.opd__l,.opd__m{grid-template-columns:minmax(0,1fr)}.opd .card{min-width:0}
.rx td:first-child{min-width:220px}.rx .instr{display:block;width:100%;margin-top:6px;font-size:12.5px;padding:5px 8px;color:#334155}
.rx .freqsel{display:block;width:100%;margin-top:6px;padding:5px 8px;font-size:12.5px}.rx .dosecell .mini{width:70px}.rx td{padding-left:6px;padding-right:6px}.rx select.mini2{width:118px}.rx input[type=number].mini{width:58px}

/* ---- Update 41: appointments & doctor timings ---- */
.tm-tabs{margin-bottom:12px;background:#fff;border:1px solid var(--line);border-radius:12px}
.tmgrid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;align-items:start}.tmmain{min-width:0}
.tmlist{padding:0;overflow:hidden}.tmfilter{display:flex;flex-direction:column;gap:6px;padding:12px;border-bottom:1px solid var(--line)}
.tmdocs{max-height:640px;overflow:auto}.tmdoc{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;padding:10px 12px;font:inherit;cursor:pointer}
.tmdoc .muted{grid-column:1}.tmdoc .pill{grid-row:1/3;grid-column:2;align-self:center}.tmdoc:hover{background:#F8FAFC}.tmdoc.on{background:#ECFDF8;box-shadow:inset 3px 0 0 #14B8A6}
.tmweek{display:grid;gap:6px;margin:12px 0}.tmday{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:start;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.tmday.off{background:#F8FAFC}.tmday.off b{color:#94A3B8}
.tmsess{display:flex;flex-wrap:wrap;gap:8px}.tmchip{display:inline-flex;gap:10px;align-items:center;background:#E6F6F3;border-radius:10px;padding:6px 10px;font-size:12.5px}.tmchip.on{outline:2px solid #0F766E}
.tmform{border-top:1px solid var(--line);padding-top:14px;margin-top:6px}.tmdays{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sesrow{margin-top:8px}.slot--serial{background:#EFF6FF;border-color:#BFDBFE}.slot--serial.on{background:#1D4ED8;border-color:#1D4ED8}
.why{margin-top:6px;padding:10px 12px;border-radius:10px;background:#FFFBEB;border:1px solid #FDE68A;color:#92400E;font-size:13px;font-weight:600}
.nextdays{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.chip--btn.on{background:#0F766E;color:#fff;border-color:#0F766E}
.apcol--off{opacity:.75;background:#F8FAFC}.apc--x{opacity:.55;text-decoration:line-through;border-left-color:#94A3B8}
.subform{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.wk th,.wk td{text-align:center;vertical-align:middle}.wk th:first-child,.wk td:first-child{text-align:left;min-width:170px}.wk th.today{color:#0F766E}
.wkc{border:1px solid #CCEDE7;background:#F0FDFA;border-radius:8px;padding:6px 10px;cursor:pointer;font:inherit;min-width:64px}.wkc span{display:block}.wkc.full{background:#FEF2F2;border-color:#FECACA}
.wkoff{font-size:11px;font-weight:700;color:#9A3412;background:#FFF7ED;border-radius:6px;padding:3px 7px}
@media(max-width:1000px){.tmgrid{grid-template-columns:1fr}.tmdocs{max-height:260px}.tmday{grid-template-columns:1fr}}
.daycard{display:grid;gap:1px;text-align:left;border:1px solid #CCEDE7;background:#fff;border-radius:10px;padding:7px 12px;font:12px Manrope,sans-serif;color:#334155;cursor:pointer;min-width:96px}
.daycard b{font-size:12.5px;color:#0F172A}.daycard .free,.apnums .free,.wkc .free{color:#0F766E;font-weight:800}.daycard:hover{background:#ECFDF8}.daycard.on{border-color:#0F766E;box-shadow:0 0 0 2px #0F766E inset}
.apnums{display:flex;gap:12px;font-size:12px;color:#475569;margin:2px 0}.wkc{display:grid;gap:1px;font-size:11.5px;text-align:left}.wkc span{display:block}

/* ---- Update 42: billing ---- */
.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.modecard{display:grid;gap:3px;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}.modecard input{width:auto;margin:0 0 4px}.modecard.on{border-color:#0F766E;background:#F0FDFA}
.msel{min-width:180px;padding:4px}
.bln__search{display:flex;flex-direction:column;gap:8px}.bln .svc{width:100%}.bln__t td{vertical-align:middle}.bln__t .mini{width:80px}
.paybox{display:grid;gap:8px;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#FBFDFC}.payrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.payrow select{width:auto;min-width:150px}
.billsum{display:grid;gap:3px;margin-top:10px;font-size:13px}.billsum div{display:flex;justify-content:space-between;gap:20px}.billsum .b{font-weight:800;font-size:16px;border-top:1px solid var(--line);padding-top:6px}
.bdgrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.bdpay{position:sticky;top:76px}@media(max-width:1100px){.bdgrid{grid-template-columns:1fr}.bdpay{position:static}}
.fdpay{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;align-items:start}@media(max-width:900px){.fdpay{grid-template-columns:1fr}}
.billtop{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.seg a .cnt,.cnt{display:inline-block;min-width:18px;padding:0 6px;border-radius:99px;background:#FEE2E2;color:#991B1B;font-size:11px;margin-left:4px;text-align:center}
.pend{margin-bottom:12px}.pend__h{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.pend__sum{font-size:18px;align-self:center}
.waitpay summary{cursor:pointer}.waitpay table{margin-top:8px}

/* ---- Update 43: front desk in three steps ---- */
.sr{position:absolute;left:-9999px}
.step__h{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.step__h h2{margin:0;font-size:17px}.step__n{width:28px;height:28px;border-radius:50%;background:#0F766E;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 28px}
.fdsearch input{font-size:17px;font-weight:700}
.pfound{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:12px;border:1px solid #A7E8DC;background:#ECFDF8;border-radius:10px}.pfound .grow{flex:1;min-width:200px}
.booked{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;background:#EFF6FF;border:1px solid #BFDBFE;border-radius:10px}.booked--on{background:#F0FDFA;border-color:#99F6E4}.booked b{color:#1E40AF}.booked--on b{color:#0F766E}
.pay{display:inline-flex;align-items:center;border-radius:99px;padding:3px 9px;font-size:11.5px;font-weight:800;letter-spacing:.3px}.pay--paid{background:#DCFCE7;color:#166534}.pay--unpaid{background:#FEE2E2;color:#991B1B}.pay--counter{background:#F1F5F9;color:#475569}.pay--in{background:#DBEAFE;color:#1E40AF}
.btn--blue{background:#1D4ED8;color:#fff;border-color:#1D4ED8}
.whatfor{display:flex;gap:8px;flex-wrap:wrap}.wf{height:44px;padding:0 18px;border:2px solid #CBD5E1;border-radius:12px;background:#fff;font:800 14px Manrope,sans-serif;cursor:pointer}.wf.on{background:#0F766E;border-color:#0F766E;color:#fff}.wf.pick{border-color:#0F766E;color:#0F766E}
.wfgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;margin-top:14px}.wfbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0}
.serialline{margin-top:8px;font-size:15px;color:#0F766E}.feeline{margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.feeline select.inline{width:auto;padding:4px 8px;font-size:12.5px}
.step--pay{border:2px solid #0F766E}
.quick .f{min-width:0}
@media(max-width:1000px){.wfgrid{grid-template-columns:1fr}}
.apc--paid{border-left-color:#16A34A}.apc--unpaid{border-left-color:#DC2626}.apc--counter{border-left-color:#94A3B8}.apc--in{border-left-color:#2563EB}
/* ---- Update 43b: front desk matches the approved design ---- */
.fdhead{margin-bottom:14px}.fdhead p b.ok{color:#0F766E}
.fdfind{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 16px;border:2px solid #0F766E;border-radius:14px;background:#fff;margin-bottom:18px}.fdfind svg{flex:0 0 22px;color:#0F766E}.fdfind input{flex:1;min-width:120px;border:0;outline:0;font-size:20px;font-weight:800;padding:8px 0;background:transparent;box-shadow:none}.fdfind__hint{font-size:13px;white-space:nowrap}.fdfind .btn{height:40px}
.fd--43{grid-template-columns:minmax(0,1fr) 400px}
.pfound{background:#fff;border:0;padding:4px 0 0}.pfound .nm{font-size:19px}.pfound .avatar.lg{width:56px;height:56px;font-size:18px;background:#E6F6F3;color:#0F766E}
.booked{padding:12px 14px}.booked .btn--blue{margin-left:auto;height:40px}
.wfbox .lbl{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:#64748B;font-weight:800}
.fditems{margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.fditems table{margin:0}.fditems th{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:#64748B;background:#F8FAFC}.fditems td,.fditems th{padding:12px 14px}.fditems td[data-title] b{font-size:15px}
.chips--quick{margin-top:10px}.chips--quick .muted{align-self:center}
.step--pay .lbl{margin-top:4px}.fdpay2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.step--pay .billsum{border-top:1px dashed var(--line);margin-top:14px;padding-top:10px;font-size:14px}.step--pay .billsum .disc{color:#B45309}.step--pay .billsum .tot{font-size:26px;border-top:2px solid #0F172A;margin-top:6px;padding-top:8px}
.paymodes,.methods2{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pm{height:44px;padding:0 14px;border:1.5px solid #CBD5E1;border-radius:10px;background:#fff;font:800 14px Manrope,sans-serif;cursor:pointer;color:#0F172A}.pm.on{background:#0F766E;border-color:#0F766E;color:#fff}.methods2 .pm.on{background:#E6F6F3;color:#0F766E;border:2px solid #0F766E}.pm--split{border-style:dashed}
.payrow2{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}.payrow2 .lbl{margin:0;white-space:nowrap}.payrow2 input,.payrow2 select{max-width:200px}.payrow2 .money{max-width:200px}
.received input{font-size:20px;font-weight:800;max-width:190px}
.btn--big{width:100%;height:52px;font-size:16px;margin-top:14px;border-radius:12px}.step--pay .lnk.sm{display:block;margin:8px auto 0;text-align:center}.step--pay p.c{text-align:center;margin:10px 0 0}
.fd__side .qcard .qhead{padding:14px 16px}.fd__side .keys{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.step__h .grow.r{text-align:right}
@media(max-width:1100px){.fd--43{grid-template-columns:1fr}.fdfind__hint{display:none}.fdpay2{grid-template-columns:1fr}}@media(max-width:760px){.fdfind{flex-wrap:wrap;padding:8px 10px}.fdfind svg{display:none}.fdfind input{font-size:17px;min-width:0;flex:1 1 100%;padding:6px 2px}.fdfind .btn{flex:1}}
.aplegend{display:flex;gap:14px;flex-wrap:wrap;margin:-6px 0 12px}.apdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}.apdot--paid{background:#16A34A}.apdot--unpaid{background:#DC2626}.apdot--counter{background:#94A3B8}.apdot--in{background:#2563EB}
/* What for: one column, one box per kind */
.wfstack{display:grid;gap:12px;margin-top:14px}.wfstack .wfbox{padding:14px 16px}.wfbox--add{background:#FBFDFC}
.chip--on{background:#0F766E;color:#fff;border-color:#0F766E}
.wf{min-height:44px;height:auto;padding:8px 18px;line-height:1.2}
.feeline{align-items:center}
/* ---- Update 45: shifts, refunds ---- */
.shiftsum{display:grid;gap:4px;margin-top:12px;max-width:420px}.shiftsum div{display:flex;justify-content:space-between;gap:12px}.shiftsum .big{border-top:2px solid #0F172A;padding-top:6px;margin-top:4px;font-size:16px}
.refundbox{border:1.5px solid #FDE68A;background:#FFFBEB;border-radius:12px;padding:12px 14px;margin-top:12px}.refundbox .row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.refundbox .row>div{min-width:120px}
.cancelled td{color:#94A3B8}.cancelled td b,.cancelled td .muted{text-decoration:line-through}.cancelled td .cwhy{display:block;color:#B91C1C;font-size:11.5px;margin-top:2px}
.linecancel{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}.linecancel input{max-width:200px}.linecancel select{width:auto}
/* ---- Update 45b: compact payment buttons, print bar ---- */
.paymodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.paymodes .pm{padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.methods2{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:6px;margin-top:8px}.methods2 .pm{height:40px;padding:0 6px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:9px}
.methods2 .pm.on{background:#0F766E;color:#fff;border:1.5px solid #0F766E}.pm--split{border-style:dashed;color:#475569}.pm--split.on{background:#F1F5F9;color:#0F172A;border:1.5px dashed #0F172A}
.payrow2.received{background:#F8FAFC;border-radius:10px;padding:8px 10px}
@media print{#hprint-bar{display:none}}
/* ---- 45c: print dialog ---- */
#hprint{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}#hprint[hidden]{display:none}
.hp__back{position:absolute;inset:0;background:rgba(15,23,42,.55)}
.hp__box{position:relative;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.3);width:min(1040px,100%);height:min(780px,calc(100vh - 32px));display:flex;flex-direction:column;overflow:hidden}
.hp__head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.hp__head b{font-size:17px}.hp__sub{color:#64748B;font-size:13px;flex:1}.hp__x{background:none;border:0;font-size:24px;line-height:1;cursor:pointer;color:#475569;padding:4px 8px}
.hp__body{flex:1;display:flex;min-height:0}.hp__list{width:240px;flex:0 0 240px;border-right:1px solid var(--line);padding:10px;overflow:auto;display:flex;flex-direction:column;gap:6px;background:#F8FAFC}
.hp__list button{text-align:left;border:1.5px solid #CBD5E1;background:#fff;border-radius:10px;padding:11px 12px;font:700 14px Manrope,sans-serif;cursor:pointer;color:#0F172A}.hp__list button.on{border-color:#0F766E;background:#E6F6F3;color:#0B5E58;box-shadow:inset 3px 0 0 #0F766E}
.hp__grp{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#64748B;margin:6px 2px 0}
.hp__prev{flex:1;background:#E2E8F0;padding:12px;min-width:0}.hp__prev iframe{width:100%;height:100%;border:0;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.hp__foot{display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--line)}.hp__tip{margin-right:auto}.hp__foot .btn{min-width:120px;height:44px}
html.hp-open{overflow:hidden}
@media(max-width:760px){.hp__body{flex-direction:column}.hp__list{width:auto;flex:0 0 auto;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;overflow-x:auto}.hp__list button{white-space:nowrap}.hp__grp{display:none}.hp__tip{display:none}}
@media print{#hprint{display:none}}

/* Medicines master (Update 47) */
.kpis.kpis--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.kpis.kpis--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
[data-med-table] td{overflow-wrap:anywhere;word-break:break-word}
[data-med-results] .muted{overflow-wrap:anywhere}

/* Invoice totals and cancel box (Update 48) — own class names so receipt / status-pill styles cannot leak in */
.itotwrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);align-items:start}
.itot{background:#F8FAFC;border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.itot__row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;color:#475569;font-size:14px}
.itot__row b{color:var(--ink);font-weight:700;white-space:nowrap}
.itot__row--minus b{color:#B45309}
.itot__row--paid b{color:#15803D}
.itot__pay{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:8px -16px;padding:10px 16px;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:800;font-size:16px;color:var(--ink)}
.itot__pay b{color:#0F766E;font-size:24px;white-space:nowrap}
.itot__state{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:8px 12px;border-radius:9px;font-weight:800;font-size:14px}
.itot__state--ok{background:#DCFCE7;color:#166534}
.itot__state--due{background:#FEE2E2;color:#991B1B}.itot__state--due b{font-size:18px}
.itot__state--off{background:#E2E8F0;color:#475569;justify-content:center}
.inote{background:#F8FAFC;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;color:#334155;line-height:1.5}
.icancel{margin-top:12px;border-color:#FECACA}
.icancel__head{display:flex;justify-content:space-between;align-items:center;gap:12px}.icancel__head p{margin:2px 0 0}
.icancel__form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;margin-top:12px;align-items:end}
.icancel__go{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.icancel .req{color:#DC2626;font-style:normal}
@media(max-width:900px){.itotwrap{grid-template-columns:minmax(0,1fr)}.icancel__form{grid-template-columns:minmax(0,1fr)}.icancel__head{flex-wrap:wrap}}
.itable td.r{white-space:nowrap}.itable td:first-child{min-width:220px}
.lockline{display:block;margin-top:3px;color:#64748B;font-size:11.5px}
.itot__pay:last-child{margin-bottom:-12px;border-bottom:0;border-radius:0 0 12px 12px}
/* Pharmacy module (Update 49) */
.phnav{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin:-4px 0 16px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:12px}
.phnav a{padding:7px 12px;border-radius:8px;font-weight:700;font-size:13.5px;color:#475569;text-decoration:none;white-space:nowrap}
.phnav a:hover{background:#F1F5F9;color:var(--ink)}
.phnav a.on{background:#0F766E;color:#fff}
.phnav__note{margin-left:auto;font-size:12px;font-weight:700;color:#92400E;background:#FEF3C7;border-radius:99px;padding:3px 10px}
.phqty{white-space:nowrap}.phqty .mini{width:64px}
.phas{display:inline-flex!important;vertical-align:middle;margin-left:4px}.phas a{padding:3px 8px;font-size:12px;border-radius:6px;text-decoration:none;color:#475569;font-weight:700}.phas a.on{background:#0F766E;color:#fff}
.phgrid2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.phform{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.phlines td{vertical-align:top}.phlines input,.phlines select{min-width:0;width:100%}
.phlines .w-sm{width:78px}.phlines .w-md{width:110px}
.phtot{margin-left:auto;max-width:360px;display:grid;gap:4px;margin-top:10px}
.phtot>div{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:#475569}.phtot b{color:var(--ink);white-space:nowrap}
.phtot .big{font-size:18px;font-weight:800;color:var(--ink);border-top:1px solid var(--line);padding-top:6px;margin-top:4px}.phtot .big b{color:#0F766E}
.phchip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:800;white-space:nowrap;background:#E2E8F0;color:#334155}
.phchip--ok{background:#DCFCE7;color:#166534}.phchip--warn{background:#FEF3C7;color:#92400E}.phchip--bad{background:#FEE2E2;color:#991B1B}.phchip--info{background:#E0F2FE;color:#075985}
.rowlink{cursor:pointer}.rowlink:hover td{background:#F8FAFC}
.batchrow td{background:#F8FAFC;font-size:13px}
@media(max-width:1100px){.phgrid2{grid-template-columns:minmax(0,1fr)}}
.phset{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.phset input{margin-top:3px;width:auto}

/* ---- Settings area (Update 50): its own menu in place of the main sidebar — same dark colours and accent as the main menu (Update 134) ---- */
.sb__back{display:flex;align-items:center;gap:6px;margin:10px 8px 2px;padding:7px 12px;border-radius:8px;font-size:12.5px;font-weight:700;color:var(--accent)}
.sb__back:hover{background:rgba(255,255,255,.08);color:#fff}
.sb__settitle{display:flex;align-items:center;gap:8px;padding:6px 20px 4px;font-weight:800;font-size:16px;color:#fff}
.sb--set .sb__group{padding-top:14px}
.sb--set .sb__link{justify-content:space-between}
.sb__off{font-style:normal;font-size:10px;font-weight:700;color:var(--sb-muted);border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:0 5px}
.sb--set .sb__link.is-active .sb__off{color:var(--accent-ink);border-color:rgba(6,59,54,.35)}
.sb__none{padding:10px 20px;color:var(--sb-muted);font-size:12.5px}
.sb--set .sb__foot{display:none}
/* Modules page */
.mod-plan{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:#0B3D3A;color:#D7EFEA;border-radius:12px;padding:14px 18px;margin-bottom:18px}
.mod-plan b{color:#fff;font-size:16px}.mod-plan .muted{color:#9FD8CE}
.mod-plan .tagx{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.6px;background:#14B8A6;color:#063B36;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:2px}
.mod-plan .btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.mod-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.mod-cols h2{font-size:14px;margin:0 0 8px}
.mod{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin-bottom:8px}
.mod b{font-size:14px}.mod p{margin:2px 0 0;color:var(--muted);font-size:12px}
.mod.is-off b{color:#64748B}.mod.is-soon{background:#F8FAFC}
.mod-tag{display:inline-block;font-size:10.5px;font-weight:700;border-radius:6px;padding:1px 7px;margin-left:6px;background:#F1F5F9;color:#475569}
.mod-tag--on{background:#E6F4F1;color:#0F766E}.mod-tag--prem{background:#EEF2FF;color:#4338CA}
.tgl{position:relative;width:42px;height:24px;flex-shrink:0}.tgl input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:1}
.tgl span{position:absolute;inset:0;border-radius:99px;background:#CBD5E1;transition:.15s}.tgl span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.tgl input:checked+span{background:#0F766E}.tgl input:checked+span:after{left:21px}.tgl input:disabled+span{opacity:.5}
.tgl input:focus-visible+span{outline:2px solid #14B8A6;outline-offset:2px}
@media(max-width:900px){.mod-cols{grid-template-columns:1fr}}
[data-set-item][hidden],[data-set-group][hidden]{display:none!important}
/* Setup pages: centred search (Update 52) and one-line row actions */
.setsearch{display:flex;justify-content:center;margin:0 0 14px}
.setsearch__box{display:flex;align-items:center;gap:10px;width:100%;max-width:640px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 10px 6px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.setsearch__box:focus-within{border-color:#14B8A6;box-shadow:0 0 0 3px rgba(20,184,166,.18)}
.setsearch__box svg{color:#64748B;flex-shrink:0}
.setsearch__box input{flex:1;border:0;background:none;padding:7px 0;font-size:14px;outline:none;min-width:0}
.setsearch__box select{width:auto;border:0;background:#F1F5F9;border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:700}
.rowacts{white-space:nowrap}.rowacts .btn{margin-left:6px}.rowacts .btn:first-child{margin-left:0}
@media(max-width:700px){.rowacts{white-space:normal}.rowacts .btn{margin:2px 4px 2px 0}}

/* ---- Doctor timings (Update 53): week timeline, month calendar, who's in ---- */
.tmx-top{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tmx-top button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;font:700 13px Manrope,sans-serif;color:#475569;cursor:pointer}
.tmx-top button:hover{border-color:#99D8CE;color:#0F766E}.tmx-top button.on{background:#0F766E;border-color:#0F766E;color:#fff}
.av{--hue:170;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:hsl(var(--hue) 55% 92%);color:hsl(var(--hue) 55% 28%);font-weight:800;font-size:12.5px;letter-spacing:.3px}
.av--lg{width:48px;height:48px;font-size:16px}
.tmx-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:0 12px;background:#fff}.tmx-search svg{color:#64748B;flex-shrink:0}
.tmx-search input{border:0;background:none;padding:9px 0;outline:none;min-width:0}.tmx-search:focus-within{border-color:#14B8A6;box-shadow:0 0 0 3px rgba(20,184,166,.15)}
.tmx-doc{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;border-bottom:1px solid #F1F5F9;background:#fff;padding:10px 12px;cursor:pointer;font:inherit}
.tmx-doc:hover{background:#F8FAFC}.tmx-doc.on{background:#ECFDF8;box-shadow:inset 3px 0 0 #0F766E}
.tmx-doc__txt{flex:1;min-width:0;display:flex;flex-direction:column}.tmx-doc__txt b{font-size:13.5px}.tmx-doc .pill{flex-shrink:0}
.tmx-wk{display:flex;gap:2px;margin-top:4px}.tmx-wk i{font-style:normal;width:15px;height:15px;border-radius:4px;background:#F1F5F9;color:#94A3B8;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tmx-wk i.on{background:#CCEFE8;color:#0F5F57}
.tmx-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.grow{flex:1;min-width:0}
.tmx-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 10px}
.tmx-stats>div{background:#F8FAFC;border:1px solid #EEF2F6;border-radius:10px;padding:9px 12px}.tmx-stats span{display:block;font-size:11px;color:#64748B;font-weight:600}.tmx-stats b{font-size:17px}
.tmx-stats .wide b{font-size:14px}
.tmx-banner{border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600;margin:8px 0}.tmx-banner--amber{background:#FEF3C7;color:#92400E}.tmx-banner--red{background:#FEE2E2;color:#991B1B}
.tmx-views{display:inline-flex;margin:6px 0 12px}
/* timeline */
.tl{--n:12;min-width:680px;position:relative}
.tl__axis,.tl__row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:stretch}
.tl__ticks{position:relative;height:22px}.tl__ticks span{position:absolute;top:2px;transform:translateX(-50%);font-size:10.5px;color:#94A3B8;font-weight:700;white-space:nowrap}
.tl__ticks span:first-child{transform:none}
.tl__row{border-top:1px solid #F1F5F9;min-height:58px}.tl__row.is-off .tl__lbl b{color:#94A3B8}.tl__row.is-today .tl__lbl b{color:#0F766E}
.tl__lbl{display:flex;flex-direction:column;justify-content:center;padding:6px 10px 6px 2px;min-width:0}.tl__lbl b{font-size:13.5px}
.tl__track{position:relative;background-image:repeating-linear-gradient(to right,#EEF2F6 0 1px,transparent 1px calc(100% / var(--n)));border-left:1px solid #EEF2F6}
.tl__row.is-off .tl__track{background-color:#FAFBFC}
.tl__blk{position:absolute;top:6px;bottom:6px;border-radius:9px;padding:5px 9px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-width:28px;font-size:12px;line-height:1.3;border:1px solid}
.tl__blk b{white-space:nowrap;font-size:12.5px}.tl__blk span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;opacity:.85}
.tl__blk--serial{background:#DDF4EF;border-color:#A7E0D4;color:#0B4F48}.tl__blk--slot{background:#E0ECFF;border-color:#B7CDF5;color:#1E3A8A}
.tl__blk.is-edit{outline:2px solid #F59E0B;outline-offset:1px}
.tl__acts{position:absolute;top:4px;right:4px;display:flex;gap:3px;opacity:0;transition:opacity .12s}
.tl__blk:hover .tl__acts,.tl__blk:focus-within .tl__acts{opacity:1}
.tl__acts button{border:0;border-radius:6px;background:rgba(255,255,255,.95);color:#0F766E;font:700 11px Manrope,sans-serif;padding:3px 7px;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.12)}
.tl__acts button[data-remove]{color:#B91C1C}
@media (hover:none){.tl__acts{opacity:1}}
.tl__now{position:absolute;top:0;bottom:0;width:2px;background:#EF4444;z-index:2}.tl__now:before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:#EF4444}
.tl__legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;padding:10px 0 2px;border-top:1px solid #F1F5F9;align-items:center}
.lg{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px;margin-right:4px}.lg--serial{background:#DDF4EF;border:1px solid #A7E0D4}.lg--slot{background:#E0ECFF;border:1px solid #B7CDF5}.lg--amber{background:#FEF3C7;border:1px solid #FCD34D}.lg--red{background:#FEE2E2;border:1px solid #FCA5A5}
.tl--roster .tl__axis,.tl--roster .tl__row{grid-template-columns:230px minmax(0,1fr)}
.tl__who{flex-direction:row;align-items:center;gap:9px;text-decoration:none;color:inherit}.tl__who>span:last-child{display:flex;flex-direction:column;min-width:0}.tl__who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* form */
.tmx-form{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:14px;background:#FCFDFD}
.tmx-days{display:flex;gap:6px;flex-wrap:wrap}
.daypill{position:relative;cursor:pointer}.daypill input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.daypill span{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:8px 10px;border-radius:10px;border:1px solid #CBD5E1;background:#fff;font-weight:700;font-size:13px;color:#475569}
.daypill input:checked+span{background:#0F766E;border-color:#0F766E;color:#fff}.daypill input:focus-visible+span{outline:2px solid #14B8A6;outline-offset:2px}
.tmx-presets{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0 4px}
.tmx-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px;align-items:end}.tmx-fields .span2{grid-column:span 2}
.segopt{display:flex;border:1px solid #CBD5E1;border-radius:10px;overflow:hidden;margin-top:3px}
.segopt label{flex:1;position:relative;cursor:pointer}.segopt input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.segopt span{display:block;text-align:center;padding:9px 8px;font-weight:700;font-size:13px;color:#475569;background:#fff}
.segopt label+label span{border-left:1px solid #CBD5E1}.segopt input:checked+span{background:#E6F4F1;color:#0F5F57}
.tmx-sum{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:10px;background:#ECFDF5;color:#065F46;font-size:13px;font-weight:600}.tmx-sum svg{flex-shrink:0;margin-top:2px}
/* month */
.tmx-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.tmx-nav{display:flex;gap:6px;align-items:center}.tmx-nav input{width:auto}.tmx-mt{min-width:150px;text-align:center;font-size:16px}
.tmx-legend{display:flex;gap:12px;font-size:12px;color:#475569}
.mcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mcal__h{font-size:11px;font-weight:800;color:#64748B;text-transform:uppercase;letter-spacing:.5px;padding:4px 6px}
.mc{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:92px;padding:6px 7px;border:1px solid #E8EDF2;border-radius:10px;background:#fff;text-align:left;font:inherit;cursor:pointer;min-width:0;overflow:hidden}
.mc:hover{border-color:#99D8CE}.mc.is-sel{border-color:#0F766E;box-shadow:0 0 0 2px rgba(15,118,110,.18)}
.mc.is-out{opacity:.45}.mc.is-past{background:#FAFBFC}.mc.is-off{background:#FAFBFC}
.mc__n{font-weight:800;font-size:13px}.mc.is-today .mc__n{background:#0F766E;color:#fff;border-radius:999px;padding:0 7px}
.mc__s{font-size:11px;font-weight:700;color:#0B4F48;background:#DDF4EF;border-radius:6px;padding:1px 6px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mc.is-leave{background:#FFFBEB;border-color:#FDE68A}.mc.is-holiday{background:#FEF2F2;border-color:#FECACA}
.mc__tag{font-size:11px;font-weight:800;border-radius:6px;padding:1px 6px}.is-leave .mc__tag{background:#FEF3C7;color:#92400E}.is-holiday .mc__tag{background:#FEE2E2;color:#991B1B}
.mc__why{font-size:10.5px;color:#64748B;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc__bk{display:block;width:100%;height:4px;border-radius:3px;background:#EEF2F6;margin-top:auto}.mc__bk i{display:block;height:100%;border-radius:3px;background:#14B8A6}
.mc__bn{font-size:10.5px;color:#64748B;font-weight:600}
.tmx-daydet{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px}
.tmx-dsess{display:flex;flex-direction:column;gap:6px;margin-top:8px}.tmx-dsess>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tmx-pill{display:inline-block;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px;background:#E6F4F1;color:#0F5F57}.tmx-pill--red{background:#FEE2E2;color:#991B1B}.tmx-pill--amber{background:#FEF3C7;color:#92400E}
.tmx-appts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:12px}.tmx-appts span{background:#F1F5F9;border-radius:6px;padding:2px 8px}
.tmx-away{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:12px;font-size:13px}
/* leave & holiday tiles */
.tmx-addrow{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:6px 0 12px}.tmx-addrow>div{min-width:150px}
.tmx-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.tmx-tile{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.tmx-tile.is-past{opacity:.55}
.tmx-date{width:46px;height:50px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;line-height:1.1}
.tmx-date b{font-size:18px}.tmx-date span{font-size:10.5px;font-weight:800;text-transform:uppercase}
.tmx-date--red{background:#FEE2E2;color:#991B1B}.tmx-date--amber{background:#FEF3C7;color:#92400E}
@media(max-width:900px){.tmx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tmx-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.mc{min-height:62px;padding:4px}.mc__s,.mc__bn,.mc__why{display:none}.mc__tag{font-size:9px;padding:0 3px}.tmx-legend{display:none}.tmx-fields .span2{grid-column:1/-1}.tmx-addrow>div{flex:1 1 100%}}
.mc__dot{display:none;width:6px;height:6px;border-radius:50%;background:#14B8A6}
@media(max-width:700px){.mc__dot{display:block}.tmx-head .btn{width:100%;justify-content:center}.tmx-bar h2{font-size:16px}}
@media(max-width:700px){.tl{min-width:560px}.tl__axis,.tl__row{grid-template-columns:92px minmax(0,1fr)}.tl--roster .tl__axis,.tl--roster .tl__row{grid-template-columns:150px minmax(0,1fr)}.tl__lbl b{font-size:12.5px}}

/* ---- Central Store (Update 54) ---- */
.store-intro{max-width:980px;margin:4px 0 0;line-height:1.55}
.phnav__n{display:inline-block;margin-left:6px;background:#DC2626;color:#fff;border-radius:999px;font-size:10.5px;font-weight:800;padding:0 6px;line-height:17px;vertical-align:1px}
.phnav a.on .phnav__n{background:#fff;color:#0F766E}
.st-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:14px;align-items:start}
.st-acts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0}
.st-acts button{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 4px;font:700 12.5px Manrope,sans-serif;color:#334155;cursor:pointer}
.st-acts button svg{color:#0F766E}.st-acts button.on{background:#0F766E;border-color:#0F766E;color:#fff}.st-acts button.on svg{color:#fff}
.st-acts button[data-act="waste"] svg{color:#B45309}.st-acts button[data-act="waste"].on{background:#B45309;border-color:#B45309}
.st-hist{max-height:320px;overflow:auto;margin-top:8px}.st-hist .reo{display:flex;gap:8px;justify-content:space-between;align-items:baseline}
.st-qty{font-weight:800;white-space:nowrap}.st-qty.in{color:#047857}.st-qty.out{color:#B91C1C}
.st-type{display:inline-block;font-size:10.5px;font-weight:800;border-radius:6px;padding:1px 7px;background:#F1F5F9;color:#475569}
.st-type--receive,.st-type--return{background:#DCFCE7;color:#166534}.st-type--issue{background:#E0F2FE;color:#075985}.st-type--waste{background:#FEF3C7;color:#92400E}.st-type--adjust{background:#EDE9FE;color:#5B21B6}
.st-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 4px}
.st-flow div{border:1px dashed #CBD5E1;border-radius:10px;padding:8px 10px;font-size:12px;color:#475569;background:#fff}.st-flow b{display:block;color:#0F172A;font-size:13px}
.st-req{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:0;border-bottom:1px solid #F1F5F9;background:#fff;padding:10px 12px;cursor:pointer;font:inherit}
.st-req:hover{background:#F8FAFC}.st-req.on{background:#ECFDF8;box-shadow:inset 3px 0 0 #0F766E}
.st-req .top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.st-badge{font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 8px;background:#F1F5F9;color:#475569;white-space:nowrap}
.st-badge--pending{background:#FEF3C7;color:#92400E}.st-badge--approved{background:#E0F2FE;color:#075985}.st-badge--partial{background:#EDE9FE;color:#5B21B6}.st-badge--issued{background:#DCFCE7;color:#166534}.st-badge--rejected,.st-badge--cancelled{background:#F1F5F9;color:#64748B}
.st-urgent{font-size:10.5px;font-weight:800;color:#fff;background:#DC2626;border-radius:6px;padding:1px 6px;margin-left:6px}
.st-pick{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}
.st-lines td input{width:90px;text-align:right}
.st-short{color:#B91C1C;font-size:11.5px;font-weight:700}
@media(max-width:900px){.st-grid{grid-template-columns:1fr}.st-flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Expenses (Update 55) */
.ex-form{margin-bottom:14px;border-color:#99F6E4}
.ex-kind{display:inline-flex;margin-bottom:12px}
.ex-top{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.ex-amt{width:190px;max-width:100%}.ex-amt input{font-size:22px;font-weight:800;padding:10px 12px}
.ex-chips{display:flex;flex-wrap:wrap;gap:6px}
.ex-chip{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:600;background:#fff;cursor:pointer;user-select:none}
.ex-chip input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.ex-chip:hover{border-color:#5EEAD4}.ex-chip.on,.ex-chip:has(input:checked){background:#0F766E;border-color:#0F766E;color:#fff}
.ex-chip:has(input:focus-visible){outline:2px solid #14B8A6;outline-offset:2px}
.ex-files{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px;padding:10px 12px;border:1px dashed #94A3B8;border-radius:12px;background:#F8FAFC}
.ex-up{cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.ex-upf{display:inline-flex;align-items:center;gap:6px;background:#E0F2F1;color:#115E59;border-radius:999px;padding:3px 4px 3px 10px;font-size:12px;font-weight:700}
.ex-upf button{border:0;background:#fff;border-radius:999px;width:20px;height:20px;line-height:18px;cursor:pointer;font-weight:800;color:#0F172A}
.ex-dup{display:flex;gap:8px;align-items:center;margin-top:10px;padding:8px 10px;background:#FEF3C7;border-radius:10px;font-weight:700;font-size:13px}.ex-dup input{width:auto}
.ex-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 12px 0}
.ex-filters--2{padding-bottom:4px}
.ex-more summary{cursor:pointer;font-size:13px;font-weight:700;color:#0F766E;padding:6px 4px}.ex-more[open]{flex-basis:100%}.ex-more .ex-filters{padding:4px 0 0}
.ex-sum{padding:8px 12px 10px;border-bottom:1px solid var(--line);font-size:13px}
.ex-clip{vertical-align:-2px;margin-left:6px;color:#0F766E}
.ex-due{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px;background:#F0FDFA;border-color:#99F6E4}
.ex-due__i{display:inline-flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:5px 6px 5px 10px}
.ex-dl{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;margin:4px 0 0;font-size:13.5px}.ex-dl dt{color:var(--muted);font-weight:700;font-size:12px;padding-top:1px}.ex-dl dd{margin:0}
.ex-h3{margin:16px 0 6px;font-size:14px}
.ex-thumbs{display:flex;flex-wrap:wrap;gap:8px}
.ex-thumb{display:flex;flex-direction:column;gap:3px;width:104px;text-decoration:none;color:var(--ink);font-size:11px}
.ex-thumb img,.ex-pdf{width:104px;height:104px;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#F1F5F9}
.ex-pdf{display:flex;align-items:center;justify-content:center;font-weight:800;color:#B91C1C;font-size:18px}
.ex-acts{margin-top:14px}
.ex-reason{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.ex-reason input{flex:1;min-width:180px}
.ex-tips{margin:0 0 8px;padding-left:18px;line-height:1.55}.ex-tips li{margin-bottom:6px}
.ex-big{font-size:30px;font-weight:800;letter-spacing:-.5px}
.ex-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:8px 0}
.ex-notes label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700}.ex-notes input{width:70px;padding:6px 8px}
.ex-bar{height:8px;border-radius:99px;background:#E2E8F0;overflow:hidden;min-width:60px}.ex-bar i{display:block;height:100%;background:#14B8A6;border-radius:99px}
.ex-trend{display:flex;gap:6px;align-items:flex-end;height:120px;padding:8px 0 0}
.ex-trend div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:10.5px;color:var(--muted);gap:3px;min-width:0}
.ex-trend b{display:block;width:100%;max-width:34px;background:#14B8A6;border-radius:6px 6px 0 0;min-height:2px}.ex-trend div.cur b{background:#0F766E}
.ex-up-bad{color:#B91C1C}.ex-down-good{color:#047857}
@media (max-width:700px){.ex-amt{width:100%}.ex-dl{grid-template-columns:96px 1fr}.ex-thumb,.ex-thumb img,.ex-pdf{width:88px}.ex-thumb img,.ex-pdf{height:88px}.ex-trend{height:96px}}
.ex-top input{min-height:50px}
/* Users & roles (Update 57) */
.ux-caution{margin-bottom:14px;padding:12px 16px;background:#FFFBEB;border-color:#FCD34D}
.ux-caution summary{cursor:pointer;list-style-position:outside}.ux-caution ul{margin:8px 0 2px;padding-left:18px;line-height:1.55}.ux-caution li{margin-bottom:5px}
.ux-chips{display:flex;flex-wrap:wrap;gap:6px}
.ux-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#E0F2F1;color:#115E59;font-weight:700;font-size:12.5px}
.ux-chip button{border:0;background:#fff;border-radius:999px;width:20px;height:20px;line-height:18px;cursor:pointer;font-weight:800;color:#B91C1C}
.ux-chip--extra{background:#DCFCE7;color:#166534}.ux-chip--blocked{background:#FEE2E2;color:#991B1B;text-decoration:line-through}.ux-chip--off{opacity:.5}
.ux-inline{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.ux-inline input,.ux-inline select{flex:1;min-width:160px}
.ux-grant{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.ux-grantform{margin-top:10px;padding:10px;border:1px dashed #94A3B8;border-radius:12px;background:#F8FAFC}
.ux-eff{margin-top:12px}.ux-eff summary{cursor:pointer}
.ux-matrix th{font-size:11px;white-space:nowrap}.ux-matrix td.c,.ux-matrix th.c{text-align:center}.ux-matrix td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:200px}
tr.ux-bad td{background:#FEF2F2}
/* New bill (Update 58) */
.bd-done{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;border:1px solid #86EFAC;background:#F0FDF4;border-radius:14px}
.bd-done .grow{flex:1;min-width:220px}.bd-done__ic{width:40px;height:40px;border-radius:50%;background:#16A34A;color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 40px}
.bd-empty{display:flex;gap:10px;align-items:center;margin-top:14px;padding:18px;border:1.5px dashed #CBD5E1;border-radius:12px;color:#64748B;font-size:13.5px}.bd-empty svg{flex:0 0 28px;color:#94A3B8}
.bd-recent{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--line);font-size:13px}
[data-bill-desk] .step--pay select,[data-bill-desk] .step--pay input{width:100%}
[data-bill-desk] .step--pay .payrow2 input{width:auto}
[data-bill-desk] .btn--big:disabled{opacity:.55;cursor:not-allowed}
[data-bill-desk] .whatfor .wf{min-height:40px;padding:6px 16px;font-size:13.5px}
[data-bill-desk] .pfound .avatar.lg{border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 56px}
[data-bill-desk] .fditems .mini{width:64px}[data-bill-desk] .fditems td.r{white-space:nowrap}
@media(max-width:760px){
  table.bd-lines thead{display:none}
  table.bd-lines,table.bd-lines tbody{display:block;width:100%}
  table.bd-lines tr{display:grid;grid-template-columns:auto 64px minmax(0,1fr) 32px;grid-template-areas:"name name amt amt" "rate qty disc x";gap:6px 8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
  table.bd-lines td{display:block;padding:0!important;border:0!important}
  table.bd-lines td:nth-child(1){grid-area:name}table.bd-lines td:nth-child(2){grid-area:rate;font-size:12.5px;color:var(--muted)}
  table.bd-lines td:nth-child(2)::after{content:" ×";}
  table.bd-lines td:nth-child(3){grid-area:qty}table.bd-lines td:nth-child(4){grid-area:disc}table.bd-lines td:nth-child(5){grid-area:amt;text-align:right}table.bd-lines td:nth-child(6){grid-area:x;text-align:right}
  table.bd-lines .mini{width:100%!important;height:36px}
  table.bd-lines td:nth-child(4) .mini::placeholder{content:"disc"}
}
.bd-sticky{display:none}
@media(max-width:1100px){.bd-sticky{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(15,23,42,.08)}
  .bd-sticky b{display:block;font-size:20px}.bd-sticky .btn{min-width:120px;height:44px}[data-bill-desk]{padding-bottom:70px}}
/* Invoice (Update 59) */
.ivhead{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;margin:6px 0 16px}
.ivhead__l{display:flex;gap:12px;align-items:flex-start}.ivhead h1{margin:0;font-size:24px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ivhead p{margin:4px 0 0}
.ivback{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--ink);text-decoration:none;margin-top:14px}
.ivkind{text-transform:uppercase;letter-spacing:.6px;font-weight:800}
.iv-st{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:800;line-height:1.5;white-space:nowrap}
.ivhead .iv-st{font-size:14px;padding:4px 12px}
.iv-st--ok{background:#DCFCE7;color:#166534}.iv-st--due{background:#FEF3C7;color:#92400E}.iv-st--draft{background:#E0F2FE;color:#075985}.iv-st--off{background:#F1F5F9;color:#64748B;text-decoration:line-through}
[data-invoice-page] .pcard .avatar.lg{border-radius:50%;display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex:0 0 52px;background:#E6F6F3;color:#0F766E;font-size:17px}
[data-invoice-page] .pcard .nm{font-size:18px;font-weight:800;color:var(--ink);text-decoration:none}[data-invoice-page] .pcard .nm:hover{text-decoration:underline}
.iv-from{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:#F1F5F9;color:#475569;font-size:11px;font-weight:700;vertical-align:1px}
.iv-lc{border:0;background:none;padding:2px 0;margin-top:2px;color:#94A3B8;font:700 11.5px Manrope,sans-serif;cursor:pointer}.iv-lc:hover{color:#B91C1C;text-decoration:underline}
.iv-lock{display:inline-flex;gap:4px;align-items:center;margin-top:3px;font-size:11.5px;color:#64748B;background:#F8FAFC;border-radius:6px;padding:1px 6px}
[data-invoice-page] .itable tr.cancelled td{opacity:.6}[data-invoice-page] .itable tr.cancelled b{text-decoration:line-through}
.iv-pay .chead{margin-bottom:6px}.iv-owe{font-size:22px}
.iv-payrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px;align-items:end}
.iv-payrow input[data-money="received"]{font-size:20px;font-weight:800;height:48px}
.iv-change{background:#F8FAFC;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.iv-change .lbl{margin:0}.iv-change b{font-size:20px;display:block}
.iv-dueafter{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:10px 12px;border-radius:10px;background:#F8FAFC;font-weight:700}.iv-dueafter b{font-size:18px}
.iv-locknote{display:flex;gap:6px;align-items:flex-start;margin:4px 2px 14px}
.iv-side{margin-top:0}.iv-tl{list-style:none;margin:10px 0 0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.iv-tl li{position:relative;padding:0 0 10px 6px}.iv-tl li::before{content:"";position:absolute;left:-21px;top:4px;width:10px;height:10px;border-radius:50%;background:#94A3B8;border:2px solid #fff}
.iv-tl--ok::before,.iv-tl--pay::before{background:#16A34A!important}.iv-tl--bad::before{background:#DC2626!important}.iv-tl--send::before{background:#0284C7!important}
.iv-ob{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.iv-ob:hover{background:#F8FAFC}
@media(max-width:760px){.ivhead h1{font-size:20px}.ivback{margin-top:10px}.ivhead .hbtns{width:100%}.ivhead .hbtns>*{flex:1}}
[data-invoice-page] .icancel .btn{white-space:nowrap}
/* Billing list (Update 59) */
.bl-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px;margin-bottom:14px}.bl-filter select{width:auto}
.bl-mine{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:700;white-space:nowrap}.bl-mine input{width:auto}
.bl-sum{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13.5px}
.bl-table td{vertical-align:middle}.bl-av{width:32px;height:32px;font-size:11.5px;background:#E6F6F3;color:#0F766E}
.bl-k{display:inline-block;margin:1px 3px 1px 0;padding:2px 8px;border-radius:6px;font-size:11.5px;font-weight:800;background:#F1F5F9;color:#475569}
.k-opd{background:#E0F2FE;color:#075985}.k-lab{background:#F3E8FF;color:#6B21A8}.k-img{background:#FCE7F3;color:#9D174D}.k-svc{background:#ECFCCB;color:#3F6212}.k-pkg{background:#FEF3C7;color:#92400E}.k-ph{background:#DCFCE7;color:#166534}.k-ipd{background:#FFE4E6;color:#9F1239}
.bl-acts{justify-content:flex-end;flex-wrap:nowrap}
.pend__h .urow .avatar{background:#E6F6F3;color:#0F766E}
@media(max-width:760px){
  table.bl-table thead{display:none}table.bl-table,table.bl-table tbody{display:block;width:100%}
  table.bl-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pat amt" "bill st" "for act";gap:6px 10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
  table.bl-table td{display:block;padding:0!important;border:0!important}
  table.bl-table td:nth-child(1){grid-area:bill;font-size:12.5px}table.bl-table td:nth-child(1) br{display:none}table.bl-table td:nth-child(1) .muted{margin-left:6px}
  table.bl-table td:nth-child(2){grid-area:pat}table.bl-table td:nth-child(3){grid-area:for}table.bl-table td:nth-child(4){grid-area:st;text-align:right}
  table.bl-table td:nth-child(5){grid-area:amt;text-align:right}table.bl-table td:nth-child(6){grid-area:act}
  table.bl-table td[colspan]{grid-column:1/-1}
  .bl-filter .tmx-search{flex-basis:100%}
}
.ux-roleinfo{margin:6px 0 0;padding-left:16px;font-size:12.5px;color:#475569;line-height:1.45}
.ux-guide__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.ux-guide__c{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.ux-guide__c p{margin:4px 0 0;line-height:1.45;color:#475569}
.ux-guide__c--hi{border-color:#5EEAD4;background:#F0FDFA}
/* Billing & counters (Update 61) */
.bs-quick{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px}
.bs-desks{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.bs-desk{margin:0;padding:14px;border-left:4px solid #CBD5E1}.bs-desk.is-on{border-left-color:#0F766E}
.bs-desk__h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.bs-switch{display:inline-flex;gap:8px;align-items:center;cursor:pointer;white-space:nowrap;font-size:13px}.bs-switch input{position:absolute;opacity:0;width:1px;height:1px}
.bs-switch span{width:40px;height:22px;border-radius:999px;background:#CBD5E1;position:relative;transition:.15s;flex:0 0 40px}.bs-switch span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.15s}
.bs-switch input:checked+span{background:#0F766E}.bs-switch input:checked+span::after{left:21px}.bs-switch input:focus-visible+span{outline:2px solid #14B8A6;outline-offset:2px}
.bs-who{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.bs-who .seg{display:inline-flex}
.bs-picked{margin-top:10px;align-items:center}
.bs-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;margin-top:8px;max-height:260px;overflow:auto;padding:8px;border:1px dashed #94A3B8;border-radius:12px;background:#F8FAFC}
.bs-person{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:10px;background:#fff;border:1px solid var(--line);cursor:pointer;font-size:13px}.bs-person input{width:auto}.bs-person.on{border-color:#0F766E;background:#F0FDFA}
.bs-release{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-size:13px}.bs-release input{width:auto}
@media(max-width:760px){.bs-desks{grid-template-columns:1fr}.bs-desk__h{flex-direction:column}}
.bs-desks{align-items:start}
/* Profile (Update 62) */
.pf-hero{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(260px,auto);gap:20px;align-items:center;margin-bottom:14px}
.pf-photo{position:relative;width:112px;height:112px}.pf-photo img,.pf-ini{width:112px;height:112px;border-radius:50%;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#E6F6F3;color:#0F766E;font-size:36px;font-weight:800;border:4px solid #fff;box-shadow:0 0 0 1px var(--line)}
.pf-cam{position:absolute;right:2px;bottom:2px;width:36px;height:36px;border-radius:50%;background:#0F766E;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;border:3px solid #fff}
.pf-id h2{margin:0;font-size:22px}.pf-id p{margin:2px 0 8px}.pf-bday{font-size:12px;vertical-align:4px}
.pf-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin:0;font-size:13px}.pf-facts dt{color:var(--muted);font-size:11.5px;font-weight:700}.pf-facts dd{margin:0;font-weight:600}
.pf-meter{height:6px;border-radius:99px;background:#E2E8F0;overflow:hidden;width:120px;margin:4px 0 2px}.pf-meter i{display:block;height:100%;background:#14B8A6}
.pf-strength{height:6px;border-radius:99px;background:#E2E8F0;overflow:hidden;margin-top:6px}.pf-strength i{display:block;height:100%;transition:.2s}
.pf-strength .s0,.pf-strength .s1{background:#DC2626}.pf-strength .s2{background:#F59E0B}.pf-strength .s3{background:#14B8A6}.pf-strength .s4{background:#16A34A}
[data-pf-password] input,[data-pf-details] input:disabled{width:100%}[data-pf-details] input:disabled{background:#F8FAFC;color:#64748B}
.userbox a.ub{display:flex;gap:10px;align-items:center;color:inherit;text-decoration:none}.userbox img.avatar{object-fit:cover}
@media(max-width:900px){.pf-hero{grid-template-columns:auto minmax(0,1fr)}.pf-facts{grid-column:1/-1}}
@media(max-width:520px){.pf-hero{grid-template-columns:1fr;justify-items:center;text-align:center}.pf-id .ux-chips{justify-content:center}.pf-facts{text-align:left}}
/* Logo (Update 63) */
.logo-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.logo-prev{width:300px;max-width:100%;height:110px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;padding:10px;background:repeating-conic-gradient(#F1F5F9 0% 25%,#fff 0% 50%) 50%/16px 16px}
.logo-prev img{max-width:100%;max-height:100%}.logo-prev.is-empty{background:#F8FAFC;border-style:dashed;color:#94A3B8;font-weight:700;font-size:13px}
.logo-side{flex:1;min-width:240px}.logo-side label.btn{cursor:pointer}.seg label{padding:7px 14px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer}.seg label.on{background:#0F766E;color:#fff}
/* Update 64 — sign in, forgot password, temporary password */
.pw-wrap{position:relative}.pw-wrap input{padding-right:64px}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:#0F766E;font-weight:700;font-size:12.5px;cursor:pointer;padding:6px}
.fp-steps{display:flex;gap:6px;list-style:none;padding:0;margin:10px 0 14px;counter-reset:fp}.fp-steps li{flex:1;font-size:11.5px;color:#94A3B8;border-top:3px solid #E2E8F0;padding-top:5px;counter-increment:fp}.fp-steps li::before{content:counter(fp) ". "}.fp-steps li.on{color:#0F172A;font-weight:700;border-color:#0F766E}.fp-steps li.done{color:#0F766E;border-color:#99D5CC}
.fp-how{display:grid;gap:8px;margin-top:10px}.fp-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1.5px solid var(--line,#E2E8F0);background:#fff;border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit}.fp-opt:hover,.fp-opt:focus{border-color:#0F766E;background:#F0FDFA}
.fp-code{font-size:24px;letter-spacing:8px;text-align:center;font-weight:800}
.temp-pw{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#FFF7ED;border:1.5px solid #FDBA74;color:#7C2D12;border-radius:12px;padding:12px 14px;margin:0 0 14px}.temp-pw b{display:block}.temp-pw .btn{margin-left:auto}
.u-login{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;background:#F1F5F9;border-radius:6px;padding:1px 6px}
.crop-bg{position:fixed;inset:0;background:rgba(15,23,42,.6);z-index:80;display:grid;place-items:center;padding:16px}[x-cloak]{display:none!important}
.crop-box{background:#fff;border-radius:16px;padding:18px;width:100%;max-width:340px;box-shadow:0 20px 50px rgba(0,0,0,.3)}.crop-box h3{margin:0 0 2px;font-size:16px}
.crop-stage{position:relative;margin:12px auto;touch-action:none;cursor:grab;border-radius:12px;overflow:hidden;background:#0F172A;max-width:100%}.crop-stage canvas{display:block}
.crop-ring{position:absolute;inset:0;pointer-events:none;border-radius:50%;box-shadow:0 0 0 999px rgba(15,23,42,.55);outline:2px solid #fff;outline-offset:-2px}
.crop-zoom{width:100%;margin:2px 0 12px;accent-color:#0F766E}
.pf-must{outline:2px solid #FDBA74;outline-offset:2px}
/* Update 65 — staff profile */
.sp-contacts,.sp-docs{display:grid;gap:8px}.sp-contact,.sp-doc{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:10px 12px;flex-wrap:wrap}
.sp-doc__ic{width:40px;height:40px;border-radius:10px;background:#F1F5F9;display:grid;place-items:center;font-size:11px;font-weight:800;color:#475569;flex:0 0 40px}.sp-doc__b{flex:1;min-width:180px}.sp-doc__b .iv-st{margin-top:4px;display:inline-block}
.sp-cform{border:1.5px dashed #99D5CC;border-radius:12px;padding:12px;margin-top:10px;background:#F8FFFD}.sp-save{margin-top:16px;align-items:center;gap:10px}
.sp-tabs{overflow-x:auto;white-space:nowrap}.ux-chip--off{background:#F1F5F9;color:#64748B}
.hr-alerts{display:grid;gap:6px;margin:14px 0 0}.hr-alerts a{color:inherit}
.iv-st.sp-bad{background:#FEE2E2;color:#B91C1C;text-decoration:none}.phform textarea{width:100%}
/* Update 66 — IPD & Beds */
.ipd-kpis{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:12px;margin-bottom:14px}.ipd-k{padding:14px 16px}.ipd-k span{display:block;font-size:12px;color:#64748B;font-weight:700}.ipd-k b{display:block;font-size:22px;margin:2px 0}.ipd-k em{font-style:normal;font-size:12px}
.ipd-bar{height:7px;border-radius:9px;background:#E2E8F0;overflow:hidden;margin:4px 0}.ipd-bar i{display:block;height:100%;background:linear-gradient(90deg,#14B8A6,#0F766E);border-radius:9px}
.ipd-bar2{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.ipd-find{position:relative;flex:1;min-width:220px}.ipd-found{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.15);border-radius:10px}
.wardh{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.ward-occ{min-width:110px;text-align:right}.ward-occ .ipd-bar{width:110px}.ward-edit{border:1.5px dashed #99D5CC;border-radius:12px;padding:10px;margin:8px 0;background:#F8FFFD}
.bd--maintenance,.bedt--maintenance{background:repeating-linear-gradient(45deg,#F1F5F9,#F1F5F9 6px,#E2E8F0 6px,#E2E8F0 12px)!important;color:#64748B}.bedt__home{display:block;font-style:normal;font-size:10.5px;font-weight:800;color:#047857;margin-top:2px}
.ipd-more summary{cursor:pointer;color:#0F766E;font-weight:700;margin-top:6px}.vt-form{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.vt-bp{display:flex;align-items:center;gap:4px}.vt-bp input{min-width:0}.vt-table td,.vt-table th{text-align:center;white-space:nowrap}.vt-table td:first-child{text-align:left}.vt-bad{color:#B91C1C;font-weight:800}
@media (max-width:900px){.ipd-kpis{grid-template-columns:1fr 1fr}.vt-form{grid-template-columns:1fr 1fr}}
a.kpi--beds{color:inherit;text-decoration:none}.kpi--beds .ipd-bar{margin:4px 0 2px}
.dash-beds{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:-4px 0 16px}.dash-bed{padding:12px 14px;color:inherit;text-decoration:none}.dash-bed span{display:block;font-size:12px;color:#64748B;font-weight:700}.dash-bed b{font-size:20px;display:block}.dash-bed b small{font-size:12px;color:#64748B;font-weight:600}.dash-bed:hover{border-color:#99D5CC}
.ipdgrid>div,.ipdgrid>aside{min-width:0}
.admreq__list{max-height:262px;overflow-y:auto}
/* Update 68 — stock valuation */
.val-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;margin-bottom:12px}.val-filters input[type=search]{flex:1;min-width:200px}.val-filters select{width:auto;max-width:220px}
.val-t td.mono,.val-t td .iv-st{white-space:nowrap}.val-tot td{background:#F8FAFC;border-top:2px solid #0F172A}.val-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
@media (max-width:600px){.val-filters select{max-width:none;flex:1 1 45%}}
.login__brand{text-align:center;margin-bottom:6px}.login__brand .brand-logo{margin:0 auto 10px!important}.login__brand h1{margin:6px 0 2px}.login__brand .sb__logo{margin-bottom:12px!important}
/* Update 70 — pharmacy counter (point of sale) */
.pos-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 0 14px}.pos-k{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;color:inherit;text-decoration:none;display:flex;flex-direction:column}a.pos-k:hover{border-color:#99D5CC}
.pos-k span{font-size:11.5px;color:#64748B;font-weight:700}.pos-k b{font-size:19px;line-height:1.3}.pos-k em{font-style:normal;font-size:11.5px;color:#64748B}
.pos-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}.pos-side{position:sticky;top:76px;display:grid;gap:14px}
.pos-cart{padding:14px}.pos-find{position:relative}.pos-find__ic{position:absolute;left:14px;top:15px;color:#94A3B8;pointer-events:none}.pos-find input{height:48px;font-size:16px;padding-left:42px;border-radius:12px;border-width:1.5px}.pos-find input:focus{border-color:#0F766E}
.pos-res{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.16);overflow:hidden;max-height:360px;overflow-y:auto}
.pos-rx{position:relative;margin-top:8px}.pos-res button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid #F1F5F9;background:#fff;padding:10px 12px;font:inherit;cursor:pointer}.pos-res button:hover,.pos-res button:focus{background:#F0FDFA}.pos-res button:disabled{opacity:.5;cursor:not-allowed}
.pos-res__n{flex:1;min-width:0;display:flex;flex-direction:column}.pos-res__p{white-space:nowrap;font-weight:700}.pos-stock{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:99px;background:#DCFCE7;color:#166534;white-space:nowrap}.pos-stock.is-low{background:#FEF3C7;color:#92400E}.pos-stock.is-out{background:#FEE2E2;color:#991B1B}
.pos-cust{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:10px 12px;border-radius:12px;background:#F8FAFC;border:1px solid var(--line)}.pos-cust__who{display:flex;gap:10px;align-items:center;min-width:0}.pos-walk{background:#E2E8F0!important;color:#475569!important}
.pos-lines{margin-top:12px;border-top:1px solid var(--line)}.pos-line{display:grid;grid-template-columns:minmax(0,1fr) auto 110px 28px;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid #F1F5F9}.pos-line__n{display:flex;flex-direction:column;min-width:0}.pos-line__q{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.pos-line__a{text-align:right;display:flex;flex-direction:column}.pos-line.is-short{background:#FFF7ED}.pos-step{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}.pos-step button{width:32px;border:0;background:#F8FAFC;font-size:18px;font-weight:700;cursor:pointer;color:#0F766E}.pos-step button:hover{background:#E6F6F3}
.pos-step input{width:52px;border:0;text-align:center;font-weight:700;padding:6px 2px;-moz-appearance:textfield}.pos-step input::-webkit-inner-spin-button{-webkit-appearance:none}
.pos-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:34px 10px;color:#94A3B8;text-align:center}.pos-empty b{color:#475569}.pos-cart__f{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.pos-pay{padding:16px}.pos-tot>div{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.pos-tot select{width:auto;padding:4px 8px}.pos-tot__pay{border-top:2px solid #0F172A;margin-top:6px;padding-top:8px!important}.pos-tot__pay b{font-size:26px}
.pos-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}.pos-methods button{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:9px 4px;font:inherit;font-weight:700;font-size:13px;cursor:pointer}.pos-methods button.on{border-color:#0F766E;background:#0F766E;color:#fff}
.pos-rec input{font-size:17px;font-weight:700}.pos-change{margin-top:6px;font-size:14px}.pos-change b{font-size:18px;color:#047857}.pos-sell{width:100%;justify-content:center;margin-top:12px}
.pos-recent{padding:14px}.pos-recent__r{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #F1F5F9}.pos-recent__r div{display:flex;flex-direction:column}
.pos-stockbox{margin-top:14px;padding:12px 14px}.pos-stockbox summary{cursor:pointer}.pos-stockgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;margin-top:10px}
@media (max-width:1100px){.pos-grid{grid-template-columns:1fr}.pos-side{position:static}.pos-kpis{grid-template-columns:repeat(3,1fr)}.pos-stockgrid{grid-template-columns:1fr}}
@media (max-width:600px){.pos-kpis{grid-template-columns:1fr 1fr}.pos-line{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}.pos-line__q{grid-column:1}.pos-line__a{grid-column:2;grid-row:1}.pos-line .x{grid-column:2;grid-row:2;justify-self:end}.pos-find input{font-size:15px}}
@media (min-width:861px){.app{background:linear-gradient(to right,var(--sb) 232px,transparent 232px)}.main{background:var(--bg,#F4F6F5)}}
.fd-sec{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#0F766E;margin:6px 0 -6px;padding-top:8px;border-top:1px dashed var(--line)}.fd-sec:first-child{border-top:0;padding-top:0;margin-top:0}
.tp-more__g{display:grid;grid-template-columns:1fr 1.4fr .6fr;gap:6px}.tp-more__g input{font-size:12px;padding:5px 8px}@media (max-width:700px){.tp-more__g{grid-template-columns:1fr}}
.sig-prev{border:1px dashed var(--line);border-radius:10px;min-height:70px;display:flex;align-items:center;justify-content:center;padding:8px;background:#fff}.sig-prev img{max-height:70px;max-width:100%}
/* Update 75: Certificates */
.btn--sm{padding:6px 10px;min-height:32px;height:auto;font-size:12px}
.ct-form{padding:16px 18px;margin-bottom:14px;border-top:3px solid #0F766E}.ct-form__hd{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.ct-form__hd h2{margin:0;font-size:17px}
.ct-patient{margin-bottom:12px}.ct-pchip{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#F0FDFA;border:1px solid #99F6E4;border-radius:10px;padding:8px 12px}
.ct-psearch{position:relative}.ct-plist{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.ct-plist li+li{border-top:1px solid var(--line)}.ct-plist button{display:block;width:100%;text-align:left;background:#fff;border:0;padding:8px 12px;font:inherit;cursor:pointer}.ct-plist button:hover,.ct-plist button:focus{background:#F0FDFA}
.ct-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}.ct-grid .ct-wide{grid-column:1/-1}.ct-grid input,.ct-grid select,.ct-grid textarea{width:100%}
.ct-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.ct-actions p{margin:0;flex:1;min-width:200px}
.ct-kpis{margin-bottom:12px}.ct-kpi{text-align:left;font:inherit;cursor:pointer;border:1px solid var(--line)}.ct-kpi.on{border-color:#0F766E;box-shadow:0 0 0 2px #99F6E4}
.ct-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;margin-bottom:12px}.ct-filters input[type=search]{flex:1;min-width:200px}
.ct-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.ct-acts .btn{margin:0}.ct-acts .danger{color:#B91C1C}
@media (max-width:900px){.ct-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.ct-grid{grid-template-columns:1fr}.ct-form{padding:12px}.ct-acts{justify-content:flex-start}.ct-t td.r{text-align:left}}
/* Update 76: Vitals station */
.vs-kpis{margin-bottom:12px}
.vs-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,1fr);gap:14px;align-items:start}
.vs-list{padding:0;overflow:hidden}.vs-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.vs-bar input{flex:1;min-width:180px}
.vs-cnt{font-style:normal;background:#F59E0B;color:#fff;border-radius:99px;padding:0 6px;font-size:10px;margin-left:3px}.seg button.on .vs-cnt{background:#fff;color:#0F766E}
.vs-rows{list-style:none;margin:0;padding:0;max-height:calc(100vh - 300px);min-height:220px;overflow:auto}.vs-row+.vs-row{border-top:1px solid var(--line)}
.vs-row button{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;text-align:left;background:#fff;border:0;padding:10px 14px;font:inherit;color:inherit;cursor:pointer}
.vs-row button:hover{background:#F8FAFC}.vs-row.on button{background:#F0FDFA;box-shadow:inset 3px 0 0 #0F766E}
.vs-tok{min-width:46px;height:40px;padding:0 8px;border-radius:10px;background:#0B3D3A;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.vs-who{display:flex;flex-direction:column;gap:1px;min-width:0}.vs-who b{font-size:14px}.vs-line{color:#0F766E;font-weight:700}.vs-alert{color:#B91C1C;font-weight:700}
.vs-st{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.vs-go{font-size:12px;font-weight:700;color:#0F766E}
.vs-empty{padding:28px 16px;text-align:center}
.vs-side{position:sticky;top:76px}.vs-form{padding:16px 18px;border-top:3px solid #0F766E}
.vs-pt{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}.vs-pt .avatar{width:44px;height:44px;font-size:15px;flex:none}.vs-pt h2{margin:0;font-size:17px}.vs-pt p{margin:2px 0 0}
.vs-x{margin-left:auto;border:0;background:#F1F5F9;width:32px;height:32px;border-radius:8px;font-size:20px;line-height:1;cursor:pointer;color:#475569}
.vs-prev{background:#F8FAFC;border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:8px 0 0;color:#334155}
.vs-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.vs-f{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;min-width:0}.vs-f label{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:700;color:#475569;margin-bottom:4px}
.vs-f.is-warn{border-color:#FCD34D;background:#FFFBEB}.vs-f.is-bad{border-color:#FCA5A5;background:#FEF2F2}.vs-f.is-ok{border-color:#A7F3D0}
.vs-f--bp,.vs-f--pain,.vs-f--note{grid-column:1/-1}
.vs-in,.vs-bp{display:flex;align-items:center;gap:6px}.vs-in input,.vs-bp input{flex:1;min-width:0;font-size:18px;font-weight:700;height:42px;padding:6px 10px}.vs-in em,.vs-bp em{font-style:normal;font-size:12px;color:#64748B;white-space:nowrap}.vs-bp i{font-style:normal;font-size:22px;color:#94A3B8}
.vs-f small{display:block;margin-top:3px}
.vs-flag{font-size:10.5px;font-weight:800;border-radius:99px;padding:1px 8px;text-transform:uppercase;letter-spacing:.3px}.vs-flag--ok{background:#DCFCE7;color:#166534}.vs-flag--warn{background:#FEF3C7;color:#92400E}.vs-flag--bad{background:#FEE2E2;color:#B91C1C}
.vs-pain{display:grid;grid-template-columns:repeat(11,1fr);gap:4px}.vs-pain button{height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;font:700 13px Manrope,sans-serif;cursor:pointer;color:#334155;padding:0}
.vs-pain button.on{color:#fff;border-color:transparent}.vs-pain button.on.p0,.vs-pain button.on.p1,.vs-pain button.on.p2,.vs-pain button.on.p3{background:#16A34A}.vs-pain button.on.p4,.vs-pain button.on.p5,.vs-pain button.on.p6{background:#D97706}.vs-pain button.on.p7,.vs-pain button.on.p8,.vs-pain button.on.p9,.vs-pain button.on.p10{background:#DC2626}
.vs-f--note input{width:100%}
.vs-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.vs-actions .btn{margin:0}
.vs-idle{padding:24px 20px;text-align:center}.vs-idle h2{margin:6px 0 4px;font-size:17px}.vs-idle__ic{width:52px;height:52px;margin:0 auto;border-radius:14px;background:#F0FDFA;display:flex;align-items:center;justify-content:center;color:#0F766E}.vs-idle__ic svg{width:26px;height:26px}
.vs-ref{list-style:none;margin:14px 0 0;padding:10px 12px;background:#F8FAFC;border-radius:10px;text-align:left;color:#475569;line-height:1.7}
@media (max-width:1000px){.vs-grid{grid-template-columns:1fr}.vs-grid--open .vs-side{order:-1}.vs-side{position:static}.vs-grid:not(.vs-grid--open) .vs-side{display:none}.vs-rows{max-height:none}}
@media (max-width:600px){.vs-form{padding:12px}.vs-fields{gap:8px}.vs-row button{grid-template-columns:auto 1fr;padding:10px 12px}.vs-st{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between}.vs-pain{grid-template-columns:repeat(6,1fr)}.vs-actions .btn{flex:1;justify-content:center}.vs-actions .btn--dark{flex-basis:100%;order:-1}}
[data-vs-panel]{scroll-margin-top:76px}.vs-calc{font-size:18px;height:42px;display:flex;align-items:center;padding:0 2px}
/* Update 77: add-on turn-on dialog */
.ad-box{max-width:520px}.ad-box h3{margin:2px 0 6px;font-size:19px}.ad-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7C3AED}
.ad-fee{background:#F0FDFA;border:1px solid #99F6E4;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.ad-fee b{font-size:20px;color:#0B3D3A}.ad-fee span{font-size:12.5px;color:#334155}
.ad-note{background:#FFFBEB;border:1px solid #FDE68A;border-radius:8px;padding:6px 10px;margin:10px 0 0;color:#92400E}
.ad-pay{display:grid;gap:6px}.ad-opt{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;font-size:13.5px}.ad-opt.on{border-color:#0F766E;background:#F0FDFA}.ad-opt input{margin:0}
.ad-agree{display:flex;gap:8px;align-items:flex-start;margin-top:12px}
.mod-lock{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.mod-price{font-size:12px;font-weight:700;color:#0B3D3A;white-space:nowrap}.mod-tag--plan{background:#DCFCE7;color:#166534}.mod-tag--wait{background:#FEF3C7;color:#92400E}.mod-tag--trial{background:#E0E7FF;color:#3730A3}
/* Update 78: Sample Collection hub + specimen containers */
.sc-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,1fr);gap:14px;align-items:start}
.sc-scan input{min-width:260px}.sc-kpis{margin-bottom:12px}
.sc-tok{flex-direction:column;line-height:1;font-size:16px;gap:2px}.sc-tok small{font-size:9px;font-weight:600;opacity:.8}
.sc-caps{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:2px}
.sc-cap{display:inline-block;width:14px;height:18px;border-radius:4px 4px 2px 2px;box-shadow:inset 0 -5px 0 rgba(255,255,255,.55),0 0 0 1px rgba(0,0,0,.12);vertical-align:middle}.sc-cap--sm{width:11px;height:14px}
.sc-form{border-top-color:#7C3AED}
.sc-step{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}.sc-step b{font-size:14px}.sc-step p{margin:2px 0 6px}
.sc-n{flex:none;width:24px;height:24px;border-radius:50%;background:#0B3D3A;color:#fff;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.sc-chk{display:flex;gap:8px;align-items:flex-start;margin:4px 0;padding:7px 10px;border:1px solid var(--line);border-radius:8px}.sc-chk:has(input:checked){border-color:#16A34A;background:#F0FDF4}
.sc-tubes{display:grid;gap:8px;margin-top:8px}
.sc-tube{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:9px 10px;cursor:pointer;background:#fff}.sc-tube.on{border-color:#0F766E;background:#F0FDFA}
.sc-tube__cap{width:20px;height:30px;border-radius:6px 6px 3px 3px;box-shadow:inset 0 -12px 0 rgba(255,255,255,.6),0 0 0 1px rgba(0,0,0,.15)}
.sc-tube__t{display:flex;flex-direction:column;min-width:0}.sc-tube__t b{font-size:13px}.sc-code{color:#64748B}
.sc-h{font-size:13px;margin:14px 0 6px;color:#475569}.sc-done{list-style:none;margin:0 0 8px;padding:0}.sc-done li{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:5px 0;border-bottom:1px dashed var(--line)}
.sc-sop{text-align:left;margin:14px 0 0;padding:10px 12px 10px 28px;background:#F8FAFC;border-radius:10px;color:#475569;line-height:1.6}
.sc-size{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:4px}
.lab-sp{border:1px solid var(--line);border-radius:10px;padding:4px 10px;margin:10px 0}.lab-sp__row{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:7px 0}.lab-sp__row+.lab-sp__row{border-top:1px solid var(--line)}.lab-sp__row.is-rej{opacity:.6}
.lab-sp__a{display:flex;gap:4px}.lab-sp__a .btn{margin:0}.lab-sp__a .danger{color:#B91C1C}
.lab-rej{border:1px solid #FECACA;background:#FEF2F2;border-radius:10px;padding:10px;margin-bottom:10px}.lab-rej__r{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
@media (max-width:1000px){.sc-grid{grid-template-columns:1fr}.sc-grid--open .vs-side{order:-1}.sc-grid:not(.sc-grid--open) .vs-side{display:none}.sc-scan input{min-width:0;width:100%}}
@media (max-width:600px){.lab-sp__row{grid-template-columns:auto 1fr}.lab-sp__row .pill,.lab-sp__a{grid-column:2}.sc-tube{grid-template-columns:auto auto 1fr}.sc-code{grid-column:3}}
[data-sc-panel]{scroll-margin-top:76px}
/* Update 80: Help & support */
.hc-tabs{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
.hc-search{padding:10px 12px;margin-bottom:12px}.hc-search input{width:100%;font-size:15px}
.hc-group{margin-bottom:12px;padding:12px 16px}.hc-group h3{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#64748B}.hc-group ul{list-style:none;margin:0;padding:0}.hc-group li+li{border-top:1px solid var(--line)}
.hc-group button{display:flex;justify-content:space-between;width:100%;background:none;border:0;padding:10px 2px;font:600 14px Manrope,sans-serif;color:#0F172A;cursor:pointer;text-align:left}.hc-group button:hover{color:#0F766E}.hc-group button span{color:#94A3B8}
.hc-art{padding:18px 22px;max-width:860px}.hc-art h2{margin:4px 0 10px;font-size:22px}.hc-cat{display:inline-block;margin-top:12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#0F766E}
.hc-body{font-size:15px;line-height:1.7}.hc-body h3{font-size:16px;margin:16px 0 4px}.hc-body ul{padding-left:20px}.hc-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.hc-new{max-width:860px}.hc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.hc-wide{grid-column:1/-1}.hc-grid input:not([type=file]),.hc-grid select,.hc-grid textarea{width:100%}
.hc-tk{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.hc-tk--open{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr)}
.hc-th{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.hc-th h2{margin:2px 0 0;font-size:17px}
.hc-msg{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;font-size:14px;line-height:1.55}.hc-msg--team{background:#F0FDFA;border-color:#99F6E4}.hc-msg__h{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}
.hc-file{display:inline-block;margin-top:6px;font-size:13px}.hc-thread textarea{width:100%;margin-top:6px}.hc-ra{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.hc-ra .btn{margin:0}
@media (max-width:900px){.hc-tk--open{grid-template-columns:1fr}.hc-tk--open>.card:first-child{order:2}.hc-grid{grid-template-columns:1fr}}
.spk{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.spk div{background:#F8FAFC;border-radius:10px;padding:8px 10px}.spk span{display:block;font-size:11px;color:#64748B;font-weight:600}.spk b{font-size:20px}
.spbar{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px}
@media (max-width:900px){.spk{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sc-alert{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.sc-alert .btn{margin:0}
.btn--wa{background:#25D366;color:#fff}.btn--wa:hover{background:#1EBE5A}
@media (max-width:600px){.userbox .ub>div{display:none}.top__name{max-width:48vw}}

.wf.has:not(.on){border-color:#0F766E;color:#0F766E}.wfbox__h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.wfbox__h .lbl{margin:0}

/* invoice page: other bills, patient tags, approval box */
.iv-ob{align-items:center}.iv-ob>span:first-child{min-width:0}.iv-ob .r{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;flex:0 0 auto;min-width:96px}.iv-ob .r b{font-size:13.5px;white-space:nowrap}
.pcard{align-items:center}.pcard__tags{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}.pcard__tags .badge{display:inline-flex;align-items:center;min-height:30px;padding:4px 12px;font-size:12px;border-radius:99px;line-height:1}
.pcard__tags label.badge{gap:8px;padding:3px 4px 3px 12px}.pcard__tags label.badge select{min-height:24px;border-radius:99px;border:1px solid var(--line);background:#fff;font-weight:700;color:var(--ink)}
.warnbox--act{justify-content:space-between}.warnbox--act>span{flex:1 1 260px}.warnbox--act .btn{flex:0 0 auto;margin-left:auto}.pcard__tags label.badge select{max-width:220px}

/* demo hospital */
.demo-bar{background:#0B3D3A;color:#CCFBF1;font-size:12.5px;text-align:center;padding:6px 12px;line-height:1.4}.demo-bar b{color:#fff}
.demo-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:9999;max-width:min(560px,calc(100vw - 24px));background:#7C2D12;color:#fff;font-weight:700;font-size:14px;padding:12px 18px;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.25)}
.demo-roles{margin:4px 0 12px}.demo-roles__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.demo-role{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;cursor:pointer;font:inherit}.demo-role:hover{border-color:#0F766E;background:#F0FDFA}.demo-role b{font-size:14px;color:#0F172A}.demo-role span{font-size:11.5px;color:#64748B;line-height:1.3}
.demo-bar__sw{margin-left:8px;background:#fff;color:#0B3D3A;border:0;border-radius:999px;padding:2px 10px;font:600 12px inherit;cursor:pointer}
/* Demo hospital sign-in (Update 97) */
.dl{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px 32px;background:radial-gradient(1200px 500px at 50% -120px,#CCFBF1 0,#F0FDFA 45%,#F8FAFC 100%)}
.dl__wrap{width:100%;max-width:760px;margin:0}
.dl__head{text-align:center;margin-bottom:22px}
.dl__logo{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#14B8A6,#0F766E);color:#fff;display:grid;place-items:center;font:800 26px Manrope,system-ui,sans-serif;margin:0 auto;box-shadow:0 8px 24px -8px rgba(15,118,110,.55)}
.dl__badge{display:inline-flex;align-items:center;gap:7px;margin:16px 0 8px;padding:5px 12px;border-radius:999px;background:#fff;border:1px solid #99F6E4;color:#0F766E;font:700 12px Manrope,system-ui,sans-serif;letter-spacing:.02em}
.dl__badge i{width:7px;height:7px;border-radius:50%;background:#10B981;box-shadow:0 0 0 3px rgba(16,185,129,.2)}
.dl__head h1{margin:0;font:800 30px/1.15 Manrope,system-ui,sans-serif;color:#0F172A;letter-spacing:-.02em}
.dl__head p{margin:10px auto 0;max-width:520px;color:#475569;font-size:15px;line-height:1.55}
.dl__admin{width:100%;display:flex;align-items:center;gap:16px;text-align:left;padding:18px 20px;border:0;border-radius:18px;cursor:pointer;font:inherit;color:#fff;background:linear-gradient(120deg,#0F766E,#115E59 60%,#134E4A);box-shadow:0 14px 30px -14px rgba(15,118,110,.7);transition:transform .15s,box-shadow .15s}
.dl__admin:hover{transform:translateY(-2px);box-shadow:0 18px 36px -14px rgba(15,118,110,.8)}
.dl__admin .dl__ico{background:rgba(255,255,255,.16);color:#fff}
.dl__admin .dl__txt b{color:#fff;font-size:18px}.dl__admin .dl__txt span{color:#CCFBF1}
.dl__go{margin-left:auto;width:38px;height:38px;flex:none;border-radius:50%;background:#fff;color:#0F766E;display:grid;place-items:center;font-size:18px;font-weight:700;transition:transform .15s}
.dl__admin:hover .dl__go{transform:translateX(3px)}
.dl__or{display:flex;align-items:center;gap:12px;margin:24px 0 14px;color:#64748B;font-size:13px;font-weight:600}
.dl__or::before,.dl__or::after{content:"";flex:1;height:1px;background:#E2E8F0}
.dl__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dl__role{--c:#0F766E;display:flex;align-items:center;gap:12px;text-align:left;padding:13px 14px;background:#fff;border:1px solid #E2E8F0;border-radius:14px;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
.dl__role:hover{border-color:var(--c);box-shadow:0 8px 20px -12px var(--c);transform:translateY(-1px)}
.dl__role:focus-visible,.dl__admin:focus-visible{outline:3px solid #5EEAD4;outline-offset:2px}
.dl__ico{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff)}
.dl__ico--lg{width:52px;height:52px;border-radius:14px}.dl__ico--lg svg{width:26px;height:26px}
.dl__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.dl__txt b{font:700 15px Manrope,system-ui,sans-serif;color:#0F172A}
.dl__txt span{font-size:12.5px;color:#64748B;line-height:1.35}
a.dl__role{text-decoration:none;color:inherit}
.dl__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.dl__notes{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dl__notes li{font-size:12.5px;line-height:1.45;color:#475569;background:rgba(255,255,255,.7);border:1px dashed #CBD5E1;border-radius:12px;padding:10px 12px}
.dl__notes b{color:#0F172A}
@media (max-width:720px){.dl{padding:28px 16px}.dl__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dl__notes{grid-template-columns:1fr}.dl__head h1{font-size:25px}.dl__head p{font-size:14px}}
@media (max-width:420px){.dl__role{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.dl__admin{padding:16px;gap:12px}.dl__admin .dl__txt b{font-size:16px}.dl__go{width:32px;height:32px}}
@media (min-width:721px){.dl__wrap{max-width:860px}.dl__grid{grid-template-columns:repeat(5,minmax(0,1fr))}.dl__role{flex-direction:column;align-items:flex-start;gap:10px;padding:14px}}
/* Queue board (Update 99) */
.qb__kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.qb__kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}.qb__kpi span{display:block;font-size:12px;color:#64748B;font-weight:600}
.qb__kpi b{font:800 26px/1.2 Manrope,sans-serif;color:#0F172A}.qb__kpi b small{font-size:13px;font-weight:700;color:#64748B}
.qb__kpi .teal{color:#0F766E}.qb__kpi .slow,.qcard__w.slow{color:#B45309}.qb__kpi .late,.qcard__w.late{color:#DC2626}
.qb__bar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.qb__search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 12px;color:#94A3B8}
.qb__search input{border:0;outline:0;background:none;padding:10px 0;font:inherit;font-size:14px;width:100%;color:var(--ink)}
.qb__search:focus-within{border-color:#14B8A6;box-shadow:0 0 0 3px rgba(20,184,166,.15)}
.qb__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:14px;align-items:start}
.qcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
.qcard__h{display:flex;align-items:center;gap:10px}
.qcard__av{width:40px;height:40px;flex:none;border-radius:12px;background:#E0F2F1;color:#0F766E;display:grid;place-items:center;font:800 14px Manrope,sans-serif}
.qcard__who{flex:1;min-width:0;display:flex;flex-direction:column}.qcard__who b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qcard__who span{font-size:12px;color:#64748B}
.qcard__room{flex:none;background:#0F172A;color:#fff;border-radius:8px;padding:4px 10px;font:700 12px Manrope,sans-serif}
.qcard__now{display:flex;align-items:center;gap:12px;background:#F8FAFC;border:1px dashed #CBD5E1;border-radius:12px;padding:10px 12px}
.qcard__now.is-on{background:#ECFDF5;border:1px solid #A7F3D0}
.qcard__serial{font:800 30px/1 Manrope,sans-serif;color:#0F766E;min-width:64px}.qcard__serial--idle{color:#CBD5E1}
.qcard__pt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.qcard__pt b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qcard__lbl{font-size:11px;font-weight:700;color:#64748B;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:5px}
.qcard__now.is-on .qcard__lbl{color:#047857}.qcard__lbl .dot{width:7px;height:7px;border-radius:50%;background:#10B981;animation:qpulse 1.6s infinite}
@keyframes qpulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.5)}100%{box-shadow:0 0 0 7px rgba(16,185,129,0)}}
.qcard__act{flex:none;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.qcard__prog{height:5px;background:#F1F5F9;border-radius:9px;overflow:hidden}.qcard__prog i{display:block;height:100%;background:linear-gradient(90deg,#14B8A6,#0F766E);border-radius:9px}
.qcard__meta{display:flex;justify-content:space-between;font-size:12px;color:#64748B;margin-top:-4px}.qcard__meta b{color:#0F172A}
.qcard__list{list-style:none;margin:0;padding:0;border-top:1px solid #F1F5F9}
.qcard__list li{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 2px;border-bottom:1px solid #F1F5F9;font-size:13px}
.qcard__list li:last-child{border-bottom:0}.qcard__list li.is-next{background:linear-gradient(90deg,#F0FDFA,transparent);border-radius:8px}
.qcard__s{font:800 13px Manrope,sans-serif;color:#0F172A}.qcard__n{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qcard__n em{font-style:normal;flex:none}.qcard__w{font-size:12px;font-weight:700;color:#047857;white-space:nowrap}
.qcard__empty,.qcard__more{display:block!important;text-align:center;color:#94A3B8;font-size:12.5px}
.pill--teal{background:#CCFBF1;color:#0F766E}.pill--amber{background:#FEF3C7;color:#92400E}
@media (max-width:900px){.qb__kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.qb__kpi:nth-child(n+4){display:none}}
@media (max-width:480px){.qb__kpi{padding:10px}.qb__kpi b{font-size:22px}.qcard__now{flex-wrap:wrap}.qcard__act{width:100%;justify-content:center}}
.qcard__room--none{background:#F1F5F9;color:#94A3B8}.qcard__now:not(.is-on){min-height:58px}
/* OPD vitals: clear "saved" signal; example values look empty (Update 101) */
.vit-ok{font-size:12px;font-weight:800;color:#047857;background:#D1FAE5;border-radius:99px;padding:2px 10px;animation:vitok .4s ease-out}
@keyframes vitok{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.vin input::placeholder{color:#CBD5E1;font-weight:400}
/* Settings → Queue & TV voice (Update 103) */
.qvs__sec{margin-bottom:14px;max-width:980px}.qvs__sec h2{margin:0 0 12px}
.qvs__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.qvs__row label{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:13px;color:#334155}
.qvs__row select{font:inherit;font-weight:500;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.qvs__say{display:flex;flex-direction:column;gap:8px;margin-top:12px;background:#F8FAFC;border:1px dashed #CBD5E1;border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5;color:#334155}
.qvs__say .bn{font-family:'Noto Sans Bengali',Manrope,sans-serif}
.qvs__tag{display:inline-block;background:#0F766E;color:#fff;border-radius:6px;padding:1px 7px;font:700 11px Manrope,sans-serif;margin-right:6px}
.qvs__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.qvs__card{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}
.qvs__card:hover{border-color:#5EEAD4}.qvs__card.is-on,.qvs__card:has(input:checked){border-color:#0F766E;background:#F0FDFA;box-shadow:0 0 0 3px rgba(20,184,166,.15)}
.qvs__card input{position:absolute;opacity:0;pointer-events:none}
.qvs__ico{flex:none;width:40px;height:40px;border-radius:12px;background:#FCE7F3;color:#BE185D;display:grid;place-items:center;font-size:18px;font-weight:800}
.qvs__card--ms .qvs__ico{background:#E0F2FE;color:#0369A1}
.qvs__txt{flex:1;min-width:0;display:flex;flex-direction:column}.qvs__txt b{font-size:14.5px}.qvs__txt span{font-size:12px;color:#64748B}
.qvs__play{flex:none;width:38px;height:38px;border-radius:50%;border:0;background:#0F766E;color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .15s}
.qvs__play:hover{transform:scale(1.07)}.qvs__play.is-playing{background:#BE185D;animation:qvpulse 1.2s infinite}
@keyframes qvpulse{0%{box-shadow:0 0 0 0 rgba(190,24,93,.45)}100%{box-shadow:0 0 0 10px rgba(190,24,93,0)}}
.qvs__msg{margin:10px 0 0;background:#FEF3C7;color:#78350F;border-radius:10px;padding:9px 12px;font-size:13px}
@media (max-width:760px){.qvs__row{grid-template-columns:repeat(2,minmax(0,1fr))}.qvs__grid{grid-template-columns:1fr}}
.qvs__full{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13px;color:#334155;margin-bottom:10px}
.qvs__full textarea{font:inherit;font-weight:500;padding:10px 12px;border:1px solid var(--line);border-radius:10px;resize:vertical}
.qvs__tick{display:flex;align-items:stretch;border-radius:10px;overflow:hidden;margin-top:6px;background:#FDE68A;color:#422006;font-weight:700;font-size:13px}
.qvs__tick>span{flex:none;background:#422006;color:#FDE68A;padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center}
.qvs__tick>div{flex:1;overflow:hidden;display:flex;align-items:center}.qvs__tick-run{white-space:nowrap;padding-left:100%;animation:qvtick 30s linear infinite}
@keyframes qvtick{from{transform:translateX(0)}to{transform:translateX(-100%)}}

.bn,[lang=bn],.qvs__tick-run{letter-spacing:0!important}.qvs__tick-run{font-family:'Noto Sans Bengali',Manrope,sans-serif;line-height:1.5}
/* Appointments → Available now (Update 107) */
.avnow{margin-bottom:14px}.avnow__h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.avnow__h h2{margin:0;display:flex;align-items:center;gap:8px}
.avnow__dot{width:9px;height:9px;border-radius:50%;background:#10B981;animation:qpulse 1.6s infinite;display:inline-block}
.avnow__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:10px;max-height:420px;overflow:auto;padding:2px}
.avnow__card{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff}
.avnow__card.is-full{background:#F8FAFC;border-style:dashed}.avnow__card.is-full .avnow__av,.avnow__card.is-full .avnow__who{filter:grayscale(1) blur(.4px);opacity:.55}.avnow__card.is-full .avnow__who em{color:#B91C1C}
.avnow__av{flex:none;width:40px;height:40px;border-radius:12px;background:#DCFCE7;color:#166534;display:grid;place-items:center;font:800 13px Manrope,sans-serif}
.avnow__who{flex:1;min-width:0;display:flex;flex-direction:column}.avnow__who b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avnow__who span{font-size:12px;color:#64748B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avnow__who em{font-style:normal;font-size:11.5px;color:#047857;font-weight:600}
.avnow__card .btn{flex:none;white-space:nowrap}
@media (max-width:480px){.avnow__card{flex-wrap:wrap}.avnow__card .btn{width:100%;justify-content:center}}
/* Appointments → booking form: doctor hours, two-week day strip, times, summary (Update 108) */
.bk__top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px;align-items:start}
.bk__top label{display:block;margin-bottom:4px}.bk__top select,.bk__top input{width:100%}
.bk__docinfo{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.bk__docinfo span{font-size:12px;background:#F0FDFA;color:#0F766E;border:1px solid #CCFBF1;border-radius:99px;padding:2px 10px;font-weight:600}
.bk__docinfo .warn{background:#FEF3C7;color:#92400E;border-color:#FDE68A}
.bk__when{margin-top:14px}
.bk__lbl{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.bk__lbl b{font-size:14px}
.bk__other{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:#64748B;font-weight:600}.bk__other input{width:auto;padding:5px 8px}
.bk__days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity}
.bkday{flex:0 0 132px;scroll-snap-align:start;display:flex;flex-direction:column;gap:2px;text-align:left;border:1.5px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff;cursor:pointer;font:inherit}
.bkday b{font-size:13.5px}.bkday small{font-size:11px;color:#94A3B8}.bkday__h{font-size:11.5px;color:#334155;line-height:1.35}
.bkday em{font-style:normal;font-size:12px;font-weight:800;margin-top:3px}
.bkday--free em{color:#047857}.bkday--free:hover{border-color:#5EEAD4;background:#F0FDFA}
.bkday--full em{color:#B91C1C}.bkday--ended em,.bkday--off em{color:#94A3B8}.bkday--leave em{color:#B45309}
.bkday:disabled{cursor:default;background:#F8FAFC}.bkday:disabled .bkday__h,.bkday:disabled b{color:#94A3B8}
.bkday.on{border-color:#0F766E;background:#F0FDFA;box-shadow:0 0 0 3px rgba(20,184,166,.18)}
.bk__times{margin-top:12px}.sesrow__h{display:block;font-size:12px;font-weight:700;color:#475569;margin:6px 0}
.bk__foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.bk__sum{flex:1;min-width:240px;font-size:13.5px;color:#0F172A;background:#F8FAFC;border-radius:10px;padding:9px 12px}
.bk__foot .btn:disabled{opacity:.5;cursor:not-allowed}
@media (max-width:760px){.bk__top{grid-template-columns:1fr 1fr}.bk__doc{grid-column:1/-1}.bk__other{margin-left:0}}

/* Hospify Pro wordmark on the sign-in screens (when the hospital has no logo of its own) */
.hp-logo{display:block;height:48px;width:auto;max-width:80%;margin:0 auto}
@media (max-width:420px){.hp-logo{height:40px}}

.avnow__full{flex:none;text-align:right;font-size:12px;font-weight:800;color:#B91C1C;background:#FEE2E2;border-radius:10px;padding:5px 10px;line-height:1.25}.avnow__full small{font-weight:600;color:#7F1D1D}
/* Appointments day view: busiest first, status, queue (Update 110) */
.apfilter{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.apfilter button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font:700 12.5px Manrope,sans-serif;cursor:pointer;color:#334155}
.apfilter button.on{background:#0F766E;border-color:#0F766E;color:#fff}.apfilter .muted{margin-left:auto}
.aph__top{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.aph__top b{font-size:14.5px}
.apst{flex:none;font-size:10.5px;font-weight:800;border-radius:99px;padding:2px 8px;white-space:nowrap}
.apst--now{background:#DCFCE7;color:#166534}.apst--later{background:#E0F2FE;color:#075985}.apst--ended{background:#F1F5F9;color:#64748B}.apst--leave{background:#FEF3C7;color:#92400E}
.apcount{display:flex;flex-wrap:wrap;gap:6px;margin:5px 0 2px}
.apcount__n{font-size:12px;background:#F8FAFC;border:1px solid var(--line);border-radius:8px;padding:2px 8px;color:#475569}.apcount__n b{color:#0F172A;font-size:13px}
.apcount__n.is-q{background:#FEF3C7;border-color:#FDE68A}.apcount__n.is-free b{color:#047857}.apcount__n.is-full{background:#FEE2E2;border-color:#FECACA}.apcount__n.is-full b{color:#B91C1C}
.apcol--now{border-top:3px solid #10B981}.apcol--later{border-top:3px solid #38BDF8}
.apcol--quiet{opacity:.6}.apcol--quiet:hover{opacity:1}
.apc__top{display:flex;gap:8px;align-items:baseline}.apc__sr{flex:none;min-width:26px;color:#0F766E}.apc__nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apmore{width:100%;border:1px dashed #CBD5E1;background:#fff;border-radius:8px;padding:6px;font:700 12px Manrope,sans-serif;color:#0F766E;cursor:pointer;margin-bottom:6px}
.apbook{margin-top:6px;width:100%;justify-content:center}
.apmain{min-width:0}
/* Booking confirmation SMS preview (Update 111) */
.smsbox{border-radius:12px;padding:10px 14px;margin-bottom:12px;border:1px solid #A7F3D0;background:#F0FDF4;max-width:720px}
.smsbox.is-held{border-color:#FDE68A;background:#FFFBEB}
.smsbox__h{display:flex;align-items:center;gap:8px}.smsbox__h b{font-size:13px}.smsbox__h .x{margin-left:auto}
.smsbox__ic{width:26px;height:26px;border-radius:8px;background:#fff;display:grid;place-items:center;font-size:14px;border:1px solid var(--line)}
.smsbox__st{font-size:11px;font-weight:800;border-radius:99px;padding:2px 8px;background:#DCFCE7;color:#166534}.smsbox.is-held .smsbox__st{background:#FEF3C7;color:#92400E}
.smsbox__t{margin:8px 0 0;background:#fff;border:1px solid var(--line);border-radius:12px 12px 12px 4px;padding:9px 12px;font-size:13.5px;line-height:1.5;color:#0F172A}
.smsbox__why{margin:6px 0 0;font-size:12px;color:#92400E}
.bk__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}.bkday{flex:none;min-width:0}
@media (max-width:900px){.bk__days{display:flex;overflow-x:auto}.bkday{flex:0 0 128px}}
/* Update 117: certificate form with live preview; letters started from Emergency / IPD */
.ct-src{background:#F0FDFA;border:1px solid #99F6E4;color:#115E59;border-radius:8px;padding:8px 12px;font-size:13px;margin:0 0 10px}
.ct-split{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.ct-split .ct-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ct-preview{--s:.52;position:sticky;top:12px;background:#F1F5F9;border:1px solid var(--line,#E2E8F0);border-radius:12px;padding:10px;width:calc(830px * var(--s) + 22px)}
.ct-preview.is-big{--s:.78}
.ct-preview__hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.ct-preview__hd .btn{margin-left:auto}
.ct-preview__frame{width:calc(830px * var(--s));height:calc(1175px * var(--s));overflow:hidden;background:#fff;border-radius:6px;box-shadow:0 4px 18px rgba(15,23,42,.12)}
.ct-preview__frame iframe{width:830px;height:1175px;border:0;transform:scale(var(--s));transform-origin:0 0;display:block;background:#fff}
@media (max-width:1250px){.ct-split{grid-template-columns:1fr}.ct-preview{position:static;margin:0 auto}}
@media (max-width:600px){.ct-split .ct-grid{grid-template-columns:1fr}.ct-preview{--s:.4}.ct-preview.is-big{--s:.4}}
.er-letters{margin-top:10px;padding:10px 12px;border:1px dashed #94A3B8;border-radius:10px;background:#F8FAFC}
.ct-filters .seg{flex-wrap:wrap;max-width:100%}.ct-filters .seg button{white-space:nowrap}
.er-bill{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;padding:9px 12px;border-radius:10px;background:#F0FDFA;border:1px solid #99F6E4;font-size:13px}
/* Update 122: expense entry — numbered sections, category tiles, summary bar */
.exf{padding:0;overflow:hidden}
.exf-hd{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:16px 18px 6px}.exf-hd h2{margin:0;font-size:18px}.exf-hd p{margin:2px 0 0}
.exf-kind{margin:6px 18px 4px;display:inline-flex}
.exf-sec{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:14px 18px;border-top:1px solid var(--line,#E2E8F0)}
.exf-sec:first-of-type{border-top:0}
.exf-n{width:26px;height:26px;border-radius:50%;background:#CCFBF1;color:#0F766E;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.exf-b h3{margin:3px 0 10px;font-size:14px;font-weight:800;color:#0F172A}
.exf-row2{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:end}
.exf-row2 input{height:48px}
.exf-money{position:relative}.exf-money>span:first-child{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-weight:800;color:#64748B;font-size:18px;pointer-events:none}
.exf-money input{padding-left:34px!important;font-size:22px;font-weight:800;width:100%}
.exf-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:8px}
.exf-cat{position:relative;display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line,#E2E8F0);border-radius:10px;background:#fff;cursor:pointer;font-size:13px;font-weight:600;line-height:1.25;min-height:46px;transition:border-color .12s,background .12s}
.exf-cat input{position:absolute;opacity:0;pointer-events:none}
.exf-ic{flex:0 0 30px;height:30px;border-radius:8px;background:#F1F5F9;color:#475569;display:flex;align-items:center;justify-content:center}
.exf-cat:hover{border-color:#5EEAD4;background:#F0FDFA}
.exf-cat.on,.exf-cat:has(input:checked){border-color:#0F766E;background:#F0FDFA;box-shadow:0 0 0 1px #0F766E inset}
.exf-cat.on .exf-ic,.exf-cat:has(input:checked) .exf-ic{background:#0F766E;color:#fff}
.exf-cat:has(input:focus-visible){outline:2px solid #14B8A6;outline-offset:2px}
.exf-hint{margin:8px 0 0;font-size:12.5px;color:#0F766E;background:#F0FDFA;border-radius:8px;padding:6px 10px}
.exf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}.exf-grid input,.exf-grid select{width:100%}
.exf-files{margin-top:0}.exf-files-t{display:flex;flex-direction:column;margin-right:auto;font-size:13px}
.exf .ex-dup,.exf [data-exp-limit]{margin:0 18px 10px!important}
.exf-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px;background:#F8FAFC;border-top:1px solid var(--line,#E2E8F0);position:sticky;bottom:0;z-index:2}
.exf-sum{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;font-size:13px;color:#475569}.exf-sum b{font-size:18px;color:#0F172A}
@media (max-width:900px){.exf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.exf-row2{grid-template-columns:1fr}.exf-grid{grid-template-columns:1fr}.exf-sec{grid-template-columns:1fr;gap:6px;padding:12px 14px}.exf-n{display:none}.exf-hd{padding:14px 14px 4px}.exf-kind{margin:6px 14px 4px}.exf-cats{grid-template-columns:repeat(2,minmax(0,1fr))}.exf-cat{padding:8px;gap:7px;font-size:12.5px}.exf-ic{flex-basis:26px;height:26px}.exf-foot{padding:10px 14px}.exf-foot .hbtns{width:100%}.exf-foot .hbtns .btn{flex:1}}
/* Update 124: dashboard attention cards — four in a row, clickable, green when clear */
.alerts{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
a.alert-card{color:inherit;text-decoration:none;transition:box-shadow .12s,transform .12s}a.alert-card:hover{box-shadow:0 4px 14px rgba(217,119,6,.18);transform:translateY(-1px)}
.alert-card--ok{background:#F0FDF4!important;border-color:#86EFAC!important}.alert-card--ok .n{background:#16A34A!important}.alert-card--ok span:not(.n){color:#166534!important}
/* OPD right panel: My queue | Prescriptions (Update 128) */
.qtabs{display:flex;gap:4px;padding:8px 8px 0;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
.qtabs button{flex:1;border:0;background:none;font:700 13.5px Manrope,sans-serif;color:#64748B;padding:9px 6px 10px;border-bottom:2.5px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.qtabs button.on{color:#0F172A;border-bottom-color:#0F766E}
.qtabs__n{min-width:20px;padding:1px 6px;border-radius:99px;background:#F1F5F9;color:#475569;font-size:11px}
.qtabs button.on .qtabs__n{background:#CCFBF1;color:#0F766E}
.qsub{padding:8px 16px;border-bottom:1px solid var(--line)}
.rxs{padding:10px 12px 12px}.rxs input[type=search]{width:100%}
.rxs__row{border:1px solid var(--line);border-radius:12px;padding:10px 11px;margin-top:8px;background:#fff}
.rxs__row--on{border-color:#0F766E;background:#F0FDFA}
.rxs__top{display:flex;justify-content:space-between;gap:8px}.rxs__top b{overflow-wrap:anywhere}
.rxs__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;flex:none}
.rxs__cc{margin-top:4px;color:#334155}
.rxs__acts{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.rxs__acts .btn{flex:1;justify-content:center;text-align:center;padding:5px 8px;font-size:12.5px}
/* OPD with no patient in the room: queue on the left, prescription report fills the rest (Update 128.1) */
.opd.opd--idle{grid-template-columns:320px minmax(0,1fr)}
.opd--idle .opd__r{grid-column:auto;grid-template-columns:1fr;position:sticky;top:76px}
.qtabs__t{flex:1;display:flex;align-items:center;gap:6px;font:700 13.5px Manrope,sans-serif;color:#0F172A;padding:9px 8px 10px}
.rxp{padding:0;overflow:hidden}.rxp__head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--line)}
.rxp__search{flex:0 1 360px}.rxp__search input{width:100%}
.rxp__row{display:grid;grid-template-columns:104px minmax(150px,1fr) minmax(150px,1.3fr) auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}
.rxp__row:last-child{border-bottom:0}.rxp__row:hover{background:#F8FAFC}
.rxp__when,.rxp__who,.rxp__dx{display:flex;flex-direction:column;gap:2px;min-width:0}.rxp__when .mono{font-size:11.5px;color:#0F766E}.rxp__who b,.rxp__dx b{overflow-wrap:anywhere}
.rxp__acts{display:flex;gap:6px;justify-content:flex-end}.rxp__acts .btn{padding:5px 11px;font-size:12.5px}
@media(max-width:1250px){.rxp__row{grid-template-columns:96px minmax(0,1fr) minmax(0,1.2fr)}.rxp__acts{grid-column:2/-1;justify-content:flex-start}}
@media(max-width:600px){.rxp__row{grid-template-columns:1fr}.rxp__when{flex-direction:row;gap:10px;align-items:center}.rxp__acts{grid-column:auto}.rxp__acts .btn{flex:1;text-align:center;justify-content:center}}
.rxp__empty{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;padding:36px 12px}
@media(max-width:860px){.opd.opd--idle{grid-template-columns:1fr}.opd--idle .opd__r{position:static}.rxp__search{flex:1 1 100%}}
/* Staff file: view papers in the page, attach a copy later (Update 132) */
.sp-doc__ic--on{border:0;cursor:pointer;background:#CCFBF1;color:#0F766E;font-weight:800}.sp-doc__ic--on:hover{background:#99F6E4}
.sp-attach{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0 2px}
.sp-viewer__box{width:min(980px,96vw);max-width:none;height:min(90vh,1000px);display:flex;flex-direction:column;padding:0;overflow:hidden}
.sp-viewer__head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}
.sp-viewer__body{flex:1;min-height:0;background:#E2E8F0;display:flex;align-items:center;justify-content:center;overflow:auto}
.sp-viewer__body iframe{width:100%;height:100%;border:0;background:#fff}.sp-viewer__body img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;box-shadow:0 2px 12px rgba(15,23,42,.15)}
.sp-viewer__none{display:flex;flex-direction:column;gap:4px;text-align:center;padding:40px}
@media(max-width:600px){.sp-viewer__box{width:100vw;height:100dvh;border-radius:0}.sp-viewer__head .hbtns{width:100%}.sp-viewer__head .hbtns .btn{flex:1;text-align:center;justify-content:center}}
/* Settings → Messages & SMS (Update 133) */
.mset__top{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;margin-top:14px}
.mset__bal{display:flex;flex-direction:column;gap:4px;border-top:4px solid #0F766E}.mset__bal>b{font:800 40px/1.1 Manrope,sans-serif;color:#0F766E}.mset__bal>b.mset__low{color:#B45309}
.mset__warn{background:#FEF3C7;color:#92400E;border-radius:8px;padding:6px 9px;font-size:12.5px;font-weight:600}
.mset__rule{margin-top:8px;font-size:12px;color:#475569;background:#F8FAFC;border:1px dashed #CBD5E1;border-radius:8px;padding:8px 10px}.mset__rule span{font-weight:800;color:#0F172A}
.mset__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mset__k{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}.mset__k span{font-size:12px;color:#64748B;font-weight:600}.mset__k b{font:800 24px Manrope,sans-serif}.mset__k small{font-size:11.5px;color:#64748B}
.mset__k--ext{border-left:4px solid #F59E0B}.mset__k--int{border-left:4px solid #10B981;background:#F0FDF4}
.mset__packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.mset__pack{position:relative;border:1.5px solid var(--line);border-radius:14px;background:#fff;padding:16px 12px 12px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font:inherit;text-align:center}
.mset__pack:hover{border-color:#0F766E}.mset__pack.is-on{border-color:#0F766E;background:#F0FDFA;box-shadow:0 0 0 3px rgba(15,118,110,.15)}
.mset__pack b{font:800 24px Manrope,sans-serif}.mset__pack>span{font-size:12px;color:#64748B}.mset__pack strong{font-size:17px;color:#0F766E;margin-top:6px}.mset__pack small{font-size:11px;color:#64748B}
.mset__pack em{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:#0F766E;color:#fff;font-style:normal;font-size:10.5px;font-weight:700;border-radius:99px;padding:2px 9px;white-space:nowrap}
.mset__buy{margin-top:14px;border:1px solid #99F6E4;background:#F0FDFA;border-radius:12px;padding:14px}
.mset__two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.mset__sec{margin-top:0;border-radius:0 0 12px 12px;border-top:0}
.mset__choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.mset__opt{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}.mset__opt input{width:auto;margin-top:3px}.mset__opt.is-on{border-color:#0F766E;background:#F0FDFA}
.mset__tag{font-style:normal;font-size:10.5px;font-weight:700;background:#CCFBF1;color:#0F766E;border-radius:99px;padding:1px 7px;margin-left:4px}
.mset__auto{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:10px 0}
@media(max-width:900px){.mset__top,.mset__two{grid-template-columns:1fr}.mset__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Messages: internal (free) vs external (costs) — Update 133 */
.msg-tabs{align-items:center;flex-wrap:wrap}
.msg-tabs__g{font:800 10.5px Manrope,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:0 6px 0 12px;color:#64748B;display:inline-flex;align-items:center;gap:5px}
.msg-tabs__g i{font-style:normal;letter-spacing:0;text-transform:none;font-size:10.5px;border-radius:99px;padding:1px 7px}
.msg-tabs__g--int i{background:#DCFCE7;color:#15803D}.msg-tabs__g--ext{border-left:1px solid var(--line);margin-left:6px}.msg-tabs__g--ext i{background:#FEF3C7;color:#B45309}
.msg-credit{display:inline-flex;align-items:center;gap:8px;border:1px solid #99F6E4;background:#F0FDFA;border-radius:10px;padding:6px 12px;text-decoration:none;color:#0F172A}
.msg-credit span{font-size:12px;color:#475569}.msg-credit b{font:800 17px Manrope,sans-serif;color:#0F766E}.msg-credit i{font-style:normal;font-size:12px;font-weight:700;color:#0F766E;text-decoration:underline}
.msg-credit.is-low{border-color:#FCD34D;background:#FFFBEB}.msg-credit.is-low b{color:#B45309}
.msg-ch{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.msg-ch label{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer}.msg-ch label input{width:auto;position:absolute;opacity:0}
.msg-ch label.is-on{border-color:#0F766E;background:#F0FDFA}.msg-ch label span{font-size:11.5px;color:#64748B}
.msg-prev{margin-top:10px;background:#F8FAFC;border:1px dashed #CBD5E1;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:3px}.msg-prev div{white-space:pre-wrap;font-size:13.5px}
.msg-est{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:10px}
.msg-est>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.msg-est span{font-size:11.5px;color:#64748B}.msg-est b{font:800 19px Manrope,sans-serif}.msg-est small{font-size:11px;color:#64748B}
.msg-camp{border-top:1px solid var(--line);padding:10px 0}.msg-camp__n{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:#475569}
/* Staff & HR: attendance month sheet (Update 135) */
.hm-wrap{max-height:70vh}.hm{font-size:11.5px}.hm th,.hm td{padding:4px 2px;text-align:center;white-space:nowrap}.hm th span{font-weight:600;color:#94A3B8;font-size:10px}
.hm .hm-name{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:170px;padding-left:10px;white-space:normal}.hm thead th{position:sticky;top:0;background:#F8FAFC;z-index:2}.hm thead th.hm-name{z-index:3}
.hm i{font-style:normal;display:inline-block;min-width:22px;border-radius:5px;padding:1px 3px;font-weight:800;font-size:10.5px}
.hm-p{background:#DCFCE7;color:#166534}.hm-l{background:#FEF3C7;color:#92400E}.hm-a{background:#FEE2E2;color:#991B1B}.hm-lv{background:#FCE7F3;color:#9D174D}.hm-off{color:#CBD5E1;font-weight:600!important}.hm-sh{background:#F1F5F9;color:#475569}
.hm th.hm-today,.hm td.hm-today{background:#F0FDFA}.hm th.hm-fri{color:#B45309}.hm-t{font-weight:800;background:#F8FAFC}
.hm-key{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:#64748B}.hm-key i{font-style:normal;border-radius:5px;padding:1px 5px;font-weight:800;font-size:11px}
.hm-offpill{background:#F1F5F9;color:#64748B}
.sp-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.sp-cal__h{font-size:11px;font-weight:700;color:#64748B;text-align:center}
.sp-cal__d{border:1px solid var(--line);border-radius:8px;min-height:64px;padding:4px 5px;display:flex;flex-direction:column;gap:2px;font-size:10.5px;background:#fff}
.sp-cal__d.is-today{border-color:#0F766E;box-shadow:0 0 0 2px rgba(15,118,110,.15)}.sp-cal__d.is-future{background:#F8FAFC}
.sp-cal__n{font-weight:800;font-size:12px;color:#334155}.sp-cal__d i{font-style:normal;align-self:flex-start;border-radius:5px;padding:0 5px;font-weight:800;font-size:10.5px}.sp-cal__d small{color:#475569;line-height:1.2}.sp-cal__d small.warn{color:#B45309}.sp-cal__d small.ok{color:#047857}
.sp-duty2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:6px}
.sp-next{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.sp-next>div{border:1px solid var(--line);border-radius:8px;padding:5px;font-size:10.5px;display:flex;flex-direction:column;gap:3px;text-align:center}.sp-next>div.is-today{border-color:#0F766E}
.sp-next i{font-style:normal;border-radius:5px;padding:1px 3px;font-weight:700;font-size:10.5px}.sp-next span{color:#64748B}
@media(max-width:760px){.sp-duty2{grid-template-columns:1fr}.sp-cal__d{min-height:52px;font-size:9.5px}.sp-cal__d small{display:none}.sp-next{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Pharmacy: ward / emergency issues (Update 136) */
.ph-where{font-size:11px;font-weight:700;border-radius:99px;padding:2px 8px;white-space:nowrap;background:#F1F5F9;color:#475569}.ph-where--ward{background:#E0E7FF;color:#3730A3}.ph-where--er{background:#FEE2E2;color:#991B1B}.ph-where--opd{background:#DCFCE7;color:#166534}
.ph-billto{display:grid;gap:6px;margin:8px 0}.ph-billto label{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;margin:0;font-weight:600}
.ph-billto label input{width:auto}.ph-billto label span{flex-basis:100%;font-size:11.5px;color:#64748B;font-weight:500;padding-left:22px}.ph-billto label.on{border-color:#0F766E;background:#F0FDFA}
/* Update 137: HR — documents due for renewal (calm card instead of an error box) */
.renew{margin:14px 0 0;background:var(--card,#fff);border:1px solid #E7E2D3;border-left:4px solid #D97706;border-radius:12px;padding:12px 14px}
.renew__head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.renew__head b{display:block;font-size:14.5px;color:var(--ink,#0F172A)}.renew__head small{color:#64748B;font-size:12.5px}
.renew__ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#FEF3C7;color:#B45309}
.renew__list{display:grid;gap:2px}
.renew__row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:9px;color:inherit;text-decoration:none}.renew__row:hover{background:#F8FAFC}
.renew__av{flex:none;width:30px;height:30px;border-radius:50%;background:#E0F2F1;color:#0F766E;font:800 11.5px/30px Manrope,sans-serif;text-align:center}
.renew__who{flex:1;min-width:0}.renew__who b{display:block;font-size:13.5px;font-weight:700}.renew__who small{display:block;color:#64748B;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.renew__pill{flex:none;font:700 11.5px Manrope,sans-serif;border-radius:999px;padding:3px 9px;white-space:nowrap}
.renew__pill--hot{background:#FEE2E2;color:#B91C1C}.renew__pill--warm{background:#FEF3C7;color:#92400E}.renew__pill--cool{background:#F1F5F9;color:#475569}
.renew__more summary{cursor:pointer;list-style:none;color:#0F766E;font-weight:700;font-size:13px;padding:6px}.renew__more summary::-webkit-details-marker{display:none}.renew__more[open] summary{display:none}
@media (min-width:900px){.renew__list{grid-template-columns:1fr 1fr;column-gap:14px}.renew__more{grid-column:1/-1}.renew__more[open]{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}}
html[data-theme="dark"] .renew,.dark .renew{background:#111827;border-color:#1F2937;border-left-color:#D97706}
/* Update 138: Settings menu is light (sub-area feel); tied to the main menu by the accent colour, not the background */
.sb--set{--set-bg:#F7FAF9;--set-ink:#1E293B;--set-muted:#64748B;--set-tint:color-mix(in srgb,var(--accent) 13%,#fff);--set-deep:color-mix(in srgb,var(--accent) 62%,#0F172A);background:var(--set-bg);color:var(--set-ink);border-right:1px solid var(--line)}
.sb--set .sb__brand{border-bottom-color:var(--line)}
.sb--set .sb__name,.sb--set .sb__settitle{color:#0F172A}.sb--set .sb__sub{color:var(--set-muted)}
.sb--set .sb__group{color:#94A3B8}
.sb--set .sb__link{color:#334155;position:relative}
.sb--set .sb__link svg{color:#64748B}
.sb--set .sb__link:hover{background:#EEF3F2;color:#0F172A}
.sb--set .sb__link.is-active{background:var(--set-tint);color:var(--set-deep);font-weight:700}
.sb--set .sb__link.is-active svg{color:var(--set-deep)}
.sb--set .sb__link.is-active::before{content:"";position:absolute;left:-8px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.sb--set .sb__back{color:var(--set-deep)}.sb--set .sb__back:hover{background:var(--set-tint);color:var(--set-deep)}
.sb--set .sb__off{color:#94A3B8;border-color:#CBD5E1}.sb--set .sb__link.is-active .sb__off{color:var(--set-deep);border-color:color-mix(in srgb,var(--accent) 40%,#fff)}
.sb--set .sb__none{color:var(--set-muted)}
.sb--set .sb__nav{scrollbar-color:#CBD5E1 transparent}
@media (min-width:861px){.app:has(.sb--set){background:linear-gradient(to right,#F7FAF9 232px,transparent 232px)}}
.sb--set .sb__close{color:#334155}
/* ---- Update 140: Asset Management ---- */
.as-h3{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:#64748B;margin:0 0 10px;font-weight:800}
.as-form .as-h3{margin:16px 0 8px}.as-form .as-h3:first-of-type{margin-top:4px}
.as-kpis{margin-top:4px}
.as-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.as-filters input[type=search]{flex:1 1 260px;min-width:0}.as-filters select{width:auto;min-width:150px}.as-filters__end{margin-left:auto}
.as-filters--bare{margin:4px 0 12px}
.as-chip{display:inline-flex;align-items:center;gap:6px;background:#E0F2F1;color:#0F766E;font-weight:700;font-size:12.5px;border-radius:99px;padding:4px 6px 4px 12px}.as-chip button{border:0;background:#fff;color:#0F766E;border-radius:50%;width:20px;height:20px;cursor:pointer;line-height:1}
.as-row{cursor:pointer}.as-row:hover td{background:#F8FAFC}
.as-name,.as-who{display:flex;align-items:center;gap:10px;min-width:0}.as-name b,.as-who b{display:block;font-size:13.5px}.as-name small,.as-who small{display:block;color:#64748B;font-size:12px}
.as-ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font:800 10px/1 Manrope,sans-serif;letter-spacing:.3px;background:#E0F2F1;color:#0F766E}
.as-ic--med{background:#FEE2E2;color:#B91C1C}.as-ic--lab{background:#EDE9FE;color:#6D28D9}.as-ic--img{background:#E0E7FF;color:#3730A3}.as-ic--it{background:#DBEAFE;color:#1D4ED8}.as-ic--mob{background:#CFFAFE;color:#0E7490}
.as-ic--fur{background:#FEF3C7;color:#92400E}.as-ic--ele{background:#FFEDD5;color:#C2410C}.as-ic--veh{background:#DCFCE7;color:#166534}.as-ic--off{background:#F1F5F9;color:#475569}
.as-av{flex:none;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#14B8A6,#0F766E);color:#fff;display:grid;place-items:center;font:800 13px Manrope,sans-serif}.as-av--sm{width:30px;height:30px;font-size:11px}
.as-flag{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;color:#92400E;background:#FEF3C7;border-radius:6px;padding:1px 6px}
.pill--red{background:#FEE2E2;color:#991B1B}
.as-empty{text-align:center;color:#64748B;padding:28px!important}
.as-none{color:#64748B;margin:4px 0}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}
/* one asset */
.as-back{margin:4px 0 10px}
.as-hero{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.as-hero__main{display:flex;gap:14px;align-items:center;min-width:0}.as-hero__main h2{margin:4px 0 2px;font-size:22px}.as-hero__main p{margin:0}
.as-hero__code{flex:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:4px;line-height:0}.as-hero__code svg{width:74px;height:74px}
.as-hero__top{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.as-hero__top .mono{font-weight:800;color:#0F766E}
.as-actions{flex-wrap:wrap}.btn.danger{color:#B91C1C}
.as-panel{margin-top:12px;border-left:4px solid var(--accent)}.as-panel--warn{border-left-color:#DC2626}
.as-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;align-items:start}.as-col{display:grid;gap:14px}
.as-person{display:flex;gap:12px;align-items:center}.as-person b{display:block;font-size:15px}.as-person small{display:block;color:#64748B;font-size:12.5px}.as-person .btn{margin-left:auto}
.as-dl{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;margin:12px 0 0;font-size:13.5px}.as-dl dt{color:#64748B}.as-dl dd{margin:0}
.as-value{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.as-value span{display:block;font-size:12px;color:#64748B}.as-value b{font-size:18px}.as-book{color:#0F766E}
.as-bar{height:8px;border-radius:99px;background:#E2E8F0;overflow:hidden;margin:12px 0 6px}.as-bar i{display:block;height:100%;background:linear-gradient(90deg,#14B8A6,#0F766E);border-radius:99px}.as-bar--sm{height:6px;margin:0}
.as-sched{margin-top:10px}.as-sched summary{cursor:pointer;color:#0F766E;font-weight:700;font-size:13px}.as-sched table{margin-top:8px}.as-now td{background:#F0FDFA;font-weight:700}
.as-date--expired{color:#B91C1C;font-weight:700}.as-date--soon{color:#B45309;font-weight:700}
.as-tl{position:relative;display:flex;gap:12px;padding:0 0 14px 2px}.as-tl:not(:last-child)::before{content:"";position:absolute;left:7px;top:16px;bottom:0;width:2px;background:#E2E8F0}
.as-tl__dot{flex:none;width:12px;height:12px;border-radius:50%;background:#CBD5E1;margin-top:4px;position:relative;z-index:1}.as-tl--now .as-tl__dot{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,#fff)}
.as-tl b{font-size:13.5px}.as-tl small{display:block;color:#64748B;font-size:12px;margin-top:2px}
.as-job{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}.as-job:last-child{border-bottom:0}.as-job small{display:block;color:#64748B;font-size:12px;margin-top:3px}.as-job a{color:inherit}
/* who holds what */
.as-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.as-pc{padding:0;overflow:hidden;display:flex;flex-direction:column}
.as-pc__head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#F8FAFC,#fff)}
.as-pc__who{flex:1;min-width:0}.as-pc__who b{display:block;font-size:14.5px}.as-pc__who small{display:block;color:#64748B;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-pc__sum{text-align:right}.as-pc__sum b{display:block;font-size:15px}.as-pc__sum small{color:#64748B;font-size:11px}
.as-pc__list{list-style:none;margin:0;padding:6px 8px;flex:1}.as-pc__list button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:7px 8px;border-radius:9px;text-align:left;cursor:pointer;font:inherit;color:inherit}.as-pc__list button:hover{background:#F8FAFC}
.as-pc__list .as-ic{width:30px;height:30px;font-size:9px;border-radius:8px}.as-pc__a{flex:1;min-width:0}.as-pc__a b{display:block;font-size:13px}.as-pc__a small{display:block;color:#64748B;font-size:11.5px}.as-pc__list em{font-style:normal;font-weight:700;font-size:12.5px;white-space:nowrap}
.as-pc__foot{display:flex;gap:14px;padding:10px 16px;border-top:1px solid var(--line);font-size:12.5px;font-weight:700}.as-pc__foot a{color:#0F766E}
/* staff profile tab */
.sp-as-sum{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.sp-as-sum span{display:block;font-size:12px;color:#64748B}.sp-as-sum b{font-size:18px}
.sp-as-row{display:flex;gap:10px;align-items:center;padding:8px 6px;border-radius:9px;color:inherit;text-decoration:none}.sp-as-row:hover{background:#F8FAFC}.sp-as-row span:nth-child(2){flex:1;min-width:0}.sp-as-row b{display:block;font-size:13.5px}.sp-as-row small{display:block;color:#64748B;font-size:12px}.sp-as-row em{font-style:normal;font-weight:700}
@media (max-width:900px){.as-grid{grid-template-columns:1fr}.as-value b{font-size:15px}.as-filters select{flex:1 1 140px}.as-people{grid-template-columns:1fr}}
.as-lock{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #E7E2D3;border-left:4px solid #D97706;border-radius:12px;padding:12px 14px;margin:0 0 14px}
.as-lock__ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#FEF3C7;color:#B45309}.as-lock__txt{flex:1;min-width:220px}.as-lock__txt b{display:block;font-size:14px}.as-lock__txt span{color:#64748B;font-size:12.5px}
/* ---- Update 142: Blood Bank ---- */
.bb-g{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 6px;border-radius:7px;font:800 12px/1 Manrope,sans-serif;background:#FEE2E2;color:#B91C1C;vertical-align:middle}
.bb-g--an,.bb-g--bn,.bb-g--abn,.bb-g--on{background:#FCE7F3;color:#9D174D}
.bb-g--big{min-width:64px;height:64px;font-size:22px;border-radius:16px;flex:none}
.bb-grid td.c,.bb-grid th.c{text-align:center}.bb-grid td{vertical-align:middle}
.bb-n{display:inline-block;min-width:30px;padding:3px 8px;border-radius:8px;font-weight:800;background:#ECFDF5;color:#047857}.bb-n--low{background:#FEF3C7;color:#92400E}.bb-n--0{background:#FEE2E2;color:#B91C1C}
.bb-soon,.bb-q{display:block;font-size:10.5px;font-weight:700;margin-top:2px}.bb-soon{color:#B45309}.bb-q{color:#64748B}
.bb-sm{font-size:12px;color:#64748B;font-weight:600}
.bb-ok{color:#047857;font-weight:700}.bb-bad{color:#B91C1C;font-weight:700}
.bb-pick{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#F0FDFA;border:1px solid #CCFBF1;border-radius:10px;padding:8px 12px}
.bb-prog{display:flex;gap:10px;font-weight:700;font-size:13px;color:#0F766E}.bb-prog span{background:#F0FDFA;border-radius:8px;padding:6px 10px}
.bb-units{display:grid;gap:6px}.bb-outcome{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:#FAFAF9}
.bb-chart{display:flex;align-items:flex-end;gap:3px;height:140px;padding:6px 0;border-bottom:1px solid var(--line)}.bb-col{flex:1;display:flex;gap:1px;align-items:flex-end;height:100%}.bb-col i{flex:1;border-radius:3px 3px 0 0;min-height:2px}
.bb-in{background:#DC2626}.bb-out{background:#14B8A6}.bb-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px;vertical-align:-1px}
/* ---- Update 143: Chamber plan — the doctor's home ---- */
.ch-hero{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:stretch;background:linear-gradient(135deg,#0B3D3A,#0F766E);color:#fff;border-radius:16px;padding:20px 22px;margin-bottom:14px}
.ch-hero__who{display:flex;gap:14px;align-items:center;min-width:0}.ch-hero h1{margin:0;font-size:24px;color:#fff}.ch-hello{margin:0;color:#A7F3D0;font-weight:600}.ch-cred{margin:2px 0 0;color:#CCFBF1;font-size:13px}
.ch-av{flex:none;width:58px;height:58px;border-radius:50%;background:#fff;color:#0F766E;display:grid;place-items:center;font:800 20px Manrope,sans-serif}
.ch-hero__today{display:flex;flex-direction:column;gap:6px;min-width:240px}.ch-date{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:#A7F3D0;font-weight:700}
.ch-sess{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:8px 12px}.ch-sess b{display:block;font-size:14px}.ch-sess span{font-size:12.5px;color:#CCFBF1}
.ch-sess.is-live{background:#fff;color:#0F172A}.ch-sess.is-live span{color:#0F766E;font-weight:700}
.ch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ch-act{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-weight:700;font-size:13.5px;color:#0F172A;text-decoration:none}.ch-act svg{color:#0F766E}.ch-act:hover{border-color:#99F6E4}
.ch-act--main{background:#0F766E;border-color:#0F766E;color:#fff}.ch-act--main svg{color:#fff}
.ch-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;align-items:start}.ch-col{display:grid;gap:14px}
.ch-next{display:block;background:#F0FDFA;border:1px solid #99F6E4;border-radius:12px;padding:10px 14px;margin-bottom:10px;text-decoration:none;color:inherit}.ch-next span{font-size:11px;font-weight:800;letter-spacing:.6px;color:#0F766E;text-transform:uppercase}.ch-next b{display:block;font-size:16px}.ch-next em{font-style:normal;color:#64748B;font-size:12.5px}
.ch-list{list-style:none;margin:0;padding:0}.ch-li{display:flex;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--line)}.ch-li:last-child{border-bottom:0}
.ch-sl{flex:none;width:30px;height:30px;border-radius:9px;background:#F1F5F9;display:grid;place-items:center;font-weight:800;font-size:12.5px}.ch-nm{flex:1;min-width:0}.ch-nm b{display:block;font-size:13.5px}.ch-nm small{color:#64748B;font-size:12px}
.ch-st{font-size:11.5px;font-weight:700;border-radius:99px;padding:3px 9px;background:#F1F5F9;color:#475569;white-space:nowrap}
.ch-li--waiting .ch-st{background:#FEF3C7;color:#92400E}.ch-li--in_room .ch-st{background:#0F766E;color:#fff}.ch-li--in_room .ch-sl{background:#0F766E;color:#fff}.ch-li--done .ch-st,.ch-li--finished .ch-st{background:#DCFCE7;color:#166534}.ch-li--booked{opacity:.7}
.ch-empty{color:#64748B;padding:10px 0}
.ch-bar{margin-bottom:10px}.ch-bar__t{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin-bottom:4px}.ch-bar__t span{color:#64748B}
.ch-trend{margin-top:14px}.ch-chart{display:flex;align-items:flex-end;gap:4px;height:130px}.ch-col2{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.ch-col2 i{display:block;width:100%;background:#99F6E4;border-radius:4px 4px 0 0}.ch-col2.is-today i{background:#0F766E}.ch-col2 span{font-size:9.5px;color:#94A3B8;white-space:nowrap;height:12px}
@media (max-width:900px){.ch-grid{grid-template-columns:1fr}.ch-hero__today{min-width:0;width:100%}.ch-act{flex:1 1 calc(50% - 8px);justify-content:center}.ch-act--main{flex-basis:100%}}
/* Settings → Online payments (Update 148) */
.pys__hd{display:flex;align-items:center;justify-content:space-between;gap:10px}.pys__hd h2,.pys__hd h3{margin:0}
.pys__gw{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px;background:#FCFDFD}.pys__gw h3{font-size:15px;display:flex;align-items:center;gap:10px}
.pys__ic{width:34px;height:34px;border-radius:9px;color:#fff;display:inline-grid;place-items:center;font-style:normal;font-weight:800;font-size:11px}
.pys__flags{display:flex;gap:18px;margin:8px 0 10px;font-size:14px}.pys__flags input{width:auto;margin-right:6px}
.qvs__row input{font:inherit;font-weight:500;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.pys__row2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pys code{font-size:12px;background:#F1F5F9;padding:2px 6px;border-radius:6px;word-break:break-all}
@media (max-width:760px){.qvs__row,.pys__row2{grid-template-columns:1fr}}
/* Built-in video call (Update 148) */
.tc{position:relative;width:100%;aspect-ratio:16/10;min-height:260px;background:radial-gradient(circle at 50% 35%,#1E293B,#0B1220);border-radius:14px;overflow:hidden;color:#fff;isolation:isolate}
.tc:fullscreen,.tc:-webkit-full-screen{border-radius:0;aspect-ratio:auto}
.tc-remote{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:transparent}
.tc[data-state=live] .tc-wait{display:none}
.tc-wait{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px}
.tc-wait b{font-size:15px}.tc-wait small{color:#CBD5E1;max-width:340px}
.tc-av{width:76px;height:76px;border-radius:50%;background:#0F766E;display:grid;place-items:center;font-weight:800;font-size:26px;box-shadow:0 0 0 8px rgba(15,118,110,.25);animation:tcPulse 2s ease-in-out infinite}
@keyframes tcPulse{50%{box-shadow:0 0 0 16px rgba(15,118,110,.08)}}
.tc[data-state=bad] .tc-av,.tc[data-state=off] .tc-av{animation:none;background:#475569}
.tc-local{position:absolute;right:12px;bottom:74px;width:26%;max-width:200px;min-width:96px;aspect-ratio:3/4;object-fit:cover;border-radius:10px;border:2px solid rgba(255,255,255,.7);background:#334155;transform:scaleX(-1);z-index:2}
.tc-local--back{transform:none}.tc--nocam .tc-local{opacity:.35}
.tc-top{position:absolute;left:12px;top:12px;display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.55);padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;z-index:2;backdrop-filter:blur(4px)}
.tc-dot{width:8px;height:8px;border-radius:50%;background:#F59E0B}.tc[data-state=live] .tc-dot{background:#22C55E}.tc[data-state=bad] .tc-dot,.tc[data-state=off] .tc-dot{background:#EF4444}
.tc-time{font-variant-numeric:tabular-nums;color:#CBD5E1}
.tc-bar{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:10px;z-index:3;background:rgba(15,23,42,.55);padding:8px 10px;border-radius:999px;backdrop-filter:blur(6px)}
.tc-b{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s}
.tc-b:hover{background:rgba(255,255,255,.28)}.tc-b.off{background:#fff;color:#0F172A}.tc-b--end{background:#DC2626}.tc-b--end:hover{background:#B91C1C}
.tc-b[hidden]{display:none}
.tc-unmute{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;background:#fff;color:#0F172A;border:0;border-radius:999px;padding:10px 18px;font-weight:700;cursor:pointer}
.tc-unmute[hidden]{display:none}
@media (max-width:600px){.tc{aspect-ratio:3/4}.tc-local{width:30%;bottom:78px}}
/* Settings → Modules: how the app is set up (Update 149) */
.mod-look{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.mod-look p{margin:2px 0 0}
.mod-look__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.mod-look__o{position:relative;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:3px}
.mod-look__o span{font-size:12.5px;color:#64748B}.mod-look__o:hover{border-color:var(--accent,#0F766E)}
.mod-look__o.on{border-color:var(--accent,#0F766E);box-shadow:0 0 0 3px rgba(15,118,110,.12);cursor:default}
.mod-look__o i{position:absolute;top:10px;right:12px;font-style:normal;font-size:11px;font-weight:800;color:var(--accent,#0F766E);text-transform:uppercase;letter-spacing:.05em}
/* Clinic and Diagnostic home pages (Update 149) */
.cl-n{display:flex;flex-direction:column;align-items:center;min-width:48px;line-height:1.1}.cl-n b{font-size:15px}.cl-n small{font-size:10.5px;color:#64748B}
.dg-pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dg-pipe--4{grid-template-columns:repeat(4,minmax(0,1fr))}.dg-pipe--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dg-pipe a{position:relative;display:flex;flex-direction:column;gap:2px;background:#F8FAFC;border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-decoration:none;color:inherit}
.dg-pipe a:hover{border-color:#0F766E}.dg-pipe b{font-size:24px;letter-spacing:-.02em}.dg-pipe span{font-size:12.5px;color:#64748B;font-weight:600}
.dg-pipe a.is-hot{background:#FFFBEB;border-color:#FDE68A}.dg-pipe a.is-hot b{color:#B45309}
.ch-li--late .ch-st{background:#FEE2E2;color:#991B1B}
@media (max-width:700px){.dg-pipe{grid-template-columns:repeat(2,minmax(0,1fr))}.dg-pipe--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Shelf location (Update 151) */
.shelf{display:inline-flex;align-items:center;gap:3px;font-weight:800;letter-spacing:.02em;white-space:nowrap;border-radius:7px;background:#EEF2FF;color:#3730A3;border:1px solid #C7D2FE;padding:1px 7px;font-size:11.5px;line-height:1.5;vertical-align:middle}
.shelf--lg{font-size:13.5px;padding:3px 10px;border-radius:9px}.shelf--none{background:#F8FAFC;color:#94A3B8;border-color:#E2E8F0;font-weight:600}
.pos-res .shelf{flex:none}.pos-line__n .shelf{align-self:flex-start;margin-top:3px}
.shelf-edit{display:inline-flex;gap:4px;align-items:center}.shelf-edit input{width:96px;padding:4px 8px;font-size:13px;text-transform:uppercase}
.shelf-btn{border:0;background:none;padding:0;cursor:pointer;font:inherit}.shelf-btn:hover .shelf,.shelf-btn:focus-visible .shelf{box-shadow:0 0 0 2px #A5B4FC}
.shelves{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.shelves button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;cursor:pointer;font:inherit;text-align:left}
.shelves button:hover,.shelves button.on{border-color:#6366F1;box-shadow:0 0 0 3px #E0E7FF}.shelves small{color:#64748B;font-size:12px}
.pos-newcust{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.pos-newcust input{flex:1;min-width:140px}
/* Pharmacy customers */
.kpi--btn { text-align: left; cursor: pointer; font: inherit; color: inherit; }
.kpi--btn.is-on { border-color: var(--brand, #0F766E); box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand, #0F766E) 25%, transparent); }
.cust-card { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; margin: 8px 0; background: linear-gradient(135deg, #0F3D3A, #136F63); color: #fff; }
.cust-card b { font-size: 15px; } .cust-card span { font-size: 12.5px; opacity: .85; }
.cust-card--off { background: #F3F4F6; color: #374151; }
.cust-prog { display: block; height: 6px; border-radius: 99px; background: rgba(255,255,255,.22); margin-top: 6px; overflow: hidden; }
.cust-prog > i { display: block; height: 100%; background: #C8F8A9; border-radius: 99px; }
.phchip.lvl-0 { background: #EEF2F6; color: #475569; } .phchip.lvl-1 { background: #FEF3C7; color: #92400E; } .phchip.lvl-2 { background: #E0E7FF; color: #3730A3; } .phchip.lvl-3 { background: #FCE7F3; color: #9D174D; }
.kpi .lnk.is-on { text-decoration: underline; }
/* Customer membership settings */
.mem-head, .mem-row { display: grid; grid-template-columns: 1.4fr 1fr 1.6fr 90px; gap: 10px; align-items: center; }
.mem-head { font-size: 12px; font-weight: 700; color: var(--muted, #6B7280); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.mem-row { padding: 8px 0; border-top: 1px solid var(--line, #E5E7EB); }
.mem-pct { display: flex; align-items: center; gap: 6px; } .mem-pct input { min-width: 0; }
.mem-start { font-size: 13px; color: var(--muted, #6B7280); background: #F3F4F6; border-radius: 8px; padding: 9px 10px; }
.mem-now { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.mem-now > div { border: 1px solid var(--line, #E5E7EB); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.mem-now span { font-size: 13px; color: var(--muted, #6B7280); } .mem-now a { font-size: 13px; }
@media (max-width: 640px) { .mem-head { display: none; } .mem-row { grid-template-columns: 1fr 1fr; } }
.mem-pct .xs { white-space: nowrap; }
.cust-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 14px; align-items: start; }
.cust-grid .cust-card { margin: 0; padding: 14px 16px; }
.cust-note { background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 10px; padding: 9px 12px; margin: 0 0 12px; font-size: 14px; }
a.cust-name { color: inherit; text-decoration: none; }
@media (max-width: 960px) { .cust-grid { grid-template-columns: 1fr; } }
.nowrap { white-space: nowrap; }
.bill-collect td { background: #F0FDF4; }
.bill-collect__f { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.bill-collect__f > span { flex: 1 0 100%; }
.bill-collect__f > div:not(.hbtns) { min-width: 140px; flex: 1; }
/* Update 153.15: add-on confirm dialog — tidy payment choices */
.ad-box{max-width:520px;width:100%}
.ad-paylbl{font-size:13px;font-weight:700;color:#334155;margin:16px 0 8px}
.ad-pay{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ad-pay .ad-opt{position:relative;display:flex;align-items:center;gap:10px;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:14px;text-align:left;transition:border-color .12s,background .12s;min-width:0}
.ad-pay .ad-opt:hover{border-color:#94A3B8}
.ad-pay .ad-opt input{position:absolute;opacity:0;width:1px!important;height:1px!important;margin:0;pointer-events:none}
.ad-pay .ad-opt::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;border:2px solid #CBD5E1;background:#fff;box-sizing:border-box;transition:all .12s}
.ad-pay .ad-opt.on{border-color:#0F766E;background:#F0FDFA}
.ad-pay .ad-opt.on::before{border:5px solid #0F766E}
.ad-pay .ad-opt span{display:flex;flex-direction:column;min-width:0}
.ad-pay .ad-opt b{font-weight:700;color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-pay .ad-opt small{font-size:12.5px;color:#64748B;font-weight:500;margin-top:1px}
.ad-pay .ad-opt--wide{grid-column:1/-1}
.ad-pay .ad-opt:focus-within{box-shadow:0 0 0 3px rgba(15,118,110,.18)}
@media (max-width:480px){.ad-pay{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Update 153.17: AI Assistant in the OPD */
.ai-card{border:1px solid #DDD6FE;background:linear-gradient(180deg,#FAF8FF 0,#fff 70px)}
.ai-card--off{background:#FAFAFF}
.ai-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ai-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-title b{font-size:15.5px}
.ai-spark{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#7C3AED,#0F766E);color:#fff;display:grid;place-items:center;font-size:14px}
.ai-btns{display:flex;gap:6px;flex-wrap:wrap}
.ai-btn{border:1px solid #DDD6FE;background:#fff;color:#5B21B6;border-radius:999px;padding:7px 13px;font:700 13px/1 inherit;cursor:pointer}
.ai-btn:hover{background:#F5F3FF}.ai-btn--main{background:#6D28D9;color:#fff;border-color:#6D28D9}.ai-btn--main:hover{background:#5B21B6}
.ai-btn[disabled]{opacity:.65;cursor:wait}
.ai-box{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.ai-box__h{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ai-box__h b{font-size:14px}
.ai-x{margin-left:auto;border:0;background:none;font-size:18px;line-height:1;color:#94A3B8;cursor:pointer}
.ai-box--ok{border-color:#86EFAC;background:#F0FDF4}.ai-box--review{border-color:#FCD34D;background:#FFFBEB}.ai-box--serious{border-color:#FCA5A5;background:#FEF2F2}
.ai-ul{margin:4px 0 0;padding-left:18px;font-size:13.5px;line-height:1.55}
.ai-warn{margin-top:8px;background:#FFFBEB;border-radius:8px;padding:8px 10px;font-size:13.5px}
.ai-danger{margin:0 0 8px;background:#FEF2F2;border:1px solid #FECACA;border-radius:8px;padding:8px 10px;font-size:13.5px;color:#7F1D1D}
.ai-sec{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#6D28D9;margin:12px 0 4px}
.ai-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:7px 0;border-top:1px dashed var(--line)}
.ai-row:first-of-type{border-top:0}
.ai-row--med{flex-wrap:wrap}.ai-row--med>div:first-child{flex:1 1 260px}
.ai-opts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.ai-stock{font-size:10.5px;color:#15803D;font-weight:700}
.ai-chip{font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;margin-left:4px}
.ai-hi{background:#FEE2E2;color:#991B1B}.ai-md{background:#FEF3C7;color:#92400E}.ai-lo{background:#E0F2FE;color:#075985}
.ai-issue{padding:7px 10px;border-radius:8px;margin-top:6px;font-size:13.5px;border-left:3px solid}
.ai-issue.ai-hi{border-color:#DC2626;background:#FEF2F2;color:#7F1D1D}.ai-issue.ai-md{border-color:#D97706;background:#FFFBEB;color:#78350F}.ai-issue.ai-lo{border-color:#0284C7;background:#F0F9FF;color:#0C4A6E}
.ai-foot{margin:10px 0 0;font-size:11.5px;color:#94A3B8}
.ai-code{display:inline-block;font:600 11.5px ui-monospace,Menlo,monospace;color:#475569;background:#F1F5F9;border-radius:5px;padding:1px 6px;margin-left:4px}

/* AI Assistant — demo allowance */
.ai-demo-tag{font-size:11px;font-weight:600;color:#8a5a00;background:#fff4dc;border:1px solid #f3d9a4;border-radius:999px;padding:2px 8px;margin-left:6px}
.ai-demo-note{font-size:12px;color:#8a5a00;margin:8px 0 0}
.ai-demo-out{margin-top:10px;background:#fff8e8;border:1px solid #f3d9a4;border-left:4px solid #e0a100;border-radius:8px;padding:10px 12px}
.ai-demo-out b{display:block;color:#7a4f00;margin-bottom:2px}
.ai-demo-out p{margin:0 0 8px;font-size:13px;color:#5d4a20}

.mset__note{margin:12px 0 0;padding:10px 12px;border:1px solid #e3e8ef;border-left:4px solid #0f766e;border-radius:8px;background:#f7faf9;font-size:13px}

.ad-card{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:11px 12px;border:1.5px solid #99D5CC;border-radius:12px;background:#F0FDFA;color:#134E4A;font-size:13px;line-height:1.45}.ad-card svg{flex:none;color:#0F766E;margin-top:1px}.ad-card b{display:block;font-size:14px;color:#0F172A}
.stp-box{margin-top:6px;padding:12px 14px;border:1px dashed var(--line);border-radius:12px;background:#F8FAFC}

/* Doctors & fees: actions stacked so the row fits; the side panel drops below until the screen is very wide */
.rowacts--stack{width:1%}.rowacts--stack .btn{display:flex;justify-content:center;width:100%;margin:0 0 6px!important}.rowacts--stack .btn:last-child{margin-bottom:0!important}
@media(max-width:1599px){.ugrid2.ugrid2--wide{grid-template-columns:minmax(0,1fr)}}
/* dental & eye prescription */
.spx .teeth{display:flex;flex-direction:column;gap:4px;margin-top:6px;overflow-x:auto;padding-bottom:4px}
.teeth__row{display:flex;gap:4px;align-items:center}.teeth__mid{width:10px;align-self:stretch;border-left:2px dashed #CBD5E1;margin:0 2px 0 6px}
.tooth{min-width:34px;height:38px;border-radius:8px 8px 12px 12px;border:1.5px solid #CBD5E1;font:700 12px/1 inherit;cursor:pointer;padding:0}
.teeth__row:last-child .tooth{border-radius:12px 12px 8px 8px}.tooth:hover{border-color:#0F766E}.tooth--on{outline:3px solid #0F766E;outline-offset:1px}
.teeth__line{display:flex;justify-content:space-between;max-width:620px;border-top:1px dashed #CBD5E1;padding-top:2px;font-size:10.5px;color:#64748B}
.teeth__legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12px;color:#475569}.teeth__legend i{display:inline-block;width:11px;height:11px;border-radius:3px;border:1px solid #CBD5E1;margin-right:4px;vertical-align:-1px}
.toothbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;padding:8px 10px;border-radius:10px;background:#F0FDFA;border:1px solid #99F6E4}
.procadd{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.eyet th{text-align:left;font-weight:700;white-space:nowrap}.eyet td input,.eyet td select{width:100%;min-width:90px}
.glx__row{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:8px}.glx__row label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:700;color:#475569}.glx__row input,.glx__row select{width:140px}
.eyeside{margin-top:4px;width:100%;font-size:12px}
/* doctor's day: waiting-room pressure, growth, lab trends */
.qpress{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:0 0 12px;padding:9px 14px;border-radius:12px;background:#F0FDFA;border:1px solid #99F6E4;color:#134E4A;font-size:13.5px}
.qpress--warn{background:#FFFBEB;border-color:#FCD34D;color:#78350F}.qpress--bad{background:#FEF2F2;border-color:#FCA5A5;color:#991B1B}
.growth{margin-top:10px;padding-top:10px;border-top:1px dashed #E2E8F0;display:flex;flex-direction:column;gap:6px}
.growth__r{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;font-size:13px}.growth__r > span:first-child{min-width:110px;color:#475569}.growth__r em{font-style:normal;font-weight:700;color:#B45309}.growth__r--bad b{color:#B91C1C}
.ltr{display:flex;flex-direction:column;gap:6px;margin:8px 0 10px;padding-bottom:10px;border-bottom:1px dashed #E2E8F0}.trend--sm{display:flex;justify-content:space-between;gap:10px;align-items:center}
.trend--sm > div{min-width:0}.trend--sm svg{flex:none;overflow:visible}
/* doctor's phone view */
.dph{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.dph__top{display:flex;justify-content:space-between;align-items:center;gap:10px}.dph__top > div{display:flex;flex-direction:column}.dph__top b{font-size:18px}
.dph__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dph__stats > div{background:#fff;border:1px solid #E2E8F0;border-radius:12px;padding:10px;text-align:center;display:flex;flex-direction:column}.dph__stats b{font-size:20px}.dph__stats span{font-size:12px;color:#64748B}
.dph__press{margin:0;font-size:13px;color:#134E4A;background:#F0FDFA;border:1px solid #99F6E4;border-radius:10px;padding:8px 12px}.dph__press.bad{color:#991B1B;background:#FEF2F2;border-color:#FCA5A5}
.dph__next{width:100%;padding:14px;font-size:16px}
.dph__card{padding:14px}.dph__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid #F1F5F9}.dph__row:first-of-type{border-top:0}
.dph__who{display:flex;gap:10px;align-items:flex-start;min-width:0}.dph__who > div{display:flex;flex-direction:column;min-width:0}.dph__acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dph__rep{display:flex;flex-direction:column;padding:9px 0;border-top:1px solid #F1F5F9;color:inherit;text-decoration:none}
/* handwriting */
.inkbox{max-width:860px!important;width:96vw}.inkcv{display:block;width:100%;height:min(62vh,560px);border:1px solid #CBD5E1;border-radius:10px;background:#fff;margin-top:8px;cursor:crosshair}
.inkprev{margin:10px 0;border:1px dashed #CBD5E1;border-radius:10px;padding:8px;background:#fff}.inkprev img{display:block;max-width:100%;max-height:260px}
.phonehint{display:none}@media (max-width:640px){.phonehint{display:block;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#0F766E;color:#fff;font-weight:700;text-decoration:none;font-size:13.5px}}
