:root{
  --bg:#070d1d;
  --bg2:#0a1428;
  --panel:rgba(255,255,255,.092);
  --panel-strong:rgba(255,255,255,.135);
  --text:#f7fbff;
  --muted:#b7c3dd;
  --line:rgba(255,255,255,.145);
  --gold:#ffd166;
  --orange:#ff9f1c;
  --pink:#ff4d8d;
  --purple:#8b5cf6;
  --blue:#38bdf8;
  --green:#34d399;
  --red:#fb7185;
  --cyan:#22d3ee;
  --radius:25px;
  --shadow:0 26px 75px rgba(0,0,0,.42);
  --shadow-soft:0 16px 42px rgba(0,0,0,.26);
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 12% 5%,rgba(255,209,102,.18),transparent 25%),
    radial-gradient(circle at 82% 8%,rgba(56,189,248,.20),transparent 30%),
    radial-gradient(circle at 56% 110%,rgba(139,92,246,.22),transparent 35%),
    linear-gradient(135deg,#070b17 0%,#081224 42%,#0c1831 100%);
  background-attachment:fixed;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.033) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.033) 1px,transparent 1px);
  background-size:44px 44px;
  opacity:.85;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 82%);
}
a{color:inherit;text-decoration:none}
input,select,textarea,button{font:inherit}
button{cursor:pointer}

.app-shell{position:relative;z-index:1;display:flex;min-height:100vh}
.sidebar{
  width:288px;
  height:100vh;
  position:sticky;
  top:0;
  z-index:20;
  overflow:auto;
  padding:22px 18px;
  background:linear-gradient(180deg,rgba(13,17,36,.93),rgba(8,11,25,.88));
  border-right:1px solid rgba(255,255,255,.13);
  box-shadow:18px 0 55px rgba(0,0,0,.28);
  backdrop-filter:blur(22px);
}
.brand{
  display:flex;
  align-items:center;
  gap:13px;
  min-height:86px;
  margin-bottom:21px;
  padding:15px;
  border-radius:25px;
  background:linear-gradient(135deg,rgba(255,209,102,.18),rgba(255,77,141,.14),rgba(56,189,248,.12));
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 14px 34px rgba(0,0,0,.16);
}
.brand-logo,.login-logo{
  width:54px;
  height:54px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:18px;
  font-size:25px;
  background:linear-gradient(135deg,#ffd166 0%,#ff4d8d 52%,#7c3aed 100%);
  box-shadow:0 15px 36px rgba(255,77,141,.27);
}
.brand b{display:block;font-size:18px;line-height:1.15;letter-spacing:-.02em}.brand span{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
.sidebar nav{display:flex;flex-direction:column;gap:9px}
.sidebar a{
  position:relative;
  display:flex;
  align-items:center;
  gap:13px;
  min-height:52px;
  padding:13px 15px;
  overflow:hidden;
  border-radius:18px;
  color:#edf3ff;
  background:rgba(255,255,255,.042);
  border:1px solid transparent;
  transition:transform .24s ease,background .24s ease,border-color .24s ease,box-shadow .24s ease;
}
.sidebar a:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,209,102,.20),rgba(255,77,141,.13),rgba(56,189,248,.13));opacity:0;transition:.24s ease}
.sidebar a span{position:relative;z-index:1;font-size:20px;width:27px;text-align:center}.sidebar a{font-weight:800}.sidebar a:hover,.sidebar a.active{transform:translateX(5px);border-color:rgba(255,255,255,.16);box-shadow:0 12px 28px rgba(0,0,0,.20)}.sidebar a:hover:before,.sidebar a.active:before{opacity:1}
.sidebar-footer{padding:12px;margin-top:18px;color:var(--muted)}
.main{flex:1;max-width:calc(100vw - 288px);padding:26px 28px 36px}
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
  padding:18px 20px;
  border-radius:29px;
  background:linear-gradient(135deg,rgba(255,255,255,.105),rgba(255,255,255,.052));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(18px);
}
.topbar h1{margin:0;font-size:31px;line-height:1;letter-spacing:-.04em}.topbar p{margin:8px 0 0;color:var(--muted);font-weight:600}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.menu-toggle{display:none;border:0;border-radius:14px;padding:11px 13px;background:rgba(255,255,255,.10);color:#fff}.quick-pill{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:18px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#211403;font-weight:1000;box-shadow:0 13px 30px rgba(255,159,28,.24);transition:.22s ease}.quick-pill:hover{transform:translateY(-2px);filter:brightness(1.06)}.user-chip,.logout{border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.08);box-shadow:0 8px 24px rgba(0,0,0,.15)}.user-chip{min-height:52px;display:flex;align-items:center;gap:10px;padding:9px 13px}.user-chip b{display:block;font-size:14px}.user-chip small{display:block;color:var(--muted);line-height:1.1}.logout{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 18px;color:#ffe1e8;font-weight:850}

.panel,.stat-card,.setting-tile,.login-card,.mini-list>div,.role-link,.summary-box,.item-row,.table-wrap{border:1px solid rgba(255,255,255,.145);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px)}
.panel{
  position:relative;
  overflow:hidden;
  margin-bottom:22px;
  padding:22px;
  border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.052));
}
.panel:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#ffb86b,#ff4d8d,#8b5cf6,#38bdf8,#2dd4bf);opacity:.95}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-head h3{margin:0;font-size:22px;letter-spacing:-.025em}.panel-head p{margin:4px 0 0;color:var(--muted)}.head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:23px}.stat-card{position:relative;min-height:126px;overflow:hidden;padding:22px 22px 20px;display:flex;align-items:center;justify-content:space-between;border-radius:26px;color:#fff;transition:transform .28s ease,box-shadow .28s ease,filter .28s ease}.stat-card:before{content:"";position:absolute;right:-34px;bottom:-42px;width:132px;height:132px;border-radius:50%;background:rgba(255,255,255,.20)}.stat-card:after{content:"";position:absolute;left:-36px;top:-62px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.10)}.stat-card:hover,.setting-tile:hover,.animated-card:hover,.mini-list>div:hover,.item-row:hover{transform:translateY(-7px);box-shadow:0 26px 64px rgba(0,0,0,.37);filter:saturate(1.08)}.stat-card p{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.84);font-weight:900}.stat-card h2{position:relative;z-index:1;margin:10px 0 0;font-size:29px;letter-spacing:-.04em}.stat-card span{position:relative;z-index:1;font-size:39px;filter:drop-shadow(0 8px 15px rgba(0,0,0,.20))}.green{background:linear-gradient(135deg,#0aa977,#2dd4bf)}.purple{background:linear-gradient(135deg,#7c3aed,#d946ef)}.orange{background:linear-gradient(135deg,#f97316,#facc15)}.blue{background:linear-gradient(135deg,#0284c7,#22d3ee)}.red{background:linear-gradient(135deg,#e11d48,#fb7185)}.gold{background:linear-gradient(135deg,#d97706,#fbbf24)}.cyan{background:linear-gradient(135deg,#0891b2,#22d3ee)}.coral{background:linear-gradient(135deg,#dc2626,#fb7185)}
.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.tile-grid.small{grid-template-columns:repeat(3,minmax(0,1fr))}.setting-tile{position:relative;display:block;overflow:hidden;min-height:136px;padding:18px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.065));transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.setting-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,209,102,.18),rgba(255,77,141,.13),rgba(56,189,248,.15));opacity:0;transition:.28s ease}.setting-tile:after{content:"";position:absolute;top:-42px;right:-42px;width:122px;height:122px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--pink),var(--purple));opacity:.18;transition:.28s ease}.setting-tile:hover{border-color:rgba(255,255,255,.30)}.setting-tile:hover:before{opacity:1}.setting-tile:hover:after{transform:scale(1.24) rotate(12deg);opacity:.29}.setting-tile span,.setting-tile b,.setting-tile p{position:relative;z-index:1}.setting-tile span{font-size:34px;display:inline-grid;width:54px;height:54px;place-items:center;border-radius:18px;background:rgba(255,255,255,.12)}.setting-tile b{display:block;margin-top:12px;font-size:17px;letter-spacing:-.02em}.setting-tile p{margin:8px 0 0;color:var(--muted);line-height:1.5}.setting-tile.big{min-height:176px}
.table-wrap{width:100%;overflow:auto;border-radius:20px;background:rgba(255,255,255,.055)}table{width:100%;min-width:720px;border-collapse:collapse;background:transparent}th,td{padding:14px 15px;text-align:left;border-bottom:1px solid rgba(255,255,255,.11);vertical-align:middle}th{color:#fff;background:rgba(255,255,255,.08);font-size:13px;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}td{color:#f4f7ff}tr:hover td{background:rgba(255,255,255,.06)}.empty-row,.empty-state{text-align:center;color:var(--muted);padding:34px}.badge{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}.badge-success{background:rgba(52,211,153,.18);color:#a7f3d0}.badge-warning{background:rgba(255,209,102,.20);color:#fde68a}.badge-danger{background:rgba(251,113,133,.18);color:#fecdd3}.badge-info{background:rgba(56,189,248,.18);color:#bae6fd}.btn,.icon-btn{border:0;border-radius:15px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#201405;font-weight:1000;padding:12px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease;box-shadow:0 12px 26px rgba(255,159,28,.22)}.btn:hover,.icon-btn:hover{filter:brightness(1.08);transform:translateY(-2px)}.btn-light{background:rgba(255,255,255,.12);color:var(--text);border:1px solid rgba(255,255,255,.16);box-shadow:none}.btn-full{width:100%;margin-top:13px}.icon-btn{padding:8px 11px;font-size:12px;background:rgba(255,255,255,.12);color:var(--text);border:1px solid rgba(255,255,255,.15);box-shadow:none;margin:2px}.icon-btn.danger{background:rgba(251,113,133,.15);color:#fecdd3}.actions{white-space:nowrap}.alert{padding:14px 16px;border-radius:18px;margin:0 0 16px;border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-soft)}.alert-success{background:rgba(52,211,153,.16);color:#bbf7d0}.alert-danger{background:rgba(251,113,133,.18);color:#fecdd3}.alert-warning{background:rgba(255,209,102,.16);color:#fde68a}.muted{color:var(--muted)!important}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.wide{grid-column:1/-1}.field label{font-weight:900;font-size:13px;color:#eef2ff}.field input,.field select,.field textarea,.search-form input,.inline-form input,.login-card input{width:100%;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.09);color:var(--text);padding:13px 14px;outline:0;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.field input:focus,.field select:focus,.field textarea:focus,.search-form input:focus,.login-card input:focus{border-color:rgba(255,209,102,.82);box-shadow:0 0 0 4px rgba(255,209,102,.12);background:rgba(255,255,255,.12)}select option{background:#10162b;color:#fff}.form-actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.search-form{display:flex;gap:8px}.mini-list{display:flex;flex-direction:column;gap:12px}.mini-list>div,.role-link{display:block;padding:14px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.06));transition:.25s ease}.mini-list span,.role-link span{display:block;color:var(--muted);margin-top:4px}.role-link.active{border-color:var(--gold);background:rgba(255,209,102,.12)}.inline-form{display:flex;gap:8px;margin-top:10px}.switch{position:relative;display:inline-block;width:48px;height:28px}.switch input{display:none}.switch span{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,.18);border-radius:999px;transition:.2s}.switch span:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 2px 8px rgba(0,0,0,.22)}.switch input:checked+span{background:linear-gradient(135deg,var(--green),var(--blue))}.switch input:checked+span:before{transform:translateX(20px)}
.login-body{display:grid!important;place-items:center!important;min-height:100vh!important;padding:24px;background:radial-gradient(circle at 20% 0%,rgba(255,209,102,.24),transparent 28%),radial-gradient(circle at 88% 15%,rgba(56,189,248,.20),transparent 25%),linear-gradient(135deg,#070b18,#0a1428 60%,#101a35)}.login-card{width:min(470px,calc(100vw - 32px))!important;max-width:470px;margin:auto;padding:32px;border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.065));border:1px solid rgba(255,255,255,.18);box-shadow:0 28px 80px rgba(0,0,0,.45)}.installer-card{width:min(800px,calc(100vw - 32px))!important;max-width:800px}.login-card h1{margin:18px 0 6px;font-size:31px;letter-spacing:-.04em}.login-card p{color:var(--muted);line-height:1.55}.login-card label{display:block;margin:14px 0 7px;font-weight:900}.login-card h3{margin:22px 0 9px}
.pos-layout{display:grid;grid-template-columns:300px minmax(0,1fr) 340px;gap:20px}.item-row{display:grid;grid-template-columns:1.1fr 1.2fr 80px 120px 1fr 40px;gap:10px;align-items:end;background:linear-gradient(135deg,rgba(255,255,255,.105),rgba(255,255,255,.06));border-radius:20px;padding:13px;margin-bottom:12px;transition:.25s ease}.remove-item{border:0;border-radius:13px;background:rgba(251,113,133,.2);color:#fecdd3;font-size:22px;height:45px}.summary-box{border-radius:20px;padding:15px;margin:12px 0;background:linear-gradient(135deg,rgba(255,209,102,.10),rgba(56,189,248,.08))}.summary-box div{display:flex;justify-content:space-between;padding:8px 0;color:var(--muted)}.summary-box .grand{border-top:1px solid rgba(255,255,255,.15);margin-top:8px;padding-top:14px;color:var(--text);font-size:19px}.print-actions{display:flex;gap:12px;justify-content:flex-end;margin-bottom:14px}.invoice-paper{max-width:900px;margin:0 auto;background:#fff;color:#111;border-radius:22px;padding:34px;box-shadow:var(--shadow)}.invoice-head,.invoice-customer,.invoice-total{display:flex;justify-content:space-between;gap:20px}.invoice-head h2{margin:0 0 8px;color:#111}.invoice-head p,.invoice-footer p{color:#444;line-height:1.5}.invoice-meta{text-align:right}.invoice-logo{max-height:70px;max-width:160px;margin-bottom:10px}.invoice-customer{border:1px solid #ddd;border-radius:14px;padding:14px;margin:20px 0;background:#fafafa}.invoice-table{min-width:0;border:1px solid #ddd;color:#111}.invoice-table th{background:#111;color:#fff}.invoice-table td{color:#111;border-color:#ddd}.invoice-total{margin-top:18px}.invoice-total>div:last-child{min-width:300px}.invoice-total p,.invoice-total h3{display:flex;justify-content:space-between;gap:20px;margin:8px 0}.invoice-total h3{border-top:2px solid #111;padding-top:12px}.invoice-footer{margin-top:28px;text-align:center;border-top:1px solid #ddd;padding-top:16px}.report-filter{margin:0}
.walkin-info{display:flex;flex-direction:column;gap:5px;padding:13px 15px;margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg,rgba(255,209,102,.16),rgba(56,189,248,.12),rgba(219,39,119,.10));border:1px solid rgba(255,255,255,.14)}.walkin-info b{font-size:16px;color:#fff}.walkin-info span{font-size:12px;line-height:1.45;color:var(--muted)}.lookup-status{min-height:34px;display:flex;align-items:center;padding:8px 12px;margin:-2px 0 14px;border-radius:14px;font-size:12px;font-weight:900;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.08);color:var(--muted)}.lookup-status.success{background:rgba(52,211,153,.17);color:#bbf7d0;border-color:rgba(52,211,153,.25)}.lookup-status.warning{background:rgba(255,209,102,.17);color:#fde68a;border-color:rgba(255,209,102,.25)}.lookup-status.danger{background:rgba(251,113,133,.17);color:#fecdd3;border-color:rgba(251,113,133,.25)}.lookup-status.info{background:rgba(56,189,248,.12);color:#bae6fd;border-color:rgba(56,189,248,.22)}.customer-mobile-lookup{font-weight:900;font-size:17px;letter-spacing:.02em}.pos-center{min-width:0;overflow-x:auto}.pos-left,.pos-right{min-width:0}.item-row{min-width:620px}.pos-center::-webkit-scrollbar{height:8px}.pos-center::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:99px}
@media (max-width:1180px){.stat-grid,.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-layout{grid-template-columns:1fr}.main{max-width:none}.grid-two{grid-template-columns:1fr}.item-row{min-width:0}}
@media (max-width:820px){.sidebar{position:fixed;left:-300px;transition:.25s}.sidebar.open{left:0}.main{padding:16px}.menu-toggle{display:inline-block}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:flex-start}.form-grid,.stat-grid,.tile-grid,.tile-grid.small{grid-template-columns:1fr}.item-row{grid-template-columns:1fr}.invoice-head,.invoice-customer,.invoice-total{display:block}.invoice-meta{text-align:left}.search-form,.inline-form{width:100%;flex-direction:column}}
@media print{body{background:#fff}.sidebar,.topbar,.print-actions,.alert{display:none!important}.main{padding:0;max-width:none}.invoice-paper{box-shadow:none;border-radius:0;max-width:none}.panel{box-shadow:none}.app-shell{display:block}}

/* POS update: full-width aligned service rows + separate membership card */
.pos-layout{grid-template-columns:minmax(255px,300px) minmax(500px,1fr) minmax(280px,320px);align-items:start}.pos-center-stack{display:flex;flex-direction:column;gap:20px;min-width:0}.pos-center,.pos-membership-card{min-width:0;overflow:visible}.item-row,.membership-row{display:grid;gap:10px;align-items:end;background:linear-gradient(135deg,rgba(255,255,255,.105),rgba(255,255,255,.06));border-radius:20px;padding:13px;margin-bottom:12px;transition:.25s ease;min-width:0}.item-row{grid-template-columns:minmax(115px,1fr) minmax(135px,1.15fr) minmax(58px,.5fr) minmax(82px,.75fr) minmax(115px,1fr) 34px}.membership-row{grid-template-columns:minmax(160px,1.5fr) minmax(58px,.45fr) minmax(90px,.75fr) minmax(78px,.65fr) minmax(96px,.75fr) 34px}.item-row .field,.membership-row .field{min-width:0}.item-row input,.item-row select,.membership-row input,.membership-row select{min-width:0;width:100%;padding-left:10px;padding-right:10px}.item-row label,.membership-row label{font-size:11px;white-space:nowrap}.remove-item,.remove-membership{border:0;border-radius:13px;background:rgba(251,113,133,.2);color:#fecdd3;font-size:22px;height:45px;cursor:pointer}.pos-membership-card{background:linear-gradient(145deg,rgba(21,26,46,.92),rgba(47,37,82,.74));position:relative}.pos-membership-card:before{content:"";position:absolute;left:18px;right:18px;top:0;height:4px;border-radius:99px;background:linear-gradient(90deg,#22d3ee,#f472b6,#fbbf24)}.btn-mini{padding:8px 12px;border-radius:12px;font-size:12px}.lookup-status{display:block}.found-customer-card{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.found-customer-card div{display:flex;flex-direction:column;gap:3px;min-width:0}.found-customer-card span{font-size:12px;line-height:1.3;white-space:normal;color:inherit;opacity:.9}.lookup-status.selectable{padding:10px 12px}.lookup-status b{color:#fff}.panel-head .muted{margin-top:3px;font-size:12px}.pos-right{position:sticky;top:18px}
@media (max-width:1320px){.pos-layout{grid-template-columns:1fr}.pos-right{position:static}.item-row{grid-template-columns:minmax(130px,1fr) minmax(160px,1fr) 70px 100px minmax(130px,1fr) 40px}.membership-row{grid-template-columns:minmax(170px,1.4fr) 70px 110px 95px 110px 40px}}
@media (max-width:820px){.item-row,.membership-row{grid-template-columns:1fr}.remove-item,.remove-membership{width:100%}.found-customer-card{align-items:flex-start;flex-direction:column}.btn-mini{width:100%}}

/* POS VERIFIED UPDATE - no cut, customer lookup, membership card below service */
.pos-layout{
  display:grid !important;
  grid-template-columns:minmax(280px,330px) minmax(0,1fr) !important;
  grid-template-areas:
    "customer items"
    "summary items" !important;
  gap:20px !important;
  align-items:start !important;
}
.pos-left{grid-area:customer !important;min-width:0 !important;}
.pos-center-stack{grid-area:items !important;display:flex !important;flex-direction:column !important;gap:20px !important;min-width:0 !important;}
.pos-right{grid-area:summary !important;position:sticky !important;top:18px !important;min-width:0 !important;}
.pos-center,.pos-membership-card{width:100% !important;min-width:0 !important;overflow:visible !important;}
.item-row,.membership-row{
  width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
  box-sizing:border-box !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
.item-row{
  display:grid !important;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1.25fr) minmax(58px,.45fr) minmax(82px,.62fr) minmax(0,1fr) 38px !important;
  gap:10px !important;
}
.membership-row{
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(58px,.42fr) minmax(82px,.62fr) minmax(76px,.58fr) minmax(96px,.72fr) 38px !important;
  gap:10px !important;
}
.item-row .field,.membership-row .field{min-width:0 !important;}
.item-row input,.item-row select,.membership-row input,.membership-row select{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  padding:11px 10px !important;
  box-sizing:border-box !important;
  font-size:14px !important;
}
.item-row label,.membership-row label{font-size:11px !important;white-space:nowrap !important;}
.remove-item,.remove-membership{width:38px !important;padding:0 !important;align-self:end !important;}
.walkin-info{margin-bottom:14px !important;}
.lookup-status{display:block !important;line-height:1.4 !important;}
.found-customer-card{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;width:100% !important;}
.found-customer-card>div{min-width:0 !important;}
.found-customer-card b,.found-customer-card span{display:block !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.btn-mini{white-space:nowrap !important;}
@media (max-width:1180px){
  .pos-layout{grid-template-columns:1fr !important;grid-template-areas:"customer" "items" "summary" !important;}
  .pos-right{position:static !important;}
}
@media (max-width:820px){
  .item-row,.membership-row{grid-template-columns:1fr !important;}
  .remove-item,.remove-membership{width:100% !important;}
  .found-customer-card{align-items:flex-start !important;flex-direction:column !important;}
}

/* v1.0.4 POS sidebar + customer select working update */
.sidebar-slide-toggle{
  position:fixed;
  left:246px;
  top:92px;
  z-index:60;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:0 16px 16px 0;
  background:linear-gradient(135deg,rgba(255,209,102,.96),rgba(255,159,28,.96));
  color:#201405;
  font-size:25px;
  font-weight:1000;
  box-shadow:0 16px 35px rgba(0,0,0,.28);
  transition:left .25s ease, transform .22s ease, filter .22s ease;
}
.sidebar-slide-toggle:hover{transform:translateY(-2px);filter:brightness(1.06)}
.sidebar-slide-toggle span{line-height:1;transform:translateY(-3px)}
.app-shell.sidebar-collapsed .sidebar{
  width:0 !important;
  min-width:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  border-right:0 !important;
  overflow:hidden !important;
  box-shadow:none !important;
}
.app-shell.sidebar-collapsed .sidebar-slide-toggle{left:0}
.app-shell.sidebar-collapsed .main{
  max-width:100vw !important;
  width:100% !important;
}
.app-shell:not(.sidebar-collapsed) .sidebar-slide-toggle span{transform:rotate(90deg) translateX(-1px)}
body.route-pos .main{padding-left:28px !important;}
body.route-pos .topbar{margin-left:0 !important;}

body.route-pos .pos-layout{
  display:grid !important;
  grid-template-columns:minmax(285px,330px) minmax(520px,1fr) minmax(285px,330px) !important;
  grid-template-areas:"customer items summary" !important;
  gap:20px !important;
  align-items:start !important;
  width:100% !important;
}
body.route-pos .pos-left{grid-area:customer !important;min-width:0 !important;}
body.route-pos .pos-center-stack{grid-area:items !important;display:flex !important;flex-direction:column !important;gap:20px !important;min-width:0 !important;}
body.route-pos .pos-right{grid-area:summary !important;position:sticky !important;top:18px !important;min-width:0 !important;margin-bottom:0 !important;}
body.route-pos .pos-center,body.route-pos .pos-membership-card{width:100% !important;min-width:0 !important;overflow:visible !important;}
body.route-pos .item-row,body.route-pos .membership-row{
  width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
  border:1px solid rgba(255,255,255,.14) !important;
}
body.route-pos .item-row{
  display:grid !important;
  grid-template-columns:minmax(105px,1fr) minmax(120px,1.12fr) minmax(58px,.48fr) minmax(78px,.65fr) minmax(112px,1fr) 38px !important;
  gap:10px !important;
  align-items:end !important;
}
body.route-pos .membership-row{
  display:grid !important;
  grid-template-columns:minmax(150px,1.45fr) minmax(58px,.45fr) minmax(82px,.68fr) minmax(75px,.62fr) minmax(95px,.78fr) 38px !important;
  gap:10px !important;
  align-items:end !important;
}
body.route-pos .item-row .field,body.route-pos .membership-row .field{min-width:0 !important;}
body.route-pos .item-row input,body.route-pos .item-row select,body.route-pos .membership-row input,body.route-pos .membership-row select{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  padding:11px 10px !important;
  font-size:14px !important;
}
body.route-pos .item-row label,body.route-pos .membership-row label{font-size:11px !important;white-space:nowrap !important;}
body.route-pos .remove-item,body.route-pos .remove-membership{width:38px !important;min-width:38px !important;padding:0 !important;align-self:end !important;}
.lookup-status.selected{background:rgba(52,211,153,.22) !important;border-color:rgba(52,211,153,.38) !important;color:#dcfce7 !important;}
.selected-customer-card,.found-customer-card{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;width:100% !important;}
.selected-customer-card>div,.found-customer-card>div{min-width:0 !important;display:flex !important;flex-direction:column !important;gap:3px !important;}
.selected-customer-card b,.selected-customer-card span,.found-customer-card b,.found-customer-card span{display:block !important;overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important;}
.btn-mini{white-space:nowrap !important;}

@media (max-width:1380px){
  body.route-pos .pos-layout{
    grid-template-columns:minmax(280px,330px) minmax(520px,1fr) !important;
    grid-template-areas:"customer items" "summary items" !important;
  }
  body.route-pos .pos-right{position:static !important;}
}
.app-shell.sidebar-collapsed body.route-pos .pos-layout,
body.route-pos .app-shell.sidebar-collapsed .pos-layout{
  grid-template-columns:minmax(285px,330px) minmax(520px,1fr) minmax(285px,330px) !important;
  grid-template-areas:"customer items summary" !important;
}
@media (max-width:1120px){
  body.route-pos .pos-layout,body.route-pos .app-shell.sidebar-collapsed .pos-layout{
    grid-template-columns:1fr !important;
    grid-template-areas:"customer" "items" "summary" !important;
  }
  body.route-pos .pos-right{position:static !important;}
}
@media (max-width:820px){
  .sidebar-slide-toggle{left:0;top:82px;width:44px;height:44px;}
  .app-shell:not(.sidebar-collapsed) .sidebar-slide-toggle{left:254px;}
  body.route-pos .main{padding-left:16px !important;}
  body.route-pos .item-row,body.route-pos .membership-row{grid-template-columns:1fr !important;}
  body.route-pos .remove-item,body.route-pos .remove-membership{width:100% !important;}
  .selected-customer-card,.found-customer-card{align-items:flex-start !important;flex-direction:column !important;}
  .btn-mini{width:100% !important;}
}

/* v1.0.5 POS required customer + membership/billing summary fixes */
body.route-pos .pos-left{width:100% !important;}
body.route-pos .pos-left .form-grid{grid-template-columns:1fr 1fr !important;gap:12px !important;}
.pos-client-error{margin:0 0 12px !important;padding:10px 12px !important;font-size:13px !important;}
.field-error label{color:#fecdd3 !important;}
.invalid-input,.field-error input,.field-error select,.field-error textarea{
  border-color:#fb7185 !important;
  box-shadow:0 0 0 3px rgba(251,113,133,.22), inset 0 1px 0 rgba(255,255,255,.08) !important;
  background:rgba(127,29,29,.20) !important;
}
.required-field label:after{content:"";}
.customer-detail-panel{margin:-4px 0 14px;}
.customer-mini-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.customer-mini-actions .btn-mini{width:100%;text-align:center;justify-content:center;padding:10px 8px !important;}
.customer-history-card{
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:12px;
  background:linear-gradient(145deg,rgba(15,23,42,.72),rgba(56,189,248,.09),rgba(244,114,182,.06));
  box-shadow:0 12px 28px rgba(0,0,0,.16);
}
.customer-history-card p{margin:6px 0 0;color:var(--muted);font-size:12px;}
.history-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px;}
.mini-x{border:0;width:28px;height:28px;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-weight:900;cursor:pointer;}
.history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.10);}
.history-row:first-of-type{border-top:0;}
.history-row div{min-width:0;}
.history-row b,.history-row span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.history-row span{font-size:11px;color:var(--muted);margin-top:2px;}
.history-row a{color:#93c5fd;font-size:12px;text-decoration:none;font-weight:900;}
.found-customer-card .customer-actions-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.lookup-status .btn-mini{cursor:pointer;}
.lookup-status.success.selectable{background:linear-gradient(135deg,rgba(16,185,129,.24),rgba(20,184,166,.16)) !important;}
body.route-pos .selected-customer-card .btn-mini, body.route-pos .found-customer-card .btn-mini{background:linear-gradient(135deg,#ffd166,#ff9f1c) !important;color:#1a1205 !important;border:0 !important;font-weight:1000 !important;}
body.route-pos .found-customer-card{align-items:center !important;}
body.route-pos .found-customer-card > div{flex:1;}
body.route-pos .pos-layout{align-items:start !important;}
body.route-pos .pos-right .btn-full{position:relative;z-index:1;}
body.route-pos .pos-center-stack{width:100% !important;}
body.route-pos .pos-center,body.route-pos .pos-membership-card,body.route-pos .pos-right,body.route-pos .pos-left{box-sizing:border-box !important;}
@media (min-width:1381px){
  body.route-pos .app-shell.sidebar-collapsed .pos-layout{
    grid-template-columns:minmax(300px,350px) minmax(560px,1fr) minmax(300px,350px) !important;
    grid-template-areas:"customer items summary" !important;
  }
}
@media (max-width:820px){
  body.route-pos .pos-left .form-grid{grid-template-columns:1fr !important;}
  .customer-mini-actions{grid-template-columns:1fr;}
  .history-row{align-items:flex-start;flex-direction:column;}
}


/* v1.0.6 FINAL POS fixes: visible customer action buttons + strict validation + compact alignment */
body.route-pos .found-customer-card .customer-actions-inline{display:flex !important;gap:8px !important;align-items:center !important;justify-content:flex-end !important;flex-wrap:wrap !important;min-width:260px !important;}
body.route-pos .found-customer-card .customer-actions-inline .btn-mini{width:auto !important;min-width:auto !important;padding:9px 11px !important;font-size:12px !important;}
body.route-pos .lookup-status.selectable{padding:10px !important;}
body.route-pos .lookup-status.selectable .found-customer-card{align-items:center !important;}
body.route-pos .customer-detail-panel:not([hidden]){display:block !important;}
body.route-pos .field-error input,
body.route-pos .field-error select,
body.route-pos .field-error textarea,
body.route-pos input.invalid-input,
body.route-pos select.invalid-input,
body.route-pos textarea.invalid-input{border-color:#fb7185 !important;background:rgba(127,29,29,.28) !important;box-shadow:0 0 0 3px rgba(251,113,133,.25) !important;}
body.route-pos .pos-client-error{border-color:#fb7185 !important;background:rgba(127,29,29,.32) !important;color:#ffe4e6 !important;}
@media (min-width:1450px){
  body.route-pos .app-shell.sidebar-collapsed .pos-layout{grid-template-columns:340px minmax(620px,1fr) 340px !important;}
}
@media (max-width:1460px){
  body.route-pos .found-customer-card{align-items:flex-start !important;flex-direction:column !important;}
  body.route-pos .found-customer-card .customer-actions-inline{justify-content:flex-start !important;min-width:0 !important;width:100% !important;}
}
@media (max-width:820px){
  body.route-pos .found-customer-card .customer-actions-inline{display:grid !important;grid-template-columns:1fr !important;}
  body.route-pos .found-customer-card .customer-actions-inline .btn-mini{width:100% !important;}
}

/* v1.0.7 POS select button + customer tabs + popover summary */
body.route-pos .lookup-status.selectable{
  padding:12px !important;
  overflow:visible !important;
}
body.route-pos .found-customer-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:10px !important;
  width:100% !important;
}
body.route-pos .found-customer-text{
  min-width:0 !important;
  display:block !important;
}
body.route-pos .found-customer-text b,
body.route-pos .found-customer-text span{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body.route-pos .found-customer-text span{font-size:12px !important;opacity:.92 !important;margin-top:3px !important;}
body.route-pos .customer-actions-inline.customer-tab-row{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:7px !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  width:100% !important;
  min-width:0 !important;
}
body.route-pos .customer-actions-inline.customer-tab-row .btn-mini{
  width:100% !important;
  min-width:0 !important;
  padding:9px 6px !important;
  font-size:11px !important;
  line-height:1.1 !important;
  white-space:normal !important;
  text-align:center !important;
  justify-content:center !important;
  border:1px solid rgba(255,255,255,.16) !important;
  background:linear-gradient(135deg,rgba(255,209,102,.92),rgba(255,159,28,.92)) !important;
  color:#1a1205 !important;
  transition:transform .22s ease, box-shadow .22s ease, filter .22s ease !important;
}
body.route-pos .customer-actions-inline.customer-tab-row .btn-mini:hover{
  transform:translateY(-2px) scale(1.015) !important;
  box-shadow:0 12px 24px rgba(255,159,28,.22) !important;
}
body.route-pos .customer-actions-inline.customer-tab-row .btn-mini.active,
body.route-pos .customer-actions-inline.customer-tab-row .btn-mini.selected{
  background:linear-gradient(135deg,#22c55e,#14b8a6) !important;
  color:#fff !important;
  box-shadow:0 12px 28px rgba(20,184,166,.25) !important;
}
body.route-pos .customer-detail-panel{
  position:relative !important;
  margin:8px 0 14px !important;
  animation:crmPopoverIn .22s ease both !important;
}
body.route-pos .customer-detail-panel[hidden]{display:none !important;}
body.route-pos .customer-history-card.popover-card{
  position:relative !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:18px !important;
  padding:13px !important;
  background:linear-gradient(145deg,rgba(15,23,42,.96),rgba(30,64,175,.22),rgba(124,58,237,.18)) !important;
  box-shadow:0 18px 34px rgba(0,0,0,.28) !important;
  overflow:visible !important;
}
body.route-pos .customer-history-card.popover-card:before{
  content:"";
  position:absolute;
  top:-8px;
  left:42px;
  width:16px;
  height:16px;
  transform:rotate(45deg);
  border-left:1px solid rgba(255,255,255,.18);
  border-top:1px solid rgba(255,255,255,.18);
  background:rgba(30,41,59,.95);
}
@keyframes crmPopoverIn{
  from{opacity:0;transform:translateY(-8px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
body.route-pos .history-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
}
body.route-pos .history-row b,
body.route-pos .history-row span{white-space:normal !important;}
body.route-pos .selected-customer-card{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}
body.route-pos .selected-customer-card .change-customer-btn{
  width:auto !important;
  min-width:86px !important;
}
@media (max-width:820px){
  body.route-pos .customer-actions-inline.customer-tab-row{grid-template-columns:1fr !important;}
}

/* v1.0.8 Membership redemption service + invoice share buttons */
body.route-pos .membership-service-card{
  position:relative !important;
  overflow:hidden !important;
  background:linear-gradient(145deg,rgba(5,36,42,.94),rgba(13,63,73,.80),rgba(17,94,89,.60)) !important;
  border-color:rgba(45,212,191,.30) !important;
  animation:crmPopoverIn .24s ease both !important;
}
body.route-pos .membership-service-card:before{
  content:"";position:absolute;left:18px;right:18px;top:0;height:4px;border-radius:99px;
  background:linear-gradient(90deg,#22c55e,#22d3ee,#a78bfa) !important;
}
body.route-pos .membership-service-card[hidden]{display:none !important;}
body.route-pos .membership-redeem-box{
  border:1px solid rgba(255,255,255,.16);
  border-radius:22px;
  padding:18px;
  background:linear-gradient(135deg,rgba(16,185,129,.22),rgba(56,189,248,.12),rgba(124,58,237,.12));
  box-shadow:0 18px 42px rgba(0,0,0,.25);
}
body.route-pos .redeem-main{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
body.route-pos .redeem-icon{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;font-size:28px;background:linear-gradient(135deg,#22c55e,#22d3ee);box-shadow:0 16px 34px rgba(34,211,238,.22);}
body.route-pos .redeem-main b{display:block;font-size:20px;color:#fff;}
body.route-pos .redeem-main span{display:block;color:#ccfbf1;font-size:13px;margin-top:4px;}
body.route-pos .redeem-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;}
body.route-pos .redeem-stats div{border:1px solid rgba(255,255,255,.13);border-radius:18px;padding:13px;background:rgba(255,255,255,.08);}
body.route-pos .redeem-stats span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;}
body.route-pos .redeem-stats b{display:block;color:#fff;font-size:22px;margin-top:4px;}
body.route-pos .membership-redemption-active .pos-center[hidden],
body.route-pos .membership-redemption-active .pos-membership-card[hidden]{display:none !important;}
body.route-pos .membership-use-row{grid-template-columns:minmax(0,1fr) minmax(112px,auto) !important;gap:12px !important;}
body.route-pos .membership-use-side{display:flex !important;flex-direction:column !important;align-items:flex-end !important;gap:4px !important;}
body.route-pos .use-membership-session-btn{margin-top:5px !important;background:linear-gradient(135deg,#22c55e,#14b8a6) !important;color:#fff !important;border:0 !important;}
body.route-pos .use-membership-session-btn:disabled{opacity:.52 !important;cursor:not-allowed !important;filter:grayscale(.2) !important;}
.btn-whatsapp{background:linear-gradient(135deg,#22c55e,#16a34a) !important;color:#fff !important;border:0 !important;}
@media (max-width:820px){body.route-pos .redeem-stats{grid-template-columns:1fr;} body.route-pos .membership-use-side{align-items:flex-start !important;}}

/* v1.1.0 membership multi-session redeem + share buttons */
body.route-pos .membership-use-row{align-items:center !important;}
body.route-pos .membership-use-row em{display:block;color:#93c5fd;font-size:11px;margin-top:4px;font-style:normal;}
body.route-pos .redeem-count-label{display:flex;align-items:center;gap:6px;font-size:12px;color:#dbeafe;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:5px 8px;white-space:nowrap;}
body.route-pos .redeem-session-count{width:56px !important;min-width:56px !important;height:30px !important;padding:4px 8px !important;border-radius:10px !important;text-align:center !important;font-weight:900 !important;color:#fff !important;background:rgba(15,23,42,.55) !important;border:1px solid rgba(255,209,102,.55) !important;}
body.route-pos .membership-redeem-box .redeem-stats{grid-template-columns:repeat(4,minmax(0,1fr));}
.share-bill-actions{position:sticky;top:10px;z-index:20;background:linear-gradient(135deg,rgba(15,23,42,.92),rgba(30,41,59,.86));border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:12px;box-shadow:0 18px 45px rgba(0,0,0,.28);}
.share-bill-actions .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
@media (max-width:820px){body.route-pos .membership-redeem-box .redeem-stats{grid-template-columns:1fr 1fr;} .share-bill-actions{justify-content:stretch;flex-wrap:wrap}.share-bill-actions .btn{flex:1 1 45%;}}

/* v1.1.1 Membership detail checked fix */
.membership-use-side .redeem-count-label input{max-width:70px;text-align:center;}
.customer-history-card .membership-use-row{align-items:center;}


/* v1.1.3 Membership payment controls + saved source autofill */
body.route-pos .membership-payment-notice{
  margin:0 0 14px;padding:12px 14px;border-radius:16px;
  border:1px solid rgba(45,212,191,.30);
  background:linear-gradient(135deg,rgba(16,185,129,.20),rgba(34,211,238,.12));
  color:#ccfbf1;font-size:12px;font-weight:900;line-height:1.45;
  animation:crmPopoverIn .22s ease both;
}
body.route-pos .membership-payment-disabled .membership-payment-field{
  opacity:.48;filter:saturate(.55);transition:opacity .22s ease,filter .22s ease;
}
body.route-pos .membership-payment-disabled .membership-payment-field input:disabled,
body.route-pos .membership-payment-disabled .membership-payment-field select:disabled{
  cursor:not-allowed !important;background:rgba(15,23,42,.38) !important;
  border-color:rgba(148,163,184,.18) !important;color:#94a3b8 !important;
}
body.route-pos .membership-redemption-active .membership-redeem-box{margin-bottom:0;}

/* v1.1.4 Sold memberships filters, tabs and live summary */
body.route-customer_memberships .membership-report-panel{overflow:visible;}
body.route-customer_memberships .membership-report-head{align-items:flex-start;gap:16px;}
body.route-customer_memberships .membership-filter-tabs{
  display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 16px;padding:7px;
  border:1px solid rgba(255,255,255,.10);border-radius:18px;
  background:rgba(15,23,42,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
body.route-customer_memberships .membership-tab{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:10px 18px;border-radius:13px;color:#cbd5e1;
  font-size:13px;font-weight:900;text-decoration:none;border:1px solid transparent;
  transition:transform .22s ease,box-shadow .22s ease,color .22s ease,background .22s ease;
}
body.route-customer_memberships .membership-tab:hover{
  color:#fff;transform:translateY(-2px);background:rgba(255,255,255,.07);
}
body.route-customer_memberships .membership-tab.active{
  color:#07111f;background:linear-gradient(135deg,#ffd166,#ff9f1c,#fb7185);
  border-color:rgba(255,255,255,.28);box-shadow:0 12px 28px rgba(255,159,28,.23);
}
body.route-customer_memberships .membership-tab.active:after{
  content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:14px;
  transform:translateX(-50%) rotate(45deg);background:#ffad25;border-radius:3px;
}
body.route-customer_memberships .membership-filter-panel{
  margin-bottom:16px;padding:15px;border:1px solid rgba(255,255,255,.12);
  border-radius:20px;background:linear-gradient(135deg,rgba(30,41,59,.72),rgba(30,64,175,.12),rgba(124,58,237,.10));
}
body.route-customer_memberships .membership-filter-grid{
  display:grid;grid-template-columns:minmax(190px,1.35fr) repeat(4,minmax(145px,1fr)) auto;
  gap:12px;align-items:end;
}
body.route-customer_memberships .membership-filter-grid .field{margin:0;}
body.route-customer_memberships .membership-filter-actions{display:flex;gap:8px;align-items:center;}
body.route-customer_memberships .membership-filter-actions .btn{min-height:46px;white-space:nowrap;}
body.route-customer_memberships .membership-period-caption{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 12px;color:#94a3b8;font-size:12px;
}
body.route-customer_memberships .membership-period-caption b{color:#fff;font-size:13px;}
body.route-customer_memberships .membership-period-caption small{
  padding:5px 9px;border-radius:999px;background:rgba(56,189,248,.10);color:#bae6fd;border:1px solid rgba(56,189,248,.18);
}
body.route-customer_memberships .membership-summary-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px;
}
body.route-customer_memberships .membership-summary-card{
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:112px;padding:18px;border-radius:22px;border:1px solid rgba(255,255,255,.18);
  box-shadow:0 18px 38px rgba(0,0,0,.22);transition:transform .24s ease,box-shadow .24s ease;
}
body.route-customer_memberships .membership-summary-card:before{
  content:"";position:absolute;width:115px;height:115px;right:-35px;top:-35px;border-radius:50%;background:rgba(255,255,255,.13);
}
body.route-customer_memberships .membership-summary-card:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(0,0,0,.30);}
body.route-customer_memberships .membership-summary-card span{display:block;color:rgba(255,255,255,.80);font-size:12px;font-weight:900;}
body.route-customer_memberships .membership-summary-card strong{display:block;margin-top:7px;color:#fff;font-size:24px;line-height:1.1;}
body.route-customer_memberships .membership-summary-card i{
  position:relative;z-index:1;width:52px;height:52px;display:grid;place-items:center;border-radius:18px;
  background:rgba(255,255,255,.16);color:#fff;font-size:24px;font-style:normal;box-shadow:inset 0 1px 0 rgba(255,255,255,.20);
}
body.route-customer_memberships .membership-summary-card.violet{background:linear-gradient(135deg,#7c3aed,#c026d3,#ec4899);}
body.route-customer_memberships .membership-summary-card.green{background:linear-gradient(135deg,#059669,#14b8a6,#22c55e);}
body.route-customer_memberships .membership-summary-card.blue{background:linear-gradient(135deg,#2563eb,#0891b2,#22d3ee);}
body.route-customer_memberships .membership-summary-card.orange{background:linear-gradient(135deg,#f97316,#f59e0b,#facc15);}
body.route-customer_memberships .membership-table-wrap{border-radius:20px;border:1px solid rgba(255,255,255,.10);}
body.route-customer_memberships .membership-table-wrap table{min-width:1320px;}
body.route-customer_memberships .membership-table-wrap th{white-space:nowrap;}
body.route-pos .walkin-info.compact{padding:11px 13px;}
body.route-pos .walkin-info.compact b{margin:0;}

@media (max-width:1250px){
  body.route-customer_memberships .membership-filter-grid{grid-template-columns:repeat(3,minmax(170px,1fr));}
  body.route-customer_memberships .membership-filter-actions{grid-column:span 3;justify-content:flex-end;}
}
@media (max-width:900px){
  body.route-customer_memberships .membership-summary-grid{grid-template-columns:1fr 1fr;}
  body.route-customer_memberships .membership-filter-grid{grid-template-columns:1fr 1fr;}
  body.route-customer_memberships .membership-filter-actions{grid-column:span 2;}
}
@media (max-width:620px){
  body.route-customer_memberships .membership-filter-tabs{display:grid;grid-template-columns:1fr 1fr;}
  body.route-customer_memberships .membership-tab{padding:9px 10px;}
  body.route-customer_memberships .membership-summary-grid{grid-template-columns:1fr;}
  body.route-customer_memberships .membership-filter-grid{grid-template-columns:1fr;}
  body.route-customer_memberships .membership-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;}
  body.route-customer_memberships .membership-report-head{flex-direction:column;align-items:stretch;}
}

/* v1.1.6 Invoice filters, GST selector and invoice summary cards */
body.route-pos .gst-choice-field select{
  font-weight:900;
  border-color:rgba(56,189,248,.32);
  background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(124,58,237,.10));
}
body.route-pos .gst-choice-field select:focus{
  border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.15);
}
body.route-invoices .invoice-report-panel{overflow:visible;}
body.route-invoices .invoice-report-head{align-items:flex-start;gap:16px;}
body.route-invoices .invoice-filter-tabs{
  display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 16px;padding:7px;
  border:1px solid rgba(255,255,255,.10);border-radius:18px;
  background:rgba(15,23,42,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
body.route-invoices .invoice-tab{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:10px 18px;border-radius:13px;color:#cbd5e1;
  font-size:13px;font-weight:900;text-decoration:none;border:1px solid transparent;
  transition:transform .22s ease,box-shadow .22s ease,color .22s ease,background .22s ease;
}
body.route-invoices .invoice-tab:hover{
  color:#fff;transform:translateY(-2px);background:rgba(255,255,255,.07);
}
body.route-invoices .invoice-tab.active{
  color:#07111f;background:linear-gradient(135deg,#38bdf8,#22d3ee,#a78bfa);
  border-color:rgba(255,255,255,.28);box-shadow:0 12px 28px rgba(34,211,238,.22);
}
body.route-invoices .invoice-tab.active:after{
  content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:14px;
  transform:translateX(-50%) rotate(45deg);background:#54c9ec;border-radius:3px;
}
body.route-invoices .invoice-filter-panel{
  margin-bottom:16px;padding:15px;border:1px solid rgba(255,255,255,.12);
  border-radius:20px;background:linear-gradient(135deg,rgba(30,41,59,.72),rgba(14,165,233,.10),rgba(124,58,237,.10));
}
body.route-invoices .invoice-filter-grid{
  display:grid;grid-template-columns:minmax(210px,1.45fr) repeat(5,minmax(145px,1fr)) auto;
  gap:12px;align-items:end;
}
body.route-invoices .invoice-filter-grid .field{margin:0;}
body.route-invoices .invoice-filter-actions{display:flex;gap:8px;align-items:center;}
body.route-invoices .invoice-filter-actions .btn{min-height:46px;white-space:nowrap;}
body.route-invoices .invoice-period-caption{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 12px;color:#94a3b8;font-size:12px;
}
body.route-invoices .invoice-period-caption b{color:#fff;font-size:13px;}
body.route-invoices .invoice-period-caption small{
  padding:5px 9px;border-radius:999px;background:rgba(56,189,248,.10);color:#bae6fd;border:1px solid rgba(56,189,248,.18);
}
body.route-invoices .invoice-summary-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px;
}
body.route-invoices .invoice-summary-card{
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:112px;padding:18px;border-radius:22px;border:1px solid rgba(255,255,255,.18);
  box-shadow:0 18px 38px rgba(0,0,0,.22);transition:transform .24s ease,box-shadow .24s ease;
}
body.route-invoices .invoice-summary-card:before{
  content:"";position:absolute;width:115px;height:115px;right:-35px;top:-35px;border-radius:50%;background:rgba(255,255,255,.13);
}
body.route-invoices .invoice-summary-card:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(0,0,0,.30);}
body.route-invoices .invoice-summary-card span{display:block;color:rgba(255,255,255,.80);font-size:12px;font-weight:900;}
body.route-invoices .invoice-summary-card strong{display:block;margin-top:7px;color:#fff;font-size:24px;line-height:1.1;}
body.route-invoices .invoice-summary-card i{
  position:relative;z-index:1;width:52px;height:52px;display:grid;place-items:center;border-radius:18px;
  background:rgba(255,255,255,.16);color:#fff;font-size:24px;font-style:normal;box-shadow:inset 0 1px 0 rgba(255,255,255,.20);
}
body.route-invoices .invoice-summary-card.violet{background:linear-gradient(135deg,#7c3aed,#c026d3,#ec4899);}
body.route-invoices .invoice-summary-card.green{background:linear-gradient(135deg,#059669,#14b8a6,#22c55e);}
body.route-invoices .invoice-summary-card.blue{background:linear-gradient(135deg,#2563eb,#0891b2,#22d3ee);}
body.route-invoices .invoice-summary-card.orange{background:linear-gradient(135deg,#f97316,#f59e0b,#facc15);}
body.route-invoices .invoice-table-wrap{border-radius:20px;border:1px solid rgba(255,255,255,.10);}
body.route-invoices .invoice-table-wrap table{min-width:1380px;}
body.route-invoices .invoice-table-wrap th{white-space:nowrap;}
.gst-list-badge{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap;}
.gst-list-badge.applicable{color:#bbf7d0;background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.28);}
.gst-list-badge.not-applicable{color:#cbd5e1;background:rgba(148,163,184,.10);border:1px solid rgba(148,163,184,.20);}
.invoice-gst-line{font-weight:700;}

@media (max-width:1380px){
  body.route-invoices .invoice-filter-grid{grid-template-columns:repeat(3,minmax(170px,1fr));}
  body.route-invoices .invoice-filter-actions{grid-column:span 3;justify-content:flex-end;}
}
@media (max-width:900px){
  body.route-invoices .invoice-summary-grid{grid-template-columns:1fr 1fr;}
  body.route-invoices .invoice-filter-grid{grid-template-columns:1fr 1fr;}
  body.route-invoices .invoice-filter-actions{grid-column:span 2;}
}
@media (max-width:620px){
  body.route-invoices .invoice-filter-tabs{display:grid;grid-template-columns:1fr 1fr;}
  body.route-invoices .invoice-tab{padding:9px 10px;}
  body.route-invoices .invoice-summary-grid{grid-template-columns:1fr;}
  body.route-invoices .invoice-filter-grid{grid-template-columns:1fr;}
  body.route-invoices .invoice-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;}
  body.route-invoices .invoice-report-head{flex-direction:column;align-items:stretch;}
}

@media print{
  .invoice-gst-line{display:flex !important;}
}


/* v1.1.7 Partial payments + admin invoice editing */
[hidden]{display:none!important}
.partial-amount-field{animation:paymentFieldIn .22s ease both}
@keyframes paymentFieldIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.summary-box .payment-breakup{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)}
.summary-box .payment-breakup.balance b{color:#ffd166}
.balance-cell.due{color:#ffd166;font-weight:800}.balance-cell.clear,.paid-cell{color:#65efb0;font-weight:700}
.table-subtext{display:block;color:var(--muted);margin-top:4px;font-weight:500}
.payment-due-action{border-color:rgba(255,190,70,.6)!important;background:rgba(255,177,50,.14)!important;color:#ffd166!important}
.btn-warning{background:linear-gradient(135deg,#ffb52e,#ff7b47)!important;color:#17100a!important}
.invoice-edit-form{padding:22px}.invoice-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:20px;align-items:start}
.invoice-edit-main{min-width:0}.invoice-edit-payment{position:sticky;top:18px}.nested-panel{margin-top:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:18px}
.invoice-edit-item-row{display:grid;grid-template-columns:minmax(145px,.9fr) minmax(220px,1.4fr) 82px 115px minmax(145px,.9fr) 42px;gap:10px;align-items:end;margin-bottom:12px;padding:14px;border-radius:17px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1)}
.invoice-edit-item-row .field{margin:0}.remove-edit-item{height:44px;border:0;border-radius:13px;background:rgba(255,88,118,.25);color:#ffc1ce;font-size:24px;cursor:pointer}
.payment-position{display:grid;gap:8px;margin:14px 0;padding:14px;border-radius:16px;background:rgba(255,255,255,.055)}.payment-position div{display:flex;justify-content:space-between;gap:12px}.payment-position span{color:var(--muted)}
.invoice-paid-line b{color:#20d997}.invoice-balance-line b{color:#ffb84d}.invoice-payment-history{margin-top:22px;padding:18px;border-radius:18px;background:#f5f7fb;color:#1f2937}.invoice-payment-history h4{margin:0 0 12px}.invoice-payment-history table{width:100%;border-collapse:collapse}.invoice-payment-history th,.invoice-payment-history td{padding:9px;border-bottom:1px solid #dce2ec;text-align:left}
@media(max-width:1180px){.invoice-edit-grid{grid-template-columns:1fr}.invoice-edit-payment{position:static}.invoice-edit-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-edit-item-row .remove-edit-item{grid-column:2;justify-self:end;width:44px}}
@media(max-width:700px){.invoice-edit-form{padding:12px}.invoice-edit-item-row{grid-template-columns:1fr}.invoice-edit-item-row .remove-edit-item{grid-column:1}}
@media print{.invoice-payment-history{background:#fff;border:1px solid #ddd}.invoice-edit-form{display:none!important}}

/* v1.1.8 Direct invoice email */
.invoice-email-direct-form{display:inline-flex;margin:0}
.btn-email-send{background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;border:0;box-shadow:0 10px 25px rgba(79,70,229,.28)}
.btn-email-send:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(79,70,229,.38)}
.invoice-email-card{margin:14px 0 20px;padding:18px 20px;border-radius:20px;border:1px solid rgba(96,165,250,.35);background:linear-gradient(135deg,rgba(30,41,59,.96),rgba(49,46,129,.72));display:grid;grid-template-columns:minmax(220px,1fr) minmax(340px,1.45fr);gap:18px;align-items:center;box-shadow:0 18px 45px rgba(2,6,23,.34);transform:translateY(-8px);opacity:0;transition:.18s ease}
.invoice-email-card.is-open{transform:translateY(0);opacity:1}
.invoice-email-card b{font-size:18px;color:#fff}.invoice-email-card p{margin:5px 0 0;color:#cbd5e1;line-height:1.45}
.invoice-email-card-form{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;align-items:center}
.invoice-email-card-form input{min-width:0}
.smtp-settings-form{max-width:1050px;margin:0 auto}.smtp-status-badge{display:inline-flex;align-items:center;padding:8px 13px;border-radius:999px;font-size:13px;font-weight:800}.smtp-status-badge.ready{color:#86efac;background:rgba(34,197,94,.16);border:1px solid rgba(34,197,94,.35)}.smtp-status-badge.pending{color:#fcd34d;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.35)}
.smtp-help{line-height:1.55}.smtp-settings-form small{display:block;margin-top:7px;color:var(--muted,#94a3b8)}
@media(max-width:900px){.invoice-email-card{grid-template-columns:1fr}.invoice-email-card-form{grid-template-columns:1fr}.invoice-email-card-form .btn{width:100%}.invoice-email-direct-form{width:100%}.invoice-email-direct-form .btn{width:100%}}
@media print{.invoice-email-card,.invoice-email-direct-form{display:none!important}}

/* v1.1.9 Responsive invoice actions, auto-fit sidebar and permission controls */
.app-shell,.main,.panel,.invoice-report-panel,.invoice-filter-panel,.invoice-table-wrap{min-width:0;max-width:100%;}
.main{overflow-x:hidden;}
body.route-invoices .invoice-report-panel{overflow:hidden !important;}
body.route-invoices .invoice-filter-panel{overflow:hidden;}
body.route-invoices .invoice-filter-grid{
  grid-template-columns:minmax(190px,1.45fr) repeat(5,minmax(128px,1fr)) !important;
  gap:12px !important;
  width:100%;
}
body.route-invoices .invoice-filter-actions{
  grid-column:1/-1 !important;
  justify-content:flex-end !important;
  flex-wrap:wrap;
}
body.route-invoices .invoice-filter-actions .btn{min-width:122px;}
body.route-invoices .invoice-table-wrap{
  width:100%;
  max-width:100%;
  overflow:auto !important;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
}
body.route-invoices .invoice-table-wrap table{min-width:1420px;}
body.route-invoices .invoice-table-wrap th:last-child,
body.route-invoices .invoice-table-wrap td:last-child{
  position:sticky;
  right:0;
  z-index:4;
  min-width:260px;
  background:linear-gradient(135deg,rgba(45,55,79,.98),rgba(39,48,72,.98));
  box-shadow:-14px 0 24px rgba(3,7,18,.32);
}
body.route-invoices .invoice-table-wrap th:last-child{z-index:7;background:linear-gradient(135deg,#3b455e,#46516d);}
body.route-invoices .invoice-table-wrap tr:hover td:last-child{background:linear-gradient(135deg,rgba(62,73,99,.99),rgba(48,58,83,.99));}
.invoice-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;white-space:normal !important;}
.inline-delete-form{display:inline-flex;margin:0;padding:0;}
.btn-danger{background:linear-gradient(135deg,#ef4444,#fb7185) !important;color:#fff !important;box-shadow:0 12px 28px rgba(239,68,68,.24) !important;}
.invoice-row-actions .icon-btn{margin:0;min-height:36px;}
.invoice-row-actions .view-action{background:linear-gradient(135deg,rgba(56,189,248,.24),rgba(139,92,246,.20));color:#dff7ff;border-color:rgba(56,189,248,.35);}

/* Stylish double-chevron sidebar control */
.sidebar-slide-toggle{
  left:268px !important;
  top:96px !important;
  width:42px !important;
  height:56px !important;
  border-radius:0 18px 18px 0 !important;
  background:linear-gradient(160deg,#ffd166 0%,#ff9f1c 48%,#ff6b6b 100%) !important;
  color:#241604 !important;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.55) !important;
  overflow:hidden;
}
.sidebar-slide-toggle:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.45) 45%,transparent 70%);
  transform:translateX(-120%);transition:transform .55s ease;
}
.sidebar-slide-toggle:hover:before{transform:translateX(120%);}
.sidebar-toggle-icon{position:relative;display:block;width:20px;height:22px;transition:transform .3s cubic-bezier(.2,.8,.2,1);}
.sidebar-toggle-icon:before,.sidebar-toggle-icon:after{
  content:"";position:absolute;top:50%;width:10px;height:10px;
  border-top:3px solid currentColor;border-right:3px solid currentColor;
  transform:translateY(-50%) rotate(225deg);border-radius:1px;
}
.sidebar-toggle-icon:before{left:1px;}
.sidebar-toggle-icon:after{left:7px;opacity:.72;}
.app-shell.sidebar-collapsed .sidebar-slide-toggle{left:0 !important;border-radius:0 18px 18px 0 !important;}
.app-shell.sidebar-collapsed .sidebar-toggle-icon{transform:rotate(180deg);}
.sidebar-slide-toggle:hover{transform:translateY(-2px) scale(1.04) !important;filter:saturate(1.08) brightness(1.05) !important;}
.sidebar-slide-toggle:active{transform:translateY(0) scale(.96) !important;}

/* Permission table remains readable on narrow screens */
body.route-roles .table-wrap{max-width:100%;overflow:auto;}
body.route-roles .table-wrap table{min-width:760px;}

@media (max-width:1500px){
  body.route-invoices .invoice-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.route-invoices .invoice-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  body.route-invoices .invoice-filter-actions{grid-column:1/-1 !important;}
}
@media (max-width:1050px){
  body.route-invoices .invoice-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  body.route-invoices .invoice-filter-actions{grid-column:1/-1 !important;justify-content:stretch !important;}
  body.route-invoices .invoice-filter-actions .btn{flex:1;}
}
@media (max-width:820px){
  .sidebar-slide-toggle{left:0 !important;top:84px !important;width:40px !important;height:48px !important;}
  body.route-invoices .invoice-summary-grid{grid-template-columns:1fr;}
  body.route-invoices .invoice-filter-grid{grid-template-columns:1fr !important;}
  body.route-invoices .invoice-filter-actions{display:grid !important;grid-template-columns:1fr 1fr !important;}
  body.route-invoices .invoice-table-wrap th:last-child,
  body.route-invoices .invoice-table-wrap td:last-child{position:static;min-width:240px;box-shadow:none;}
}


/* v1.1.10 Compact right-aligned invoice actions — fits standard desktop screens */
body.route-invoices .invoice-table-wrap table{
  width:100% !important;
  min-width:1080px !important;
  table-layout:fixed;
}
body.route-invoices .invoice-table-wrap th,
body.route-invoices .invoice-table-wrap td{
  padding:12px 9px !important;
  font-size:13px;
  overflow-wrap:anywhere;
}
body.route-invoices .invoice-table-wrap th:nth-child(1),
body.route-invoices .invoice-table-wrap td:nth-child(1){width:9.5%;}
body.route-invoices .invoice-table-wrap th:nth-child(2),
body.route-invoices .invoice-table-wrap td:nth-child(2){width:13.5%;}
body.route-invoices .invoice-table-wrap th:nth-child(3),
body.route-invoices .invoice-table-wrap td:nth-child(3){width:13%;}
body.route-invoices .invoice-table-wrap th:nth-child(4),
body.route-invoices .invoice-table-wrap td:nth-child(4){width:12%;}
body.route-invoices .invoice-table-wrap th:nth-child(5),
body.route-invoices .invoice-table-wrap td:nth-child(5),
body.route-invoices .invoice-table-wrap th:nth-child(6),
body.route-invoices .invoice-table-wrap td:nth-child(6),
body.route-invoices .invoice-table-wrap th:nth-child(7),
body.route-invoices .invoice-table-wrap td:nth-child(7){width:8%; white-space:nowrap;}
body.route-invoices .invoice-table-wrap th:nth-child(8),
body.route-invoices .invoice-table-wrap td:nth-child(8){width:10%;}
body.route-invoices .invoice-table-wrap th:nth-child(9),
body.route-invoices .invoice-table-wrap td:nth-child(9){width:7.5%;}
body.route-invoices .invoice-table-wrap th:last-child,
body.route-invoices .invoice-table-wrap td:last-child{
  width:19.5%;
  min-width:210px !important;
  text-align:right !important;
  padding-left:6px !important;
  padding-right:10px !important;
}
body.route-invoices .invoice-table-wrap th:last-child{
  padding-right:14px !important;
}
body.route-invoices .invoice-row-actions{
  width:100%;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
  gap:5px !important;
  white-space:nowrap !important;
}
body.route-invoices .invoice-row-actions .icon-btn,
body.route-invoices .invoice-row-actions .inline-delete-form .icon-btn{
  margin:0 !important;
  min-height:34px !important;
  padding:7px 9px !important;
  border-radius:11px !important;
  font-size:10.5px !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  flex:0 0 auto;
}
body.route-invoices .invoice-row-actions .view-action{min-width:72px;}
body.route-invoices .invoice-row-actions .payment-due-action{padding-inline:7px !important;}
body.route-invoices .inline-delete-form{display:inline-flex !important;flex:0 0 auto;}

/* Keep the table fully visible on common 1366–1600 px desktop widths. */
@media (min-width:1100px) and (max-width:1600px){
  body.route-invoices .main{padding-left:28px !important;padding-right:28px !important;}
  body.route-invoices .invoice-report-panel{padding-left:22px !important;padding-right:22px !important;}
  body.route-invoices .invoice-table-wrap table{min-width:1040px !important;}
  body.route-invoices .invoice-table-wrap th,
  body.route-invoices .invoice-table-wrap td{padding-left:7px !important;padding-right:7px !important;font-size:12.5px;}
  body.route-invoices .invoice-row-actions{gap:4px !important;}
  body.route-invoices .invoice-row-actions .icon-btn,
  body.route-invoices .invoice-row-actions .inline-delete-form .icon-btn{padding:7px 7px !important;font-size:10px !important;}
}
@media (max-width:1099px){
  body.route-invoices .invoice-table-wrap table{min-width:1120px !important;table-layout:auto;}
  body.route-invoices .invoice-table-wrap th:last-child,
  body.route-invoices .invoice-table-wrap td:last-child{min-width:220px !important;}
}


/* v1.1.12 — compact sticky View/Edit/Delete actions and live India time */
.timezone-label{
  display:inline-flex;align-items:center;justify-content:center;margin-left:5px;padding:2px 7px;
  border-radius:999px;background:rgba(56,189,248,.13);border:1px solid rgba(56,189,248,.24);
  color:#a5e7ff;font-size:10px;font-weight:800;letter-spacing:.06em;vertical-align:middle;
}
body.route-invoices .invoice-table-wrap table{
  width:100% !important;
  min-width:1010px !important;
  table-layout:fixed !important;
}
body.route-invoices .invoice-table-wrap th:nth-child(1),
body.route-invoices .invoice-table-wrap td:nth-child(1){width:10% !important;}
body.route-invoices .invoice-table-wrap th:nth-child(2),
body.route-invoices .invoice-table-wrap td:nth-child(2){width:13% !important;}
body.route-invoices .invoice-table-wrap th:nth-child(3),
body.route-invoices .invoice-table-wrap td:nth-child(3){width:14% !important;}
body.route-invoices .invoice-table-wrap th:nth-child(4),
body.route-invoices .invoice-table-wrap td:nth-child(4){width:13% !important;}
body.route-invoices .invoice-table-wrap th:nth-child(5),
body.route-invoices .invoice-table-wrap td:nth-child(5),
body.route-invoices .invoice-table-wrap th:nth-child(6),
body.route-invoices .invoice-table-wrap td:nth-child(6),
body.route-invoices .invoice-table-wrap th:nth-child(7),
body.route-invoices .invoice-table-wrap td:nth-child(7){width:8% !important;white-space:nowrap;}
body.route-invoices .invoice-table-wrap th:nth-child(8),
body.route-invoices .invoice-table-wrap td:nth-child(8){width:8.5% !important;}
body.route-invoices .invoice-table-wrap th:nth-child(9),
body.route-invoices .invoice-table-wrap td:nth-child(9){width:7.5% !important;}
body.route-invoices .invoice-table-wrap th:last-child,
body.route-invoices .invoice-table-wrap td:last-child{
  position:sticky !important;right:0 !important;z-index:6 !important;
  width:150px !important;min-width:150px !important;max-width:150px !important;
  text-align:right !important;padding:8px 8px !important;
  background:linear-gradient(135deg,rgba(43,53,77,.99),rgba(34,44,67,.99)) !important;
  box-shadow:-12px 0 22px rgba(3,7,18,.30) !important;
}
body.route-invoices .invoice-table-wrap th:last-child{
  z-index:9 !important;background:linear-gradient(135deg,#3b455e,#46516d) !important;
}
body.route-invoices .invoice-row-actions{
  width:100% !important;display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  align-items:center !important;justify-content:end !important;gap:4px !important;white-space:nowrap !important;
}
body.route-invoices .invoice-row-actions .icon-btn,
body.route-invoices .invoice-row-actions .inline-delete-form,
body.route-invoices .invoice-row-actions .inline-delete-form .icon-btn{
  width:100% !important;min-width:0 !important;margin:0 !important;
}
body.route-invoices .invoice-row-actions .icon-btn,
body.route-invoices .invoice-row-actions .inline-delete-form .icon-btn{
  min-height:32px !important;padding:6px 4px !important;border-radius:9px !important;
  font-size:9.5px !important;line-height:1 !important;text-align:center !important;justify-content:center !important;
}
body.route-invoices .invoice-row-actions .view-action{min-width:0 !important;}
body.route-invoices .invoice-row-actions .payment-due-action{padding-inline:4px !important;}
body.route-invoices .invoice-table-wrap td:not(:last-child){overflow:hidden;text-overflow:ellipsis;}
body.route-invoices .invoice-table-wrap td:nth-child(2),
body.route-invoices .invoice-table-wrap td:nth-child(3),
body.route-invoices .invoice-table-wrap td:nth-child(4){white-space:normal;}
@media (min-width:1100px) and (max-width:1600px){
  body.route-invoices .main{padding-left:22px !important;padding-right:22px !important;}
  body.route-invoices .invoice-report-panel{padding-left:18px !important;padding-right:18px !important;}
  body.route-invoices .invoice-table-wrap table{min-width:980px !important;}
}
@media (max-width:820px){
  body.route-invoices .invoice-table-wrap table{min-width:1060px !important;}
  body.route-invoices .invoice-table-wrap th:last-child,
  body.route-invoices .invoice-table-wrap td:last-child{position:sticky !important;right:0 !important;min-width:150px !important;box-shadow:-12px 0 22px rgba(3,7,18,.30) !important;}
}


/* v1.1.13 Expired memberships filter tab */
body.route-customer_memberships .membership-tab.expired-tab{
  color:#fecaca;
}
body.route-customer_memberships .membership-tab.expired-tab:hover{
  color:#fff;background:rgba(239,68,68,.16);border-color:rgba(248,113,113,.28);
}
body.route-customer_memberships .membership-tab.expired-tab.active{
  color:#fff;background:linear-gradient(135deg,#ef4444,#f97316,#fb7185);
  box-shadow:0 12px 28px rgba(239,68,68,.28);
}
body.route-customer_memberships .membership-tab.expired-tab.active:after{
  background:#f05a47;
}

/* v1.1.14 Dashboard appointment attendance workflow */
.today-appointments-panel .panel-head{align-items:flex-start}
.appointment-dashboard-list{display:grid;gap:12px}
.appointment-dashboard-card{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;
  padding:14px;border:1px solid rgba(148,163,184,.2);border-radius:18px;
  background:linear-gradient(135deg,rgba(71,85,105,.56),rgba(37,50,75,.48));
  overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.appointment-dashboard-card:before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,#38bdf8,#8b5cf6);
}
.appointment-dashboard-card:hover{transform:translateY(-2px);border-color:rgba(56,189,248,.48);box-shadow:0 14px 28px rgba(2,8,23,.24)}
.appointment-dashboard-card.joined:before{background:linear-gradient(180deg,#22c55e,#14b8a6)}
.appointment-dashboard-card.not_joined:before{background:linear-gradient(180deg,#fb7185,#f97316)}
.appointment-main{display:flex;align-items:center;gap:13px;min-width:0}
.appointment-time{
  flex:0 0 auto;padding:8px 10px;border-radius:12px;font-weight:800;font-size:13px;
  color:#e0f2fe;background:rgba(14,165,233,.15);border:1px solid rgba(56,189,248,.24)
}
.appointment-details{display:flex;flex-direction:column;min-width:0}
.appointment-details b{font-size:15px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appointment-details span,.appointment-details small{color:#b9c5d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appointment-details small{margin-top:2px}
.appointment-state{align-self:start}
.appointment-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.appointment-quick-form{margin:0}
.appointment-actions .btn{min-height:34px;padding:7px 12px;border-radius:11px;font-size:12px}
.appointment-joined-btn{background:linear-gradient(135deg,#22c55e,#14b8a6)!important;color:#04120d!important}
.btn-not-joined{background:linear-gradient(135deg,#fb7185,#f97316)!important;color:#2b070b!important}
.btn-not-joined.active{box-shadow:0 0 0 3px rgba(251,113,133,.18),0 10px 24px rgba(249,115,22,.22)}
.appointment-followup-note{
  grid-column:1/-1;padding:10px 12px;border-radius:12px;color:#fecdd3;font-size:12px;
  background:rgba(127,29,29,.18);border:1px solid rgba(251,113,133,.22)
}
.appointment-not-joined-form{
  grid-column:1/-1;margin-top:2px;padding:14px;border-radius:16px;
  background:linear-gradient(135deg,rgba(88,28,135,.24),rgba(127,29,29,.2));
  border:1px solid rgba(244,114,182,.26);transform-origin:top;
}
.appointment-not-joined-form.is-open{animation:appointmentFormOpen .22s ease both}
@keyframes appointmentFormOpen{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
.not-joined-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.not-joined-form-grid .wide{grid-column:1/-1}
.not-joined-form-grid .field{margin:0}
.not-joined-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
@media(max-width:720px){
  .appointment-dashboard-card{grid-template-columns:1fr}
  .appointment-state{justify-self:start}
  .appointment-actions{justify-content:stretch}
  .appointment-actions .btn,.appointment-quick-form{flex:1}
  .appointment-quick-form .btn{width:100%}
  .not-joined-form-grid{grid-template-columns:1fr}
  .not-joined-form-grid .wide{grid-column:auto}
}


/* v1.1.15 Income + Expense dashboard and permission polish */
body.route-incomes .panel::before{background:linear-gradient(90deg,#22d3ee,#34d399,#a78bfa)!important;}
body.route-expenses .panel::before{background:linear-gradient(90deg,#fb7185,#f97316,#facc15)!important;}
body.route-incomes .panel-head h3::before{content:'💵';margin-right:8px;}
body.route-expenses .panel-head h3::before{content:'💸';margin-right:8px;}

/* v1.1.16 Blacklist, DND and appointment attendance actions */
.dnd-badge,.blacklist-badge{display:inline-flex!important;align-items:center;gap:5px;margin-top:5px;font-size:10px!important;letter-spacing:.05em;font-weight:900!important}
.blacklisted-row{background:linear-gradient(90deg,rgba(127,29,29,.26),rgba(76,5,25,.12))!important}
.blacklisted-row td{border-color:rgba(251,113,133,.18)!important}
.inline-action-form{display:inline-flex;margin:0}
.permanent-safety-alert{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px!important;border:1px solid rgba(251,113,133,.5)!important;background:linear-gradient(135deg,rgba(127,29,29,.48),rgba(76,5,25,.45))!important}
.permanent-safety-alert span{flex:1;min-width:220px;color:#fecdd3}.permanent-safety-alert a{margin-left:auto}
.checkbox-control{display:flex!important;align-items:center;gap:10px;min-height:48px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.055);cursor:pointer}
.checkbox-control input{position:absolute;opacity:0;pointer-events:none}.checkbox-ui{width:42px;height:24px;border-radius:999px;background:rgba(148,163,184,.35);position:relative;transition:.22s ease;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.checkbox-ui:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.3);transition:.22s ease}
.checkbox-control input:checked + .checkbox-ui{background:linear-gradient(135deg,#fb7185,#f97316)}.checkbox-control input:checked + .checkbox-ui:after{transform:translateX(18px)}
.field-help{display:block;margin-top:6px;color:#94a3b8;font-size:11px}
.blacklist-grid{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:20px;align-items:start}
.blacklist-add-card{position:sticky;top:18px}.blacklist-add-card:before{background:linear-gradient(90deg,#ef4444,#f97316,#facc15)!important}.blacklist-list-card:before{background:linear-gradient(90deg,#fb7185,#a855f7,#38bdf8)!important}
.blacklist-warning{display:flex;flex-direction:column;gap:3px;padding:12px 14px;margin:12px 0;border-radius:14px;background:rgba(127,29,29,.28);border:1px solid rgba(251,113,133,.28)}.blacklist-warning b{color:#fecdd3}.blacklist-warning span{color:#fda4af;font-size:12px}
.danger-action{background:linear-gradient(135deg,#ef4444,#f97316)!important;color:white!important}
.blacklist-cards{display:grid;gap:13px}.blacklist-customer-card{padding:16px;border-radius:18px;border:1px solid rgba(251,113,133,.25);background:linear-gradient(145deg,rgba(127,29,29,.24),rgba(30,41,59,.76));box-shadow:0 14px 30px rgba(2,6,23,.22);transition:.2s ease}.blacklist-customer-card:hover{transform:translateY(-2px);border-color:rgba(251,113,133,.5)}
.blacklist-customer-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.blacklist-customer-head>div{display:flex;align-items:center;gap:11px}.blacklist-customer-head b{display:block;color:#fff;font-size:15px}.blacklist-customer-head span{color:#cbd5e1;font-size:12px}.blacklist-stop-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#ef4444,#f97316);box-shadow:0 8px 22px rgba(239,68,68,.3);font-size:18px!important}
.blacklist-reason{margin-top:13px;padding:12px;border-radius:13px;background:rgba(15,23,42,.54);border:1px solid rgba(255,255,255,.08)}.blacklist-reason small{color:#fb7185;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.blacklist-reason p{margin:5px 0 0;color:#f8fafc;line-height:1.45}
.blacklist-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;color:#94a3b8;font-size:11px}.blacklist-meta b{color:#dbeafe}.blacklist-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:13px}.blacklist-actions form{margin:0}
.customer-safety-banner{grid-column:1/-1;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;margin-top:9px}.customer-safety-banner.blacklisted{background:rgba(127,29,29,.52);border:1px solid rgba(251,113,133,.55)}.customer-safety-banner.blacklisted b{color:#fff}.customer-safety-banner.blacklisted span{color:#fecdd3}.customer-safety-banner.dnd{background:rgba(180,83,9,.26);border:1px solid rgba(251,191,36,.36)}.customer-safety-banner.dnd b{color:#fde68a}.customer-safety-banner.dnd span{color:#fef3c7}
.lookup-status.blocked-customer{border-color:rgba(251,113,133,.58)!important;background:linear-gradient(135deg,rgba(127,29,29,.55),rgba(76,5,25,.45))!important}.found-customer-card.blacklisted{background:transparent!important}.customer-blacklist-disabled{background:linear-gradient(135deg,#991b1b,#e11d48)!important;color:#fff!important;opacity:1!important;cursor:not-allowed}.selected-dnd-badge{display:inline-flex;padding:2px 7px;margin-left:5px;border-radius:999px;background:#ef4444;color:#fff;font-size:9px;vertical-align:middle;letter-spacing:.05em}
.appointment-table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:245px}.appointment-table-actions form{margin:0}.appointment-table-actions .appointment-joined-btn{background:linear-gradient(135deg,#22c55e,#14b8a6)!important;color:#062e25!important}.appointment-blocked-text{display:inline-flex;align-items:center;padding:7px 10px;border-radius:10px;background:rgba(127,29,29,.48);color:#fecdd3;font-size:11px;font-weight:900;white-space:nowrap}
.appointment-list-followup-form{position:absolute;right:12px;z-index:50;width:min(380px,calc(100vw - 40px));padding:12px;border-radius:15px;background:linear-gradient(145deg,#17233a,#261c42);border:1px solid rgba(251,113,133,.42);box-shadow:0 20px 45px rgba(0,0,0,.45);display:grid;gap:8px}.appointment-list-followup-form[hidden]{display:none!important}.appointment-list-followup-form select,.appointment-list-followup-form input{width:100%;min-height:38px}.appointment-list-followup-form>div{display:flex;justify-content:flex-end;gap:7px}.actions{position:relative}
body.route-appointments .table-wrap{overflow:visible}body.route-appointments table{min-width:1180px}body.route-appointments td.actions{min-width:340px}
@media(max-width:1000px){.blacklist-grid{grid-template-columns:1fr}.blacklist-add-card{position:static}}
@media(max-width:700px){.blacklist-customer-head{flex-direction:column}.blacklist-actions{justify-content:stretch}.blacklist-actions .icon-btn,.blacklist-actions form,.blacklist-actions form button{width:100%}.appointment-list-followup-form{position:fixed;left:12px;right:12px;bottom:12px;width:auto}}

/* v1.1.17 — appointment carousel, date-wise follow-ups and blacklist action */
.appointment-carousel-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.appointment-total-badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:7px 12px;border-radius:999px;background:linear-gradient(135deg,rgba(56,189,248,.22),rgba(139,92,246,.2));border:1px solid rgba(125,211,252,.28);color:#e0f2fe;font-size:12px;font-weight:900;letter-spacing:.02em}
.appointment-carousel-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:-2px 0 10px}
.appointment-carousel-range{min-width:82px;text-align:center;color:#bfdbfe;font-size:12px;font-weight:800}
.appointment-carousel-btn{width:34px;height:34px;border:1px solid rgba(125,211,252,.26);border-radius:11px;background:linear-gradient(135deg,rgba(14,165,233,.23),rgba(139,92,246,.22));color:#fff;font-size:25px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease}
.appointment-carousel-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.04);box-shadow:0 10px 22px rgba(14,165,233,.2)}
.appointment-carousel-btn:disabled{opacity:.3;cursor:not-allowed}
.appointment-dashboard-card.carousel-hidden{display:none!important}
.appointment-dashboard-card.carousel-enter-right{animation:appointmentSlideRight .25s ease both}
.appointment-dashboard-card.carousel-enter-left{animation:appointmentSlideLeft .25s ease both}
@keyframes appointmentSlideRight{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes appointmentSlideLeft{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
.appointment-dnd-note{grid-column:1/-1;padding:9px 11px;border-radius:11px;background:rgba(180,83,9,.2);border:1px solid rgba(251,191,36,.28);color:#fde68a;font-size:12px}

.followup-report-panel:before{background:linear-gradient(90deg,#38bdf8,#8b5cf6,#fb7185)!important}
.followup-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 15px}
.followup-summary-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-radius:16px;text-decoration:none;color:#fff;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,rgba(51,65,85,.72),rgba(30,41,59,.72));transition:.2s ease;overflow:hidden;position:relative}
.followup-summary-card:after{content:"";position:absolute;width:85px;height:85px;border-radius:50%;right:-24px;top:-25px;background:rgba(255,255,255,.08)}
.followup-summary-card:hover,.followup-summary-card.active{transform:translateY(-2px);border-color:rgba(125,211,252,.45);box-shadow:0 13px 28px rgba(2,6,23,.25)}
.followup-summary-card.today{background:linear-gradient(135deg,rgba(5,150,105,.7),rgba(20,184,166,.5))}.followup-summary-card.overdue{background:linear-gradient(135deg,rgba(190,24,93,.68),rgba(239,68,68,.48))}.followup-summary-card.upcoming{background:linear-gradient(135deg,rgba(37,99,235,.68),rgba(6,182,212,.48))}.followup-summary-card.all{background:linear-gradient(135deg,rgba(109,40,217,.7),rgba(217,70,239,.48))}
.followup-summary-card span{font-weight:800;font-size:12px}.followup-summary-card strong{font-size:24px;z-index:1}
.followup-filter-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:8px;border-radius:16px;background:rgba(15,23,42,.42);border:1px solid rgba(148,163,184,.13);margin-bottom:13px}
.followup-filter-tab{padding:9px 15px;border-radius:11px;text-decoration:none;color:#cbd5e1;font-size:12px;font-weight:900;transition:.18s ease}.followup-filter-tab:hover{background:rgba(255,255,255,.07);color:#fff}.followup-filter-tab.active{background:linear-gradient(135deg,#38bdf8,#8b5cf6);color:#fff;box-shadow:0 9px 20px rgba(56,189,248,.18)}
.followup-filter-panel{padding:14px;border:1px solid rgba(148,163,184,.16);border-radius:17px;background:linear-gradient(135deg,rgba(30,41,59,.72),rgba(49,46,129,.24));margin-bottom:17px}
.followup-filter-grid{display:grid;grid-template-columns:1.2fr 1fr .9fr .9fr auto;gap:10px;align-items:end}.followup-filter-grid .field{margin:0}.followup-filter-actions{display:flex;gap:8px;align-items:center}
.followup-date-groups{display:grid;gap:18px}.followup-date-group{border-radius:19px;border:1px solid rgba(148,163,184,.15);background:rgba(15,23,42,.25);overflow:hidden}.followup-date-group.today{border-color:rgba(52,211,153,.28)}.followup-date-group.overdue{border-color:rgba(251,113,133,.3)}.followup-date-group.upcoming{border-color:rgba(56,189,248,.28)}
.followup-date-heading{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;background:rgba(255,255,255,.045);border-bottom:1px solid rgba(148,163,184,.12)}.followup-date-heading>div{display:flex;align-items:baseline;gap:9px}.followup-date-heading b{color:#fff;font-size:15px}.followup-date-heading span{color:#a5b4fc;font-size:12px}.followup-date-heading em{font-style:normal;color:#cbd5e1;font-size:11px;font-weight:800}
.followup-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:13px}.followup-client-card{position:relative;padding:14px;border-radius:16px;background:linear-gradient(145deg,rgba(71,85,105,.55),rgba(30,41,59,.72));border:1px solid rgba(148,163,184,.16);transition:.2s ease}.followup-client-card:hover{transform:translateY(-2px);border-color:rgba(125,211,252,.38);box-shadow:0 12px 24px rgba(2,6,23,.24)}
.followup-client-main{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.followup-client-main b{display:block;color:#fff;font-size:15px}.followup-client-main span{display:block;color:#b8c4d8;font-size:12px;margin-top:2px}.followup-due-time{padding:7px 9px;border-radius:10px;background:rgba(14,165,233,.13);border:1px solid rgba(56,189,248,.22);color:#dbeafe;font-weight:900;font-size:12px;white-space:nowrap}
.followup-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.followup-detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin-top:11px}.followup-detail-grid>div{padding:10px;border-radius:12px;background:rgba(15,23,42,.4);border:1px solid rgba(148,163,184,.1)}.followup-detail-grid small{display:block;color:#94a3b8;text-transform:uppercase;letter-spacing:.07em;font-size:9px;font-weight:900}.followup-detail-grid p{margin:4px 0 0;color:#e2e8f0;font-size:12px;line-height:1.4;white-space:pre-wrap}
.followup-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:11px}.followup-blacklist-toggle.active{box-shadow:0 0 0 3px rgba(244,63,94,.17)}
.followup-blacklist-form{margin-top:11px;padding:12px;border-radius:14px;background:linear-gradient(145deg,rgba(127,29,29,.34),rgba(76,5,25,.28));border:1px solid rgba(251,113,133,.34)}.followup-blacklist-form[hidden]{display:none!important}.followup-blacklist-form.is-open{animation:followupBlacklistOpen .2s ease both}@keyframes followupBlacklistOpen{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.followup-blacklist-form label{display:block;color:#fecdd3;font-size:11px;font-weight:900;margin-bottom:6px}.followup-blacklist-form textarea{width:100%;resize:vertical}.followup-blacklist-form>div{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}
@media(max-width:1100px){.followup-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.followup-filter-actions{grid-column:1/-1}.followup-card-list{grid-template-columns:1fr}}
@media(max-width:720px){.appointment-carousel-head-actions{justify-content:flex-start}.appointment-carousel-toolbar{justify-content:space-between}.followup-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.followup-filter-grid{grid-template-columns:1fr}.followup-filter-actions{grid-column:auto}.followup-detail-grid{grid-template-columns:1fr}.followup-actions .icon-btn{flex:1}.followup-blacklist-form>div{flex-direction:column}.followup-blacklist-form .icon-btn{width:100%}}

/* v1.1.18 — blacklist manager reason, permanent DND, visible appointment attendance and split daily income */
.income-entry-guide{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;margin:0 0 18px;border-radius:17px;background:linear-gradient(135deg,rgba(16,185,129,.2),rgba(14,165,233,.18));border:1px solid rgba(45,212,191,.32);box-shadow:0 12px 28px rgba(2,6,23,.2)}
.income-entry-guide>div{display:flex;flex-direction:column;gap:4px}.income-entry-guide b{font-size:15px;color:#fff}.income-entry-guide span{font-size:12px;color:#bfdbfe}.income-entry-guide strong{font-size:24px;color:#5eead4;white-space:nowrap}

.appointment-attendance-heading{min-width:270px!important;text-align:center!important;position:sticky;right:112px;z-index:8;background:#4d5a70!important}
.appointment-attendance-cell{min-width:270px;position:sticky;right:112px;z-index:5;background:linear-gradient(90deg,rgba(44,55,78,.98),rgba(41,52,75,.98))!important;box-shadow:-12px 0 24px rgba(2,6,23,.22)}
body.route-appointments .table-wrap table th:last-child,body.route-appointments .table-wrap table td:last-child{position:sticky;right:0;z-index:7;background:#465267!important;min-width:112px;box-shadow:-8px 0 18px rgba(2,6,23,.2)}
body.route-appointments .table-wrap table td:last-child{background:linear-gradient(90deg,rgba(61,72,96,.98),rgba(55,66,89,.98))!important}
.appointment-attendance-box{position:relative;display:grid;gap:8px;min-width:240px}.appointment-attendance-current{display:flex;justify-content:center}.appointment-attendance-buttons{display:flex;justify-content:center;gap:7px;align-items:center}.appointment-attendance-buttons form{margin:0}.appointment-attendance-buttons .icon-btn{min-width:102px;justify-content:center;white-space:nowrap}.appointment-joined-btn.active{box-shadow:0 0 0 3px rgba(34,197,94,.2);border-color:#4ade80!important}.appointment-not-joined-toggle.active{box-shadow:0 0 0 3px rgba(244,63,94,.2)}
.appointment-dnd-inline{display:inline-flex;justify-self:center;padding:4px 8px;border-radius:999px;background:rgba(239,68,68,.2);border:1px solid rgba(248,113,113,.35);color:#fecaca;font-size:10px;font-weight:900;letter-spacing:.04em}.appointment-attendance-box.blocked,.appointment-attendance-box.readonly{place-items:center}.appointment-attendance-cell .appointment-list-followup-form{right:8px;top:calc(100% + 5px)}
.blacklist-meta span:last-child{padding:4px 8px;border-radius:999px;background:rgba(168,85,247,.15);border:1px solid rgba(196,181,253,.22)}

@media(max-width:1100px){.appointment-attendance-heading,.appointment-attendance-cell{position:static;min-width:255px}.appointment-attendance-cell{box-shadow:none}body.route-appointments .table-wrap table th:last-child,body.route-appointments .table-wrap table td:last-child{position:static}}
@media(max-width:700px){.income-entry-guide{align-items:flex-start;flex-direction:column}.income-entry-guide strong{font-size:21px}.appointment-attendance-buttons{flex-direction:column}.appointment-attendance-buttons .icon-btn,.appointment-attendance-buttons form{width:100%}.appointment-attendance-buttons form button{width:100%}}

/* Sidebar order settings */
.sidebar-order-panel{max-width:980px;margin:0 auto;overflow:hidden}
.sidebar-order-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .85rem;border:1px solid rgba(79,220,255,.35);border-radius:999px;background:linear-gradient(135deg,rgba(24,194,255,.18),rgba(181,75,255,.18));color:#dff8ff;font-weight:800;font-size:.78rem;white-space:nowrap}
.sidebar-sort-list{display:grid;gap:12px;margin-top:18px}
.sidebar-sort-item{display:grid;grid-template-columns:42px 38px 42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid rgba(151,173,219,.2);border-radius:17px;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(62,77,121,.12));box-shadow:0 10px 25px rgba(0,0,0,.14);transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;cursor:grab}
.sidebar-sort-item:hover{transform:translateY(-2px);border-color:rgba(74,219,255,.45);box-shadow:0 14px 32px rgba(0,0,0,.2)}
.sidebar-sort-item.dragging{opacity:.55;transform:scale(.985);border-color:#41d6ff;background:rgba(32,182,225,.16)}
.sidebar-sort-item.just-moved{animation:sidebarOrderPulse .35s ease}
@keyframes sidebarOrderPulse{50%{transform:scale(1.018);border-color:#ffb43f;box-shadow:0 0 0 5px rgba(255,180,63,.12)}}
.sidebar-drag-handle{width:38px;height:38px;border:0;border-radius:12px;background:rgba(255,255,255,.08);color:#a8b8d5;font-size:1.05rem;font-weight:900;cursor:grab;letter-spacing:-4px;padding-right:8px}
.sidebar-drag-handle:active{cursor:grabbing}
.sidebar-sort-number{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#ffad32,#ff6f71);color:#11182a;font-weight:900}
.sidebar-sort-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,rgba(52,220,255,.18),rgba(209,78,255,.2));font-size:1.18rem}
.sidebar-sort-label{min-width:0;display:flex;flex-direction:column;gap:2px}
.sidebar-sort-label b{font-size:.98rem;color:#f4f8ff}
.sidebar-sort-label small{font-size:.72rem;color:#8fa0c1;text-transform:uppercase;letter-spacing:.06em}
.sidebar-sort-actions{display:flex;gap:8px}
.sidebar-move-btn{width:38px;height:38px;border:1px solid rgba(151,173,219,.26);border-radius:11px;background:rgba(255,255,255,.08);color:#f4f8ff;font-size:1.1rem;font-weight:900;cursor:pointer;transition:.18s ease}
.sidebar-move-btn:hover{background:linear-gradient(135deg,#31d6c2,#49a8ff);color:#071226;transform:translateY(-1px)}
.sidebar-order-actions{justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
@media(max-width:680px){.sidebar-sort-item{grid-template-columns:34px 34px 36px minmax(0,1fr);gap:8px;padding:11px}.sidebar-sort-actions{grid-column:1/-1;justify-content:flex-end}.sidebar-order-actions>*{flex:1 1 100%;text-align:center}.sidebar-order-panel .panel-head{align-items:flex-start;gap:12px;flex-direction:column}}

/* v1.1.21 — multi-branch context, Super Manager switcher and universal dashboard back */
.sidebar-branch-context{margin:0 18px 14px;padding:11px 13px;border:1px solid rgba(93,211,255,.22);border-radius:14px;background:linear-gradient(135deg,rgba(0,207,255,.10),rgba(183,74,255,.10));display:flex;flex-direction:column;gap:3px;overflow:hidden}.sidebar-branch-context span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#9fb0c9)}.sidebar-branch-context b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title{min-width:190px}.top-actions{gap:9px;flex-wrap:wrap;justify-content:flex-end}.dashboard-back-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:14px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;transition:.22s ease}.dashboard-back-btn:hover{transform:translateY(-2px);background:rgba(80,205,255,.16);border-color:rgba(80,205,255,.45)}.branch-switcher{margin:0}.branch-switcher label{display:flex;align-items:center;gap:8px;min-height:44px;padding:5px 7px 5px 11px;border-radius:15px;border:1px solid rgba(91,207,255,.25);background:linear-gradient(135deg,rgba(24,52,83,.9),rgba(41,49,80,.9));box-shadow:0 8px 24px rgba(0,0,0,.16)}.branch-switcher label>span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#b9c9df;font-weight:800}.branch-switcher select{width:auto;max-width:190px;min-width:125px;border:0!important;background:rgba(255,255,255,.08)!important;padding:8px 30px 8px 10px!important;border-radius:10px!important;font-weight:800;color:#fff}.branch-switcher.is-switching{opacity:.65;pointer-events:none}.fixed-branch-chip{min-height:44px;padding:6px 11px;display:flex;align-items:center;gap:8px;border:1px solid rgba(78,217,183,.25);border-radius:15px;background:rgba(40,170,143,.12)}.fixed-branch-chip>span{font-size:18px}.fixed-branch-chip div{display:flex;flex-direction:column;line-height:1.1;max-width:165px}.fixed-branch-chip small{font-size:10px;color:#a8bdd2;text-transform:uppercase}.fixed-branch-chip b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-branch-banner{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 18px;padding:12px 16px;border-radius:16px;border:1px solid rgba(72,205,255,.22);background:linear-gradient(90deg,rgba(29,83,123,.30),rgba(116,45,150,.18));color:#cbd9ea}.dashboard-branch-banner b{color:#fff;font-size:15px}.dashboard-branch-banner small{margin-left:auto;color:#9fb1c9}@media(max-width:1250px){.topbar{align-items:flex-start}.top-actions{max-width:68%}.branch-switcher label>span{display:none}.branch-switcher select{max-width:155px}.dashboard-back-btn{padding:0 11px}}@media(max-width:900px){.top-actions{max-width:none;width:100%;justify-content:flex-start}.topbar{flex-wrap:wrap}.branch-switcher{flex:1}.branch-switcher label{width:100%}.branch-switcher select{width:100%;max-width:none}.fixed-branch-chip{flex:1}.dashboard-back-btn{order:-1}.dashboard-branch-banner small{width:100%;margin-left:0}}@media print{.dashboard-back-btn,.branch-switcher,.fixed-branch-chip,.sidebar-branch-context{display:none!important}}

/* v1.1.23 — link-based branch picker; reliable on Chrome/Safari/Hostinger */
.branch-picker{position:relative;z-index:120;margin:0;min-width:210px}
.branch-picker-trigger{width:100%;min-height:48px;display:flex;align-items:center;gap:9px;padding:6px 11px;border:1px solid rgba(91,207,255,.34);border-radius:16px;background:linear-gradient(135deg,rgba(24,52,83,.96),rgba(48,45,82,.96));color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.22);cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.branch-picker-trigger:hover,.branch-picker.open .branch-picker-trigger{transform:translateY(-1px);border-color:rgba(255,188,71,.75);box-shadow:0 12px 30px rgba(0,0,0,.30),0 0 0 3px rgba(255,180,55,.08)}
.branch-picker-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:linear-gradient(135deg,#2cc8ff,#9960ff);font-size:16px;flex:0 0 auto}
.branch-picker-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.1;flex:1}
.branch-picker-copy small{font-size:9px;letter-spacing:.10em;text-transform:uppercase;color:#9fb5cc;font-weight:900}
.branch-picker-copy b{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.branch-picker-chevron{font-size:18px;transition:transform .2s ease;color:#c9d7e8}.branch-picker.open .branch-picker-chevron{transform:rotate(180deg)}
.branch-picker-menu{position:absolute;right:0;top:calc(100% + 9px);width:max(240px,100%);max-height:340px;overflow:auto;padding:8px;border:1px solid rgba(108,201,255,.30);border-radius:16px;background:linear-gradient(160deg,rgba(14,29,52,.99),rgba(35,28,63,.99));box-shadow:0 22px 55px rgba(0,0,0,.48);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top right;transition:.18s ease}
.branch-picker.open .branch-picker-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.branch-picker-item{display:flex;align-items:center;gap:10px;min-height:43px;padding:9px 11px;border-radius:11px;color:#dce7f4;text-decoration:none;font-weight:750;transition:.17s ease}
.branch-picker-item:hover{background:rgba(73,191,255,.13);color:#fff;transform:translateX(2px)}
.branch-picker-item.active{background:linear-gradient(90deg,rgba(39,199,159,.22),rgba(45,164,255,.16));color:#fff;border:1px solid rgba(70,224,178,.25)}
.branch-picker-item b{margin-left:auto;color:#62efbd}.branch-picker-dot{width:9px;height:9px;border-radius:50%;background:#75879f;box-shadow:0 0 0 4px rgba(117,135,159,.10)}
.branch-picker-item.active .branch-picker-dot{background:#48e5aa;box-shadow:0 0 0 4px rgba(72,229,170,.13)}
.branch-picker.is-switching{pointer-events:none}.branch-picker-item.is-switching{background:rgba(255,178,54,.18);color:#fff}
@media(max-width:1100px){.branch-picker{min-width:178px}.branch-picker-copy b{max-width:115px}}
@media(max-width:900px){.branch-picker{width:100%;min-width:0}.branch-picker-menu{left:0;right:auto;width:100%}.branch-picker-copy b{max-width:none}}
@media print{.branch-picker{display:none!important}}


/* v1.1.24 — branch logos, short confirmation and picker above dashboard cards */
.topbar{position:relative;z-index:5000;overflow:visible!important;isolation:isolate}
.top-actions{position:relative;z-index:5010;overflow:visible!important}
.branch-picker{position:relative;z-index:5020!important}
.branch-picker-menu{z-index:5030!important}
body.route-dashboard .stat-grid,body.route-dashboard .dashboard-main-grid,body.route-dashboard .panel{position:relative;z-index:1}
.branch-switch-flash{transition:opacity .24s ease,transform .24s ease,max-height .24s ease,margin .24s ease,padding .24s ease;overflow:hidden}
.branch-switch-flash.is-dismissing{opacity:0;transform:translateY(-8px);max-height:0;margin:0;padding-top:0;padding-bottom:0;border-width:0}
.dashboard-branch-banner{display:none!important}
.branch-picker-logo,.branch-menu-logo,.fixed-branch-logo,.sidebar-branch-logo,.branch-table-logo{display:grid;place-items:center;object-fit:cover;flex:0 0 auto;background:linear-gradient(135deg,rgba(44,200,255,.25),rgba(153,96,255,.26));border:1px solid rgba(255,255,255,.18);box-shadow:0 6px 16px rgba(0,0,0,.22)}
.branch-picker-logo{width:34px;height:34px;border-radius:11px;font-size:16px}
.branch-menu-logo{width:30px;height:30px;border-radius:9px;font-size:14px}
.fixed-branch-logo{width:32px;height:32px;border-radius:10px;font-size:15px}
.sidebar-branch-logo{width:28px;height:28px;border-radius:9px;font-size:13px}
.branch-table-logo{width:42px;height:42px;border-radius:12px;font-size:18px}
.branch-logo-fallback{line-height:1}
.branch-picker-item-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-branch-value{display:flex;align-items:center;gap:9px;min-width:0}.sidebar-branch-value b{min-width:0}
.branch-logo-upload-preview{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13)}
.branch-logo-upload-preview img{width:58px;height:58px;border-radius:15px;object-fit:cover;border:1px solid rgba(255,255,255,.18)}
.branch-logo-upload-preview span{font-size:12px;color:var(--muted);font-weight:800}
.remove-logo-control{display:flex!important;align-items:center;gap:8px;margin-top:9px;color:#fecdd3!important;font-size:12px!important}.remove-logo-control input{width:auto!important}
@media(max-width:900px){.branch-picker-menu{z-index:5030!important}}


/* ========================================================================== */
/* v1.1.25 — PHONE + TABLET RESPONSIVE LAYER                                  */
/* Desktop rules above remain untouched. These overrides apply only <=1024px. */
/* ========================================================================== */
@media screen and (max-width:1024px){
  html:not(.requested-desktop-view),html:not(.requested-desktop-view) body{max-width:100%;overflow-x:hidden}
  html:not(.requested-desktop-view) body{background-attachment:scroll}
  html:not(.requested-desktop-view) img{max-width:100%;height:auto}
  html:not(.requested-desktop-view) .app-shell{display:block;min-height:100dvh;width:100%;max-width:100%;overflow:visible}
  html:not(.requested-desktop-view) .main,
  html:not(.requested-desktop-view) .app-shell.sidebar-collapsed .main{width:100%!important;max-width:100%!important;min-width:0!important;padding:16px 16px 34px!important;overflow-x:hidden}

  /* Off-canvas navigation for tablets and phones */
  html:not(.requested-desktop-view) .sidebar,
  html:not(.requested-desktop-view) .app-shell.sidebar-collapsed .sidebar{
    display:block!important;position:fixed!important;inset:0 auto 0 0!important;z-index:6000!important;
    width:min(320px,86vw)!important;min-width:min(320px,86vw)!important;height:100dvh!important;
    padding:18px 16px 28px!important;overflow-y:auto!important;overflow-x:hidden!important;
    transform:translateX(-105%);transition:transform .28s cubic-bezier(.2,.8,.2,1)!important;
    border-right:1px solid rgba(255,255,255,.15)!important;box-shadow:20px 0 55px rgba(0,0,0,.46)!important;
  }
  html:not(.requested-desktop-view) .app-shell.sidebar-opened .sidebar,
  html:not(.requested-desktop-view) .sidebar.open{transform:translateX(0)}
  html:not(.requested-desktop-view) .mobile-sidebar-backdrop{
    position:fixed;inset:0;z-index:5900;display:block;border:0;padding:0;background:rgba(1,5,15,.62);
    -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .24s ease,visibility .24s ease;
  }
  html:not(.requested-desktop-view) .app-shell.sidebar-opened .mobile-sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  html:not(.requested-desktop-view) .sidebar-slide-toggle,
  html:not(.requested-desktop-view) .app-shell.sidebar-collapsed .sidebar-slide-toggle{
    display:grid!important;left:0!important;top:82px!important;z-index:6010!important;width:42px!important;height:52px!important;
    border-radius:0 17px 17px 0!important;
  }
  html:not(.requested-desktop-view) .app-shell.sidebar-opened .sidebar-slide-toggle,
  html:not(.requested-desktop-view) .app-shell:not(.sidebar-collapsed).sidebar-opened .sidebar-slide-toggle{
    left:min(320px,86vw)!important;transform:translateX(-1px)!important;
  }
  html:not(.requested-desktop-view) .app-shell.sidebar-opened .sidebar-toggle-icon{transform:none!important}
  html:not(.requested-desktop-view) .app-shell:not(.sidebar-opened) .sidebar-toggle-icon{transform:rotate(180deg)!important}
  html:not(.requested-desktop-view) .menu-toggle{display:none!important}
  html:not(.requested-desktop-view) .brand{min-height:76px;margin-bottom:14px;padding:13px;border-radius:20px}
  html:not(.requested-desktop-view) .brand-logo{width:48px;height:48px;border-radius:16px}
  html:not(.requested-desktop-view) .sidebar-branch-context{margin:0 0 13px}
  html:not(.requested-desktop-view) .sidebar nav{gap:7px}
  html:not(.requested-desktop-view) .sidebar a{min-height:48px;padding:11px 13px;border-radius:16px}

  /* Header and global cards */
  html:not(.requested-desktop-view) .topbar{z-index:5000;display:flex;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:18px;padding:15px 16px;border-radius:22px;overflow:visible!important}
  html:not(.requested-desktop-view) .topbar-title{flex:1 1 280px;min-width:0}
  html:not(.requested-desktop-view) .topbar h1{font-size:27px;line-height:1.12}
  html:not(.requested-desktop-view) .topbar p{margin-top:6px;font-size:13px;line-height:1.4}
  html:not(.requested-desktop-view) .top-actions{display:flex;flex:1 1 100%;width:100%;max-width:none!important;justify-content:flex-start;align-items:stretch;gap:9px;overflow:visible!important}
  html:not(.requested-desktop-view) .top-actions>*{min-width:0}
  html:not(.requested-desktop-view) .branch-picker{flex:1 1 250px;min-width:220px;width:auto}
  html:not(.requested-desktop-view) .branch-picker-menu{left:0!important;right:auto!important;width:max(260px,100%);max-width:min(420px,calc(100vw - 32px));z-index:6200!important}
  html:not(.requested-desktop-view) .quick-pill,
  html:not(.requested-desktop-view) .user-chip,
  html:not(.requested-desktop-view) .logout,
  html:not(.requested-desktop-view) .dashboard-back-btn,
  html:not(.requested-desktop-view) .fixed-branch-chip{min-height:48px}

  html:not(.requested-desktop-view) .panel{padding:18px;border-radius:22px;margin-bottom:18px;max-width:100%}
  html:not(.requested-desktop-view) .panel-head{align-items:flex-start;flex-wrap:wrap;gap:12px}
  html:not(.requested-desktop-view) .panel-head>div:first-child{min-width:0;flex:1 1 240px}
  html:not(.requested-desktop-view) .panel-head h3{font-size:20px}
  html:not(.requested-desktop-view) .head-actions{max-width:100%}
  html:not(.requested-desktop-view) .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
  html:not(.requested-desktop-view) .stat-card{min-height:112px;padding:18px;border-radius:22px}
  html:not(.requested-desktop-view) .stat-card h2{font-size:25px}
  html:not(.requested-desktop-view) .stat-card span{font-size:34px}
  html:not(.requested-desktop-view) .grid-two{grid-template-columns:1fr;gap:18px}
  html:not(.requested-desktop-view) .tile-grid,
  html:not(.requested-desktop-view) .tile-grid.small{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  html:not(.requested-desktop-view) .setting-tile{min-height:128px;padding:16px;border-radius:21px}

  /* Forms */
  html:not(.requested-desktop-view) .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  html:not(.requested-desktop-view) .form-grid>*{min-width:0}
  html:not(.requested-desktop-view) .field input,
  html:not(.requested-desktop-view) .field select,
  html:not(.requested-desktop-view) .field textarea,
  html:not(.requested-desktop-view) .search-form input,
  html:not(.requested-desktop-view) .inline-form input{font-size:16px;max-width:100%}
  html:not(.requested-desktop-view) .search-form,
  html:not(.requested-desktop-view) .inline-form{display:flex;flex-wrap:wrap;width:100%;max-width:100%}
  html:not(.requested-desktop-view) .search-form input,
  html:not(.requested-desktop-view) .inline-form input{flex:1 1 240px}
  html:not(.requested-desktop-view) .form-actions{align-items:stretch}

  /* Wide records stay inside their cards and scroll only where needed */
  html:not(.requested-desktop-view) .table-wrap{width:100%;max-width:100%;overflow:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
  html:not(.requested-desktop-view) .table-wrap table{max-width:none}
  html:not(.requested-desktop-view) th,
  html:not(.requested-desktop-view) td{padding:12px 11px}

  /* POS */
  html:not(.requested-desktop-view) body.route-pos .main{padding-left:16px!important}
  html:not(.requested-desktop-view) body.route-pos .pos-layout,
  html:not(.requested-desktop-view) body.route-pos .app-shell.sidebar-collapsed .pos-layout{
    display:grid!important;grid-template-columns:1fr!important;grid-template-areas:"customer" "items" "summary"!important;gap:16px!important;width:100%!important
  }
  html:not(.requested-desktop-view) body.route-pos .pos-right{position:static!important}
  html:not(.requested-desktop-view) body.route-pos .pos-left,
  html:not(.requested-desktop-view) body.route-pos .pos-center-stack,
  html:not(.requested-desktop-view) body.route-pos .pos-right{width:100%;max-width:100%;min-width:0}
  html:not(.requested-desktop-view) body.route-pos .item-row,
  html:not(.requested-desktop-view) body.route-pos .membership-row{max-width:100%}

  /* Filter/report layouts */
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-grid,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-grid,
  html:not(.requested-desktop-view) .followup-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-actions,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-actions,
  html:not(.requested-desktop-view) .followup-filter-actions{grid-column:1/-1!important;justify-content:stretch!important}
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-actions .btn,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-actions .btn,
  html:not(.requested-desktop-view) .followup-filter-actions .btn{flex:1 1 140px}
  html:not(.requested-desktop-view) body.route-invoices .invoice-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.requested-desktop-view) .followup-card-list{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .blacklist-grid{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .blacklist-add-card{position:static}
  html:not(.requested-desktop-view) .invoice-edit-grid{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .invoice-edit-payment{position:static}

  /* Dashboard appointments */
  html:not(.requested-desktop-view) .appointment-dashboard-card{max-width:100%}
  html:not(.requested-desktop-view) .appointment-carousel-head-actions{justify-content:flex-start}
  html:not(.requested-desktop-view) .appointment-main{min-width:0}
}

@media screen and (max-width:680px){
  html:not(.requested-desktop-view) .main,
  html:not(.requested-desktop-view) .app-shell.sidebar-collapsed .main{padding:11px 10px 28px!important}
  html:not(.requested-desktop-view) .sidebar-slide-toggle,
  html:not(.requested-desktop-view) .app-shell.sidebar-collapsed .sidebar-slide-toggle{top:74px!important;width:39px!important;height:48px!important}
  html:not(.requested-desktop-view) .topbar{padding:13px;border-radius:19px;gap:11px;margin-bottom:14px}
  html:not(.requested-desktop-view) .topbar h1{font-size:23px}
  html:not(.requested-desktop-view) .topbar p{font-size:11px}
  html:not(.requested-desktop-view) .timezone-label{font-size:9px}
  html:not(.requested-desktop-view) .top-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  html:not(.requested-desktop-view) .top-actions .branch-picker,
  html:not(.requested-desktop-view) .top-actions .fixed-branch-chip,
  html:not(.requested-desktop-view) .top-actions .dashboard-back-btn{grid-column:1/-1;width:100%}
  html:not(.requested-desktop-view) .top-actions .quick-pill,
  html:not(.requested-desktop-view) .top-actions .user-chip,
  html:not(.requested-desktop-view) .top-actions .logout{width:100%;min-width:0;padding-left:10px;padding-right:10px}
  html:not(.requested-desktop-view) .user-chip{justify-content:center}
  html:not(.requested-desktop-view) .branch-picker{min-width:0}
  html:not(.requested-desktop-view) .branch-picker-menu{position:absolute;width:100%;max-width:100%}
  html:not(.requested-desktop-view) .panel{padding:14px;border-radius:19px;margin-bottom:14px}
  html:not(.requested-desktop-view) .panel-head{margin-bottom:14px}
  html:not(.requested-desktop-view) .panel-head .btn,
  html:not(.requested-desktop-view) .panel-head .head-actions{width:100%}
  html:not(.requested-desktop-view) .panel-head .head-actions .btn{flex:1}
  html:not(.requested-desktop-view) .stat-grid{gap:10px}
  html:not(.requested-desktop-view) .stat-card{min-height:104px;padding:15px;border-radius:19px}
  html:not(.requested-desktop-view) .stat-card p{font-size:12px}
  html:not(.requested-desktop-view) .stat-card h2{font-size:22px;margin-top:7px}
  html:not(.requested-desktop-view) .stat-card span{font-size:29px}
  html:not(.requested-desktop-view) .tile-grid,
  html:not(.requested-desktop-view) .tile-grid.small{gap:10px}
  html:not(.requested-desktop-view) .setting-tile{min-height:116px;padding:14px;border-radius:18px}
  html:not(.requested-desktop-view) .setting-tile span{width:46px;height:46px;font-size:28px}
  html:not(.requested-desktop-view) .setting-tile b{font-size:15px}
  html:not(.requested-desktop-view) .setting-tile p{font-size:12px;line-height:1.35}
  html:not(.requested-desktop-view) .form-grid{grid-template-columns:1fr!important;gap:12px}
  html:not(.requested-desktop-view) .field.wide{grid-column:auto}
  html:not(.requested-desktop-view) .form-actions{display:grid;grid-template-columns:1fr;width:100%}
  html:not(.requested-desktop-view) .form-actions>*{width:100%;text-align:center}
  html:not(.requested-desktop-view) .search-form,
  html:not(.requested-desktop-view) .inline-form{display:grid!important;grid-template-columns:1fr;width:100%}
  html:not(.requested-desktop-view) .search-form>*,
  html:not(.requested-desktop-view) .inline-form>*{width:100%}
  html:not(.requested-desktop-view) .btn,
  html:not(.requested-desktop-view) .icon-btn{min-height:44px}

  html:not(.requested-desktop-view) body.route-pos .pos-left .form-grid{grid-template-columns:1fr!important}
  html:not(.requested-desktop-view) body.route-pos .item-row,
  html:not(.requested-desktop-view) body.route-pos .membership-row,
  html:not(.requested-desktop-view) .invoice-edit-item-row{grid-template-columns:1fr!important;padding:11px!important}
  html:not(.requested-desktop-view) body.route-pos .remove-item,
  html:not(.requested-desktop-view) body.route-pos .remove-membership,
  html:not(.requested-desktop-view) .invoice-edit-item-row .remove-edit-item{width:100%!important;grid-column:auto!important}
  html:not(.requested-desktop-view) body.route-pos .customer-actions-inline.customer-tab-row{grid-template-columns:1fr!important}
  html:not(.requested-desktop-view) .customer-mini-actions{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .history-row{align-items:flex-start;flex-direction:column}

  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-tabs,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  html:not(.requested-desktop-view) body.route-invoices .invoice-tab,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-tab{width:100%;padding:9px 7px;text-align:center}
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-grid,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-grid,
  html:not(.requested-desktop-view) .followup-filter-grid{grid-template-columns:1fr!important}
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-actions,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-actions,
  html:not(.requested-desktop-view) .followup-filter-actions{grid-column:auto!important;display:grid!important;grid-template-columns:1fr 1fr}
  html:not(.requested-desktop-view) body.route-invoices .invoice-summary-grid,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-summary-grid{grid-template-columns:1fr}
  html:not(.requested-desktop-view) body.route-invoices .invoice-summary-card{min-height:96px;padding:15px;border-radius:18px}
  html:not(.requested-desktop-view) body.route-invoices .invoice-summary-card strong{font-size:21px}
  html:not(.requested-desktop-view) body.route-invoices .invoice-table-wrap th:last-child,
  html:not(.requested-desktop-view) body.route-invoices .invoice-table-wrap td:last-child,
  html:not(.requested-desktop-view) body.route-appointments .table-wrap th:last-child,
  html:not(.requested-desktop-view) body.route-appointments .table-wrap td:last-child,
  html:not(.requested-desktop-view) .appointment-attendance-heading,
  html:not(.requested-desktop-view) .appointment-attendance-cell{position:static!important;box-shadow:none!important}

  html:not(.requested-desktop-view) .appointment-dashboard-card{grid-template-columns:1fr!important;padding:12px}
  html:not(.requested-desktop-view) .appointment-main{align-items:flex-start;flex-wrap:wrap}
  html:not(.requested-desktop-view) .appointment-time{min-width:75px}
  html:not(.requested-desktop-view) .appointment-details{flex:1 1 170px}
  html:not(.requested-desktop-view) .appointment-state{justify-self:start}
  html:not(.requested-desktop-view) .appointment-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  html:not(.requested-desktop-view) .appointment-actions form,
  html:not(.requested-desktop-view) .appointment-actions .btn{width:100%}
  html:not(.requested-desktop-view) .appointment-not-joined-form{grid-template-columns:1fr!important}
  html:not(.requested-desktop-view) .appointment-not-joined-form>div{grid-column:auto!important}
  html:not(.requested-desktop-view) .appointment-attendance-buttons{flex-direction:column}
  html:not(.requested-desktop-view) .appointment-attendance-buttons .icon-btn,
  html:not(.requested-desktop-view) .appointment-attendance-buttons form,
  html:not(.requested-desktop-view) .appointment-attendance-buttons form button{width:100%}

  html:not(.requested-desktop-view) .blacklist-customer-head{flex-direction:column;align-items:flex-start}
  html:not(.requested-desktop-view) .blacklist-actions{justify-content:stretch}
  html:not(.requested-desktop-view) .blacklist-actions .icon-btn,
  html:not(.requested-desktop-view) .blacklist-actions form,
  html:not(.requested-desktop-view) .blacklist-actions form button{width:100%}
  html:not(.requested-desktop-view) .followup-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.requested-desktop-view) .followup-detail-grid{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .income-entry-guide{align-items:flex-start;flex-direction:column}

  html:not(.requested-desktop-view) .print-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  html:not(.requested-desktop-view) .print-actions>*{width:100%}
  html:not(.requested-desktop-view) .invoice-paper{width:100%;max-width:100%;padding:16px;border-radius:18px;overflow:hidden}
  html:not(.requested-desktop-view) .invoice-head,
  html:not(.requested-desktop-view) .invoice-customer,
  html:not(.requested-desktop-view) .invoice-total{display:block}
  html:not(.requested-desktop-view) .invoice-meta{text-align:left;margin-top:14px}
  html:not(.requested-desktop-view) .invoice-total>div:last-child{min-width:0}
  html:not(.requested-desktop-view) .invoice-paper .table-wrap{overflow:auto}
  html:not(.requested-desktop-view) .invoice-email-card,
  html:not(.requested-desktop-view) .invoice-email-card-form{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .invoice-email-card-form .btn,
  html:not(.requested-desktop-view) .invoice-email-direct-form,
  html:not(.requested-desktop-view) .invoice-email-direct-form .btn{width:100%}

  html:not(.requested-desktop-view) .sidebar-sort-item{grid-template-columns:34px 34px 36px minmax(0,1fr)}
  html:not(.requested-desktop-view) .sidebar-sort-actions{grid-column:1/-1;justify-content:flex-end}
}

@media screen and (max-width:520px){
  html:not(.requested-desktop-view) .stat-grid{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .tile-grid,
  html:not(.requested-desktop-view) .tile-grid.small{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .top-actions{grid-template-columns:1fr}
  html:not(.requested-desktop-view) .top-actions>*{grid-column:1!important}
  html:not(.requested-desktop-view) .print-actions{grid-template-columns:1fr}
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-tabs,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-tabs{grid-template-columns:1fr}
}

/* Browser “Request Desktop Site”: restore the desktop canvas on a phone only when the
   browser exposes an expanded layout viewport. Normal phone/tablet mode is unaffected. */
@media screen and (min-width:900px){
  html.requested-desktop-view,html.requested-desktop-view body{min-width:1280px!important;overflow-x:auto!important}
  html.requested-desktop-view .app-shell{display:flex!important;min-width:1280px!important}
  html.requested-desktop-view .sidebar{width:288px!important;min-width:288px!important;height:100vh!important;position:sticky!important;inset:auto!important;top:0!important;transform:none!important;padding:22px 18px!important;overflow:auto!important}
  html.requested-desktop-view .app-shell.sidebar-collapsed .sidebar{width:0!important;min-width:0!important;padding-left:0!important;padding-right:0!important;overflow:hidden!important}
  html.requested-desktop-view .main{flex:1!important;width:auto!important;max-width:calc(100vw - 288px)!important;min-width:0!important;padding:26px 28px 36px!important}
  html.requested-desktop-view .app-shell.sidebar-collapsed .main{max-width:100vw!important;width:100%!important}
  html.requested-desktop-view .mobile-sidebar-backdrop{display:none!important}
  html.requested-desktop-view .topbar{display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;padding:18px 20px!important;border-radius:29px!important}
  html.requested-desktop-view .topbar-title{min-width:190px!important;flex:0 1 auto!important}
  html.requested-desktop-view .top-actions{display:flex!important;width:auto!important;max-width:none!important;flex:0 1 auto!important;justify-content:flex-end!important}
  html.requested-desktop-view .branch-picker{width:auto!important;min-width:210px!important;flex:0 0 auto!important}
  html.requested-desktop-view .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  html.requested-desktop-view .grid-two{grid-template-columns:1fr 1fr!important}
  html.requested-desktop-view .tile-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  html.requested-desktop-view .tile-grid.small{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  html.requested-desktop-view .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.requested-desktop-view body.route-pos .app-shell.sidebar-collapsed .pos-layout{grid-template-columns:minmax(300px,350px) minmax(560px,1fr) minmax(300px,350px)!important;grid-template-areas:"customer items summary"!important}
}

/* v1.1.25b — compact responsive header correction */
@media screen and (max-width:1024px){
  html:not(.requested-desktop-view) .topbar{flex-direction:row!important;justify-content:flex-start!important;min-height:0!important}
  html:not(.requested-desktop-view) .topbar-title{flex:0 1 auto!important;width:auto!important;height:auto!important;min-height:0!important}
  html:not(.requested-desktop-view) .top-actions{flex:0 0 100%!important;height:auto!important;min-height:0!important}
}
@media screen and (max-width:680px){
  html:not(.requested-desktop-view) .topbar{flex-direction:column!important}
  html:not(.requested-desktop-view) .topbar-title{width:100%!important}
}
@media screen and (max-width:520px){
  html:not(.requested-desktop-view) body.route-invoices .invoice-filter-tabs,
  html:not(.requested-desktop-view) body.route-customer_memberships .membership-filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media screen and (min-width:900px){
  html.requested-desktop-view .main{width:992px!important;max-width:992px!important;flex:0 0 992px!important}
  html.requested-desktop-view .app-shell.sidebar-collapsed .main{width:1280px!important;max-width:1280px!important;flex-basis:1280px!important}
}
/* v1.1.27 — professional branch-aware service & membership invoice */
.invoice-paper-v2{
  --invoice-accent:#1463ff;
  --invoice-accent-soft:#eef4ff;
  max-width:920px;
  padding:0;
  overflow:hidden;
  border:1px solid #dbe3ef;
  border-radius:22px;
  background:#fff;
  color:#172033;
}
.invoice-paper-v2.membership-invoice{--invoice-accent:#8b5cf6;--invoice-accent-soft:#f5f0ff}
.invoice-v2-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:26px;
  padding:30px 34px 26px;
  background:linear-gradient(135deg,#0d1728,#173453);
  color:#fff;
  border-bottom:5px solid var(--invoice-accent);
}
.invoice-brand-block{display:flex;align-items:flex-start;gap:18px;min-width:0}
.invoice-branch-logo{width:86px;height:86px;max-width:86px;max-height:86px;object-fit:contain;flex:0 0 auto;margin:0;padding:6px;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.invoice-brand-copy{min-width:0}.invoice-brand-copy h1{margin:2px 0 7px;font-size:28px;line-height:1.12;color:#fff;letter-spacing:-.02em}.invoice-brand-copy>p{margin:0;color:#d4deea;line-height:1.48;font-size:13px}
.invoice-contact-line,.invoice-tax-line{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:11px;color:#dce7f3;font-size:12px}.invoice-contact-line span,.invoice-tax-line span{position:relative}.invoice-contact-line span:not(:last-child)::after{content:'•';position:absolute;right:-10px;color:#7d91aa}
.invoice-v2-meta{text-align:right}.invoice-type-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;background:var(--invoice-accent);color:#fff;font-size:10px;font-weight:900;letter-spacing:.12em}.invoice-v2-meta h2{margin:11px 0 12px;color:#fff;font-size:25px;letter-spacing:.01em}.invoice-v2-meta dl{margin:0;display:grid;gap:7px}.invoice-v2-meta dl>div{display:grid;grid-template-columns:86px 1fr;gap:10px}.invoice-v2-meta dt{color:#9eb0c4;font-size:11px}.invoice-v2-meta dd{margin:0;color:#f8fbff;font-size:12px;font-weight:700}
.invoice-v2-parties{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0;padding:24px 34px}.invoice-v2-parties>div{padding:16px 18px;border:1px solid #e0e7f0;border-radius:16px;background:#f8fafc}.invoice-v2-parties h3{margin:5px 0 5px;color:#172033;font-size:17px}.invoice-v2-parties p{margin:2px 0;color:#5c6b7e;font-size:13px;line-height:1.45}.invoice-section-label{display:block;color:var(--invoice-accent);font-size:10px;font-weight:900;letter-spacing:.12em}
.invoice-table-shell{margin:0 34px;overflow:hidden;border:1px solid #dce4ee;border-radius:16px}.invoice-table-v2{width:100%;margin:0;border:0;border-collapse:collapse;table-layout:auto}.invoice-table-v2 th{padding:12px 13px;background:#172033;color:#fff;border:0;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.invoice-table-v2 td{padding:13px;border:0;border-bottom:1px solid #e6ebf2;color:#243247;font-size:13px;vertical-align:top}.invoice-table-v2 tbody tr:last-child td{border-bottom:0}.invoice-table-v2 th.num,.invoice-table-v2 td.num{text-align:right;white-space:nowrap}.invoice-table-v2 th:first-child,.invoice-table-v2 td:first-child{width:42px;text-align:center}.invoice-table-v2 td:nth-child(2){min-width:210px}
.invoice-v2-summary{display:grid;grid-template-columns:minmax(250px,1fr) minmax(290px,360px);gap:28px;align-items:start;padding:24px 34px 12px}.invoice-payment-status{padding:16px 18px;border:1px solid #dce5ef;border-radius:16px;background:var(--invoice-accent-soft)}.invoice-payment-status p{display:flex;justify-content:space-between;gap:14px;margin:11px 0 0;color:#526174;font-size:13px}.invoice-payment-status p b{color:#172033}.invoice-payment-status p.balance{padding-top:10px;border-top:1px solid #d3ddea;color:#a11d2d}.invoice-payment-status p.balance b{color:#a11d2d}
.invoice-total-v2{margin:0;display:block}.invoice-total-v2>div:first-child{display:none}.invoice-total-v2>div:last-child{min-width:0;width:100%;padding:5px 0}.invoice-total-v2 p,.invoice-total-v2 h3{display:flex;justify-content:space-between;gap:18px;margin:8px 0;color:#4d5c70}.invoice-total-v2 h3{margin-top:12px;padding:14px 0 0;border-top:2px solid #172033;color:#172033;font-size:18px}.invoice-total-v2 h3 b{color:var(--invoice-accent)}
.invoice-payment-history-v2{margin:8px 34px 0;padding:0;border:1px solid #dce4ee;border-radius:16px;overflow:hidden;background:#fff}.invoice-payment-history-v2 h4{margin:0;padding:13px 16px;background:#f5f7fb;color:#172033}.invoice-payment-history-v2 table{width:100%;border-collapse:collapse}.invoice-payment-history-v2 th,.invoice-payment-history-v2 td{padding:10px 13px;border-bottom:1px solid #e6ebf2;text-align:left;color:#26344a;font-size:12px}.invoice-payment-history-v2 th{background:#fff;color:#66758a;text-transform:uppercase;font-size:10px;letter-spacing:.06em}.invoice-payment-history-v2 tbody tr:last-child td{border-bottom:0}
.invoice-terms-box{margin:22px 34px 0;padding:17px 20px;border:1px solid #dfe6ef;border-left:4px solid var(--invoice-accent);border-radius:14px;background:#fafbfd}.invoice-terms-box h4{margin:0 0 8px;color:#172033;font-size:14px}.invoice-terms-list{margin:0;padding-left:20px;color:#536175;font-size:12px;line-height:1.55}.invoice-terms-list li+li{margin-top:4px}
.invoice-footer-v2{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(180px,240px);gap:24px;align-items:end;margin:24px 34px 0;padding:20px 0 28px;border-top:1px solid #dce4ee;text-align:left}.invoice-footer-v2 h4{margin:0 0 5px;color:#172033}.invoice-footer-v2 p{margin:0;color:#657388;font-size:12px}.invoice-qr{width:86px;height:86px;object-fit:contain;border:1px solid #dce4ee;border-radius:12px;padding:5px}.invoice-signature{text-align:right}.invoice-signature::before{content:'';display:block;width:150px;margin:0 0 8px auto;border-top:1px solid #8a97a9}.invoice-signature span{display:block;color:#7c899b;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.invoice-signature b{display:block;margin-top:4px;color:#172033;font-size:12px}

@media(max-width:760px){
  .invoice-paper-v2{border-radius:15px}.invoice-v2-header{grid-template-columns:1fr;padding:22px 20px;gap:18px}.invoice-v2-meta{text-align:left}.invoice-v2-meta dl>div{grid-template-columns:95px 1fr}.invoice-brand-block{gap:13px}.invoice-branch-logo{width:68px;height:68px;max-width:68px;max-height:68px;border-radius:14px}.invoice-brand-copy h1{font-size:21px}.invoice-v2-parties{grid-template-columns:1fr;padding:18px 18px;gap:10px}.invoice-table-shell{margin:0 18px;overflow-x:auto}.invoice-table-v2{min-width:650px}.invoice-v2-summary{grid-template-columns:1fr;padding:18px 18px 8px;gap:16px}.invoice-payment-history-v2,.invoice-terms-box{margin-left:18px;margin-right:18px}.invoice-payment-history-v2{overflow-x:auto}.invoice-payment-history-v2 table{min-width:560px}.invoice-footer-v2{grid-template-columns:1fr;margin-left:18px;margin-right:18px;gap:16px}.invoice-signature{text-align:left}.invoice-signature::before{margin-left:0;margin-right:0}}

@media print{
  @page{size:A4 portrait;margin:9mm}
  html,body{width:210mm;min-height:297mm;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .app-shell,.main{display:block!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}
  .sidebar,.topbar,.print-actions,.invoice-email-card,.alert,.dashboard-back-btn{display:none!important}
  .invoice-paper-v2{width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
  .invoice-v2-header{padding:7mm 8mm 5mm;grid-template-columns:minmax(0,1fr) 60mm;gap:7mm;border-bottom-width:1.5mm;break-inside:avoid}
  .invoice-branch-logo{width:22mm;height:22mm;max-width:22mm;max-height:22mm;border-radius:4mm;box-shadow:none}.invoice-brand-copy h1{font-size:20pt}.invoice-brand-copy>p{font-size:9pt}.invoice-contact-line,.invoice-tax-line{font-size:8pt}.invoice-v2-meta h2{font-size:17pt}.invoice-v2-meta dt,.invoice-v2-meta dd{font-size:8.5pt}
  .invoice-v2-parties{padding:5mm 8mm 4mm;gap:5mm;break-inside:avoid}.invoice-v2-parties>div{padding:4mm;border-radius:3mm}.invoice-v2-parties h3{font-size:11pt}.invoice-v2-parties p{font-size:8.5pt}
  .invoice-table-shell{margin:0 8mm;border-radius:3mm;overflow:visible;break-inside:auto}.invoice-table-v2{min-width:0!important;table-layout:auto}.invoice-table-v2 thead{display:table-header-group}.invoice-table-v2 tr{break-inside:avoid}.invoice-table-v2 th{padding:2.6mm 2.4mm;font-size:7.5pt}.invoice-table-v2 td{padding:2.8mm 2.4mm;font-size:8.5pt}
  .invoice-v2-summary{padding:5mm 8mm 2mm;grid-template-columns:1fr 84mm;gap:8mm;break-inside:avoid}.invoice-payment-status{padding:4mm}.invoice-payment-status p,.invoice-total-v2 p{font-size:8.5pt}.invoice-total-v2 h3{font-size:12pt}
  .invoice-payment-history-v2{margin:2mm 8mm 0;break-inside:avoid}.invoice-payment-history-v2 h4{padding:3mm 4mm;font-size:9pt}.invoice-payment-history-v2 th,.invoice-payment-history-v2 td{padding:2.3mm 3mm;font-size:7.5pt}
  .invoice-terms-box{margin:4mm 8mm 0;padding:3.5mm 4mm;border-radius:3mm;break-inside:avoid}.invoice-terms-box h4{font-size:9pt}.invoice-terms-list{font-size:7.5pt;line-height:1.38}
  .invoice-footer-v2{margin:4mm 8mm 0;padding:4mm 0 2mm;gap:6mm;break-inside:avoid}.invoice-footer-v2 h4{font-size:10pt}.invoice-footer-v2 p,.invoice-signature b{font-size:7.5pt}.invoice-qr{width:20mm;height:20mm}.invoice-signature::before{width:38mm}
}


/* v1.1.29 — Room management, live occupancy toggles and service timers */
.room-status-panel{margin:18px 0 22px;overflow:visible}
.room-status-head{align-items:center}
.room-live-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:rgba(16,185,129,.12);color:#047857;font-size:11px;font-weight:900;letter-spacing:.12em;border:1px solid rgba(16,185,129,.22)}
.room-live-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 5px rgba(16,185,129,.13);animation:roomPulse 1.6s infinite}
@keyframes roomPulse{50%{box-shadow:0 0 0 9px rgba(16,185,129,0)}}
.room-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:15px}
.room-status-card{position:relative;border-radius:19px;padding:16px;border:1px solid rgba(148,163,184,.22);background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 10px 28px rgba(15,23,42,.07);transition:.28s ease;overflow:hidden}
.room-status-card:after{content:"";position:absolute;inset:auto -35px -45px auto;width:110px;height:110px;border-radius:50%;background:rgba(16,185,129,.09);pointer-events:none}
.room-status-card.is-busy{color:#fff;border-color:rgba(239,68,68,.45);background:linear-gradient(145deg,#7f1d1d,#dc2626 60%,#ef4444);box-shadow:0 15px 35px rgba(220,38,38,.27)}
.room-status-card.is-busy:after{background:rgba(255,255,255,.1)}
.room-card-top,.room-name-wrap,.room-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.room-name-wrap{justify-content:flex-start;min-width:0}.room-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(16,185,129,.12);font-size:21px}.is-busy .room-icon{background:rgba(255,255,255,.15)}
.room-name-wrap h4{margin:0;font-size:17px}.room-name-wrap small{display:block;margin-top:3px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}.is-busy .room-name-wrap small{color:rgba(255,255,255,.76)}
.room-toggle{position:relative;display:inline-flex;width:49px;height:27px;flex:0 0 auto}.room-toggle input{position:absolute;opacity:0;pointer-events:none}.room-toggle span{width:100%;height:100%;border-radius:999px;background:#cbd5e1;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);transition:.25s}.room-toggle span:after{content:"";display:block;width:21px;height:21px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.28);transition:.25s}.room-toggle input:checked+span{background:#7f1d1d;box-shadow:0 0 0 3px rgba(255,255,255,.15)}.room-toggle input:checked+span:after{transform:translateX(22px)}.room-toggle input:disabled+span{opacity:.55;cursor:wait}
.room-timer{margin:17px 0 12px;font-size:29px;line-height:1;font-weight:900;letter-spacing:.06em;color:#059669}.is-busy .room-timer{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.18)}
.room-current-client{display:flex;flex-direction:column;gap:3px;min-height:42px;padding:10px 12px;border-radius:12px;background:rgba(15,23,42,.045)}.is-busy .room-current-client{background:rgba(255,255,255,.12)}.room-current-client span{font-size:12px;color:#64748b}.is-busy .room-current-client span{color:rgba(255,255,255,.74)}
.room-card-footer{margin-top:12px}.room-card-footer label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.room-card-footer input{width:62px;padding:6px 7px;border-radius:9px}.room-state-label{font-size:11px;font-weight:900;letter-spacing:.1em;color:#059669}.is-busy .room-state-label{color:#fff}.is-busy .room-card-footer input{background:rgba(255,255,255,.13);color:#fff;border-color:rgba(255,255,255,.2)}
.room-empty{grid-column:1/-1;padding:35px}.pos-room-grid{margin-top:0}.pos-room-grid small{display:block;margin-top:5px;color:#64748b;font-size:11px}.invoice-room-line{margin-top:7px!important;padding-top:7px;border-top:1px dashed #d9e0ea}
@media(max-width:767px){.room-status-grid{grid-template-columns:1fr}.room-status-card{padding:14px}.room-timer{font-size:26px}.room-name-wrap small{max-width:190px}.pos-room-grid{grid-template-columns:1fr!important}}
@media print{.room-status-panel{display:none!important}.invoice-room-line{border-top:0;padding-top:2px}}

/* v1.1.30 — Compact room cards inside the dashboard KPI grid */
.dashboard-stat-grid-with-rooms{align-items:stretch}
.room-kpi-card{background:linear-gradient(135deg,#0891b2,#22d3ee);display:block;min-height:126px;padding:18px 18px 15px;color:#fff}
.room-kpi-card.is-vacant{background:linear-gradient(135deg,#0891b2,#22d3ee)}
.room-kpi-card.is-busy{background:linear-gradient(135deg,#b91c1c,#fb3f5f 58%,#fb7185);border-color:rgba(255,255,255,.24);box-shadow:0 18px 44px rgba(220,38,38,.32)}
.room-kpi-card .room-kpi-copy{position:relative;z-index:2;min-width:0;padding-right:76px;padding-bottom:27px}
.room-kpi-card .room-kpi-copy>p{margin:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,.9);font-size:14px;font-weight:900}
.room-kpi-card .room-kpi-copy>h2{margin:7px 0 3px;font-size:25px;line-height:1;letter-spacing:.025em;color:#fff;white-space:nowrap}
.room-kpi-client{display:flex;align-items:center;gap:5px;min-width:0;color:rgba(255,255,255,.84);font-size:10px;line-height:1.2}
.room-kpi-client b,.room-kpi-client span{position:static!important;z-index:auto!important;font-size:10px!important;filter:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-kpi-client b{max-width:92px}.room-kpi-client span{max-width:90px;color:rgba(255,255,255,.72)}
.room-kpi-side{position:absolute;z-index:3;right:16px;top:15px;display:flex;flex-direction:column;align-items:center;gap:11px}
.room-kpi-card .room-kpi-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:15px;background:rgba(255,255,255,.17);font-size:25px!important;line-height:1;filter:drop-shadow(0 7px 12px rgba(0,0,0,.14))!important}
.room-kpi-card .room-kpi-toggle{width:43px;height:24px}
.room-kpi-card .room-kpi-toggle>span{position:static!important;z-index:auto!important;font-size:0!important;filter:none!important;background:rgba(255,255,255,.35)}
.room-kpi-card .room-kpi-toggle>span:after{width:18px;height:18px;margin:3px}
.room-kpi-card .room-kpi-toggle input:checked+span{background:#7f1d1d;box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.room-kpi-card .room-kpi-toggle input:checked+span:after{transform:translateX(19px)}
.room-kpi-footer{position:absolute;z-index:3;left:18px;right:18px;bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.18)}
.room-kpi-footer label{display:flex;align-items:center;gap:5px;margin:0;color:rgba(255,255,255,.82);font-size:10px;font-weight:800}
.room-kpi-footer input{width:43px;height:23px;padding:2px 5px;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:rgba(255,255,255,.16);color:#fff;font:800 11px/1 inherit;outline:none}
.room-kpi-footer input:disabled{opacity:.7}
.room-kpi-card .room-state-label{position:static!important;z-index:auto!important;font-size:9px!important;line-height:1!important;letter-spacing:.1em;color:#fff!important;filter:none!important;padding:4px 7px;border-radius:999px;background:rgba(0,0,0,.15)}
.room-kpi-card.is-busy .room-state-label{background:rgba(127,29,29,.62)}
@media(max-width:1180px){.room-kpi-card{min-height:112px}.room-kpi-card .room-kpi-copy>h2{font-size:22px}.room-kpi-card .room-kpi-copy{padding-right:66px}.room-kpi-side{right:13px}.room-kpi-footer{left:15px;right:15px}}
@media(max-width:820px){html:not(.requested-desktop-view) .room-kpi-card{min-height:104px;padding:15px}html:not(.requested-desktop-view) .room-kpi-card .room-kpi-copy{padding-right:62px;padding-bottom:24px}html:not(.requested-desktop-view) .room-kpi-card .room-kpi-copy>h2{font-size:20px}html:not(.requested-desktop-view) .room-kpi-side{right:12px;top:12px;gap:7px}html:not(.requested-desktop-view) .room-kpi-card .room-kpi-icon{width:39px;height:39px;font-size:21px!important}html:not(.requested-desktop-view) .room-kpi-footer{left:14px;right:14px;bottom:8px}}


/* v1.1.31 — Rooms sidebar/live page, reliable toggles and clickable dashboard filters */
.dashboard-stat-grid-with-rooms{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:stretch}
.stat-card-link{text-decoration:none;cursor:pointer;outline:none}
.stat-card-link:focus-visible{box-shadow:0 0 0 4px rgba(56,189,248,.32),0 24px 60px rgba(0,0,0,.38);transform:translateY(-5px)}
.stat-card-link.card-clicked{transform:scale(.985)}
.room-kpi-card[data-card-href],.room-live-card[data-card-href]{cursor:pointer}
.room-card-removing{opacity:0;transform:scale(.94)!important;transition:opacity .24s ease,transform .24s ease}
.room-status-updating{filter:saturate(.8);opacity:.78}

.room-toggle-button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:inherit;padding:0;cursor:pointer;font:inherit;position:relative;z-index:8}
.room-toggle-button:disabled{cursor:wait;opacity:.58}
.room-toggle-track{display:block;width:48px;height:27px;padding:3px;border-radius:999px;background:#cbd5e1;box-shadow:inset 0 0 0 1px rgba(15,23,42,.12);transition:.24s ease}
.room-toggle-track i{display:block;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 9px rgba(15,23,42,.3);transition:transform .24s ease}
.room-toggle-button.on .room-toggle-track{background:#991b1b;box-shadow:0 0 0 3px rgba(255,255,255,.17)}
.room-toggle-button.on .room-toggle-track i{transform:translateX(21px)}
.room-toggle-button>b{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:inherit}
.room-toggle-button.compact{display:flex;flex-direction:column;gap:3px}
.room-toggle-button.compact .room-toggle-track{width:43px;height:24px;padding:3px}
.room-toggle-button.compact .room-toggle-track i{width:18px;height:18px}
.room-toggle-button.compact.on .room-toggle-track i{transform:translateX(19px)}
.room-toggle-button.compact>b{font-size:8px;color:#fff}

.room-control-panel{overflow:visible}
.room-page-head{align-items:flex-start}
.room-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:4px 0 20px}
.room-summary-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-radius:18px;text-decoration:none;color:#fff;transition:.22s ease;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.room-summary-card:hover{transform:translateY(-4px);filter:saturate(1.08)}
.room-summary-card span{font-weight:800;font-size:13px}.room-summary-card strong{font-size:25px}
.room-summary-card.all{background:linear-gradient(135deg,#7c3aed,#d946ef)}
.room-summary-card.busy{background:linear-gradient(135deg,#b91c1c,#fb3f5f)}
.room-summary-card.vacant{background:linear-gradient(135deg,#0284c7,#22d3ee)}
.room-summary-card.inactive{background:linear-gradient(135deg,#475569,#64748b)}
.room-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.room-live-card{position:relative;overflow:hidden;min-height:270px;padding:20px;border:1px solid var(--line);border-radius:25px;background:linear-gradient(145deg,rgba(31,41,61,.98),rgba(33,48,77,.94));box-shadow:0 18px 42px rgba(0,0,0,.24);transition:.24s ease}
.room-live-card:hover{transform:translateY(-5px);box-shadow:0 25px 55px rgba(0,0,0,.32)}
.room-live-card.is-busy{background:linear-gradient(145deg,#7f1d1d,#dc2626 55%,#fb7185);border-color:rgba(255,255,255,.24)}
.room-live-card.is-vacant{background:linear-gradient(145deg,#075985,#0891b2 55%,#22d3ee);border-color:rgba(255,255,255,.2)}
.room-live-card.is-inactive{background:linear-gradient(145deg,#334155,#475569);opacity:.78}
.room-live-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;position:relative;z-index:2}
.room-live-head>div{display:flex;align-items:center;gap:11px;min-width:0}.room-live-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:rgba(255,255,255,.16);font-size:24px}
.room-live-head h3{margin:0;color:#fff;font-size:19px}.room-live-head p{margin:4px 0 0;color:rgba(255,255,255,.73);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-live-state{padding:7px 10px;border-radius:999px;background:rgba(0,0,0,.18);color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em}
.room-live-timer{margin:25px 0 8px;color:#fff;font-size:37px;line-height:1;font-weight:950;letter-spacing:.04em}
.room-live-client{display:flex;flex-direction:column;gap:4px;min-height:45px;color:#fff}.room-live-client b{font-size:15px}.room-live-client span{font-size:11px;color:rgba(255,255,255,.76);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-live-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
.room-duration-control{display:grid;grid-template-columns:auto 60px auto;align-items:center;gap:7px;color:#fff;font-size:11px;font-weight:800}.room-duration-control input{height:36px;width:60px;padding:6px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.15);color:#fff;font-weight:900}.room-duration-control input:disabled{opacity:.65}
.room-live-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.room-live-actions .icon-btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.2);color:#fff}.room-live-actions .icon-btn.danger{background:rgba(127,29,29,.45)}
.room-empty-state{grid-column:1/-1}
.dashboard-linked-filter{flex-wrap:wrap}.dashboard-linked-filter input[type=date]{min-width:145px}

@media(max-width:1180px){.room-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){html:not(.requested-desktop-view) .dashboard-stat-grid-with-rooms{grid-template-columns:repeat(2,minmax(0,1fr))}html:not(.requested-desktop-view) .room-live-grid{grid-template-columns:1fr}html:not(.requested-desktop-view) .room-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){html:not(.requested-desktop-view) .dashboard-stat-grid-with-rooms,html:not(.requested-desktop-view) .room-summary-grid{grid-template-columns:1fr}.room-live-card{min-height:250px}.room-live-timer{font-size:31px}.dashboard-linked-filter input[type=date]{width:100%}}


/* v1.1.32 — balanced dashboard, room panel and payment/profit analytics */
.dashboard-stat-grid-balanced{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.analytics-gradient{background:linear-gradient(135deg,#0f766e,#06b6d4 48%,#8b5cf6)}
.dashboard-primary-grid,.dashboard-secondary-grid{align-items:stretch}
.dashboard-primary-grid>.panel,.dashboard-secondary-grid>.panel{height:100%;margin-bottom:22px}
.dashboard-quick-panel .tile-grid{height:calc(100% - 46px)}
.dashboard-room-panel{overflow:visible}
.room-dashboard-count{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border-radius:999px;background:rgba(34,211,238,.14);border:1px solid rgba(34,211,238,.24);color:#a5f3fc;font-size:12px;font-weight:900}
.dashboard-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.dashboard-room-card{position:relative;overflow:hidden;min-height:174px;padding:15px;border-radius:21px;border:1px solid rgba(255,255,255,.15);box-shadow:0 13px 32px rgba(0,0,0,.2);transition:.24s ease;cursor:pointer}
.dashboard-room-card:hover{transform:translateY(-4px);filter:saturate(1.08)}
.dashboard-room-card.is-vacant{background:linear-gradient(145deg,#075985,#0891b2 58%,#22d3ee)}
.dashboard-room-card.is-busy{background:linear-gradient(145deg,#7f1d1d,#dc2626 58%,#fb7185)}
.dashboard-room-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.dashboard-room-card-head>div{display:flex;align-items:center;gap:9px;min-width:0}
.dashboard-room-card-head>div>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.16);font-size:21px}
.dashboard-room-card-head b,.dashboard-room-card-head small{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-room-card-head b{font-size:15px}.dashboard-room-card-head small{margin-top:3px;color:rgba(255,255,255,.7);font-size:10px}
.dashboard-room-timer{margin:19px 0 7px;font-size:28px;line-height:1;font-weight:950;letter-spacing:.035em}
.dashboard-room-client{display:flex;flex-direction:column;gap:3px;min-height:34px}.dashboard-room-client b{font-size:12px}.dashboard-room-client span{font-size:10px;color:rgba(255,255,255,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-room-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.17);font-size:9px;font-weight:900;letter-spacing:.06em}
.dashboard-room-footer label{display:flex;align-items:center;gap:5px}.dashboard-room-footer input{width:48px;height:28px;padding:3px 6px;border-radius:8px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.15);color:#fff;font-weight:900}.dashboard-room-footer input:disabled{opacity:.65}
.dashboard-room-empty{grid-column:1/-1;min-height:180px;display:grid;place-items:center;text-align:center}
.compact-dashboard-table table{min-width:520px}.dashboard-branch-revenue-panel .table-wrap{max-height:480px}

.analytics-filter-panel{overflow:visible}
.analytics-tabs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:8px;border-radius:19px;background:rgba(3,12,28,.38);border:1px solid rgba(255,255,255,.1)}
.analytics-tab{position:relative;padding:12px 17px;border-radius:14px;color:var(--muted);font-weight:900;transition:.22s ease}.analytics-tab:hover,.analytics-tab.active{color:#09111f;background:linear-gradient(135deg,#22d3ee,#a78bfa);box-shadow:0 11px 25px rgba(34,211,238,.2);transform:translateY(-2px)}
.analytics-date-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:15px}.analytics-date-filter .field{min-width:180px}.analytics-date-filter .btn{min-height:48px}
.analytics-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.analytics-metric-card{position:relative;overflow:hidden;min-height:150px;padding:20px;border:1px solid rgba(255,255,255,.16);border-radius:24px;box-shadow:var(--shadow-soft)}.analytics-metric-card:after{content:"";position:absolute;right:-30px;bottom:-42px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.13)}.analytics-metric-card>div,.analytics-metric-card>b{position:relative;z-index:2}.analytics-metric-card>div>span{display:block;color:rgba(255,255,255,.82);font-weight:900}.analytics-metric-card strong{display:block;margin:11px 0 8px;font-size:27px;letter-spacing:-.04em}.analytics-metric-card small{font-size:11px;font-weight:850}.analytics-metric-card>b{position:absolute;right:20px;top:20px;font-size:32px}.analytics-metric-card .positive{color:#bbf7d0}.analytics-metric-card .negative{color:#fecdd3}
.analytics-target-grid{align-items:stretch}.analytics-target-grid>.panel{height:100%}.target-progress-panel .panel-head>strong{font-size:27px}.target-progress-track{height:18px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}.target-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,#34d399,#facc15);box-shadow:0 0 25px rgba(34,211,238,.38);transition:width .7s ease}.target-progress-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.target-progress-values>div,.estimate-grid>div{padding:15px;border-radius:18px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.1)}.target-progress-values span,.estimate-grid span{display:block;color:var(--muted);font-size:11px;font-weight:800}.target-progress-values b,.estimate-grid b{display:block;margin-top:7px;font-size:18px}.analytics-warning{margin-top:15px;padding:12px 14px;border-radius:14px;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.28);color:#fde68a;font-size:12px}
.estimate-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.estimate-grid strong{display:block;margin-top:8px;color:#a5f3fc;font-size:21px}.estimate-note{margin:15px 0 0;padding:13px;border-radius:15px;background:rgba(139,92,246,.11);color:#ddd6fe;line-height:1.5}
.analytics-chart-panel{overflow:hidden}.analytics-chart-wrap{overflow:auto;padding:8px 0 0}.analytics-svg{display:block;width:100%;min-width:760px;height:auto}.analytics-grid-line{stroke:rgba(255,255,255,.11);stroke-width:1}.analytics-axis-label{fill:#9fb0ce;font-size:11px;font-weight:700}.analytics-series{filter:drop-shadow(0 6px 8px rgba(0,0,0,.18))}.analytics-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.analytics-legend span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:850}.analytics-legend span:before{content:"";width:11px;height:11px;border-radius:50%}.analytics-legend .billed:before{background:#a855f7}.analytics-legend .collected:before{background:#22d3ee}.analytics-legend .income:before{background:#34d399}.analytics-legend .expenses:before{background:#fb7185}.analytics-empty-chart{display:grid;place-items:center;min-height:280px;color:var(--muted)}
.analytics-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-summary-list{display:flex;flex-direction:column;gap:10px}.analytics-summary-list>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border-radius:15px;background:rgba(255,255,255,.055)}.analytics-summary-list span{color:var(--muted)}.text-positive{color:#6ee7b7}.text-negative{color:#fda4af}
.target-filter{margin-bottom:16px}.target-form small{display:block;margin-top:6px;color:var(--muted)}

@media(max-width:1180px){.dashboard-stat-grid-balanced,.analytics-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-primary-grid,.dashboard-secondary-grid{grid-template-columns:1fr}.dashboard-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-detail-grid{grid-template-columns:1fr}}
@media(max-width:900px){.dashboard-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.target-progress-values{grid-template-columns:1fr}.estimate-grid{grid-template-columns:1fr}}
@media(max-width:680px){html:not(.requested-desktop-view) .dashboard-stat-grid-balanced,html:not(.requested-desktop-view) .analytics-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html:not(.requested-desktop-view) .dashboard-room-grid{grid-template-columns:1fr}html:not(.requested-desktop-view) .analytics-tabs{display:grid;grid-template-columns:1fr 1fr}html:not(.requested-desktop-view) .analytics-tab{text-align:center;padding:10px}html:not(.requested-desktop-view) .analytics-date-filter{display:grid;grid-template-columns:1fr;width:100%}html:not(.requested-desktop-view) .analytics-date-filter .field{min-width:0}html:not(.requested-desktop-view) .analytics-date-filter .btn{width:100%}.analytics-metric-card{min-height:132px;padding:16px}.analytics-metric-card strong{font-size:21px}.analytics-metric-card>b{font-size:25px}}
@media(max-width:460px){html:not(.requested-desktop-view) .dashboard-stat-grid-balanced,html:not(.requested-desktop-view) .analytics-metric-grid{grid-template-columns:1fr}html:not(.requested-desktop-view) .analytics-tabs{grid-template-columns:1fr}}

/* v1.1.34 — branch-specific master settings */
.branch-settings-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:16px 18px;border:1px solid rgba(34,211,238,.24);background:linear-gradient(135deg,rgba(6,182,212,.12),rgba(139,92,246,.12))}
.branch-settings-banner p{margin:5px 0 0;color:var(--muted)}
.branch-settings-selector{display:flex;align-items:end;gap:9px;min-width:300px}
.branch-settings-selector label{display:block;margin:0 0 6px;color:var(--muted);font-size:11px;font-weight:850}
.branch-settings-selector select{min-width:230px}
@media(max-width:760px){html:not(.requested-desktop-view) .branch-settings-banner{align-items:stretch;flex-direction:column}.branch-settings-selector{display:block;min-width:0}.branch-settings-selector select{width:100%;min-width:0}}

/* v1.1.44 — compact, side-by-side filter alignment across CRM sections */
@media (min-width: 901px) {
  /* Generic list filters: Customers, Leads, Appointments, Income, Expenses, etc. */
  .panel-head:has(.dashboard-linked-filter) {
    align-items: flex-start;
    flex-direction: column;
  }
  .panel-head:has(.dashboard-linked-filter) > div:first-child {
    width: 100%;
  }
  .panel-head .head-actions:has(.dashboard-linked-filter) {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
    width: 100%;
    max-width: 100%;
  }
  .dashboard-linked-filter {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    gap: 10px;
    min-width: 0;
    width: 100%;
  }
  .dashboard-linked-filter input,
  .dashboard-linked-filter select {
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 14px;
  }
  .dashboard-linked-filter input[name="q"] {
    flex: 1 1 230px;
    min-width: 175px;
  }
  .dashboard-linked-filter select[name="status"] {
    flex: 0 1 145px;
    width: 145px;
    min-width: 120px;
  }
  .dashboard-linked-filter input[type="date"] {
    flex: 0 1 150px;
    width: 150px;
    min-width: 138px;
  }
  .dashboard-linked-filter .btn {
    flex: 0 0 auto;
    min-height: 46px;
    padding: 10px 15px;
    white-space: nowrap;
  }
  .panel-head .head-actions:has(.dashboard-linked-filter) > .btn {
    flex: 0 0 auto;
    min-height: 46px;
    padding: 10px 15px;
    white-space: nowrap;
  }

  /* Sold Membership filters */
  body.route-customer_memberships .membership-filter-grid {
    grid-template-columns:
      minmax(190px, 1.45fr)
      minmax(120px, .75fr)
      minmax(120px, .75fr)
      minmax(140px, .85fr)
      minmax(140px, .85fr)
      auto !important;
    gap: 10px !important;
    align-items: end;
  }

  /* Invoice filters */
  body.route-invoices .invoice-filter-grid {
    grid-template-columns:
      minmax(190px, 1.45fr)
      minmax(118px, .72fr)
      minmax(118px, .72fr)
      minmax(118px, .72fr)
      minmax(138px, .82fr)
      minmax(138px, .82fr)
      auto !important;
    gap: 10px !important;
    align-items: end;
  }

  /* Follow-up filters */
  .followup-filter-grid {
    grid-template-columns:
      minmax(210px, 1.45fr)
      minmax(125px, .78fr)
      minmax(140px, .85fr)
      minmax(140px, .85fr)
      auto !important;
    gap: 10px !important;
    align-items: end;
  }

  /* Shared compact styling for structured filter panels */
  .membership-filter-grid .field,
  .invoice-filter-grid .field,
  .followup-filter-grid .field,
  .analytics-date-filter .field {
    min-width: 0;
  }
  .membership-filter-grid label,
  .invoice-filter-grid label,
  .followup-filter-grid label,
  .analytics-date-filter label {
    font-size: 11px;
    line-height: 1.2;
  }
  .membership-filter-grid input,
  .membership-filter-grid select,
  .invoice-filter-grid input,
  .invoice-filter-grid select,
  .followup-filter-grid input,
  .followup-filter-grid select,
  .analytics-date-filter input,
  .analytics-date-filter select {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 14px;
  }
  .membership-filter-actions,
  .invoice-filter-actions,
  .followup-filter-actions {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 8px;
    white-space: nowrap;
  }
  .membership-filter-actions .btn,
  .invoice-filter-actions .btn,
  .followup-filter-actions .btn {
    min-height: 46px;
    padding: 10px 14px;
  }

  /* Other compact filter rows */
  .analytics-date-filter,
  .target-filter,
  .inline-form.target-filter {
    align-items: end;
    gap: 10px;
  }
  .analytics-date-filter .field {
    min-width: 160px;
    flex: 1 1 180px;
  }
}

/* Medium desktop / tablet landscape: wrap cleanly instead of overflowing. */
@media (min-width: 901px) and (max-width: 1240px) {
  .panel-head .head-actions:has(.dashboard-linked-filter),
  .dashboard-linked-filter {
    flex-wrap: wrap;
  }
  .dashboard-linked-filter input[name="q"] {
    flex: 1 1 260px;
  }
  .panel-head .head-actions:has(.dashboard-linked-filter) > .btn {
    flex: 0 0 auto;
  }
  body.route-invoices .invoice-filter-grid,
  body.route-customer_memberships .membership-filter-grid,
  .followup-filter-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr)) !important;
  }
  .invoice-filter-actions,
  .membership-filter-actions,
  .followup-filter-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

/* Tablet portrait: two neat columns. Mobile rules below remain untouched. */
@media (min-width: 641px) and (max-width: 900px) {
  html:not(.requested-desktop-view) .dashboard-linked-filter {
    display: grid !important;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
    gap: 10px !important;
  }
  html:not(.requested-desktop-view) .dashboard-linked-filter > * {
    width: 100% !important;
    min-width: 0 !important;
  }
  html:not(.requested-desktop-view) .dashboard-linked-filter .btn {
    min-height: 44px;
  }
}


/* Salonix CRM v1.1.45 — expired membership date emphasis */
.membership-expiry-date.is-expired {
  display: inline-flex;
  align-items: center;
  color: #ff5f73 !important;
  font-weight: 800;
  line-height: 1.2;
  text-shadow: 0 0 16px rgba(255, 63, 91, 0.22);
}

body.route-customer_memberships .membership-table-wrap tr:hover .membership-expiry-date.is-expired {
  color: #ff334f !important;
}


/* v1.1.48 — Products, loyalty, online booking and notifications */
.notification-center{position:relative;z-index:1200}.notification-bell{width:44px;height:44px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.07);color:#fff;display:grid;place-items:center;font-size:20px;position:relative;cursor:pointer;transition:.2s}.notification-bell:hover{transform:translateY(-2px);background:rgba(255,255,255,.13)}.notification-badge{position:absolute;right:-6px;top:-7px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;display:grid;place-items:center;border:2px solid #0d1930;box-shadow:0 5px 14px rgba(239,68,68,.4)}.notification-dropdown{position:absolute;right:0;top:52px;width:min(390px,calc(100vw - 24px));background:#101d33;border:1px solid rgba(255,255,255,.13);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.48);overflow:hidden;z-index:99999}.notification-dropdown-head{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid rgba(255,255,255,.09)}.notification-dropdown-head div{display:flex;flex-direction:column}.notification-dropdown-head span{font-size:11px;color:#8ea6c6}.notification-dropdown-head a,.notification-view-all{font-size:12px;color:#67e8f9}.notification-dropdown-list{max-height:390px;overflow:auto}.notification-item{display:flex;gap:12px;padding:13px 16px;color:#dce9fb;border-bottom:1px solid rgba(255,255,255,.06);transition:.2s}.notification-item:hover{background:rgba(255,255,255,.07)}.notification-item.unread{background:rgba(59,130,246,.12)}.notification-item i{width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-style:normal}.notification-item span{display:flex;flex-direction:column;min-width:0}.notification-item em{font-style:normal;color:#a9bdd7;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.notification-item small{color:#7186a4;margin-top:4px}.notification-view-all{display:block;text-align:center;padding:12px;background:rgba(255,255,255,.04)}.notification-empty{padding:26px;text-align:center;color:#8298b7}.notification-page-list{display:grid;gap:10px}.notification-page-item{display:flex;gap:15px;padding:16px;border-radius:15px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);color:#e9f2ff}.notification-page-item.unread{border-color:rgba(56,189,248,.6);background:rgba(14,165,233,.09)}.notification-page-item i{font-style:normal;font-size:24px}.notification-page-item p{margin:4px 0;color:#a9bdd7}.notification-page-item small{color:#7287a5}
.product-stat-grid{margin-bottom:20px}.product-auto-setting{display:flex;align-items:center;gap:15px;padding:14px 16px;margin:16px 0;border-radius:14px;background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.25)}.switch-setting{display:flex;align-items:center;gap:12px;flex:1}.switch-setting input{display:none}.switch-setting span{width:46px;height:25px;border-radius:999px;background:#42526b;position:relative;transition:.2s}.switch-setting span:after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.switch-setting input:checked+span{background:#22c55e}.switch-setting input:checked+span:after{left:24px}.category-chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.category-chip{display:flex;justify-content:space-between;gap:10px;padding:14px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}.category-chip span{display:flex;flex-direction:column}.category-chip small{color:#8ca2c0}.category-chip>div{display:flex;gap:8px}.category-chip a{font-size:12px;color:#67e8f9}.category-chip a.danger{color:#fb7185}.pos-product-card{overflow:hidden}.product-row{display:grid;grid-template-columns:minmax(210px,1.6fr) 100px 130px 42px;gap:10px;align-items:end;padding:12px;margin-bottom:10px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}.remove-product{height:42px;border:0;border-radius:11px;background:rgba(239,68,68,.15);color:#fb7185;font-size:24px;cursor:pointer}.pos-loyalty-box{padding:12px;border-radius:14px;background:rgba(168,85,247,.08);border:1px solid rgba(168,85,247,.22);margin-bottom:10px}.pos-loyalty-box>label{display:block;font-weight:700;margin-bottom:7px}.loyalty-code-input{display:flex;gap:8px}.loyalty-code-input input{min-width:0;flex:1}.pos-loyalty-box small{display:block;margin-top:6px;color:#93a8c5}.pos-loyalty-box small.success{color:#4ade80}.pos-loyalty-box small.error{color:#fb7185}.loyalty-tabs,.online-booking-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.loyalty-tabs a,.online-booking-tabs a{padding:10px 15px;border-radius:999px;background:rgba(255,255,255,.06);color:#b9c9de;border:1px solid rgba(255,255,255,.08)}.loyalty-tabs a.active,.online-booking-tabs a.active{background:linear-gradient(135deg,#8b5cf6,#06b6d4);color:#fff}.loyalty-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em;color:#67e8f9}.online-booking-link-box{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-bottom:18px;padding:14px;border-radius:14px;background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.22)}.booking-toggle-list{display:flex;gap:20px;flex-wrap:wrap}.booking-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:15px}.booking-request-card{padding:17px;border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.09);box-shadow:0 12px 30px rgba(0,0,0,.14)}.booking-card-head{display:flex;justify-content:space-between;gap:12px}.booking-card-head small{color:#67e8f9}.booking-card-head h3{margin:3px 0}.booking-card-head p{margin:0;color:#9fb2cb}.booking-card-details{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.booking-card-details div{padding:10px;border-radius:11px;background:rgba(255,255,255,.045)}.booking-card-details span{display:block;color:#8298b7;font-size:11px}.booking-card-details b{display:block;margin-top:3px;font-size:13px}.booking-notes{color:#9eb1c9;min-height:20px}.booking-actions{display:flex;gap:8px;flex-wrap:wrap}.public-booking-body{min-height:100vh;background:radial-gradient(circle at 10% 10%,#193b67,#081224 45%,#050a13);padding:25px;color:#edf6ff}.public-booking-shell{width:min(760px,100%);margin:0 auto}.public-booking-brand{display:flex;align-items:center;gap:16px;margin:16px 0 22px}.public-booking-brand img{width:76px;height:76px;object-fit:contain;border-radius:18px;background:#fff;padding:7px}.public-booking-brand small{color:#67e8f9;font-weight:800;letter-spacing:.15em}.public-booking-brand h1{font-size:30px;margin:4px 0}.public-booking-brand p{margin:0;color:#a9bdd6}.public-booking-form{padding:24px;border-radius:22px;background:rgba(12,26,47,.88);border:1px solid rgba(255,255,255,.12);box-shadow:0 28px 80px rgba(0,0,0,.4)}.public-booking-form input,.public-booking-form select,.public-booking-form textarea{background:#13243c}.public-booking-note{text-align:center;color:#9eb0c8;margin:15px 0 0}.public-booking-shell footer{text-align:center;color:#7388a6;margin:20px}.public-booking-success{text-align:center;padding:38px;border-radius:22px;background:rgba(34,197,94,.12);border:1px solid rgba(74,222,128,.35)}.public-booking-success span{font-size:52px;color:#4ade80}
@media(max-width:900px){.product-row{grid-template-columns:1fr 90px 110px 40px}.online-booking-link-box{grid-template-columns:1fr}.notification-dropdown{position:fixed;top:68px;right:12px}.booking-card-details{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.product-row{grid-template-columns:1fr 1fr}.product-row .field:first-child{grid-column:1/-1}.remove-product{grid-column:2;justify-self:end;width:42px}.online-booking-link-box{display:flex;flex-direction:column;align-items:stretch}.booking-card-grid{grid-template-columns:1fr}.booking-card-details{grid-template-columns:1fr}.public-booking-body{padding:14px}.public-booking-form{padding:17px}.public-booking-brand h1{font-size:24px}.notification-dropdown{left:10px;right:10px;width:auto}}

/* v1.1.49 Loyalty automation, invoice reward menu and campaigns */
.invoice-loyalty-menu{position:relative;display:inline-flex;z-index:45}
.btn-loyalty-main{background:linear-gradient(135deg,#8b5cf6,#ec4899);border-color:rgba(255,255,255,.18);box-shadow:0 10px 24px rgba(139,92,246,.24)}
.btn-loyalty-main span{font-size:12px;margin-left:5px;transition:transform .2s ease}
.invoice-loyalty-menu.open .btn-loyalty-main span{transform:rotate(180deg)}
.invoice-loyalty-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:285px;padding:10px;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:linear-gradient(145deg,#18243a,#111a2c);box-shadow:0 22px 55px rgba(2,6,23,.46);z-index:120}
.invoice-loyalty-dropdown[hidden]{display:none!important}
.invoice-loyalty-dropdown button,.invoice-loyalty-dropdown a{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 13px;margin:0;border:0;border-radius:11px;background:transparent;color:#f8fafc;text-align:left;text-decoration:none;font:inherit;cursor:pointer}
.invoice-loyalty-dropdown button:hover,.invoice-loyalty-dropdown a:hover{background:linear-gradient(135deg,rgba(139,92,246,.25),rgba(34,211,238,.13));transform:translateX(2px)}
.invoice-loyalty-dropdown small{color:#94a3b8;font-size:11px}
.invoice-loyalty-issue-panel{margin:14px 0;padding:20px;border:1px solid rgba(99,102,241,.35);border-radius:20px;background:linear-gradient(145deg,rgba(30,41,59,.96),rgba(30,27,75,.9));box-shadow:0 20px 48px rgba(2,6,23,.25)}
.invoice-loyalty-issue-panel[hidden]{display:none!important}
.invoice-issued-rewards{margin:18px 0;padding:20px;border:1px solid rgba(45,212,191,.25);border-radius:22px;background:linear-gradient(145deg,rgba(15,23,42,.96),rgba(17,47,58,.88))}
.invoice-reward-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px}
.invoice-reward-card{position:relative;overflow:hidden;padding:17px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:linear-gradient(135deg,rgba(139,92,246,.22),rgba(14,165,233,.12));box-shadow:0 12px 28px rgba(2,6,23,.2)}
.invoice-reward-card.voucher{background:linear-gradient(135deg,rgba(16,185,129,.2),rgba(6,182,212,.14))}
.invoice-reward-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.invoice-reward-card>div:first-child span{font-size:24px}.invoice-reward-card small{letter-spacing:.1em;color:#a5b4fc;font-weight:800}
.invoice-reward-card h3{margin:12px 0 8px}.invoice-reward-card .loyalty-code{display:inline-flex;padding:8px 11px;border-radius:10px;background:rgba(15,23,42,.55);letter-spacing:.1em}
.reward-send-state{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}.reward-send-state span{font-size:11px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.08);color:#cbd5e1}
.reward-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.reward-actions form{margin:0}.reward-email-inline{display:flex;gap:6px;flex:1}.reward-email-inline input{min-width:135px;height:34px}
.loyalty-rule-grid,.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:15px;margin-top:16px}
.loyalty-rule-card,.campaign-card{display:block;padding:18px;border:1px solid rgba(148,163,184,.2);border-radius:18px;background:linear-gradient(145deg,rgba(30,41,59,.94),rgba(28,36,66,.88));color:inherit;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.loyalty-rule-card:hover,.campaign-card:hover{transform:translateY(-3px);border-color:rgba(56,189,248,.55);box-shadow:0 15px 32px rgba(2,6,23,.25)}
.loyalty-rule-card>div:first-child,.campaign-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.loyalty-rule-card>div:first-child>span,.campaign-card>div:first-child>span{font-size:11px;letter-spacing:.12em;color:#67e8f9;font-weight:900}
.rule-flags,.campaign-stats{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.rule-flags span,.campaign-stats span,.campaign-stats b{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.07);font-size:11px;color:#cbd5e1}
.campaign-message-preview{margin:0 0 16px;padding:15px;border-radius:14px;background:rgba(15,23,42,.48);border:1px solid rgba(148,163,184,.16);line-height:1.6}
.loyalty-history-filter{grid-template-columns:minmax(190px,1.4fr) minmax(150px,.8fr) minmax(130px,.7fr) minmax(145px,.75fr) minmax(145px,.75fr) auto}
.route-loyalty_program .loyalty-tabs{flex-wrap:wrap}
.route-campaigns .campaign-grid{margin-top:18px}

@media(max-width:900px){
  .invoice-loyalty-dropdown{position:fixed;left:14px;right:14px;top:auto;bottom:18px;width:auto;max-height:65vh;overflow:auto}
  .loyalty-history-filter{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .invoice-reward-grid,.loyalty-rule-grid,.campaign-grid{grid-template-columns:1fr}
  .loyalty-history-filter{grid-template-columns:1fr}
  .reward-email-inline{flex-direction:column}
}

/* v1.1.50: invoice summary cards sit above invoice filters. */
.invoice-summary-grid-top{margin-top:18px;margin-bottom:18px}

/* v1.1.51 — background room push notifications */
.push-permission-prompt {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 10050;
  width: min(430px, calc(100vw - 32px));
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(111, 224, 255, .35);
  border-radius: 20px;
  color: #f8fbff;
  background: linear-gradient(135deg, rgba(12, 33, 61, .98), rgba(43, 31, 91, .98));
  box-shadow: 0 24px 80px rgba(0, 0, 0, .48), 0 0 0 1px rgba(255, 255, 255, .05) inset;
  opacity: 0;
  transform: translateY(24px) scale(.97);
  transition: opacity .22s ease, transform .22s ease;
}
.push-permission-prompt.show { opacity: 1; transform: translateY(0) scale(1); }
.push-permission-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  font-size: 24px;
  background: linear-gradient(135deg, #ffb72e, #ff5f78);
  box-shadow: 0 10px 28px rgba(255, 109, 78, .28);
}
.push-permission-copy { min-width: 0; display: grid; gap: 3px; }
.push-permission-copy b { font-size: 15px; }
.push-permission-copy span { color: rgba(235, 243, 255, .72); font-size: 12px; line-height: 1.35; }
.push-permission-close {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.65);
  font-size: 22px;
  cursor: pointer;
  padding: 4px;
}
.push-enabled { background: linear-gradient(135deg, #18c981, #28c6b5) !important; }
.push-settings-panel { overflow: visible; }
.push-cron-card {
  display: grid;
  gap: 8px;
  margin: 18px 0;
  padding: 18px;
  border: 1px solid rgba(82, 185, 255, .25);
  border-radius: 18px;
  background: rgba(20, 52, 90, .46);
}
.push-cron-card h4 { margin: 0; }
.push-cron-card p,
.push-cron-card small { margin: 0; color: rgba(230, 240, 255, .7); }
.push-cron-card code {
  display: block;
  overflow-wrap: anywhere;
  padding: 11px 13px;
  border-radius: 11px;
  color: #bfeeff;
  background: rgba(4, 17, 37, .7);
  border: 1px solid rgba(120, 205, 255, .16);
  user-select: all;
}
@media (max-width: 720px) {
  .push-permission-prompt {
    right: 16px;
    bottom: 16px;
    grid-template-columns: auto minmax(0,1fr) auto;
  }
  .push-permission-prompt .btn { grid-column: 1 / -1; width: 100%; }
  .push-permission-close { position: absolute; right: 8px; top: 6px; }
}

/* v1.1.52 push diagnostics */
.push-cron-health{margin-top:12px;padding:10px 12px;border-radius:12px;background:rgba(15,23,42,.28);font-size:.86rem;line-height:1.45;overflow-wrap:anywhere}
.push-cron-health span{opacity:.55;margin:0 6px}.push-error-cell{max-width:360px;white-space:normal;overflow-wrap:anywhere;font-size:.82rem}

/* v1.1.55 — role matrix, IST invoice datetime and appointment customer search */
.permission-na{color:var(--muted,#7b8794);text-align:center;font-weight:700}.permission-view-only td{background:rgba(20,43,77,.025)}
.pos-invoice-datetime-panel{grid-column:1/-1;margin-bottom:0}.pos-invoice-datetime-panel .form-grid{align-items:end}
.appointment-customer-picker{position:relative}.appointment-customer-search-input{width:100%}
.appointment-customer-results{position:absolute;z-index:180;left:0;right:0;top:calc(100% + 8px);max-height:330px;overflow:auto;padding:8px;border:1px solid rgba(56,189,248,.34);border-radius:16px;background:linear-gradient(145deg,rgba(18,27,49,.99),rgba(31,42,72,.99));box-shadow:0 22px 54px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.035) inset;backdrop-filter:blur(18px)}
.appointment-customer-results::-webkit-scrollbar{width:8px}.appointment-customer-results::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:99px}.appointment-customer-results::-webkit-scrollbar-thumb{background:rgba(56,189,248,.34);border-radius:99px}
.appointment-customer-result{width:100%;min-height:66px;border:1px solid transparent;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.035));display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;padding:12px 14px;margin:0 0 7px;border-radius:13px;cursor:pointer;color:var(--text);transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.appointment-customer-result:last-child{margin-bottom:0}.appointment-customer-result:hover,.appointment-customer-result:focus{transform:translateY(-1px);border-color:rgba(56,189,248,.48);background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(139,92,246,.12));box-shadow:0 10px 25px rgba(0,0,0,.22);outline:none}.appointment-customer-result span{display:flex;flex-direction:column;gap:4px;min-width:0}.appointment-customer-result b{display:block;color:#f8fbff;font-size:15px;font-weight:900;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.appointment-customer-result small{color:#b9c8e5;font-size:12px;font-weight:700;line-height:1.25}.appointment-customer-result em{flex:none;max-width:42%;padding:5px 9px;border-radius:999px;background:rgba(56,189,248,.11);border:1px solid rgba(56,189,248,.18);color:#bfeaff;font-size:11px;font-weight:800;font-style:normal;text-align:right;white-space:normal}.appointment-customer-empty{padding:14px;color:#c7d4eb;font-size:13px;font-weight:700;text-align:center}
.appointment-customer-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;padding:11px 13px;border:1px solid rgba(52,211,153,.32);border-radius:13px;background:linear-gradient(135deg,rgba(52,211,153,.16),rgba(34,211,238,.08));color:var(--text)}.appointment-customer-selected[hidden]{display:none}.appointment-customer-selected span{display:flex;flex-direction:column;gap:3px;min-width:0}.appointment-customer-selected b{color:#ecfff7}.appointment-customer-selected small{color:#b7d8cf}.appointment-customer-picker input[readonly]{background:rgba(52,211,153,.10);border-color:rgba(52,211,153,.28);color:#e9fff7}
@media(max-width:700px){.appointment-customer-result{align-items:flex-start;flex-direction:column;gap:8px}.appointment-customer-result em{max-width:100%;text-align:left}.appointment-customer-results{max-height:260px}}

/* Roles & Permissions: fixed roles above, full-width permission matrix below */
body.route-roles .roles-page-stack{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:22px;
  width:100%;
  max-width:100%;
}
body.route-roles .roles-panel,
body.route-roles .permission-matrix-panel{
  width:100%;
  max-width:none;
  min-width:0;
}
body.route-roles .roles-list-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
body.route-roles .roles-list-grid .role-link{
  min-height:88px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:17px 18px;
}
body.route-roles .permission-matrix-panel .panel-head{
  align-items:flex-start;
}
body.route-roles .permission-table-wrap{
  width:100%;
  max-width:100%;
  overflow:auto;
}
body.route-roles .permission-table-wrap table{
  min-width:980px;
  width:100%;
  table-layout:fixed;
}
body.route-roles .permission-table-wrap th:first-child,
body.route-roles .permission-table-wrap td:first-child{
  width:43%;
  white-space:normal;
}
body.route-roles .permission-table-wrap th:not(:first-child),
body.route-roles .permission-table-wrap td:not(:first-child){
  width:11.4%;
  text-align:center;
}
body.route-roles .permission-table-wrap td:not(:first-child) .switch{
  margin-inline:auto;
}
@media(max-width:1000px){
  body.route-roles .roles-list-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:620px){
  body.route-roles .roles-list-grid{grid-template-columns:1fr;}
  body.route-roles .permission-table-wrap table{min-width:860px;}
}

/* v1.1.56 POS date/time alignment + customer assigned coupon selector */
body.route-pos .pos-room-grid,
body.route-pos .pos-datetime-grid{
  align-items:end !important;
  gap:12px !important;
}
body.route-pos .pos-room-grid .field,
body.route-pos .pos-datetime-grid .field{
  min-width:0 !important;
  margin-bottom:0 !important;
}
body.route-pos .pos-datetime-grid{
  grid-template-columns:1fr !important;
  margin-top:14px !important;
}
body.route-pos .pos-datetime-grid input[type="datetime-local"],
body.route-pos .pos-datetime-grid input[name="backdate_reason"]{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
body.route-pos .pos-discount-choice-field{
  margin-bottom:10px !important;
}
body.route-pos .pos-discount-choice-field select{
  width:100% !important;
}
body.route-pos .pos-discount-choice-field small{
  display:block;
  margin-top:6px;
  color:#93a8c5;
  font-size:11px;
  line-height:1.4;
}
body.route-pos #posManualDiscountField,
body.route-pos #posCouponApplyBox{
  margin-bottom:10px !important;
}
body.route-pos #posCouponApplyBox{
  background:linear-gradient(135deg,rgba(168,85,247,.12),rgba(34,211,238,.08));
}
body.route-pos #posCouponCode[readonly]{
  opacity:.95;
  cursor:default;
  color:#dff8ff;
}
body.route-pos .loyalty-code-input{
  align-items:stretch;
}
body.route-pos .loyalty-code-input .btn-mini{
  width:auto !important;
  flex:0 0 auto;
}
@media(max-width:820px){
  body.route-pos .pos-room-grid,
  body.route-pos .pos-datetime-grid{
    grid-template-columns:1fr !important;
  }
}


/* v1.1.58 — unread notification bell and push test feedback */
@keyframes salonix-notification-bell-shake {
  0%, 38%, 100% { transform: rotate(0deg); }
  6% { transform: rotate(18deg); }
  12% { transform: rotate(-16deg); }
  18% { transform: rotate(13deg); }
  24% { transform: rotate(-10deg); }
  30% { transform: rotate(6deg); }
}
.notification-bell .notification-bell-icon {
  display: inline-block;
  transform-origin: 50% 12%;
}
.notification-bell.has-unread .notification-bell-icon {
  animation: salonix-notification-bell-shake 1.25s ease-in-out infinite;
}
.notification-bell.has-unread {
  border-color: rgba(251, 191, 36, .55);
  box-shadow: 0 0 0 3px rgba(251, 191, 36, .08), 0 10px 24px rgba(0, 0, 0, .22);
}
.push-test-actions { align-items: center; flex-wrap: wrap; }
.push-test-status {
  flex: 1 1 100%;
  min-height: 20px;
  color: rgba(226, 237, 252, .75);
  font-size: .86rem;
  line-height: 1.45;
}
.push-test-status.success { color: #6ee7b7; }
.push-test-status.error { color: #fda4af; }
@media (prefers-reduced-motion: reduce) {
  .notification-bell.has-unread .notification-bell-icon { animation-duration: 2.4s; }
}

/* Lead workflow: aligned filter rows, grouped dates and overlay More menu */
body.route-leads .panel-head .head-actions:has(.dashboard-linked-filter){align-items:flex-start}
body.route-leads .dashboard-linked-filter{display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch;gap:10px;min-width:0;width:100%}
.lead-filter-row{display:flex;align-items:center;gap:10px;min-width:0;width:100%}
.lead-filter-primary-row input[name="q"]{flex:1 1 360px;min-width:220px}
.lead-filter-primary-row select[name="status"]{flex:0 0 180px;width:180px;min-width:150px}
.lead-filter-date-row input[type="date"]{flex:0 0 150px;width:150px;min-width:138px}
.lead-filter-date-row>.btn{flex:0 0 auto;min-height:46px;white-space:nowrap}
.lead-date-tabs{display:inline-flex;align-items:center;gap:7px;flex-wrap:nowrap;padding:4px;border-radius:15px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.11);min-height:46px}
.lead-date-tab{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 13px;border-radius:11px;color:#dce8f8;font-size:12px;font-weight:900;text-decoration:none;border:1px solid transparent;transition:.2s ease;white-space:nowrap}
.lead-date-tab:hover{background:rgba(255,255,255,.1);color:#fff;transform:translateY(-1px)}
.lead-date-tab.active{background:linear-gradient(135deg,#0aa977,#2dd4bf);color:#fff;border-color:rgba(255,255,255,.25);box-shadow:0 8px 18px rgba(10,169,119,.22)}
body.route-leads td.actions{vertical-align:middle;min-width:355px;position:relative;overflow:visible}
.lead-more-actions{display:inline-block;vertical-align:middle;margin:2px;white-space:normal;min-width:78px;position:relative}
.lead-more-actions>summary{list-style:none;cursor:pointer;user-select:none;margin:0}
.lead-more-actions>summary::-webkit-details-marker{display:none}
.lead-more-actions[open]{z-index:5000}
.lead-more-actions[open] .lead-more-summary{background:rgba(56,189,248,.16);border-color:rgba(56,189,248,.38);color:#dff7ff}
.lead-more-summary span{font-size:10px;transition:transform .2s ease}
.lead-more-actions[open] .lead-more-summary span{transform:rotate(180deg)}
.lead-more-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:5001;min-width:190px;margin:0;padding:9px;border-radius:15px;background:linear-gradient(145deg,rgba(20,31,51,.99),rgba(39,28,66,.99));border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 38px rgba(0,0,0,.48);gap:7px}
.lead-more-actions[open] .lead-more-menu{display:grid}
body.route-leads tr:has(.lead-more-actions[open]){position:relative;z-index:120}
body.route-leads td.actions:has(.lead-more-actions[open]){z-index:130}
.lead-more-form{margin:0}
.lead-more-option{width:100%;min-height:39px;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:9px 11px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.065);color:#f5f8ff;text-decoration:none;font:inherit;font-size:12px;font-weight:900;cursor:pointer;text-align:left;transition:.18s ease}
.lead-more-option:hover{transform:translateY(-1px);background:rgba(255,255,255,.12)}
.lead-more-option.joined{color:#b7f7d9;border-color:rgba(52,211,153,.25)}
.lead-more-option.visit-only{color:#bdeafe;border-color:rgba(56,189,248,.25)}
.lead-more-option.not-interested,.lead-more-option.delete{color:#ffd0d8;border-color:rgba(251,113,133,.28);background:rgba(251,113,133,.09)}
.lead-more-option.active,.lead-more-option:disabled{opacity:.62;cursor:default;transform:none;background:rgba(255,255,255,.11)}
.lead-date-group-row td{padding:0!important;background:linear-gradient(90deg,rgba(10,169,119,.19),rgba(56,189,248,.11),rgba(124,58,237,.10))!important;border-top:1px solid rgba(94,234,212,.28);border-bottom:1px solid rgba(255,255,255,.11)}
.lead-date-group-row:hover td{background:linear-gradient(90deg,rgba(10,169,119,.23),rgba(56,189,248,.14),rgba(124,58,237,.12))!important}
.lead-date-group-row td>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px}
.lead-date-group-row strong{color:#ecfeff;font-size:13px;letter-spacing:.02em}
.lead-date-group-row span{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.1);color:#cce6f6;font-size:11px;font-weight:900}
@media(max-width:1240px){
  .lead-filter-row{flex-wrap:wrap}
  .lead-filter-primary-row input[name="q"]{flex:1 1 280px}
  .lead-filter-date-row .lead-date-tabs{flex:0 1 auto}
}
@media(max-width:820px){
  html:not(.requested-desktop-view) body.route-leads td.actions{min-width:235px}
  html:not(.requested-desktop-view) .lead-filter-primary-row,
  html:not(.requested-desktop-view) .lead-filter-date-row{display:flex;flex-direction:row;flex-wrap:wrap}
  html:not(.requested-desktop-view) .lead-filter-primary-row input[name="q"],
  html:not(.requested-desktop-view) .lead-filter-primary-row select[name="status"]{flex:1 1 100%;width:100%}
  html:not(.requested-desktop-view) .lead-filter-date-row input[type="date"]{flex:1 1 140px;width:auto}
  html:not(.requested-desktop-view) .lead-date-tabs{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));order:5}
  .lead-date-tab{padding:8px 6px}
  .lead-more-menu{min-width:172px}
  .lead-date-group-row td>div{padding:10px 12px}
}
@media(max-width:480px){html:not(.requested-desktop-view) .lead-date-tabs{grid-template-columns:1fr}.lead-date-group-row td>div{align-items:flex-start;flex-direction:column;gap:6px}}

/* Lead actions: compact status icons outside, secondary actions inside More */
body.route-leads td.actions{min-width:300px}
.lead-row-actions{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;vertical-align:middle;white-space:nowrap}
.lead-status-icon-form{display:inline-flex;align-items:center;margin:0;padding:0}
.lead-action-icon{appearance:none;-webkit-appearance:none;width:38px;height:38px;min-width:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border-radius:11px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);color:#fff;text-decoration:none;font:inherit;font-size:18px;line-height:1;cursor:pointer;box-shadow:none;transition:transform .18s ease,filter .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.lead-action-icon:hover{transform:translateY(-2px);filter:brightness(1.12);box-shadow:0 8px 18px rgba(0,0,0,.20)}
.lead-action-icon.joined{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.34)}
.lead-action-icon.visit-only{background:rgba(56,189,248,.14);border-color:rgba(56,189,248,.34)}
.lead-action-icon.not-interested{background:rgba(251,113,133,.13);border-color:rgba(251,113,133,.32)}
.lead-action-icon.delete{background:rgba(244,63,94,.15);border-color:rgba(251,113,133,.38)}
.lead-action-icon.active,.lead-action-icon:disabled{opacity:.62;cursor:default;transform:none;filter:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.09)}
.lead-row-actions .lead-more-actions{margin:0;min-width:70px}
.lead-row-actions .lead-more-summary{min-height:38px;padding:8px 11px;margin:0}
.lead-more-option.whatsapp{color:#bbf7d0;border-color:rgba(52,211,153,.25)}
.lead-more-option.convert{color:#fde68a;border-color:rgba(251,191,36,.28)}
.lead-more-option.edit{color:#dbeafe;border-color:rgba(96,165,250,.26)}
@media(max-width:820px){
  html:not(.requested-desktop-view) body.route-leads td.actions{min-width:286px}
  .lead-row-actions{gap:5px}
  .lead-action-icon{width:36px;height:36px;min-width:36px;font-size:17px}
}

/* v1.1.61 — combined Google/Meta lead card and simplified conversion workflow */
.entity-summary-grid .lead-source-combined-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:9px;
  padding:15px 16px;
  background:linear-gradient(135deg,#087fbd 0%,#16b9d4 48%,#7c3aed 100%);
}
.entity-summary-grid .lead-source-combined-card:before{
  right:-46px;
  bottom:-54px;
  width:150px;
  height:150px;
}
.entity-summary-grid .lead-source-combined-card:after{
  left:-50px;
  top:-78px;
  width:155px;
  height:155px;
}
.lead-source-combined-title{
  margin:0!important;
  color:#fff!important;
  font-size:14px;
  font-weight:950!important;
  letter-spacing:.01em;
  position:relative;
  z-index:2;
}
.lead-source-combined-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  position:relative;
  z-index:2;
}
.lead-source-combined-item{
  min-width:0;
  min-height:70px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 10px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.20);
  background:rgba(9,20,42,.20);
  color:#fff;
  text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 8px 18px rgba(0,0,0,.12);
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.lead-source-combined-item:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.38);
  box-shadow:0 11px 22px rgba(0,0,0,.18);
}
.lead-source-combined-item.active{
  background:rgba(255,255,255,.21);
  border-color:rgba(255,255,255,.65);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.16),0 10px 24px rgba(0,0,0,.20);
}
.lead-source-combined-icon{
  width:43px;
  height:43px;
  min-width:43px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:13px;
  background:rgba(255,255,255,.95);
  filter:none!important;
  box-shadow:0 7px 15px rgba(0,0,0,.18);
}
.lead-source-combined-icon .lead-brand-svg{
  width:31px;
  height:31px;
  filter:none;
}
.lead-source-combined-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
  filter:none!important;
}
.lead-source-combined-copy small{
  color:rgba(255,255,255,.80);
  font-size:10px;
  font-weight:900;
  line-height:1.1;
}
.lead-source-combined-copy strong{
  color:#fff;
  font-size:25px;
  font-weight:950;
  line-height:1;
  letter-spacing:-.04em;
}
@media(max-width:480px){
  .lead-source-combined-grid{gap:6px}
  .lead-source-combined-item{min-height:64px;padding:8px}
  .lead-source-combined-icon{width:38px;height:38px;min-width:38px;border-radius:11px}
  .lead-source-combined-icon .lead-brand-svg{width:27px;height:27px}
  .lead-source-combined-copy strong{font-size:22px}
}

/* v1.1.62 — compact section headers; dashboard header remains unchanged */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.user-session-actions{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  white-space:nowrap;
}
.logout-power{
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  padding:0;
  border-radius:14px;
  font-size:23px;
  line-height:1;
  color:#fff;
  background:linear-gradient(135deg,rgba(37,99,235,.92),rgba(8,145,178,.88));
  border-color:rgba(125,211,252,.35);
  box-shadow:0 9px 22px rgba(3,105,161,.25);
}
.logout-power:hover{
  transform:translateY(-2px);
  background:linear-gradient(135deg,#2563eb,#0891b2);
  border-color:rgba(186,230,253,.7);
  color:#fff;
}
.logout-power-icon{display:block;transform:translateY(-1px)}

@media (min-width:901px){
  body:not(.route-dashboard) .topbar{
    min-height:0;
    padding:11px 14px;
    margin-bottom:16px;
    border-radius:22px;
    gap:12px;
    flex-wrap:nowrap!important;
  }
  body:not(.route-dashboard) .topbar-title{
    min-width:170px;
    flex:1 1 220px;
  }
  body:not(.route-dashboard) .topbar h1{
    font-size:27px;
    line-height:1.05;
  }
  body:not(.route-dashboard) .topbar p{
    margin-top:5px;
    font-size:12px;
    line-height:1.25;
    white-space:nowrap;
  }
  body:not(.route-dashboard) .top-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex:0 1 auto!important;
    width:auto!important;
    max-width:none!important;
    gap:7px!important;
    flex-wrap:nowrap!important;
  }
  body:not(.route-dashboard) .dashboard-back-btn{
    min-height:44px;
    height:44px;
    padding:0 12px;
    border-radius:14px;
    font-size:13px;
  }
  body:not(.route-dashboard) .notification-bell{
    width:44px;
    height:44px;
    border-radius:14px;
  }
  body:not(.route-dashboard) .branch-picker{
    width:218px!important;
    min-width:190px!important;
    flex:0 1 218px!important;
  }
  body:not(.route-dashboard) .branch-picker-trigger{
    min-height:44px;
    height:44px;
    padding:4px 8px;
    border-radius:14px;
  }
  body:not(.route-dashboard) .branch-picker-logo{
    width:32px;
    height:32px;
    border-radius:10px;
  }
  body:not(.route-dashboard) .branch-picker-copy b{
    max-width:132px;
    font-size:12px;
  }
  body:not(.route-dashboard) .fixed-branch-chip{
    min-height:44px;
    height:44px;
    max-width:218px;
    padding:5px 9px;
    border-radius:14px;
  }
  body:not(.route-dashboard) .quick-pill{
    min-height:44px;
    height:44px;
    padding:0 16px;
    border-radius:14px;
    font-size:14px;
    white-space:nowrap;
  }
  body:not(.route-dashboard) .compact-user-chip{
    min-height:44px;
    height:44px;
    padding:5px 10px;
    border-radius:14px;
    gap:7px;
    max-width:150px;
  }
  body:not(.route-dashboard) .compact-user-chip>span{font-size:17px}
  body:not(.route-dashboard) .compact-user-chip b{
    max-width:88px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:13px;
  }
  body:not(.route-dashboard) .compact-user-chip small{font-size:11px}
}

@media (min-width:901px) and (max-width:1180px){
  body:not(.route-dashboard) .topbar{flex-wrap:wrap!important}
  body:not(.route-dashboard) .topbar-title{flex:1 1 100%}
  body:not(.route-dashboard) .top-actions{width:100%!important;justify-content:flex-start!important}
}

@media (max-width:900px){
  body:not(.route-dashboard) .user-session-actions{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 44px;
  }
  body:not(.route-dashboard) .compact-user-chip{
    width:100%;
    min-width:0;
    justify-content:center;
  }
  body:not(.route-dashboard) .logout-power{
    width:44px!important;
    min-width:44px!important;
    padding:0!important;
  }
}

/* Leads: all primary actions stay visible; no More dropdown. */
body.route-leads .lead-row-actions{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;white-space:nowrap;flex-wrap:nowrap}
body.route-leads .lead-action-icon.convert-client{background:rgba(52,211,153,.16);border-color:rgba(52,211,153,.42);color:#d9fff0}
body.route-leads .lead-action-icon.whatsapp{background:rgba(34,197,94,.15);border-color:rgba(74,222,128,.38);color:#dcffe8}
body.route-leads .lead-action-icon.edit{background:rgba(96,165,250,.14);border-color:rgba(96,165,250,.34);color:#e7f1ff}
body.route-leads tr.lead-converted-row>td:not(.actions){color:#79f2b6!important;background:rgba(16,185,129,.075)!important;border-top-color:rgba(52,211,153,.22);border-bottom-color:rgba(52,211,153,.18)}
body.route-leads tr.lead-converted-row>td:first-child{box-shadow:inset 4px 0 0 rgba(52,211,153,.78)}
body.route-leads tr.lead-converted-row>td:not(.actions) b,
body.route-leads tr.lead-converted-row>td:not(.actions) strong,
body.route-leads tr.lead-converted-row>td:not(.actions) a{color:#79f2b6!important}
body.route-leads tr.lead-converted-row:hover>td:not(.actions){background:rgba(16,185,129,.11)!important}
body.route-leads tr.lead-visit-row>td:not(.actions){color:#bdeafe}
body.route-leads tr.lead-not-interested-row>td:not(.actions){color:#ffc2cd}
@media(max-width:760px){html:not(.requested-desktop-view) body.route-leads .lead-row-actions{gap:4px}html:not(.requested-desktop-view) body.route-leads .lead-action-icon{width:34px;height:34px;min-width:34px;font-size:16px}}

/* v1.1.64 — compact appointment attendance icons and table alignment */
body.route-appointments .table-wrap{
  overflow:visible;
}
body.route-appointments table{
  min-width:1080px;
  table-layout:auto;
}
body.route-appointments th,
body.route-appointments td{
  padding:12px 10px;
}
body.route-appointments .appointment-attendance-heading,
body.route-appointments .appointment-attendance-cell{
  position:static!important;
  right:auto!important;
  z-index:auto!important;
  min-width:124px!important;
  width:124px;
  text-align:center!important;
  box-shadow:none!important;
}
body.route-appointments .appointment-attendance-cell{
  background:rgba(255,255,255,.035)!important;
}
body.route-appointments .table-wrap table th:last-child,
body.route-appointments .table-wrap table td:last-child{
  position:static!important;
  right:auto!important;
  z-index:auto!important;
  min-width:118px!important;
  width:118px;
  box-shadow:none!important;
}
body.route-appointments td.actions{
  min-width:118px!important;
  text-align:center;
}
.appointment-attendance-box{
  min-width:104px;
  gap:0;
  place-items:center;
}
.appointment-attendance-buttons{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:nowrap;
}
.appointment-attendance-buttons form{
  display:inline-flex;
  margin:0;
}
.appointment-attendance-icon{
  width:43px;
  height:43px;
  min-width:43px;
  padding:0;
  display:inline-grid;
  place-items:center;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:21px;
  line-height:1;
  cursor:pointer;
  box-shadow:none;
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.appointment-attendance-icon:hover{
  transform:translateY(-2px);
  filter:brightness(1.08);
}
.appointment-attendance-icon.appointment-joined-btn{
  background:rgba(16,185,129,.18)!important;
  border-color:rgba(52,211,153,.40)!important;
}
.appointment-attendance-icon.appointment-not-joined-toggle{
  background:rgba(244,63,94,.15)!important;
  border-color:rgba(251,113,133,.38)!important;
}
.appointment-attendance-icon.active{
  box-shadow:0 0 0 3px rgba(255,255,255,.12),0 8px 18px rgba(2,6,23,.24)!important;
}
.appointment-attendance-icon.appointment-joined-btn.active{
  border-color:#4ade80!important;
  background:rgba(16,185,129,.32)!important;
}
.appointment-attendance-icon.appointment-not-joined-toggle.active{
  border-color:#fb7185!important;
  background:rgba(244,63,94,.28)!important;
}
body.route-appointments .appointment-list-followup-form{
  right:0;
  top:calc(100% + 8px);
}
@media(max-width:1100px){
  body.route-appointments .table-wrap{overflow:auto;}
  body.route-appointments table{min-width:1080px;}
}
@media(max-width:700px){
  .appointment-attendance-buttons{flex-direction:row!important;}
  .appointment-attendance-buttons form{width:auto!important;}
  .appointment-attendance-buttons form button{width:43px!important;}
}

/* v1.1.70 — compact line-by-line follow-ups, safe delete, and operational appointment list */
body.route-followups .followup-card-list{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  padding:10px;
}
body.route-followups .followup-client-card{
  display:grid;
  grid-template-columns:minmax(220px,1.05fr) minmax(120px,.62fr) minmax(220px,1.35fr) minmax(200px,1.1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:13px;
  min-height:74px;
  transform:none;
}
body.route-followups .followup-client-card:hover{
  transform:none;
  box-shadow:0 8px 18px rgba(2,6,23,.20);
}
body.route-followups .followup-client-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-width:0;
}
body.route-followups .followup-client-main b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.route-followups .followup-client-main span{
  margin-top:1px;
}
body.route-followups .followup-due-time{
  padding:6px 8px;
  border-radius:9px;
  font-size:11px;
}
body.route-followups .followup-tags{
  margin:0;
  align-items:center;
}
body.route-followups .followup-detail-grid{
  display:contents;
  margin:0;
}
body.route-followups .followup-detail-grid>div{
  min-width:0;
  padding:8px 9px;
  border-radius:10px;
}
body.route-followups .followup-detail-grid p{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-top:3px;
  line-height:1.3;
}
body.route-followups .followup-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:6px;
  margin:0;
  white-space:nowrap;
}
body.route-followups .followup-actions .icon-btn{
  min-height:34px;
  padding:7px 10px;
  font-size:11px;
}
body.route-followups .followup-actions .inline-action-form{
  display:inline-flex;
  margin:0;
}
body.route-followups .followup-delete-btn{
  width:36px;
  min-width:36px;
  padding:0!important;
  justify-content:center;
  font-size:17px!important;
}
body.route-followups .followup-blacklist-form{
  grid-column:1/-1;
  margin-top:0;
}
body.route-followups .followup-date-groups{
  gap:12px;
}
body.route-followups .followup-date-group{
  border-radius:15px;
}
body.route-followups .followup-date-heading{
  padding:10px 13px;
}

@media(max-width:1450px){
  body.route-followups .followup-client-card{
    grid-template-columns:minmax(200px,1fr) minmax(110px,.55fr) minmax(200px,1.25fr) minmax(180px,1fr);
  }
  body.route-followups .followup-actions{
    grid-column:1/-1;
    justify-content:flex-end;
  }
}
@media(max-width:980px){
  body.route-followups .followup-client-card{
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
  body.route-followups .followup-detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-column:1/-1}
  body.route-followups .followup-actions{grid-column:1/-1}
}
@media(max-width:680px){
  body.route-followups .followup-client-card{grid-template-columns:1fr}
  body.route-followups .followup-client-main,
  body.route-followups .followup-tags,
  body.route-followups .followup-actions{grid-column:1}
  body.route-followups .followup-detail-grid{display:grid;grid-template-columns:1fr;grid-column:1}
  body.route-followups .followup-actions{justify-content:flex-start;flex-wrap:wrap}
}

/* v1.1.71 Appointment schedule cards + admin dashboard card ordering */
.appointment-schedule-panel{overflow:visible}
.appointment-schedule-head{align-items:flex-start}
.appointment-date-strip{
  display:flex;align-items:stretch;gap:10px;margin:14px 0 16px;padding:12px;
  border:1px solid rgba(111,211,255,.18);border-radius:18px;
  background:linear-gradient(135deg,rgba(14,28,50,.84),rgba(31,43,72,.82));overflow-x:auto
}
.appointment-date-arrow,.appointment-date-day,.appointment-upcoming-link{
  text-decoration:none;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.055);color:#d9e8ff;border-radius:14px;transition:.2s ease;flex:0 0 auto
}
.appointment-date-arrow{width:42px;min-height:58px;font-size:28px;font-weight:900}
.appointment-date-day{position:relative;min-width:72px;min-height:58px;padding:7px 12px;flex-direction:column;gap:1px}
.appointment-date-day strong{font-size:18px;line-height:1}.appointment-date-day span{font-size:11px;font-weight:800;color:#a8bad3;text-transform:uppercase}
.appointment-date-day small{position:absolute;top:-8px;padding:2px 7px;border-radius:99px;background:#22c55e;color:#052d20;font-size:8px;font-weight:950}
.appointment-date-day:hover,.appointment-date-arrow:hover,.appointment-upcoming-link:hover{transform:translateY(-2px);border-color:rgba(65,214,255,.48);background:rgba(50,170,220,.14)}
.appointment-date-day.active{color:#061525;background:linear-gradient(135deg,#4dd8ff,#8b5cf6);border-color:rgba(255,255,255,.7);box-shadow:0 10px 26px rgba(50,160,255,.24)}
.appointment-date-day.active span{color:#0b2135}.appointment-upcoming-link{padding:0 16px;font-weight:900;white-space:nowrap}.appointment-upcoming-link.active{background:linear-gradient(135deg,#7c3aed,#22d3ee);color:#fff}
.appointment-schedule-filter{display:grid;grid-template-columns:minmax(240px,1fr) minmax(150px,210px) minmax(145px,190px) auto auto;gap:10px;align-items:center;margin-bottom:16px}
.appointment-schedule-filter input,.appointment-schedule-filter select{min-height:46px}
.appointment-schedule-list{display:grid;gap:10px;position:relative}
.appointment-schedule-date-heading{position:sticky;top:8px;z-index:6;padding:9px 13px;border-radius:12px;background:linear-gradient(90deg,rgba(12,83,105,.96),rgba(68,55,126,.96));border:1px solid rgba(99,210,255,.24);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.salonix-appointment-card{
  position:relative;display:grid;grid-template-columns:120px minmax(170px,1.05fr) minmax(190px,1.3fr) minmax(135px,.72fr) auto;
  gap:14px;align-items:center;padding:14px 15px 14px 19px;border:1px solid rgba(148,163,184,.19);border-radius:17px;
  background:linear-gradient(135deg,rgba(73,84,108,.72),rgba(35,49,76,.78));box-shadow:0 10px 24px rgba(3,8,20,.16);overflow:visible
}
.salonix-appointment-card:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 6px 6px 0;background:linear-gradient(180deg,#38bdf8,#8b5cf6)}
.salonix-appointment-card.joined:before{background:linear-gradient(180deg,#22c55e,#14b8a6)}
.salonix-appointment-card.not-joined:before,.salonix-appointment-card.not_joined:before,.salonix-appointment-card.cancelled:before,.salonix-appointment-card.no-show:before{background:linear-gradient(180deg,#fb7185,#ef4444)}
.salonix-appointment-card:hover{border-color:rgba(73,205,255,.42);transform:translateY(-1px);box-shadow:0 15px 32px rgba(3,8,20,.24)}
.salonix-appointment-time,.salonix-appointment-customer,.salonix-appointment-service,.salonix-appointment-price{display:flex;flex-direction:column;gap:3px;min-width:0}
.salonix-appointment-time strong{font-size:17px;color:#61d4ff}.salonix-appointment-time span{font-size:11px;color:#aebbd0}
.salonix-appointment-customer b,.salonix-appointment-service b{font-size:15px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.salonix-appointment-customer span,.salonix-appointment-service span{font-size:12px;color:#bac8dc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.salonix-appointment-price{align-items:flex-end}.salonix-appointment-price strong{font-size:16px;color:#fff}.salonix-appointment-price .badge{margin-top:3px}
.salonix-appointment-controls{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:max-content}
.salonix-appointment-controls .appointment-attendance-box{display:flex;align-items:center;gap:6px}
.salonix-appointment-controls .appointment-attendance-buttons{display:flex;gap:6px}
.appointment-card-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;text-decoration:none;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.08);font-size:18px;transition:.18s ease}
.appointment-card-icon:hover{transform:translateY(-2px);background:rgba(60,200,255,.16);border-color:rgba(60,200,255,.42)}
.appointment-card-icon.delete{border-color:rgba(251,113,133,.35);background:rgba(190,24,93,.12)}
.salonix-appointment-controls .appointment-list-followup-form{top:calc(100% + 8px);right:0}
.appointment-empty-state{padding:30px!important}
.salonix-dashboard-appointments .appointment-date-strip{margin-top:4px}
.dashboard-appointment-schedule{max-height:520px;overflow:auto;padding-right:3px}
.salonix-dashboard-appointments .salonix-appointment-card{grid-template-columns:105px minmax(150px,1fr) minmax(170px,1.1fr) minmax(120px,.7fr) auto;padding:12px 13px 12px 17px}

.dashboard-card-arrange-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:-4px 0 12px;min-height:42px}
.dashboard-card-arrange-bar span{color:#9fb0c8;font-size:12px}.dashboard-card-arrange-bar [hidden]{display:none!important}
.dashboard-card-drag-handle{display:none;position:absolute;left:10px;top:10px;z-index:5;width:28px;height:28px;border-radius:9px;background:rgba(4,12,28,.42);place-items:center;color:#fff;font-style:normal;font-weight:900;letter-spacing:-4px;padding-right:4px;cursor:grab}
[data-dashboard-stat-grid].is-arranging .stat-card{cursor:grab;outline:2px dashed rgba(104,211,255,.38);outline-offset:-5px;padding-left:45px}
[data-dashboard-stat-grid].is-arranging .stat-card:hover{transform:none}
[data-dashboard-stat-grid].is-arranging .dashboard-card-drag-handle{display:grid}
[data-dashboard-stat-grid] .stat-card.dashboard-dragging{opacity:.48;transform:scale(.97)!important}
[data-dashboard-stat-grid] .stat-card.dashboard-drag-over{box-shadow:0 0 0 4px rgba(56,189,248,.35),0 25px 55px rgba(0,0,0,.35)}

@media(max-width:1250px){
  .salonix-appointment-card,.salonix-dashboard-appointments .salonix-appointment-card{grid-template-columns:105px minmax(160px,1fr) minmax(170px,1fr) auto}
  .salonix-appointment-price{align-items:flex-start}.salonix-appointment-controls{grid-column:1/-1;justify-content:flex-end}
}
@media(max-width:850px){
  .appointment-schedule-filter{grid-template-columns:1fr 1fr}.appointment-schedule-filter input{grid-column:1/-1}
  .appointment-schedule-filter .btn{width:100%}
  .salonix-appointment-card,.salonix-dashboard-appointments .salonix-appointment-card{grid-template-columns:92px 1fr;gap:10px}
  .salonix-appointment-service,.salonix-appointment-price{grid-column:2}.salonix-appointment-price{align-items:flex-start}.salonix-appointment-controls{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}
  .dashboard-card-arrange-bar{justify-content:flex-start;flex-wrap:wrap}.dashboard-card-arrange-bar span{width:100%}
}
@media(max-width:520px){
  .appointment-schedule-filter{grid-template-columns:1fr}.appointment-schedule-filter input{grid-column:auto}
  .appointment-date-day{min-width:62px}.appointment-upcoming-link{padding:0 11px}
  .salonix-appointment-card,.salonix-dashboard-appointments .salonix-appointment-card{grid-template-columns:1fr;padding:14px 14px 14px 18px}
  .salonix-appointment-service,.salonix-appointment-price{grid-column:auto}.salonix-appointment-controls{grid-column:auto}
}


/* v1.1.72 — appointment count badges, strict branch services, iOS glass booking date/time */
.appointment-date-strip{
  padding-top:17px;
  padding-bottom:17px;
  overflow-y:visible;
}
.appointment-date-day{
  overflow:visible;
}
.appointment-date-day .appointment-date-count{
  position:absolute;
  top:-12px;
  left:50%;
  z-index:3;
  min-width:25px;
  height:25px;
  padding:0 7px;
  display:grid;
  place-items:center;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:linear-gradient(145deg,rgba(71,85,105,.96),rgba(30,41,59,.96));
  color:#dbeafe;
  font-size:11px;
  font-style:normal;
  font-weight:950;
  line-height:1;
  box-shadow:0 6px 16px rgba(2,6,23,.35),inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter:blur(12px) saturate(145%);
  -webkit-backdrop-filter:blur(12px) saturate(145%);
}
.appointment-date-day.has-appointments .appointment-date-count{
  border-color:rgba(110,231,183,.68);
  background:linear-gradient(145deg,rgba(16,185,129,.98),rgba(13,148,136,.98));
  color:#ecfdf5;
  box-shadow:0 7px 18px rgba(16,185,129,.30),inset 0 1px 0 rgba(255,255,255,.28);
}
.appointment-date-day.active .appointment-date-count{
  border-color:rgba(255,255,255,.82);
  box-shadow:0 7px 18px rgba(37,99,235,.34),inset 0 1px 0 rgba(255,255,255,.35);
}
.appointment-date-day small{
  top:auto;
  bottom:-10px;
  z-index:3;
}

body.route-appointments .appointment-booking-datetime-field{
  grid-column:1/-1;
}
.ios-glass-datetime{
  display:grid;
  grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);
  gap:14px;
  padding:14px;
  border:1px solid rgba(125,211,252,.24);
  border-radius:24px;
  background:
    radial-gradient(circle at 12% 0%,rgba(56,189,248,.16),transparent 34%),
    radial-gradient(circle at 92% 100%,rgba(139,92,246,.18),transparent 38%),
    linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.035));
  box-shadow:0 18px 40px rgba(2,6,23,.25),inset 0 1px 0 rgba(255,255,255,.15);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
}
.ios-glass-control{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:9px;
  min-width:0;
  padding:13px 14px 14px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:19px;
  background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 24px rgba(2,6,23,.16);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.ios-glass-control:focus-within{
  border-color:rgba(103,232,249,.65);
  box-shadow:0 0 0 4px rgba(34,211,238,.11),0 14px 30px rgba(2,6,23,.22),inset 0 1px 0 rgba(255,255,255,.20);
  transform:translateY(-1px);
}
.ios-glass-control>span{
  display:flex;
  align-items:center;
  gap:8px;
  color:#cde9ff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}
.ios-glass-control>span i{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.10);
  font-style:normal;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}
.ios-glass-control input[type="date"],
.ios-glass-control select{
  width:100%;
  min-height:52px;
  margin:0;
  padding:0 16px;
  border:1px solid rgba(148,214,255,.20)!important;
  border-radius:15px!important;
  outline:none;
  background:linear-gradient(145deg,rgba(7,17,37,.56),rgba(35,46,74,.62))!important;
  color:#f8fbff!important;
  font-size:16px;
  font-weight:850;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 8px 18px rgba(2,6,23,.16)!important;
  color-scheme:dark;
}
.ios-glass-control select{
  cursor:pointer;
}
.ios-glass-control select option{
  background:#16243c;
  color:#f8fbff;
}
.ios-glass-control input[type="date"]::-webkit-calendar-picker-indicator{
  cursor:pointer;
  filter:invert(1) brightness(1.4);
  opacity:.85;
}
.appointment-time-help{
  display:block;
  margin:8px 4px 0;
  color:#9fb5cf!important;
}

@media(max-width:720px){
  .ios-glass-datetime{grid-template-columns:1fr;padding:11px;border-radius:20px}
  .ios-glass-control{border-radius:17px}
}


/* v1.1.73 — full dashboard layout manager */
.dashboard-user-session-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.topbar-icon-button{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(160,199,236,.28);border-radius:16px;background:linear-gradient(145deg,rgba(74,104,140,.74),rgba(34,55,84,.86));color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 10px 22px rgba(0,0,0,.2);cursor:pointer;font-size:21px;transition:.2s ease}
.topbar-icon-button:hover,.topbar-icon-button.is-active{transform:translateY(-1px);border-color:#54c8ff;background:linear-gradient(145deg,#2377c9,#7558e8);box-shadow:0 0 0 3px rgba(56,189,248,.15),0 13px 26px rgba(0,0,0,.28)}
.dashboard-user-session-actions .logout-power{width:48px;height:48px;min-width:48px;border-radius:16px;background:linear-gradient(145deg,#1967c8,#1b56ae);border-color:rgba(111,192,255,.5)}
.dashboard-user-session-actions .logout-power:hover{background:linear-gradient(145deg,#ef4444,#b91c1c);border-color:#fb7185}
.dashboard-widget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:start;margin-top:18px}
.dashboard-widget{position:relative;min-width:0;align-self:stretch}
.dashboard-widget-small{grid-column:span 1}
.dashboard-widget-wide{grid-column:span 2}
.dashboard-widget>.stat-card,.dashboard-widget>.panel{height:100%;margin:0}
.dashboard-widget>.stat-card{min-height:130px}
.dashboard-widget-wide>.panel{min-height:100%}
.dashboard-widget-drag-handle{display:none;position:absolute;z-index:30;top:10px;left:10px;width:33px;height:33px;border:1px solid rgba(125,211,252,.6);border-radius:11px;background:rgba(9,25,48,.9);color:#d7f2ff;font-weight:900;cursor:grab;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.dashboard-widget-grid.is-arranging .dashboard-widget{cursor:grab;outline:2px dashed rgba(104,211,255,.45);outline-offset:4px;border-radius:22px}
.dashboard-widget-grid.is-arranging .dashboard-widget-drag-handle{display:grid;place-items:center}
.dashboard-widget-grid.is-arranging .dashboard-widget>*:not(.dashboard-widget-drag-handle){pointer-events:none;user-select:none}
.dashboard-widget.dashboard-dragging{opacity:.42;transform:scale(.985)}
.dashboard-widget.dashboard-drag-over{outline-color:#a78bfa!important;box-shadow:0 0 0 5px rgba(139,92,246,.22)}
.dashboard-arrange-toolbar{position:sticky;top:8px;z-index:80;display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:12px 0 -5px;padding:10px 12px;border:1px solid rgba(87,190,255,.35);border-radius:15px;background:rgba(10,28,54,.94);backdrop-filter:blur(16px);box-shadow:0 15px 35px rgba(0,0,0,.28)}
.dashboard-arrange-toolbar[hidden]{display:none!important}
.dashboard-arrange-toolbar>span{margin-right:auto;color:#b9d9f5;font-size:12px;font-weight:700}
.dashboard-no-widgets{grid-column:1/-1}
.dashboard-layout-settings-panel{max-width:none}
.dashboard-layout-settings-form{margin-top:18px}
.dashboard-widget-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.dashboard-widget-toggle-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:15px;border:1px solid rgba(146,181,220,.23);border-radius:17px;background:linear-gradient(145deg,rgba(77,91,118,.48),rgba(29,46,72,.72));cursor:pointer;transition:.2s ease}
.dashboard-widget-toggle-card:hover{transform:translateY(-1px);border-color:rgba(69,199,255,.5)}
.dashboard-widget-toggle-card>input{position:absolute;opacity:0;pointer-events:none}
.dashboard-widget-toggle-switch{width:48px;height:28px;padding:3px;border-radius:99px;background:#6d7b91;box-shadow:inset 0 2px 5px rgba(0,0,0,.28);transition:.2s ease}
.dashboard-widget-toggle-switch i{display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.32);transition:.2s ease}
.dashboard-widget-toggle-card>input:checked+.dashboard-widget-toggle-switch{background:linear-gradient(90deg,#19c7ad,#35b7ea)}
.dashboard-widget-toggle-card>input:checked+.dashboard-widget-toggle-switch i{transform:translateX(20px)}
.dashboard-widget-toggle-card span:nth-of-type(2){display:flex;flex-direction:column;gap:4px;min-width:0}
.dashboard-widget-toggle-card b{color:#f4f8ff;font-size:15px}
.dashboard-widget-toggle-card small{color:#aebdd3;line-height:1.35}
.dashboard-widget-toggle-card em{font-style:normal;color:#8fcff1;font-size:11px;font-weight:800;text-align:right}
.dashboard-style-settings{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0;padding:18px;border:1px solid rgba(139,177,220,.25);border-radius:18px;background:rgba(19,42,70,.72)}
.dashboard-style-settings label{display:block;font-size:16px;font-weight:800;color:#f4f8ff;margin-bottom:5px}
.dashboard-style-settings select{max-width:310px}
.dashboard-appointment-style-glass .salonix-appointment-card{background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(91,123,183,.13));border:1px solid rgba(210,232,255,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 25px rgba(0,0,0,.18);backdrop-filter:blur(18px) saturate(130%)}
.dashboard-appointment-style-glass .salonix-appointment-time strong{color:#75d9ff}
.dashboard-appointment-style-minimal .appointment-schedule-list{gap:7px}
.dashboard-appointment-style-minimal .salonix-appointment-card{min-height:58px;padding:9px 11px;border-radius:11px;background:rgba(37,55,82,.72);box-shadow:none}
.dashboard-appointment-style-minimal .salonix-appointment-customer span,.dashboard-appointment-style-minimal .salonix-appointment-service span{display:none}
.dashboard-appointment-style-minimal .salonix-appointment-controls{gap:5px}
@media(max-width:1180px){.dashboard-widget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-widget-small{grid-column:span 1}.dashboard-widget-wide{grid-column:span 2}}
@media(max-width:760px){html:not(.requested-desktop-view) .dashboard-widget-grid{grid-template-columns:1fr}html:not(.requested-desktop-view) .dashboard-widget-small,html:not(.requested-desktop-view) .dashboard-widget-wide{grid-column:span 1}.dashboard-widget-toggle-grid{grid-template-columns:1fr}.dashboard-style-settings{align-items:stretch;flex-direction:column}.dashboard-style-settings select{max-width:none;width:100%}.dashboard-arrange-toolbar{flex-wrap:wrap;justify-content:flex-start}.dashboard-arrange-toolbar>span{width:100%;margin:0}.dashboard-user-session-actions{gap:6px}.topbar-icon-button,.dashboard-user-session-actions .logout-power{width:43px;height:43px;min-width:43px;border-radius:14px}}

/* Dashboard appointment quick-add and invoice-completion workflow */
.appointment-head-add-button{
  width:38px;
  height:38px;
  min-width:38px;
  display:inline-grid;
  place-items:center;
  border-radius:13px;
  text-decoration:none;
  font-size:27px;
  font-weight:900;
  line-height:1;
  color:#07111f;
  background:linear-gradient(135deg,#ffd166,#ff9f1c);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 10px 24px rgba(255,159,28,.22),inset 0 1px 0 rgba(255,255,255,.55);
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;
}
.appointment-head-add-button:hover{
  transform:translateY(-2px) scale(1.03);
  filter:brightness(1.05);
  box-shadow:0 14px 28px rgba(255,159,28,.30),inset 0 1px 0 rgba(255,255,255,.65);
}
.appointment-attendance-icon.appointment-joined-btn{
  text-decoration:none;
}
.appointment-attendance-icon:disabled{
  cursor:not-allowed;
  opacity:.45;
  transform:none!important;
  filter:none!important;
}
.appointment-attendance-box.completed{
  min-width:43px;
}
.appointment-invoice-complete-link{
  box-shadow:0 0 0 3px rgba(74,222,128,.18),0 10px 24px rgba(16,185,129,.20)!important;
}
.salonix-appointment-card.completed{
  border-color:rgba(74,222,128,.42);
  background:linear-gradient(135deg,rgba(16,185,129,.13),rgba(69,84,130,.72));
}
body.route-pos .walkin-info.compact span{
  display:block;
  margin-top:3px;
}
@media(max-width:720px){
  .appointment-head-add-button{width:36px;height:36px;min-width:36px;border-radius:12px;font-size:24px}
}

/* v1.1.79 — dashboard appointment cards: show every client detail without clipping */
.salonix-dashboard-appointments .dashboard-appointment-schedule{
  overflow-x:hidden;
}
.salonix-dashboard-appointments .salonix-appointment-card{
  width:100%;
  min-width:0;
  grid-template-columns:92px minmax(0,1fr) auto;
  grid-template-areas:
    "time customer price"
    "time service service"
    "controls controls controls";
  align-items:start;
  gap:9px 14px;
  padding:14px 14px 14px 18px;
  overflow:visible;
}
.salonix-dashboard-appointments .salonix-appointment-time{
  grid-area:time;
  align-self:stretch;
  justify-content:center;
  min-width:0;
}
.salonix-dashboard-appointments .salonix-appointment-customer{
  grid-area:customer;
  min-width:0;
}
.salonix-dashboard-appointments .salonix-appointment-service{
  grid-area:service;
  min-width:0;
  padding-top:2px;
}
.salonix-dashboard-appointments .salonix-appointment-price{
  grid-area:price;
  min-width:104px;
  align-items:flex-end;
  text-align:right;
}
.salonix-dashboard-appointments .salonix-appointment-controls{
  grid-area:controls;
  width:100%;
  min-width:0;
  justify-content:flex-end;
  flex-wrap:wrap;
  padding-top:3px;
  border-top:1px solid rgba(190,214,242,.12);
}
.salonix-dashboard-appointments .salonix-appointment-customer b,
.salonix-dashboard-appointments .salonix-appointment-customer span,
.salonix-dashboard-appointments .salonix-appointment-service b,
.salonix-dashboard-appointments .salonix-appointment-service span{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.34;
}
.salonix-dashboard-appointments .salonix-appointment-customer b,
.salonix-dashboard-appointments .salonix-appointment-service b{
  display:block;
}
.salonix-dashboard-appointments .salonix-appointment-customer span,
.salonix-dashboard-appointments .salonix-appointment-service span{
  display:block;
  margin-top:2px;
}
.salonix-dashboard-appointments .salonix-appointment-price strong{
  white-space:nowrap;
}
.salonix-dashboard-appointments .salonix-appointment-controls .appointment-attendance-box,
.salonix-dashboard-appointments .salonix-appointment-controls .appointment-attendance-buttons{
  min-width:0;
  flex-wrap:wrap;
}
@media(max-width:1250px){
  .salonix-dashboard-appointments .salonix-appointment-card{
    grid-template-columns:86px minmax(0,1fr) auto;
    grid-template-areas:
      "time customer price"
      "service service service"
      "controls controls controls";
  }
  .salonix-dashboard-appointments .salonix-appointment-service{
    padding-left:0;
  }
}

/* v1.1.81 — Dashboard appointments: two cards per slide, arrows over the cards and dots only */
.salonix-dashboard-appointments .appointment-dashboard-carousel{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  width:100%;
  padding-inline:0;
}
.salonix-dashboard-appointments .dashboard-appointment-schedule{
  max-height:none;
  overflow:hidden;
  touch-action:pan-y;
  overscroll-behavior-x:contain;
}
.salonix-dashboard-appointments .appointment-carousel-btn{
  position:absolute;
  z-index:8;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:34px;
  height:54px;
  padding:0;
  border:1px solid rgba(255,255,255,.24);
  border-radius:14px;
  background:rgba(15,23,42,.82);
  color:#fff;
  box-shadow:0 12px 28px rgba(2,6,23,.35),inset 0 1px 0 rgba(255,255,255,.08);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:opacity .18s ease,transform .18s ease,background .18s ease;
}
.salonix-dashboard-appointments .appointment-carousel-prev{left:-12px;}
.salonix-dashboard-appointments .appointment-carousel-next{right:-12px;}
.salonix-dashboard-appointments .appointment-carousel-btn:hover:not(:disabled){
  background:rgba(30,64,175,.88);
  transform:translateY(-50%) scale(1.04);
}
.salonix-dashboard-appointments .appointment-carousel-btn:disabled{
  opacity:.22;
  cursor:default;
}
.salonix-dashboard-appointments .appointment-carousel-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:7px;
  min-height:20px;
  padding:10px 6px 0;
}
.salonix-dashboard-appointments .appointment-carousel-dot{
  appearance:none;
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 0 0 1px rgba(255,255,255,.12);
  cursor:pointer;
  transition:width .2s ease,transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.salonix-dashboard-appointments .appointment-carousel-dot:hover{
  transform:scale(1.2);
  background:#fff;
}
.salonix-dashboard-appointments .appointment-carousel-dot.active{
  width:24px;
  background:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,.35),0 3px 12px rgba(255,255,255,.18);
}
.salonix-dashboard-appointments .appointment-dashboard-carousel.single-page .appointment-carousel-btn{
  display:none;
}


/* v1.1.80 — Inventory quantity, low-stock diagnostics and WhatsApp reminder automation */
.product-stat-grid .stat-card{min-width:0;}
.inventory-table .table-subtext,.wa-reminder-log-table .table-subtext{display:block;margin-top:4px;color:var(--muted);font-size:12px;}
.stock-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;}
.stock-badge.ok{color:#b9ffe8;background:rgba(16,185,129,.16);border-color:rgba(52,211,153,.38);}
.stock-badge.low{color:#ffe9a8;background:rgba(245,158,11,.17);border-color:rgba(251,191,36,.42);}
.stock-badge.out{color:#ffd0d9;background:rgba(244,63,94,.17);border-color:rgba(251,113,133,.42);}
.stock-badge.not-tracked{color:#cbd5e1;background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.25);}
.inventory-row-low{background:linear-gradient(90deg,rgba(245,158,11,.08),transparent 46%);}
.inventory-row-out{background:linear-gradient(90deg,rgba(244,63,94,.09),transparent 46%);}
.stock-positive{color:#6ee7b7!important;font-weight:800;}
.stock-negative{color:#fda4af!important;font-weight:800;}
.inventory-product-form .switch-setting,.inventory-product-form .checkbox{align-items:flex-start;}
.product-stock-hint{display:block;margin-top:6px;min-height:18px;color:var(--muted);font-size:12px;line-height:1.35;}
.product-stock-hint.ok{color:#6ee7b7;}.product-stock-hint.low{color:#fcd34d;}.product-stock-hint.out{color:#fda4af;font-weight:800;}.product-stock-hint.not-tracked{color:#94a3b8;}
.product-row select option:disabled{color:#94a3b8;}

.wa-reminder-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;}
.wa-reminder-hero>div{display:flex;align-items:center;gap:16px;min-width:0;}
.wa-reminder-icon{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#16a34a,#2dd4bf);box-shadow:0 14px 30px rgba(16,185,129,.2);font-size:30px;}
.wa-reminder-hero h3{margin:0 0 5px;}
.wa-reminder-settings-form{overflow:visible;}
.wa-enable-toggle{padding:14px 16px;border:1px solid rgba(45,212,191,.28);border-radius:14px;background:rgba(13,148,136,.09);font-weight:800;}
.wa-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0;}
.wa-provider-card{min-width:0;border:1px solid rgba(148,163,184,.25);border-radius:16px;background:rgba(15,23,42,.3);overflow:hidden;}
.wa-provider-card[open]{border-color:rgba(56,189,248,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.wa-provider-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;cursor:pointer;list-style:none;font-weight:800;}
.wa-provider-card summary::-webkit-details-marker{display:none;}
.wa-provider-card summary em{color:var(--muted);font-size:11px;font-style:normal;font-weight:700;text-align:right;}
.wa-provider-card .form-grid{grid-template-columns:1fr;padding:0 16px 16px;}
.secret-clear{margin-top:8px;color:#fda4af;font-size:12px;}
.wa-reminder-operations{align-items:stretch;}
.wa-reminder-operations>.panel{height:100%;}
.wa-cron-card code{display:block;overflow:auto;margin:8px 0 10px;padding:14px 16px;border:1px solid rgba(56,189,248,.24);border-radius:13px;background:#081a31;color:#bdeaff;line-height:1.55;white-space:pre-wrap;word-break:break-all;}
.wa-cron-card>small{display:block;color:var(--muted);line-height:1.5;}
.wa-cron-health{display:grid;grid-template-columns:1fr;gap:10px;margin:16px 0;}
.wa-cron-health span{display:grid;gap:4px;padding:12px 14px;border:1px solid rgba(148,163,184,.2);border-radius:12px;background:rgba(255,255,255,.035);color:var(--muted);font-size:12px;overflow-wrap:anywhere;}
.wa-cron-health b{color:var(--text);}
.wa-reminder-log-table td{vertical-align:top;}
@media(max-width:1180px){.wa-provider-grid{grid-template-columns:1fr;}.wa-reminder-operations{grid-template-columns:1fr;}}

/* v1.1.78 — Leads: source grouping, expected visit, remarks, and full-width list alignment */
body.route-leads .main{min-width:0}
body.route-leads .panel{max-width:none}
body.route-leads .table-wrap{width:100%;overflow-x:auto;overflow-y:visible}
body.route-leads table{min-width:1420px;table-layout:fixed}
body.route-leads th,body.route-leads td{padding:12px 10px;vertical-align:middle}
body.route-leads th:nth-child(1),body.route-leads td:nth-child(1){width:105px}
body.route-leads th:nth-child(2),body.route-leads td:nth-child(2){width:112px}
body.route-leads th:nth-child(3),body.route-leads td:nth-child(3){width:115px}
body.route-leads th:nth-child(4),body.route-leads td:nth-child(4){width:135px}
body.route-leads th:nth-child(5),body.route-leads td:nth-child(5){width:102px}
body.route-leads th:nth-child(6),body.route-leads td:nth-child(6){width:150px}
body.route-leads th:nth-child(7),body.route-leads td:nth-child(7){width:205px}
body.route-leads th:nth-child(8),body.route-leads td:nth-child(8){width:100px}
body.route-leads th:nth-child(9),body.route-leads td:nth-child(9){width:145px}
body.route-leads th:nth-child(10),body.route-leads td:nth-child(10){width:270px}
body.route-leads td.actions{min-width:270px!important;width:270px;white-space:nowrap}
.lead-source-group-row td{padding:0!important;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.09)!important}
.lead-source-group-row td>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px}
.lead-source-group-row strong{display:inline-flex;align-items:center;gap:8px;color:#e9f4ff;font-size:12px;font-weight:950;letter-spacing:.025em;text-transform:uppercase}
.lead-source-group-row strong i{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:9px;background:rgba(255,255,255,.10);font-style:normal;font-size:14px}
.lead-source-group-row span{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.10);color:#dbeafe;font-size:10px;font-weight:900}
.lead-source-group-google td{background:linear-gradient(90deg,rgba(66,133,244,.20),rgba(14,165,233,.10),rgba(30,41,59,.10))!important}
.lead-source-group-facebook td{background:linear-gradient(90deg,rgba(37,99,235,.17),rgba(124,58,237,.15),rgba(30,41,59,.10))!important}
.lead-source-group-other td{background:linear-gradient(90deg,rgba(148,163,184,.13),rgba(71,85,105,.10),rgba(30,41,59,.08))!important}
.lead-expected-visit{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:6px 8px;border-radius:10px;background:rgba(251,191,36,.11);border:1px solid rgba(251,191,36,.22);color:#fde9a9;font-size:11px;font-weight:850;line-height:1.35;white-space:normal}
.lead-remark-cell{display:-webkit-box;max-width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;color:#e5eefb;font-size:12px;line-height:1.42;white-space:normal;overflow-wrap:anywhere}
body.route-leads .form-panel .field.wide textarea[name="remarks"]{min-height:110px}
@media(max-width:1250px){body.route-leads table{min-width:1360px}body.route-leads th,body.route-leads td{padding-left:8px;padding-right:8px}}

/* Leads table: readable headers and clean column alignment */
body.route-leads .leads-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  border-radius:20px;
}
body.route-leads .leads-list-table{
  width:100%;
  min-width:1500px;
  table-layout:fixed;
}
body.route-leads .leads-list-table th,
body.route-leads .leads-list-table td{
  padding:12px 10px;
  box-sizing:border-box;
  vertical-align:middle;
}
body.route-leads .leads-list-table th{
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.18;
  font-size:12px;
  letter-spacing:.025em;
  text-align:left;
}
body.route-leads .leads-list-table td{
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
}
body.route-leads .leads-list-table th:nth-child(1),
body.route-leads .leads-list-table td:nth-child(1){width:7%;}
body.route-leads .leads-list-table th:nth-child(2),
body.route-leads .leads-list-table td:nth-child(2){width:8%;}
body.route-leads .leads-list-table th:nth-child(3),
body.route-leads .leads-list-table td:nth-child(3){width:9%;}
body.route-leads .leads-list-table th:nth-child(4),
body.route-leads .leads-list-table td:nth-child(4){width:10%;}
body.route-leads .leads-list-table th:nth-child(5),
body.route-leads .leads-list-table td:nth-child(5){width:7%;white-space:nowrap;}
body.route-leads .leads-list-table th:nth-child(6),
body.route-leads .leads-list-table td:nth-child(6){width:12%;}
body.route-leads .leads-list-table th:nth-child(7),
body.route-leads .leads-list-table td:nth-child(7){width:17%;}
body.route-leads .leads-list-table th:nth-child(8),
body.route-leads .leads-list-table td:nth-child(8){width:8%;}
body.route-leads .leads-list-table th:nth-child(9),
body.route-leads .leads-list-table td:nth-child(9){width:11%;}
body.route-leads .leads-list-table th:nth-child(10),
body.route-leads .leads-list-table td:nth-child(10){width:11%;}
body.route-leads .leads-list-table td.actions{
  white-space:normal;
}
body.route-leads .lead-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:5px;
}
body.route-leads .lead-remark-cell{
  -webkit-line-clamp:2;
  line-clamp:2;
}
@media (max-width:1700px){
  body.route-leads .leads-list-table{min-width:1420px;}
  body.route-leads .leads-list-table th,
  body.route-leads .leads-list-table td{padding-left:8px;padding-right:8px;}
}

/* v1.1.82 hotfix — Not Joined follow-up opens as a true viewport modal. */
body.appointment-followup-modal-open{
  overflow:hidden!important;
}
.appointment-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:2147483600;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:rgba(3,7,18,.70);
  backdrop-filter:blur(8px) saturate(1.08);
  -webkit-backdrop-filter:blur(8px) saturate(1.08);
  cursor:default;
}
.appointment-modal-backdrop[hidden]{display:none!important}

body .appointment-list-followup-form{
  position:fixed!important;
  z-index:2147483640!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:min(460px,calc(100vw - 32px))!important;
  max-height:calc(100vh - 40px);
  overflow:auto;
  margin:0!important;
  padding:20px!important;
  border-radius:22px!important;
  border:1px solid rgba(251,113,133,.52)!important;
  background:
    radial-gradient(circle at 100% 0,rgba(236,72,153,.18),transparent 34%),
    radial-gradient(circle at 0 100%,rgba(56,189,248,.13),transparent 38%),
    linear-gradient(145deg,#17233a 0%,#211b3c 55%,#25172e 100%)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.06) inset!important;
  transform:translate(-50%,-50%);
  transform-origin:center!important;
  isolation:isolate;
}
body .appointment-list-followup-form[hidden]{display:none!important}
body .appointment-list-followup-form.is-open{
  animation:appointmentFollowupModalOpen .20s cubic-bezier(.2,.8,.2,1) both!important;
}
@keyframes appointmentFollowupModalOpen{
  from{opacity:0;transform:translate(-50%,calc(-50% + 14px)) scale(.965)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
body .appointment-list-followup-form label{
  color:#f8fafc;
  font-size:12px;
  font-weight:850;
  letter-spacing:.015em;
}
body .appointment-list-followup-form select,
body .appointment-list-followup-form input{
  min-height:46px!important;
  border-color:rgba(148,163,184,.28)!important;
  background:rgba(15,23,42,.68)!important;
  color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
body .appointment-list-followup-form select:focus,
body .appointment-list-followup-form input:focus{
  border-color:#60a5fa!important;
  box-shadow:0 0 0 3px rgba(59,130,246,.18)!important;
  outline:0;
}
body .appointment-list-followup-form>div{
  margin-top:4px;
  display:flex;
  justify-content:flex-end;
  gap:9px;
}
body .appointment-list-followup-form>div .icon-btn{
  min-height:42px;
  padding:9px 14px;
  border-radius:13px;
}
@media(max-width:560px){
  body .appointment-list-followup-form{
    width:calc(100vw - 22px)!important;
    max-height:calc(100vh - 24px);
    padding:16px!important;
    border-radius:18px!important;
  }
  body .appointment-list-followup-form>div{
    display:grid;
    grid-template-columns:1fr 1.35fr;
  }
  body .appointment-list-followup-form>div .icon-btn{width:100%}
}
