:root{
  --bg:#07101f;--panel:#0d1729;--panel2:#111f35;--card:#13233a;--line:#243552;
  --text:#f5f7fb;--muted:#9fb0ca;--primary:#6d5dfc;--primary2:#8f82ff;--green:#21c77a;
  --yellow:#ffbf47;--red:#ff5d6c;--cyan:#32c6e8;--shadow:0 18px 55px rgba(0,0,0,.28);
  --radius:18px;--radius-sm:12px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.mobile-only{display:none}
.muted{color:var(--muted)}
.text-green{color:var(--green)}.text-red{color:var(--red)}.text-yellow{color:var(--yellow)}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:
radial-gradient(circle at 18% 15%,rgba(109,93,252,.22),transparent 30%),
radial-gradient(circle at 80% 80%,rgba(50,198,232,.13),transparent 28%),var(--bg)}
.login-card{width:min(430px,100%);background:rgba(13,23,41,.96);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}
.login-card h1{margin:16px 0 6px;font-size:34px}.login-card p{margin:0 0 26px;color:var(--muted)}
.login-card form{display:grid;gap:18px}.demo-note{margin-top:18px;padding:12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:13px}
.brand-mark{width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,var(--primary),var(--cyan));display:grid;place-items:center;font-weight:900;box-shadow:0 10px 30px rgba(109,93,252,.35)}
.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:14px;flex:none}
.brand-mark{overflow:hidden}
.brand-logo-img{width:100%;height:100%;display:block;object-fit:contain;background:transparent}
.brand-logo-img.small{width:100%;height:100%}
.brand-logo-settings{border:1px solid var(--line);border-radius:16px;background:rgba(7,18,34,.52);padding:15px}
.brand-logo-preview-wrap{display:flex;align-items:center;gap:16px}
.brand-logo-preview{width:92px;height:92px;flex:0 0 92px;border:1px solid #304567;border-radius:22px;background:linear-gradient(145deg,#101e34,#091426);display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.brand-logo-preview img{width:100%;height:100%;object-fit:contain;padding:6px}
.brand-logo-preview span{font-size:24px;font-weight:900;color:#fff}
.brand-logo-copy{min-width:0;flex:1}.brand-logo-copy>strong{display:block;color:#edf3ff;font-size:14px}.brand-logo-copy>p{margin:5px 0 10px;color:var(--muted);font-size:11px;font-weight:500;line-height:1.45}
.brand-logo-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.logo-upload-btn{display:inline-flex!important;width:auto;cursor:pointer;color:#fff;font-size:13px}
.visually-hidden-file{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;opacity:0!important}
.logo-file-name{display:block;margin-top:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.receipt-logo-wrap{text-align:center;margin-bottom:8px}.receipt-logo{display:inline-block;max-width:90px;max-height:70px;object-fit:contain}
label{display:grid;gap:8px;font-size:13px;color:#cbd5e6;font-weight:650}
input,select,textarea{width:100%;background:#091426;border:1px solid var(--line);border-radius:12px;color:var(--text);padding:12px 13px;outline:none;transition:.18s}
input:focus,select:focus,textarea:focus{border-color:var(--primary2);box-shadow:0 0 0 3px rgba(109,93,252,.16)}
/* Modern custom dropdowns: replaces the browser-native option popup with a rounded, consistent UI. */
.modern-select{position:relative;display:block;width:100%;min-width:0}
.modern-select-native{position:absolute!important;left:0!important;top:0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.modern-select-trigger{width:100%;min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0a1628,#091426);color:var(--text);font:inherit;font-weight:650;text-align:left;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:border-color .18s,box-shadow .18s,background .18s,transform .08s}
.modern-select-trigger:hover{border-color:#3a4d70;background:linear-gradient(180deg,#0d1b30,#091426)}
.modern-select-trigger:focus,.modern-select-trigger.open{border-color:var(--primary2);box-shadow:0 0 0 3px rgba(109,93,252,.16),inset 0 1px 0 rgba(255,255,255,.035)}
.modern-select-trigger.invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,93,108,.13)}
.modern-select-trigger:disabled{opacity:.52;cursor:not-allowed}
.modern-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modern-select-trigger.placeholder .modern-select-value{color:#7f8da4}
.modern-select-chevron{width:18px;height:18px;flex:none;fill:none;stroke:#c8d2e3;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s,color .18s}
.modern-select-trigger.open .modern-select-chevron{transform:rotate(180deg);stroke:#fff}
.modern-select-menu{position:fixed;z-index:500;padding:7px;background:linear-gradient(180deg,rgba(17,31,53,.99),rgba(10,22,40,.99));border:1px solid rgba(118,133,166,.38);border-radius:15px;box-shadow:0 22px 55px rgba(0,0,0,.46),0 0 0 1px rgba(255,255,255,.025) inset;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#405274 transparent;transform-origin:top center;animation:modernSelectIn .13s ease-out}
.modern-select-menu.opens-up{transform-origin:bottom center}
.modern-select-menu[hidden]{display:none!important}
.modern-select-option{width:100%;min-height:42px;border:0;border-radius:10px;background:transparent;color:#e6edf7;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font:inherit;font-size:13px;font-weight:650;cursor:pointer;outline:none;transition:background .14s,color .14s,transform .08s}
.modern-select-option:hover,.modern-select-option:focus{background:rgba(109,93,252,.18);color:#fff}
.modern-select-option:active{transform:scale(.992)}
.modern-select-option.selected{background:linear-gradient(135deg,rgba(109,93,252,.96),rgba(92,77,222,.94));color:#fff;box-shadow:0 5px 16px rgba(109,93,252,.2)}
.modern-select-option:disabled{opacity:.4;cursor:not-allowed}
.modern-select-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modern-select-check{width:18px;height:18px;display:grid;place-items:center;flex:none;opacity:0}
.modern-select-check svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.modern-select-option.selected .modern-select-check{opacity:1}
@keyframes modernSelectIn{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Modern date picker: avoids the browser/Windows native calendar popup and matches the gaming UI. */
.modern-date{position:relative;display:block;width:100%;min-width:0}
.modern-date-native{position:absolute!important;left:0!important;top:0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.modern-date-trigger{width:100%;min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0a1628,#091426);color:var(--text);font:inherit;font-weight:700;text-align:left;outline:none;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:border-color .18s,box-shadow .18s,background .18s,transform .08s}
.modern-date-trigger:hover{border-color:#3a4d70;background:linear-gradient(180deg,#0d1b30,#091426)}
.modern-date-trigger:focus,.modern-date-trigger.open{border-color:var(--primary2);box-shadow:0 0 0 3px rgba(109,93,252,.16),inset 0 1px 0 rgba(255,255,255,.035)}
.modern-date-trigger.invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,93,108,.13)}
.modern-date-trigger:disabled{opacity:.52;cursor:not-allowed}
.modern-date-trigger.placeholder .modern-date-value{color:#7f8da4}
.modern-date-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modern-date-icon{width:18px;height:18px;flex:none;fill:none;stroke:#aebbd0;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:stroke .18s,transform .18s}
.modern-date-trigger.open .modern-date-icon{stroke:#fff;transform:translateY(-1px)}
.modern-date-picker{position:fixed;z-index:650;padding:14px;background:linear-gradient(165deg,rgba(17,31,53,.995),rgba(8,19,35,.995));border:1px solid rgba(131,146,180,.36);border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.54),0 0 0 1px rgba(255,255,255,.025) inset;overflow:hidden;transform-origin:top center;animation:modernDateIn .15s ease-out;backdrop-filter:blur(18px)}
.modern-date-picker.opens-up{transform-origin:bottom center}
.modern-date-picker[hidden]{display:none!important}
.modern-date-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 1px 12px}
.modern-date-month{font-size:15px;font-weight:850;color:#f7f9fd;letter-spacing:.01em}
.modern-date-nav{display:flex;gap:6px}
.modern-date-nav-btn{width:36px;height:36px;border:1px solid rgba(116,132,166,.3);border-radius:11px;background:#0b192d;color:#dce5f3;display:grid;place-items:center;padding:0;outline:none;transition:.16s}
.modern-date-nav-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.modern-date-nav-btn:hover,.modern-date-nav-btn:focus{background:rgba(109,93,252,.2);border-color:rgba(143,130,255,.62);color:#fff;box-shadow:0 0 0 2px rgba(109,93,252,.09)}
.modern-date-weekdays,.modern-date-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.modern-date-weekdays{padding:2px 0 7px;color:#8798b3;font-size:11px;font-weight:800;text-align:center}
.modern-date-weekdays span{display:grid;place-items:center;height:28px}
.modern-date-day{aspect-ratio:1;min-width:0;border:1px solid transparent;border-radius:11px;background:transparent;color:#dbe5f3;display:grid;place-items:center;padding:0;font:inherit;font-size:12px;font-weight:700;outline:none;transition:background .14s,border-color .14s,color .14s,transform .08s,box-shadow .14s}
.modern-date-day:hover:not(:disabled),.modern-date-day:focus:not(:disabled){background:rgba(109,93,252,.16);border-color:rgba(143,130,255,.34);color:#fff}
.modern-date-day:active:not(:disabled){transform:scale(.92)}
.modern-date-day.outside{color:#566985}
.modern-date-day.today:not(.selected){border-color:rgba(50,198,232,.7);color:#b9f1fb;box-shadow:inset 0 0 0 1px rgba(50,198,232,.12)}
.modern-date-day.selected{background:linear-gradient(135deg,var(--primary),#897bff);border-color:#9b90ff;color:#fff;box-shadow:0 7px 18px rgba(109,93,252,.34)}
.modern-date-day:disabled{opacity:.22;cursor:not-allowed}
.modern-date-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:11px;border-top:1px solid rgba(112,128,160,.2)}
.modern-date-footer-btn{border:0;border-radius:10px;background:transparent;color:#94a8c5;padding:8px 10px;font:inherit;font-size:12px;font-weight:800;outline:none;transition:.15s}
.modern-date-footer-btn.today{color:#8e82ff}
.modern-date-footer-btn:hover,.modern-date-footer-btn:focus{background:rgba(109,93,252,.15);color:#fff}
.modern-date-footer-btn:disabled{opacity:.35;cursor:not-allowed}
@keyframes modernDateIn{from{opacity:0;transform:translateY(-5px) scale(.982)}to{opacity:1;transform:translateY(0) scale(1)}}
textarea{min-height:92px;resize:vertical}
input[type="checkbox"]{width:auto}
input[type="number"]{-moz-appearance:textfield;appearance:textfield}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.number-stepper{position:relative;width:100%;display:block}
.number-stepper>input[type="number"]{padding-right:58px;min-height:50px;font-variant-numeric:tabular-nums}
.number-stepper-controls{position:absolute;right:5px;top:5px;bottom:5px;width:42px;display:grid;grid-template-rows:1fr 1fr;overflow:hidden;border:1px solid rgba(143,130,255,.24);border-radius:9px;background:linear-gradient(180deg,rgba(23,39,64,.98),rgba(12,27,47,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 4px 12px rgba(0,0,0,.16)}
.number-stepper-btn{min-width:0;padding:0;border:0;background:transparent;color:#cbd6e8;display:grid;place-items:center;cursor:pointer;transition:background .16s,color .16s,transform .08s}
.number-stepper-btn+.number-stepper-btn{border-top:1px solid rgba(143,130,255,.18)}
.number-stepper-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.number-stepper-btn:hover{background:linear-gradient(135deg,rgba(109,93,252,.34),rgba(50,198,232,.16));color:#fff}
.number-stepper-btn:active{transform:scale(.92);background:rgba(109,93,252,.46)}
.number-stepper:focus-within .number-stepper-controls{border-color:rgba(143,130,255,.66);box-shadow:0 0 0 2px rgba(109,93,252,.11),inset 0 1px 0 rgba(255,255,255,.05)}
.number-stepper input:disabled~.number-stepper-controls,.number-stepper input[readonly]~.number-stepper-controls{opacity:.42;pointer-events:none}
.app-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}
.sidebar{position:sticky;top:0;height:100vh;background:#091426;border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;z-index:20}
.brand-row{display:flex;align-items:center;gap:12px;padding:4px 4px 20px}.brand-row strong{display:block}.brand-row span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.main-nav{display:grid;gap:6px;overflow:auto;padding-right:2px}.main-nav button{border:0;background:transparent;color:#b7c5da;text-align:left;padding:11px 13px;border-radius:12px;display:flex;align-items:center;gap:11px;font-weight:650}.main-nav button:hover,.main-nav button.active{background:linear-gradient(90deg,rgba(109,93,252,.24),rgba(109,93,252,.08));color:#fff}.main-nav span{width:21px;text-align:center}
.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.user-card{display:flex;gap:10px;align-items:center;padding:8px 4px 13px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);font-weight:800}.user-card strong,.user-card small{display:block}.user-card small{color:var(--muted)}
.main-area{min-width:0}.topbar{height:86px;position:sticky;top:0;z-index:15;background:rgba(7,16,31,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(36,53,82,.7);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar h2{margin:0 0 4px}.topbar-actions{display:flex;gap:10px}
.page-content{padding:26px 28px 50px;max-width:1700px;margin:auto}
.btn{border:1px solid transparent;border-radius:12px;padding:10px 15px;color:#fff;font-weight:750;transition:.18s;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary2))}.btn-secondary{background:var(--panel2);border-color:var(--line)}.btn-success{background:#127a50}.btn-danger{background:#9c3040}.btn-warning{background:#8c6114}.btn-ghost{background:transparent;border-color:var(--line);color:#c7d2e4}.btn-sm{padding:7px 10px;border-radius:9px;font-size:12px}.btn-block{width:100%}.icon-btn{border:0;background:transparent;color:#d6deeb;font-size:24px;width:38px;height:38px;border-radius:10px}.icon-btn:hover{background:var(--panel2)}
.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat-card,.panel,.station-card{background:linear-gradient(145deg,rgba(19,35,58,.98),rgba(13,23,41,.98));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.stat-card{padding:19px}.stat-top{display:flex;align-items:center;justify-content:space-between}.stat-icon{width:42px;height:42px;border-radius:13px;background:rgba(109,93,252,.18);display:grid;place-items:center}.stat-value{font-size:28px;font-weight:900;margin-top:14px}.stat-label{color:var(--muted);font-size:13px;margin-top:3px}
.panel{padding:20px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-header h3{margin:0;font-size:17px}.panel-header p{margin:5px 0 0;color:var(--muted);font-size:13px}.panel-actions{display:flex;gap:8px;flex-wrap:wrap}
.section-gap{margin-top:20px}
.station-grid{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:16px}.station-card{padding:17px;position:relative;overflow:hidden}.station-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--line)}.station-card.busy::before{background:var(--green)}.station-card.paused::before{background:var(--yellow)}.station-card.reserved::before{background:var(--cyan)}.station-card.maintenance::before{background:var(--red)}
.station-head{display:flex;justify-content:space-between;gap:12px}.station-title{font-size:17px;font-weight:850}.station-type{color:var(--muted);font-size:12px;margin-top:3px}.status-badge,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#273653;color:#dbe5f4}.status-badge.available{background:rgba(33,199,122,.14);color:#77ebb5}.status-badge.busy{background:rgba(33,199,122,.14);color:#77ebb5}.status-badge.paused{background:rgba(255,191,71,.15);color:#ffd27f}.status-badge.reserved{background:rgba(50,198,232,.15);color:#8ce6f6}.status-badge.maintenance{background:rgba(255,93,108,.14);color:#ff9da7}
.timer{font-variant-numeric:tabular-nums;font-size:31px;font-weight:900;letter-spacing:.5px;margin:18px 0 5px}.amount{font-size:17px;font-weight:850}.station-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.meta-box{background:#0a1628;border-radius:10px;padding:9px}.meta-box span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.meta-box strong{display:block;font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.station-actions{display:flex;gap:7px;flex-wrap:wrap}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:12px 13px;border-bottom:1px solid var(--line);font-size:13px}th{background:#0c182a;color:#b9c5d8;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tbody tr:hover{background:rgba(255,255,255,.02)}tbody tr:last-child td{border-bottom:0}.actions{display:flex;gap:6px;flex-wrap:wrap}
.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.toolbar-group{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.search{min-width:240px}.filter-select{width:auto;min-width:145px}
.report-range-group{align-items:flex-end}.report-range-group>label{min-width:156px}.report-apply-btn{min-height:50px;align-self:flex-end;padding-left:18px;padding-right:18px}
.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-state .big{font-size:40px;margin-bottom:8px}
.progress{height:8px;border-radius:999px;background:#0a1424;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--cyan));border-radius:999px}
.list{display:grid;gap:10px}.list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;background:#0b1729;border:1px solid var(--line);border-radius:12px}.list-item strong{display:block}.list-item small{display:block;color:var(--muted);margin-top:3px}
.kpi-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}.kpi-row span{color:var(--muted);font-size:13px}
.chart{height:220px;display:flex;align-items:flex-end;gap:9px;padding-top:22px}.bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:8px}.bar{width:100%;max-width:48px;background:linear-gradient(180deg,var(--cyan),var(--primary));border-radius:8px 8px 3px 3px;min-height:3px;position:relative}.bar:hover::after{content:attr(data-value);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#000;padding:4px 6px;border-radius:6px;font-size:10px;white-space:nowrap}.bar-label{font-size:10px;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.66);display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(760px,100%);max-height:92vh;overflow:hidden;background:#0b1628;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);display:flex;flex-direction:column}.modal.wide{width:min(1050px,100%)}.modal-header{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.modal-header h3{margin:0}.modal-header p{margin:4px 0 0;font-size:12px}.modal-body{padding:20px;overflow:auto}.modal-footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .full{grid-column:1/-1}.inline-check{display:flex;align-items:center;gap:8px;color:#dbe4f2}.help{font-size:11px;color:var(--muted);font-weight:400}.input-row{display:flex;gap:8px}.input-row>*{flex:1}
.receipt{max-width:460px;margin:auto;background:#fff;color:#111;padding:26px;border-radius:6px}.receipt h2{text-align:center;margin:0}.receipt .center{text-align:center}.receipt hr{border:0;border-top:1px dashed #777}.receipt table{min-width:0;color:#111}.receipt th,.receipt td{border-color:#ddd;padding:7px 3px;background:transparent;color:#111}.receipt-total{font-size:18px;font-weight:900}
.quick-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-tile{background:#0a1628;border:1px solid var(--line);border-radius:14px;padding:15px;text-align:left;color:#fff}.quick-tile:hover{border-color:var(--primary2)}.quick-tile strong{display:block;margin-top:8px}.quick-tile span{color:var(--muted);font-size:12px}
.tabs{display:flex;gap:7px;overflow:auto;margin-bottom:16px}.tab{white-space:nowrap;border:1px solid var(--line);background:#0b1729;color:#c6d2e4;padding:8px 12px;border-radius:10px}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}
.notice{border:1px solid rgba(50,198,232,.35);background:rgba(50,198,232,.08);padding:12px 14px;border-radius:12px;color:#c9f5fd;font-size:13px}.danger-notice{border-color:rgba(255,93,108,.35);background:rgba(255,93,108,.08);color:#ffc2c8}
.color-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}.pill-row{display:flex;gap:7px;flex-wrap:wrap}.tag{padding:6px 9px;background:#0c192c;border:1px solid var(--line);border-radius:999px;font-size:11px}.metric-big{font-size:36px;font-weight:900}.nowrap{white-space:nowrap}
@media(max-width:1200px){.grid-4{grid-template-columns:repeat(2,1fr)}.station-grid{grid-template-columns:repeat(2,minmax(250px,1fr))}.quick-tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.mobile-only{display:inline-grid;place-items:center}.app-shell{display:block}.sidebar{position:fixed;left:-290px;width:280px;transition:.22s;box-shadow:var(--shadow)}.sidebar.open{left:0}.brand-row #mobileClose{margin-left:auto}.topbar{height:auto;min-height:78px;padding:12px 15px}.topbar-actions .btn-secondary{display:none}.page-content{padding:18px 14px 40px}.grid-3,.grid-2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
@media(max-width:620px){.grid-4,.station-grid,.quick-tiles{grid-template-columns:1fr}.topbar-actions .btn{font-size:0;padding:10px}.topbar-actions .btn::after{content:"▶";font-size:15px}.station-card{padding:15px}.modal-backdrop{padding:0;align-items:end}.modal{max-height:96vh;border-radius:22px 22px 0 0}.search{min-width:100%;width:100%}.toolbar-group{width:100%}.toolbar-group .filter-select{flex:1}.report-range-group{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}.report-range-group>label{min-width:0}.report-apply-btn{grid-column:1/-1;width:100%}.stat-value{font-size:24px}}


/* v12 — per-staff sidebar visibility permissions */
.staff-permissions{border:1px solid var(--line);background:rgba(7,18,34,.56);border-radius:16px;padding:15px}
.permission-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.permission-head strong{font-size:14px;color:#edf3ff}.permission-head p{margin:4px 0 0;color:var(--muted);font-size:11px;font-weight:500}
.permission-actions{display:flex;gap:7px;flex-wrap:wrap}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.permission-card{position:relative;min-height:76px;display:flex!important;align-items:center;gap:10px;padding:11px 40px 11px 11px;border:1px solid var(--line);border-radius:13px;background:#0b1729;cursor:pointer;transition:.16s;color:#e8eef9}
.permission-card:hover{border-color:rgba(134,120,255,.65);background:#0d1b31}
.permission-card input{position:absolute;opacity:0;pointer-events:none}
.permission-card:has(input:checked){border-color:rgba(123,105,255,.82);background:linear-gradient(135deg,rgba(109,93,252,.19),rgba(13,27,49,.98));box-shadow:inset 0 0 0 1px rgba(109,93,252,.13)}
.permission-icon{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:9px;background:#111f36;font-size:15px}
.permission-copy{min-width:0}.permission-copy strong{display:block;font-size:12px}.permission-copy small{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:3px;font-weight:500}
.permission-check{position:absolute;right:11px;top:50%;transform:translateY(-50%) scale(.8);width:20px;height:20px;border-radius:7px;display:grid;place-items:center;background:#6d5dfc;color:white;font-size:11px;font-weight:900;opacity:0;transition:.14s}
.permission-card:has(input:checked) .permission-check{opacity:1;transform:translateY(-50%) scale(1)}
.permissions-admin-mode{opacity:.72}.permissions-admin-mode .permission-card{cursor:default}.permissions-admin-mode .permission-actions{opacity:.5}
.permission-tags{display:flex;gap:5px;flex-wrap:wrap;max-width:390px}.permission-tags .tag{padding:4px 7px;font-size:10px}
.staff-access-cell{min-width:210px}.access-full{background:rgba(33,199,122,.14);color:#77ebb5}.access-none{background:rgba(255,93,108,.14);color:#ff9da7}
@media(max-width:850px){.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.permission-head{display:block}.permission-actions{margin-top:10px}.permission-grid{grid-template-columns:1fr}}
/* v43 — 80mm thermal receipt printing.
   The receipt uses a 72mm printable content area inside an 80mm roll.
   Browser/printer paper size should be set to 80mm receipt/roll for best results. */
@page{size:auto;margin:0}
@media print{
  html,body{
    width:80mm!important;
    min-width:80mm!important;
    max-width:80mm!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    overflow:visible!important;
  }
  body>*:not(#modalRoot){display:none!important}
  #modalRoot{
    display:block!important;
    position:static!important;
    width:80mm!important;
    min-width:80mm!important;
    max-width:80mm!important;
    margin:0!important;
    padding:0!important;
  }
  .modal-backdrop{
    position:static!important;
    display:block!important;
    width:80mm!important;
    min-width:80mm!important;
    max-width:80mm!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    overflow:visible!important;
  }
  .modal{
    position:static!important;
    display:block!important;
    width:80mm!important;
    min-width:80mm!important;
    max-width:80mm!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
    overflow:visible!important;
  }
  .modal-header,.modal-footer{display:none!important}
  .modal-body{
    width:80mm!important;
    min-width:80mm!important;
    max-width:80mm!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  .receipt{
    display:block!important;
    width:72mm!important;
    min-width:72mm!important;
    max-width:72mm!important;
    height:auto!important;
    min-height:0!important;
    margin:0 auto!important;
    padding:3mm 2.5mm 4mm!important;
    box-sizing:border-box!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
    color:#000!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:9.5pt!important;
    line-height:1.28!important;
    overflow:visible!important;
  }
  .receipt-logo-wrap{margin:0 0 2mm!important;text-align:center!important}
  .receipt-logo{
    display:inline-block!important;
    width:auto!important;
    height:auto!important;
    max-width:24mm!important;
    max-height:18mm!important;
    object-fit:contain!important;
  }
  .receipt h2{
    margin:0 0 1.5mm!important;
    padding:0!important;
    font-size:14pt!important;
    line-height:1.15!important;
    text-align:center!important;
    color:#000!important;
  }
  .receipt .center{text-align:center!important}
  .receipt hr{
    margin:2mm 0!important;
    border:0!important;
    border-top:.25mm dashed #555!important;
  }
  .receipt table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    color:#000!important;
    font-size:9pt!important;
  }
  .receipt th,.receipt td{
    padding:1.1mm .5mm!important;
    border:0!important;
    background:transparent!important;
    color:#000!important;
    line-height:1.2!important;
    vertical-align:top!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .receipt th:first-child,.receipt td:first-child{text-align:left!important}
  .receipt th:last-child,.receipt td:last-child{text-align:right!important}
  .receipt-total{font-size:11pt!important;font-weight:900!important}
  .pos-pending-receipt th:nth-child(1),.pos-pending-receipt td:nth-child(1){width:48%!important}
  .pos-pending-receipt th:nth-child(2),.pos-pending-receipt td:nth-child(2){width:22%!important}
  .pos-pending-receipt th:nth-child(3),.pos-pending-receipt td:nth-child(3){width:30%!important}
  .receipt p{margin:2mm 0 0!important}
  .receipt .no-print{display:none!important}
  *{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}
.toast-host{position:fixed;right:20px;top:20px;z-index:300;display:grid;gap:9px}.toast{background:#14243b;border:1px solid var(--line);border-left:4px solid var(--green);color:#fff;padding:12px 15px;border-radius:11px;box-shadow:var(--shadow);transform:translateX(120%);opacity:0;transition:.22s;max-width:360px}.toast.show{transform:translateX(0);opacity:1}.toast.error{border-left-color:var(--red)}

/* Searchable customer dropdown */
.modern-select-menu.searchable-select-menu{padding-top:0;max-height:min(390px,calc(100vh - 20px));}
.modern-select-search-wrap{position:sticky;top:0;z-index:3;margin:0 -1px 6px;padding:9px 7px 8px;background:linear-gradient(180deg,rgba(17,31,53,1) 78%,rgba(17,31,53,.96));border-bottom:1px solid rgba(118,133,166,.2);border-radius:14px 14px 9px 9px;display:flex;align-items:center;}
.modern-select-search-icon{position:absolute;left:19px;width:17px;height:17px;fill:none;stroke:#8799b5;stroke-width:1.9;stroke-linecap:round;pointer-events:none;transition:.16s}
.modern-select-search{width:100%;height:42px;min-height:42px;padding:9px 36px 9px 38px!important;border:1px solid #2d4161!important;border-radius:12px!important;background:#081528!important;color:#f5f7fb!important;font-size:13px;font-weight:650;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:border-color .16s,box-shadow .16s,background .16s}
.modern-select-search::placeholder{color:#72839e}
.modern-select-search:hover{border-color:#42577b!important}
.modern-select-search:focus{border-color:var(--primary2)!important;box-shadow:0 0 0 3px rgba(109,93,252,.14)!important;background:#09182c!important}
.modern-select-search-wrap:focus-within .modern-select-search-icon{stroke:#b9b1ff}
.modern-select-search::-webkit-search-cancel-button{filter:invert(86%) sepia(12%) saturate(329%) hue-rotate(178deg);cursor:pointer}
.modern-select-option[hidden]{display:none!important}
.modern-select-empty{margin:5px 3px 3px;padding:14px 10px;border:1px dashed rgba(118,133,166,.28);border-radius:11px;color:#8394ad;text-align:center;font-size:12px;font-weight:650;background:rgba(7,16,31,.3)}
.modern-select-empty[hidden]{display:none!important}

/* Session item quantity controls: fixed columns keep -, quantity and + perfectly aligned. */
.session-cart-item{min-height:66px}
.session-cart-copy{min-width:0;flex:1}
.session-qty-control{display:grid;grid-template-columns:34px 42px 34px;align-items:center;justify-content:end;gap:6px;flex:0 0 auto}
.session-qty-btn{width:34px;height:34px;min-width:34px;padding:0!important;border-radius:10px;display:grid;place-items:center;font-size:16px;line-height:1}
.session-qty-value{width:42px;min-width:42px;text-align:center;justify-self:center;font-size:15px;font-weight:850;line-height:34px;font-variant-numeric:tabular-nums;white-space:nowrap}
.session-items-total{margin-top:13px;padding:0 2px}
@media(max-width:520px){.session-qty-control{grid-template-columns:32px 36px 32px;gap:5px}.session-qty-btn{width:32px;height:32px;min-width:32px}.session-qty-value{width:36px;min-width:36px;line-height:32px}.session-cart-item{gap:8px}}

/* Combo Offers — v11 */
.combo-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:15px}
.combo-card{position:relative;overflow:hidden;background:linear-gradient(160deg,#111f35,#0a1729 72%);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:transform .16s,border-color .16s,box-shadow .16s}
.combo-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--primary),var(--cyan));opacity:.9}
.combo-card:hover{transform:translateY(-2px);border-color:#3c5074;box-shadow:0 15px 38px rgba(0,0,0,.18)}
.combo-card.inactive{opacity:.62}
.combo-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.combo-card-head h3{font-size:20px;margin:3px 0 0}
.combo-eyebrow{font-size:10px;letter-spacing:.12em;color:#a99fff;font-weight:900}
.combo-price-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:18px 0 6px}
.combo-price{display:block;font-size:31px;line-height:1;font-weight:950;letter-spacing:-.03em}
.combo-old-price{display:block;margin-top:6px;color:var(--muted);font-size:11px}
.combo-normal{color:var(--muted);font-size:12px;margin-bottom:15px}.combo-normal strong{color:#d9e2ef}
.combo-save,.combo-premium{display:inline-flex;align-items:center;min-height:30px;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}
.combo-save{background:rgba(33,199,122,.12);border:1px solid rgba(33,199,122,.28);color:#70e9ad}
.combo-premium{background:rgba(255,191,71,.11);border:1px solid rgba(255,191,71,.25);color:#ffd784}
.combo-components{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.combo-components li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border-radius:11px;background:#091426;border:1px solid rgba(36,53,82,.85);font-size:12px}
.combo-components li span{min-width:0}.combo-components li strong{white-space:nowrap;color:#d7e0ee;font-variant-numeric:tabular-nums}
.combo-meta{display:grid;gap:5px;margin:14px 0;color:var(--muted);font-size:11px}.combo-meta span{overflow-wrap:anywhere}
.combo-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.combo-form-label{font-size:13px;color:#cbd5e6;font-weight:650;margin-bottom:8px}
.day-check-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.day-check{display:block;position:relative;cursor:pointer}.day-check input{position:absolute;opacity:0;pointer-events:none}.day-check span{min-height:42px;border:1px solid var(--line);border-radius:11px;background:#091426;display:grid;place-items:center;color:#aebbd0;font-size:12px;font-weight:800;transition:.16s}.day-check input:checked+span{border-color:var(--primary2);background:rgba(109,93,252,.19);color:#fff;box-shadow:0 0 0 2px rgba(109,93,252,.09)}.day-check input:focus-visible+span{outline:2px solid var(--primary2);outline-offset:2px}
.combo-checkout-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.combo-checkout-summary>div{padding:12px;background:#091426;border:1px solid var(--line);border-radius:12px}.combo-checkout-summary span{display:block;color:var(--muted);font-size:11px}.combo-checkout-summary strong{display:block;margin-top:5px;font-size:16px}.combo-checkout-summary .total{border-color:rgba(109,93,252,.5);background:rgba(109,93,252,.1)}.combo-checkout-summary .total strong{font-size:19px}
@media(max-width:1200px){.combo-grid{grid-template-columns:repeat(2,minmax(250px,1fr))}}
@media(max-width:720px){.combo-grid{grid-template-columns:1fr}.day-check-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.combo-checkout-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:560px){.brand-logo-preview-wrap{align-items:flex-start}.brand-logo-preview{width:76px;height:76px;flex-basis:76px}.brand-logo-actions .btn{width:100%;justify-content:center}}

/* v14 — Mobile focus zoom prevention.
   iOS Safari automatically zooms focused form controls when their computed
   font size is below 16px. Keep every interactive text field at 16px on
   mobile while preserving normal user pinch-to-zoom accessibility. */
@media (max-width:850px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select,
  textarea,
  .modern-select-search{
    font-size:16px!important;
  }
  .modern-select-trigger,
  .modern-date-trigger{
    font-size:16px;
  }
  input,select,textarea,button{
    touch-action:manipulation;
  }
}


/* v15 — Planned session timeout decision popup */
.time-over-modal{width:min(620px,100%);border-color:rgba(255,191,71,.42);box-shadow:0 24px 80px rgba(0,0,0,.48),0 0 0 1px rgba(255,191,71,.06)}
.time-over-modal .modal-header{background:linear-gradient(180deg,rgba(255,191,71,.08),rgba(255,191,71,0))}
.time-over-wrap{text-align:center}
.time-over-icon{width:68px;height:68px;margin:0 auto 12px;border-radius:20px;display:grid;place-items:center;font-size:34px;background:rgba(255,191,71,.12);border:1px solid rgba(255,191,71,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.time-over-title{font-size:25px;font-weight:950;letter-spacing:-.025em}
.time-over-copy{margin:7px 0 18px;color:var(--muted)}
.time-over-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}
.time-over-grid>div{padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#091426}
.time-over-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.time-over-grid strong{font-size:16px;font-variant-numeric:tabular-nums}
.time-over-note{margin-top:14px;text-align:left}
.time-over-modal .modal-footer .btn{min-width:145px}
@media(max-width:560px){.time-over-grid{grid-template-columns:1fr}.time-over-modal .modal-footer{display:grid;grid-template-columns:1fr}.time-over-modal .modal-footer .btn{width:100%}}

/* v16 — POS Current Cart quantity alignment */
.pos-cart-item{min-height:66px}
.pos-cart-copy{min-width:0;flex:1}
.pos-qty-control{display:grid;grid-template-columns:34px 42px 34px;align-items:center;justify-content:end;gap:6px;flex:0 0 auto}
.pos-qty-btn{width:34px;height:34px;min-width:34px;padding:0!important;border-radius:10px;display:grid;place-items:center;font-size:16px;line-height:1}
.pos-qty-value{width:42px;min-width:42px;height:34px;display:grid;place-items:center;text-align:center;justify-self:center;font-size:15px;font-weight:850;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:520px){
  .pos-qty-control{grid-template-columns:32px 38px 32px;gap:5px}
  .pos-qty-btn{width:32px;height:32px;min-width:32px}
  .pos-qty-value{width:38px;min-width:38px;height:32px}
  .pos-cart-item{gap:8px}
}


/* v18 — Compact modern combined date & time picker */
.modern-datetime{position:relative;display:block;width:100%;min-width:0}
.modern-datetime-native{position:absolute!important;left:0!important;top:0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.modern-datetime-trigger{width:100%;min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#0a1628,#091426);color:var(--text);font:inherit;font-weight:700;text-align:left;outline:none;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:border-color .18s,box-shadow .18s,background .18s,transform .08s}
.modern-datetime-trigger:hover{border-color:#3a4d70;background:linear-gradient(180deg,#0d1b30,#091426)}
.modern-datetime-trigger:focus,.modern-datetime-trigger.open{border-color:var(--primary2);box-shadow:0 0 0 3px rgba(109,93,252,.16),inset 0 1px 0 rgba(255,255,255,.035)}
.modern-datetime-trigger.invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,93,108,.13)}
.modern-datetime-trigger:disabled{opacity:.52;cursor:not-allowed}
.modern-datetime-trigger.placeholder .modern-datetime-value{color:#7f8da4}
.modern-datetime-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modern-datetime-icon{width:19px;height:19px;flex:none;fill:none;stroke:#aebbd0;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;transition:stroke .18s,transform .18s}
.modern-datetime-trigger.open .modern-datetime-icon{stroke:#fff;transform:translateY(-1px)}

/* The picker is intentionally compact so date + time are visible together. */
.modern-datetime-picker{position:fixed;z-index:670;width:min(334px,calc(100vw - 20px));padding:9px;background:linear-gradient(165deg,rgba(17,31,53,.997),rgba(8,19,35,.997));border:1px solid rgba(131,146,180,.36);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.56),0 0 0 1px rgba(255,255,255,.025) inset;overflow:auto;overscroll-behavior:contain;max-height:calc(100vh - 20px);transform-origin:top center;animation:modernDateIn .15s ease-out;backdrop-filter:blur(18px);scrollbar-width:thin;scrollbar-color:rgba(137,123,255,.55) rgba(7,17,31,.35)}
.modern-datetime-picker.opens-up{transform-origin:bottom center}
.modern-datetime-picker[hidden]{display:none!important}
.modern-datetime-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 0 6px}
.modern-datetime-month{font-size:14px;font-weight:850;color:#f7f9fd;letter-spacing:.01em}
.modern-datetime-nav{display:flex;gap:5px}
.modern-datetime-nav-btn{width:30px;height:30px;border:1px solid rgba(116,132,166,.3);border-radius:9px;background:#0b192d;color:#dce5f3;display:grid;place-items:center;padding:0;outline:none;transition:.16s}
.modern-datetime-nav-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.modern-datetime-nav-btn:hover,.modern-datetime-nav-btn:focus{background:rgba(109,93,252,.2);border-color:rgba(143,130,255,.62);color:#fff;box-shadow:0 0 0 2px rgba(109,93,252,.09)}
.modern-datetime-weekdays,.modern-datetime-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.modern-datetime-weekdays{padding:0 0 4px;color:#8798b3;font-size:10px;font-weight:800;text-align:center}
.modern-datetime-weekdays span{display:grid;place-items:center;height:18px}
.modern-datetime-day{height:28px;min-height:28px;min-width:0;border:1px solid transparent;border-radius:8px;background:transparent;color:#dbe5f3;display:grid;place-items:center;padding:0;font:inherit;font-size:11px;font-weight:750;line-height:1;outline:none;transition:background .14s,border-color .14s,color .14s,transform .08s,box-shadow .14s}
.modern-datetime-day:hover:not(:disabled),.modern-datetime-day:focus:not(:disabled){background:rgba(109,93,252,.16);border-color:rgba(143,130,255,.34);color:#fff}
.modern-datetime-day:active:not(:disabled){transform:scale(.92)}
.modern-datetime-day.outside{color:#566985}
.modern-datetime-day.today:not(.selected){border-color:rgba(50,198,232,.7);color:#b9f1fb;box-shadow:inset 0 0 0 1px rgba(50,198,232,.12)}
.modern-datetime-day.selected{background:linear-gradient(135deg,var(--primary),#897bff);border-color:#9b90ff;color:#fff;box-shadow:0 5px 13px rgba(109,93,252,.28)}
.modern-datetime-day:disabled{opacity:.22;cursor:not-allowed}

.modern-datetime-time-panel{margin-top:6px;padding:7px 8px;border:1px solid rgba(112,128,160,.24);border-radius:13px;background:linear-gradient(180deg,rgba(9,20,38,.88),rgba(7,17,31,.88))}
.modern-datetime-time-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px}
.modern-datetime-time-head span{font-size:12px;font-weight:850;color:#f5f8fc}
.modern-datetime-time-head small{color:#7f91ad;font-size:9px;font-weight:700}
.modern-datetime-time-controls{display:grid;grid-template-columns:minmax(72px,1fr) 7px minmax(72px,1fr) 60px;align-items:center;gap:5px}
.modern-time-unit{display:grid;grid-template-columns:23px minmax(28px,1fr) 23px;grid-template-rows:29px 10px;align-items:center;justify-items:center;border:1px solid rgba(112,128,160,.22);border-radius:10px;padding:3px 4px;background:#0a1729;min-width:0}
.modern-time-unit button{width:23px;height:23px;border:0;border-radius:7px;background:rgba(255,255,255,.025);color:#8fa2bf;font-size:9px;line-height:1;display:grid;place-items:center;padding:0;outline:none;transition:.14s}
/* Put decrease on the left and increase on the right while keeping existing markup/logic. */
.modern-time-unit button:first-of-type{grid-column:3;grid-row:1}
.modern-time-unit strong{grid-column:2;grid-row:1;font-size:18px;line-height:1;font-weight:950;color:#fff;font-variant-numeric:tabular-nums}
.modern-time-unit button:nth-of-type(2){grid-column:1;grid-row:1}
.modern-time-unit span{grid-column:1/-1;grid-row:2;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#657994;font-weight:800}
.modern-time-unit button:hover,.modern-time-unit button:focus{background:rgba(109,93,252,.18);color:#fff}
.modern-time-separator{font-size:20px;font-weight:900;color:#7587a3;text-align:center;transform:none}
.modern-ampm{display:grid;grid-template-rows:1fr 1fr;gap:4px;height:48px}
.modern-ampm button{min-height:0;border:1px solid rgba(112,128,160,.28);border-radius:9px;background:#0a1729;color:#91a4c0;font:inherit;font-size:10px;font-weight:850;outline:none;transition:.15s;padding:0}
.modern-ampm button:hover,.modern-ampm button:focus{border-color:rgba(143,130,255,.55);color:#fff}
.modern-ampm button.active{background:linear-gradient(135deg,rgba(109,93,252,.95),rgba(137,123,255,.95));border-color:#9b90ff;color:#fff;box-shadow:0 4px 11px rgba(109,93,252,.22)}

.modern-datetime-footer{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:6px;padding-top:6px;border-top:1px solid rgba(112,128,160,.2)}
.modern-datetime-footer-right{display:flex;gap:5px}
.modern-datetime-footer-btn{border:0;border-radius:8px;background:transparent;color:#94a8c5;padding:7px 8px;font:inherit;font-size:11px;font-weight:800;outline:none;transition:.15s}
.modern-datetime-footer-btn.now{color:#8edff0}
.modern-datetime-footer-btn:hover,.modern-datetime-footer-btn:focus{background:rgba(109,93,252,.15);color:#fff}
.modern-datetime-footer-btn:disabled{opacity:.35;cursor:not-allowed}
.modern-datetime-apply{border:1px solid rgba(159,146,255,.65);border-radius:9px;background:linear-gradient(135deg,var(--primary),#897bff);color:#fff;padding:7px 11px;font:inherit;font-size:11px;font-weight:900;outline:none;box-shadow:0 5px 14px rgba(109,93,252,.24);transition:.15s}
.modern-datetime-apply:hover,.modern-datetime-apply:focus{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 7px 18px rgba(109,93,252,.31)}

@media(max-width:850px){.modern-datetime-trigger{font-size:16px}}
@media(max-width:430px){
  .modern-datetime-picker{width:min(318px,calc(100vw - 14px));padding:8px;border-radius:16px}
  .modern-datetime-day{height:27px;min-height:27px;font-size:11px}
  .modern-datetime-time-controls{grid-template-columns:minmax(68px,1fr) 6px minmax(68px,1fr) 56px;gap:4px}
  .modern-time-unit{grid-template-columns:22px minmax(26px,1fr) 22px}
  .modern-time-unit button{width:22px;height:22px}
  .modern-time-unit strong{font-size:17px}
  .modern-ampm{height:46px}
  .modern-datetime-footer{gap:5px}
  .modern-datetime-footer-right{gap:4px}
}

/* v20 — make the POS Bill / Print action clearly visible in the payment footer. */
.pos-bill-btn{min-width:126px;font-weight:800;border-color:rgba(128,112,255,.65);background:rgba(108,92,231,.14)}
.pos-bill-btn:hover{background:rgba(108,92,231,.24);border-color:var(--primary);transform:translateY(-1px)}
@media(max-width:560px){.modal-footer .pos-bill-btn{order:2}.modal-footer [data-action="close-modal"]{order:1}.modal-footer [data-action="pos-payment-submit"]{order:3}}

/* v21 — in-app POS bill preview, matching the Live Station receipt flow. */
.pos-pending-receipt .pending-badge{display:inline-block;margin:10px 0 2px;padding:5px 10px;border-radius:999px;background:#fff3cd;color:#7a4b00;border:1px solid #efd58a;font-size:11px;font-weight:900;letter-spacing:.03em}

/* v26 — Admin-controlled PS5 cabin player pricing */
.player-pricing-settings{margin:4px 0 2px;padding:16px;border:1px solid rgba(139,124,255,.28);border-radius:18px;background:linear-gradient(180deg,rgba(109,93,252,.08),rgba(109,93,252,.025))}
.player-pricing-head strong{display:block;font-size:15px;color:var(--text,#f6f7ff);margin-bottom:4px}
.player-pricing-head p{margin:0 0 14px;color:var(--muted,#9da3ba);font-size:13px;line-height:1.45}
.player-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.player-price-card{display:block!important;margin:0;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025)}
.player-price-card>span{display:block;margin-bottom:8px;font-size:12px;font-weight:700;color:var(--muted,#aeb3c8)}
.player-price-input{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center}
.player-price-input>b{font-size:15px;color:#a89cff}
.player-price-input input{width:100%;min-width:0;text-align:center;font-weight:800}
.player-price-input small{white-space:nowrap;color:var(--muted,#9da3ba);font-size:11px}
@media(max-width:760px){.player-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.player-price-grid{grid-template-columns:1fr}}


/* v28 — activity-specific additional-player pricing */
.activity-player-pricing-list{display:grid;gap:12px;margin-top:12px}
.activity-player-pricing-card{padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.018)}
.activity-player-pricing-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.activity-player-pricing-title strong{font-size:14px;color:var(--text,#f6f7ff)}
.activity-player-pricing-title small{max-width:58%;text-align:right;color:var(--muted,#9da3ba);font-size:11px;line-height:1.35}
@media(max-width:620px){.activity-player-pricing-title{display:block}.activity-player-pricing-title small{display:block;max-width:none;text-align:left;margin-top:4px}}

/* v29 — Unified mobile button system
   Keeps every business action touch-friendly, aligned and consistent on phones
   without enlarging compact controls such as quantity steppers/date-picker arrows. */
@media (max-width:850px){
  .btn{
    min-height:46px;
    padding:11px 14px;
    border-radius:13px;
    font-size:14px;
    line-height:1.2;
    text-align:center;
    white-space:normal;
    overflow-wrap:anywhere;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .btn-sm{
    min-height:40px;
    padding:9px 11px;
    border-radius:11px;
    font-size:13px;
  }
  .btn:active:not(:disabled){transform:scale(.98)}

  .icon-btn{
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    border-radius:12px;
    display:inline-grid;
    place-items:center;
    padding:0;
    line-height:1;
    -webkit-tap-highlight-color:transparent;
  }

  .main-nav button{
    min-height:46px;
    padding:11px 13px;
    border-radius:13px;
  }
  .tabs{gap:8px;padding-bottom:2px}
  .tab{
    min-height:42px;
    padding:9px 13px;
    border-radius:11px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .quick-tile{
    min-height:72px;
    border-radius:15px;
    -webkit-tap-highlight-color:transparent;
  }

  .panel-actions,
  .station-actions,
  .actions,
  .toolbar-group,
  .brand-logo-actions,
  .permission-actions,
  .combo-actions{
    align-items:stretch;
  }

  .modal-footer .btn{
    min-width:120px;
  }
}

@media (max-width:620px){
  .page-content{padding-left:12px;padding-right:12px}

  /* Header actions stay compact instead of overflowing the title area. */
  .topbar{gap:10px}
  .topbar>div:nth-child(2){min-width:0;flex:1}
  .topbar h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar-actions{gap:7px;flex:none}
  .topbar-actions .btn{
    width:46px;
    min-width:46px;
    height:46px;
    min-height:46px;
    padding:0!important;
    border-radius:14px;
    white-space:nowrap;
  }

  /* Card/page action groups become clean equal-width mobile buttons. */
  .station-actions,
  .combo-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .station-actions .btn,
  .combo-actions .btn{
    width:100%;
    min-width:0;
  }

  .panel-header{
    flex-direction:column;
    align-items:stretch;
  }
  .panel-actions{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .panel-actions .btn{width:100%;min-width:0}

  .toolbar{align-items:stretch}
  .toolbar-group{width:100%}
  .toolbar-group>.btn{
    flex:1 1 140px;
    min-width:0;
  }

  .brand-logo-actions,
  .permission-actions{
    width:100%;
  }
  .brand-logo-actions .btn,
  .permission-actions .btn{
    flex:1 1 130px;
    min-width:0;
  }

  /* Modal actions stay visible and evenly spaced on narrow screens. */
  .modal-footer{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  }
  .modal-footer .btn{
    width:100%;
    min-width:0;
    margin:0;
  }
  .modal-footer .btn:only-child{grid-column:1/-1}

  /* Table-row actions remain compact because tables already scroll horizontally. */
  td .actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  td .actions .btn{
    width:auto;
    min-width:88px;
    min-height:40px;
    flex:0 1 auto;
  }

  .input-row{flex-wrap:wrap}
  .input-row>.btn{flex:1 1 120px}
}

@media (max-width:430px){
  .station-actions,
  .combo-actions,
  .panel-actions,
  .modal-footer{
    grid-template-columns:1fr;
  }
  .station-actions .btn,
  .combo-actions .btn,
  .panel-actions .btn,
  .modal-footer .btn{
    width:100%;
  }

  .toolbar-group>.btn,
  .brand-logo-actions .btn,
  .permission-actions .btn{
    flex:1 1 100%;
    width:100%;
  }

  .btn{min-height:46px}
  .btn-sm{min-height:40px}
}


/* v30 — polished Settings page for mobile phones and small tablets */
.settings-page{min-width:0}
.settings-backup-actions{margin-top:16px}
.settings-save-row{display:flex;justify-content:flex-start}

@media (max-width:850px){
  .settings-page{width:100%;max-width:100%;overflow:hidden}
  .settings-top-grid{gap:14px}
  .settings-page .panel{min-width:0}
  .settings-page .form-grid{gap:13px}
  .settings-page .form-grid>label,
  .settings-page .form-grid>.full{min-width:0;width:100%}
  .settings-page input,
  .settings-page textarea,
  .settings-page select,
  .settings-page .modern-select-trigger,
  .settings-page .modern-datetime-trigger{max-width:100%}
  .settings-page textarea{min-height:92px;resize:vertical}
  .settings-page .settings-save-row .btn{min-width:180px}
  .settings-page .table-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:thin}
}

@media (max-width:620px){
  .page-content:has(.settings-page){padding:12px 10px 34px}
  .settings-page{font-size:14px}
  .settings-page .settings-top-grid{gap:12px}
  .settings-page .panel{padding:14px;border-radius:16px}
  .settings-page .section-gap{margin-top:12px}
  .settings-page .panel-header{gap:9px;margin-bottom:13px}
  .settings-page .panel-header h3{font-size:16px;line-height:1.25}
  .settings-page .panel-header p{font-size:12px;line-height:1.45;margin-top:4px}
  .settings-page .form-grid{gap:11px}
  .settings-page .form-grid>label{gap:6px;font-size:12px;line-height:1.35}
  .settings-page input,
  .settings-page textarea,
  .settings-page select,
  .settings-page .modern-select-trigger,
  .settings-page .modern-datetime-trigger{width:100%;min-width:0;box-sizing:border-box}
  .settings-page .number-stepper{min-width:0;max-width:100%}
  .settings-page .number-stepper>input[type="number"]{width:100%;min-width:0}

  /* Business logo becomes a clean mobile card instead of squeezing text/buttons. */
  .settings-page .brand-logo-settings{padding:12px;border-radius:14px}
  .settings-page .brand-logo-preview-wrap{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:12px}
  .settings-page .brand-logo-preview{width:72px;height:72px;flex-basis:auto;border-radius:17px}
  .settings-page .brand-logo-copy>strong{font-size:13px}
  .settings-page .brand-logo-copy>p{font-size:11px;line-height:1.45;margin:4px 0 9px}
  .settings-page .brand-logo-actions{display:grid;grid-template-columns:1fr;gap:7px}
  .settings-page .brand-logo-actions .btn,
  .settings-page .brand-logo-actions .logo-upload-btn{width:100%;min-width:0;margin:0}
  .settings-page .logo-file-name{display:block;margin-top:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

  /* Player pricing is one readable card per price on mobile. */
  .settings-page .player-pricing-settings{padding:12px;border-radius:15px;margin:0}
  .settings-page .player-pricing-head strong{font-size:14px;line-height:1.3}
  .settings-page .player-pricing-head p{font-size:11px;line-height:1.5;margin-bottom:11px}
  .settings-page .activity-player-pricing-list{gap:10px;margin-top:10px}
  .settings-page .activity-player-pricing-card{padding:11px;border-radius:13px}
  .settings-page .activity-player-pricing-title{margin-bottom:9px}
  .settings-page .activity-player-pricing-title strong{font-size:13px}
  .settings-page .activity-player-pricing-title small{font-size:10px;line-height:1.4}
  .settings-page .player-price-grid{grid-template-columns:1fr;gap:8px}
  .settings-page .player-price-card{padding:10px;border-radius:12px}
  .settings-page .player-price-card>span{font-size:11px;margin-bottom:7px}
  .settings-page .player-price-input{grid-template-columns:18px minmax(0,1fr);gap:7px 8px}
  .settings-page .player-price-input>b{font-size:14px;text-align:center}
  .settings-page .player-price-input>.number-stepper,
  .settings-page .player-price-input>input{grid-column:2;min-width:0}
  .settings-page .player-price-input small{grid-column:2;white-space:normal;font-size:10px;margin-top:-2px}
  .settings-page .player-pricing-settings>.help{display:block;margin-top:10px;line-height:1.45}

  /* Save and backup actions use full-width touch targets. */
  .settings-page .settings-save-row{display:block}
  .settings-page .settings-save-row .btn{width:100%;min-width:0}
  .settings-page .settings-backup-panel .notice{font-size:12px;line-height:1.5;padding:11px 12px}
  .settings-page .settings-backup-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px!important}
  .settings-page .settings-backup-actions .btn{width:100%;min-width:0;margin:0}

  /* Rate/station configuration stays usable without breaking the page width. */
  .settings-page .settings-table-panel>.panel-header>.btn{width:100%;min-width:0}
  .settings-page .settings-table-panel .table-wrap{width:100%;max-width:100%;border-radius:12px}
  .settings-page .settings-table-panel table{min-width:680px}
  .settings-page .settings-table-panel th,
  .settings-page .settings-table-panel td{padding:10px 9px;font-size:12px}
  .settings-page .settings-table-panel th{font-size:10px}
  .settings-page .settings-table-panel td .actions{flex-wrap:nowrap}
  .settings-page .settings-table-panel td .actions .btn{min-width:76px}
}

@media (max-width:430px){
  .page-content:has(.settings-page){padding-left:8px;padding-right:8px}
  .settings-page .panel{padding:12px;border-radius:15px}
  .settings-page .brand-logo-preview-wrap{grid-template-columns:1fr;text-align:center}
  .settings-page .brand-logo-preview{margin:0 auto;width:82px;height:82px}
  .settings-page .brand-logo-copy>p{text-align:left}
  .settings-page .logo-file-name{text-align:left}
  .settings-page .player-pricing-settings{padding:10px}
  .settings-page .activity-player-pricing-card{padding:10px}
  .settings-page .settings-table-panel table{min-width:640px}
}

/* v31 — polished mobile Quick Sale + Current Cart layout */
.pos-top-grid{grid-template-columns:1.45fr .8fr}
.pos-quick-sale-panel,.pos-cart-panel{min-width:0}
.pos-product-search{width:100%;margin-bottom:15px}
.pos-cart-list{gap:10px}
.pos-cart-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-cart-summary{margin-top:15px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(7,18,34,.58)}
.pos-cart-summary .kpi-row{margin:7px 0}
.pos-cart-total{padding-top:9px;margin-top:9px!important;border-top:1px solid var(--line)}
.pos-cart-total .metric-big{font-size:25px}
.pos-checkout-btn{margin-top:12px;min-height:48px}

@media (max-width:850px){
  /* v30 still had an inline desktop grid width here; v31 makes POS truly single-column on mobile/tablet. */
  .pos-top-grid{grid-template-columns:1fr!important;gap:14px}
}

@media (max-width:620px){
  .pos-top-grid{gap:12px}
  .pos-top-grid>.panel{padding:14px;border-radius:16px}

  /* Keep title + main action tidy instead of stacking into oversized full-width buttons. */
  .pos-top-grid .panel-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:10px;
    margin-bottom:13px;
  }
  .pos-top-grid .panel-header>div{min-width:0}
  .pos-top-grid .panel-header h3{font-size:16px;line-height:1.25}
  .pos-top-grid .panel-header p{font-size:11px;line-height:1.4;margin-top:4px}
  .pos-top-grid .panel-header>.btn{
    width:auto;
    min-width:0;
    min-height:40px;
    padding:8px 11px;
    font-size:12px;
    border-radius:11px;
    white-space:nowrap;
  }

  .pos-product-search{
    min-height:46px;
    margin-bottom:11px;
    border-radius:12px;
  }

  /* Quick products stay compact and scannable: two cards per row on normal phones. */
  .pos-quick-tiles{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px;
  }
  .pos-quick-tiles .quick-tile{
    min-width:0;
    min-height:104px;
    padding:11px;
    border-radius:13px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:5px;
  }
  .pos-quick-tiles .quick-tile>span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:10px;
  }
  .pos-quick-tiles .quick-tile>strong{
    margin-top:2px;
    font-size:13px;
    line-height:1.3;
    min-height:34px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .pos-quick-tiles .quick-tile .kpi-row{
    width:100%;
    margin:4px 0 0;
    align-items:flex-end;
    gap:5px;
  }
  .pos-quick-tiles .quick-tile .kpi-row b{font-size:13px;white-space:nowrap}
  .pos-quick-tiles .quick-tile .kpi-row small{font-size:9px;white-space:nowrap}

  /* Current cart gets its own compact mobile rhythm and protected quantity controls. */
  .pos-cart-panel .panel-header{align-items:center}
  .pos-clear-btn{min-width:62px!important}
  .pos-cart-list{gap:8px}
  .pos-cart-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:10px 11px;
    min-height:62px;
    border-radius:12px;
  }
  .pos-cart-copy{min-width:0}
  .pos-cart-copy strong{font-size:13px;line-height:1.3}
  .pos-cart-copy small{font-size:10px;margin-top:3px}
  .pos-qty-control{
    grid-template-columns:32px 36px 32px;
    gap:4px;
    justify-self:end;
  }
  .pos-qty-btn{
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    min-height:32px!important;
    padding:0!important;
    border-radius:10px!important;
    font-size:16px!important;
  }
  .pos-qty-value{width:36px;min-width:36px;height:32px;font-size:14px}

  .pos-cart-panel .empty-state{padding:28px 14px}
  .pos-cart-summary{
    margin-top:11px;
    padding:11px 12px 12px;
    border-radius:13px;
  }
  .pos-cart-summary .kpi-row{margin:6px 0}
  .pos-cart-summary .kpi-row span{font-size:12px}
  .pos-cart-summary .kpi-row strong{font-size:13px}
  .pos-cart-total{padding-top:8px}
  .pos-cart-total .metric-big{font-size:22px!important}
  .pos-checkout-btn{
    width:100%;
    min-height:48px;
    margin-top:10px;
    border-radius:12px;
    font-size:14px;
  }
}

@media (max-width:430px){
  .pos-top-grid>.panel{padding:12px}
  .pos-top-grid .panel-header{gap:8px}
  .pos-top-grid .panel-header>.btn{padding-left:9px;padding-right:9px}
  .pos-quick-tiles{gap:7px}
  .pos-quick-tiles .quick-tile{min-height:100px;padding:10px}

  /* Cart rows can breathe on very narrow phones without clipping the +/- buttons. */
  .pos-cart-item{
    grid-template-columns:1fr;
    gap:8px;
  }
  .pos-qty-control{justify-self:start}
}

@media (max-width:340px){
  .pos-quick-tiles{grid-template-columns:1fr!important}
}
/* v32 — mobile Live Stations: hide the horizontal scrollbar line below status tabs. */
@media(max-width:768px){
  .station-filter-tabs{
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-overflow-scrolling:touch;
  }
  .station-filter-tabs::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }
}

/* v33 — keep Opening / Closing time controls fully inside Settings cards on mobile */
@media (max-width:850px){
  .settings-page .settings-business-panel,
  .settings-page #settingsForm,
  .settings-page .settings-time-field{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  .settings-page #settingsForm{
    grid-template-columns:minmax(0,1fr)!important;
    overflow:visible;
  }

  .settings-page .settings-time-field{
    overflow:hidden;
  }

  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    display:block;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    inline-size:100%!important;
    max-inline-size:100%!important;
    min-inline-size:0!important;
    box-sizing:border-box!important;
    margin:0!important;
    overflow:hidden;
    text-align:center;
    font-variant-numeric:tabular-nums;
  }

  .settings-page .settings-time-input::-webkit-date-and-time-value,
  .settings-page input[name="openingTime"]::-webkit-date-and-time-value,
  .settings-page input[name="closingTime"]::-webkit-date-and-time-value{
    min-width:0;
    width:100%;
    text-align:center;
  }
}

@media (max-width:430px){
  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    padding-left:12px;
    padding-right:12px;
  }
}

/* v34 — Customers mobile membership badge + top-right Start Session icon alignment */
.customer-membership-expiry{display:block;margin-top:6px;white-space:nowrap;line-height:1.25}

@media (max-width:620px){
  /* Keep membership name as one clean pill instead of wrapping “Starter Pack”. */
  .customers-table .customer-membership-cell{
    min-width:132px;
    vertical-align:middle;
  }
  .customers-table .customer-membership-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    max-width:100%;
    padding:6px 10px;
    border:1px solid rgba(143,130,255,.34);
    border-radius:999px;
    background:linear-gradient(135deg,rgba(109,93,252,.22),rgba(143,130,255,.13));
    color:#e8e4ff;
    font-size:11px;
    font-weight:850;
    line-height:1;
    white-space:nowrap;
    letter-spacing:0;
  }
  .customers-table .customer-membership-expiry{
    margin-top:7px;
    font-size:10px;
    line-height:1.25;
    white-space:nowrap;
  }

  /* Use a CSS play triangle so the icon is optically centered in the purple square. */
  .topbar-actions [data-action="quick-session"]{
    display:grid!important;
    place-items:center!important;
    gap:0!important;
    font-size:0!important;
    line-height:0!important;
    padding:0!important;
  }
  .topbar-actions [data-action="quick-session"]::before{content:none!important}
  .topbar-actions [data-action="quick-session"]::after{
    content:""!important;
    display:block!important;
    width:0!important;
    height:0!important;
    border-top:7px solid transparent!important;
    border-bottom:7px solid transparent!important;
    border-left:11px solid #fff!important;
    transform:translateX(1px);
    margin:0!important;
    padding:0!important;
  }
}


/* v35 — mobile Settings Opening / Closing time: equal inset, full rounded box, centered value */
@media (max-width:850px){
  .settings-page .settings-time-field{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    overflow:visible;
    padding:0 2px 2px;
  }

  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:calc(100% - 4px)!important;
    max-width:calc(100% - 4px)!important;
    min-width:0!important;
    inline-size:calc(100% - 4px)!important;
    max-inline-size:calc(100% - 4px)!important;
    min-inline-size:0!important;
    min-height:58px!important;
    box-sizing:border-box!important;
    margin:0 2px!important;
    padding:13px 42px!important;
    border:1px solid var(--line)!important;
    border-radius:16px!important;
    background:#091426!important;
    background-clip:padding-box!important;
    color:var(--text)!important;
    text-align:center!important;
    line-height:1.2!important;
    font-variant-numeric:tabular-nums;
    overflow:visible!important;
  }

  .settings-page .settings-time-input::-webkit-date-and-time-value,
  .settings-page input[name="openingTime"]::-webkit-date-and-time-value,
  .settings-page input[name="closingTime"]::-webkit-date-and-time-value{
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    padding:0;
    text-align:center;
    line-height:1.2;
  }

  .settings-page .settings-time-input::-webkit-datetime-edit,
  .settings-page input[name="openingTime"]::-webkit-datetime-edit,
  .settings-page input[name="closingTime"]::-webkit-datetime-edit{
    width:100%;
    min-width:0;
    padding:0;
    text-align:center;
  }
}

@media (max-width:430px){
  .settings-page .settings-time-field{padding-left:1px;padding-right:1px}
  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    width:calc(100% - 6px)!important;
    max-width:calc(100% - 6px)!important;
    inline-size:calc(100% - 6px)!important;
    max-inline-size:calc(100% - 6px)!important;
    margin-left:3px!important;
    margin-right:3px!important;
    min-height:56px!important;
    padding:12px 38px!important;
    border-radius:15px!important;
  }
}


/* v36 — mobile Settings time control: outer shell owns the full border/radius.
   This avoids native mobile time-input rendering clipping the right edge. */
.settings-time-control{display:block;width:100%;min-width:0;box-sizing:border-box}

@media (max-width:850px){
  .settings-page .settings-time-field{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:0!important;
    gap:8px!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }

  .settings-page .settings-time-control{
    display:block!important;
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:0!important;
    border:1px solid var(--line)!important;
    border-radius:16px!important;
    background:#091426!important;
    overflow:hidden!important;
    isolation:isolate;
  }

  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    inline-size:100%!important;
    max-inline-size:100%!important;
    min-inline-size:0!important;
    min-height:58px!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:13px 42px!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--text)!important;
    text-align:center!important;
    line-height:1.2!important;
    font-variant-numeric:tabular-nums;
    box-shadow:none!important;
    overflow:hidden!important;
  }

  .settings-page .settings-time-input:focus,
  .settings-page input[name="openingTime"]:focus,
  .settings-page input[name="closingTime"]:focus{
    outline:0!important;
    box-shadow:none!important;
  }

  .settings-page .settings-time-control:focus-within{
    border-color:var(--primary2)!important;
    box-shadow:0 0 0 3px rgba(109,93,252,.12)!important;
  }

  .settings-page .settings-time-input::-webkit-date-and-time-value,
  .settings-page input[name="openingTime"]::-webkit-date-and-time-value,
  .settings-page input[name="closingTime"]::-webkit-date-and-time-value,
  .settings-page .settings-time-input::-webkit-datetime-edit,
  .settings-page input[name="openingTime"]::-webkit-datetime-edit,
  .settings-page input[name="closingTime"]::-webkit-datetime-edit{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    text-align:center!important;
  }
}

@media (max-width:430px){
  .settings-page .settings-time-control{
    border-radius:15px!important;
  }
  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    min-height:56px!important;
    padding:12px 36px!important;
  }
}


/* v37 — mobile Settings business hours: custom visual shell keeps equal spacing on every side. */
.settings-hours-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;min-width:0}
.settings-time-display{display:none}

@media (max-width:850px){
  .settings-page .settings-hours-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    box-sizing:border-box!important;
  }

  .settings-page .settings-time-field{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }

  .settings-page .settings-time-control{
    position:relative!important;
    display:grid!important;
    place-items:center!important;
    width:calc(100% - 16px)!important;
    max-width:calc(100% - 16px)!important;
    min-width:0!important;
    min-height:60px!important;
    margin:0 8px!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    border:1px solid var(--line)!important;
    border-radius:16px!important;
    background:#091426!important;
    overflow:hidden!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.02)!important;
  }

  .settings-page .settings-time-display{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:34px!important;
    margin:0!important;
    padding:0!important;
    color:var(--text)!important;
    font-size:20px!important;
    font-weight:700!important;
    line-height:1.2!important;
    text-align:center!important;
    font-variant-numeric:tabular-nums!important;
    pointer-events:none!important;
    white-space:nowrap!important;
  }

  /* Keep the native time picker fully clickable, but let the custom display own the mobile visuals. */
  .settings-page .settings-time-input,
  .settings-page input[name="openingTime"],
  .settings-page input[name="closingTime"]{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:inherit!important;
    background:transparent!important;
    color:transparent!important;
    caret-color:transparent!important;
    opacity:.001!important;
    cursor:pointer!important;
    box-shadow:none!important;
    outline:0!important;
    appearance:none!important;
    -webkit-appearance:none!important;
  }

  .settings-page .settings-time-control:focus-within{
    border-color:var(--primary2)!important;
    box-shadow:0 0 0 3px rgba(109,93,252,.12),inset 0 1px 0 rgba(255,255,255,.02)!important;
  }
}

@media (max-width:430px){
  .settings-page .settings-time-control{
    width:calc(100% - 12px)!important;
    max-width:calc(100% - 12px)!important;
    min-height:58px!important;
    margin-left:6px!important;
    margin-right:6px!important;
    padding:11px 12px!important;
    border-radius:15px!important;
  }
  .settings-page .settings-time-display{font-size:18px!important}
}

/* v38 — mobile top-right Start Session play icon: exact equal inset on all sides */
@media (max-width:620px){
  .topbar-actions [data-action="quick-session"]{
    position:relative!important;
    display:grid!important;
    place-items:center!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    padding:0!important;
    border-radius:14px!important;
    overflow:hidden!important;
    font-size:0!important;
    line-height:0!important;
  }
  .topbar-actions [data-action="quick-session"]::before{
    content:none!important;
    display:none!important;
  }
  .topbar-actions [data-action="quick-session"]::after{
    content:""!important;
    display:block!important;
    width:16px!important;
    height:18px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:#fff!important;
    clip-path:polygon(0 0,100% 50%,0 100%)!important;
    -webkit-clip-path:polygon(0 0,100% 50%,0 100%)!important;
    transform:none!important;
    position:static!important;
    box-sizing:border-box!important;
  }
}

/* v39 — mobile Start Session triangle: equal inset left/right/top/bottom */
@media (max-width:620px){
  .topbar-actions [data-action="quick-session"]{
    position:relative!important;
    display:block!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    padding:0!important;
    border-radius:14px!important;
    overflow:hidden!important;
    font-size:0!important;
    line-height:0!important;
  }
  .topbar-actions [data-action="quick-session"]::before{
    content:none!important;
    display:none!important;
  }
  .topbar-actions [data-action="quick-session"]::after{
    content:""!important;
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:16px!important;
    height:16px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:#fff!important;
    clip-path:polygon(0 0,100% 50%,0 100%)!important;
    -webkit-clip-path:polygon(0 0,100% 50%,0 100%)!important;
    transform:translate(-50%,-50%)!important;
    transform-origin:center!important;
    box-sizing:border-box!important;
    pointer-events:none!important;
  }
}

/* v40: Center the login branding block inside the login card. */
.login-card > .brand-mark{
  margin-left:auto;
  margin-right:auto;
}
.login-card > h1,
.login-card > p{
  text-align:center;
}
