:root{font-family:Tahoma,Arial,sans-serif;background:#0d1117;color:#e6edf3;--bg:#0d1117;--panel:#161b22;--border:#30363d;--muted:#8b949e;--green:#238636;--red:#da3633;--blue:#1f6feb;--yellow:#d29922}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#e6edf3}header{min-height:64px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:10px 22px;position:sticky;top:0;z-index:20}header>strong{white-space:nowrap}header nav{display:flex;gap:12px;flex:1;overflow:auto}a{color:#58a6ff;text-decoration:none}button,.btn,input,select,textarea{font:inherit;border-radius:8px;border:1px solid var(--border);padding:9px 10px;background:#0d1117;color:#e6edf3}.btn{display:inline-block}button{cursor:pointer}.primary{background:var(--green);border-color:#2ea043}.danger{background:var(--red);border-color:#f85149}.muted{background:#30363d}.link-danger{padding:0 6px;color:#f85149;background:transparent;border:0;font-size:20px}.user-badge{white-space:nowrap;color:var(--muted)}main{padding:24px;max-width:1600px;margin:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.page-head h1{margin:0 0 6px}.page-head p{color:var(--muted);margin:0}.head-actions{display:flex;gap:8px}.discount-badge,.rate-period-badge,.shift-badge{padding:9px 12px;border-radius:10px;border:1px solid}.discount-badge{background:#1f6feb22;border-color:var(--blue)}.rate-period-badge{background:#d2992218;border-color:var(--yellow);color:#e3b341}.rate-period-badge.period-day{background:#23863618;border-color:var(--green);color:#3fb950}.rate-period-badge.period-evening{background:#8957e518;border-color:#8957e5;color:#bc8cff}.shift-badge.ok{border-color:var(--green);color:#3fb950}.shift-badge.warn{border-color:var(--yellow);color:#e3b341}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.device{border-top:4px solid var(--green)}.device.busy{border-top-color:#f85149}.device.disabled{opacity:.55;border-top-color:var(--muted)}.device-title{display:flex;justify-content:space-between;align-items:center}.device-title h2{margin:0}.device-title span,.rate,.customer{color:var(--muted)}.status{margin:14px 0}.timer{font-size:30px;font-weight:700;text-align:center;margin:14px 0;font-variant-numeric:tabular-nums}.countdown{text-align:center;color:#e3b341;margin:-6px 0 12px}.price-lines{display:grid;gap:8px;background:#0d1117;padding:12px;border-radius:10px}.price-lines span,.row-between{display:flex;justify-content:space-between;gap:10px}.final-row{font-size:18px;color:#3fb950}.actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.actions form{flex:1;min-width:80px}.actions button{width:100%}.start-form{display:grid;gap:10px;margin-top:12px}.start-form select,.start-form input{width:100%}.stack{display:grid;gap:12px}.stack label,.start-form label{display:grid;gap:6px}.inline{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-form{display:flex;gap:8px;align-items:center}.inline-form select{min-width:160px}.inline-form input[type=number]{width:90px}.hidden{display:none!important}.mini-items{margin:10px 0;background:#0d1117;border-radius:8px;padding:8px}.mini-items>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #21262d;padding:5px}.mini-items>div:last-child{border:0}.mini-items form{display:inline}.pos-details{margin-top:10px}.pos-details summary{cursor:pointer;color:#58a6ff}.pos-details form{margin-top:8px}.login{max-width:430px;margin:80px auto}.login form{display:grid;gap:14px}.error,.success,.flash{padding:11px;border-radius:8px;margin-bottom:14px}.error{background:#da363322;border:1px solid var(--red)}.success{background:#23863622;border:1px solid var(--green)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:right;vertical-align:middle}.table td:last-child{white-space:nowrap}.table form.wallet-form{display:inline-flex;gap:5px;margin-right:5px}.wallet-form input{width:120px}.two-col{display:grid;grid-template-columns:minmax(300px,1fr) minmax(500px,2fr);gap:18px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.stats-grid strong{display:block;font-size:24px;margin-top:8px}.stats-grid small{color:var(--muted)}.reports-cols{grid-template-columns:1fr 2fr}.pill{padding:4px 8px;border-radius:999px;background:#30363d}.pill.paid{color:#3fb950}.pill.unpaid{color:#f85149}.pill.partially_paid{color:#e3b341}.json{font-size:11px;white-space:normal;color:#8b949e}textarea{min-height:80px;resize:vertical}hr{border:0;border-top:1px solid var(--border);width:100%}@media(max-width:900px){header{flex-wrap:wrap}header nav{order:3;width:100%}.two-col,.reports-cols{grid-template-columns:1fr}main{padding:14px}.page-head{align-items:flex-start;flex-direction:column}.device-grid{grid-template-columns:1fr}.inline-form{flex-wrap:wrap}}
/* V1.1 dashboard: exactly 5 cards per row on desktop */
.device-grid.fixed-ten{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.device-grid.fixed-ten .device{min-width:0;padding:14px}.device-grid.fixed-ten .device h2{font-size:20px}.device-grid.fixed-ten .timer{font-size:25px}.idle-note{color:var(--muted);font-size:12px;margin:10px 0 14px}.device .open-start-modal{width:100%;margin-top:10px}.service-chip{display:inline-block;padding:5px 9px;border:1px solid var(--blue);border-radius:999px;color:#79c0ff;background:#1f6feb18;font-size:12px;margin-bottom:8px}.start-modal{width:min(520px,calc(100% - 28px));border:1px solid var(--border);border-radius:16px;background:var(--panel);color:#e6edf3;padding:20px}.start-modal::backdrop{background:#000a}.start-modal form{margin:0}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-head h2{margin:0 0 5px}.modal-head p{margin:0;color:var(--muted)}.modal-close{font-size:24px;padding:2px 10px;background:transparent}.chosen-price{padding:10px 12px;border-radius:9px;background:#0d1117;border:1px solid var(--border);display:flex;justify-content:space-between}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions button{min-width:120px}.settings-grid{display:grid;grid-template-columns:minmax(520px,2fr) minmax(280px,1fr);gap:18px}.service-prices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-prices label{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:10px;background:#0d1117;border:1px solid var(--border);padding:10px;border-radius:10px}.service-prices input{width:100%}.muted-text{color:var(--muted);line-height:1.8}.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px}.check-row input{width:auto!important}@media(max-width:1100px){.device-grid.fixed-ten{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.device-grid.fixed-ten{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.service-prices{grid-template-columns:1fr}}
/* V1.2 compact 10-console dashboard */
.compact-head{margin-bottom:10px}.compact-cards{align-items:stretch}.device-grid.fixed-ten.compact-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.compact-cards .device{height:305px;min-height:305px;max-height:305px;padding:10px;display:flex;flex-direction:column;overflow:hidden}.compact-title h2{font-size:17px!important}.compact-title .state-dot{width:10px;height:10px;border-radius:50%;background:#3fb950;box-shadow:0 0 0 3px #23863633}.device.busy .state-dot{background:#f85149;box-shadow:0 0 0 3px #da363333}.card-tool-row{display:flex;gap:5px;align-items:center;margin:7px 0}.icon-btn{width:36px;height:34px;padding:2px;display:grid;place-items:center;font-size:17px;background:#0d1117}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn.active-tool{border-color:#d29922;background:#d299221c}.note-indicator{font-size:9px;color:#d2a8ff;margin-inline-start:auto}.card-center{flex:1;display:grid;place-content:center;text-align:center;gap:9px;color:var(--muted)}.big-status{font-size:18px;margin:0}.bottom-start{margin-top:auto;width:100%}.active-summary{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;background:#0d1117;border-radius:9px;padding:7px}.service-customer{display:grid;gap:3px}.service-customer small{color:var(--muted)}.compact-cards .timer{font-size:19px!important;margin:0!important}.compact-price{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;font-size:11px}.compact-price span{background:#0d1117;padding:5px;border-radius:7px;display:flex;justify-content:space-between;gap:4px}.compact-price .final-row{grid-column:1/-1;font-size:13px}.mini-meta{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:5px;margin-top:6px;min-height:20px}.alert-countdown{color:#e3b341}.alert-countdown.expired{color:#ff7b72;font-weight:bold;animation:pulseAlert .7s infinite alternate}.compact-actions{margin-top:auto;flex-wrap:nowrap}.compact-actions form{min-width:0}.compact-actions button{height:34px;padding:4px 7px}.quick-times{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.quick-time{background:#21262d}.invoice-modal{width:min(520px,calc(100% - 24px));border:1px solid var(--border);border-radius:16px;background:var(--panel);color:#e6edf3;padding:0}.invoice-modal::backdrop{background:#000b}.invoice-box{padding:20px}.invoice-box h2{text-align:center;margin-top:0}.invoice-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;margin-bottom:12px}.invoice-note{padding:10px;border:1px solid #d29922;border-radius:9px;background:#d2992214;margin-bottom:10px}.invoice-items{margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.invoice-items>div{display:flex;justify-content:space-between;padding:4px}.invoice-ok{width:100%;margin-top:15px}.service-allow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border:1px solid var(--border);border-radius:10px}.service-allow label{display:flex;align-items:center;gap:6px}.block-muted{display:block;color:var(--muted);margin-top:3px}.pill.overdue{color:#ff7b72}.pill.out{color:#e3b341}.pill.returned{color:#3fb950}.rentals-layout{grid-template-columns:minmax(380px,1fr) minmax(560px,1.6fr)}@keyframes pulseAlert{to{opacity:.45}}@media(max-width:1300px){.device-grid.fixed-ten.compact-cards{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto}.compact-cards .device{min-width:170px}}@media(max-width:900px){.device-grid.fixed-ten.compact-cards{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.compact-cards .device{height:290px;min-height:290px;max-height:290px}.service-allow{grid-template-columns:1fr 1fr}.rentals-layout{grid-template-columns:1fr}}@media(max-width:520px){.device-grid.fixed-ten.compact-cards{grid-template-columns:1fr}.compact-cards .device{height:285px;min-height:285px;max-height:285px}}
/* V1.3 paging, reservations, persistent alarm and customer portal */
.console-pages{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 10px}.console-pages a{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:#0d1117;color:#c9d1d9;text-decoration:none;font-weight:700}.console-pages a small{font-weight:400;color:var(--muted)}.console-pages a.active{border-color:var(--blue);background:#1f6feb22;color:#79c0ff}.pending-reservations{padding:9px 12px;border-radius:10px;border:1px solid #d29922;background:#d2992218;color:#e3b341;text-decoration:none;white-space:nowrap}.reservation-strip{display:flex;justify-content:space-between;gap:6px;align-items:center;background:#1f6feb18;border:1px solid #1f6feb55;border-radius:7px;padding:4px 6px;font-size:9px;color:#79c0ff;white-space:nowrap;overflow:hidden}.reservation-strip span{overflow:hidden;text-overflow:ellipsis}.icon-btn.has-reservation{border-color:#1f6feb;background:#1f6feb20}.alarm-popup{width:min(520px,calc(100% - 24px));border:2px solid #f85149;border-radius:18px;background:#161b22;color:#e6edf3;padding:0}.alarm-popup::backdrop{background:#000d}.alarm-popup-box{padding:28px;text-align:center}.alarm-popup-box h2{font-size:30px;margin:8px 0;color:#ff7b72}.alarm-popup-box p{font-size:17px}.alarm-symbol{font-size:58px;animation:alarmShake .5s infinite alternate}.alarm-ack-button{width:100%;font-size:18px;padding:14px;margin-top:12px}.alarm-current{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:9px;background:#0d1117}.button-link{display:inline-block;text-decoration:none}.row-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.row-actions form{display:inline-flex}.pill.pending{color:#e3b341}.pill.approved{color:#3fb950}.pill.rejected,.pill.cancelled{color:#ff7b72}.portal-shell{max-width:520px;margin:48px auto;padding:16px}.portal-shell.wide{max-width:1250px}.portal-login{padding:28px}.portal-login h1{margin-top:0}.portal-reserve-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.portal-reserve-grid label{display:grid;gap:6px}.portal-reserve-grid .full{grid-column:1/-1}.portal-columns{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-top:14px}.portal-device-list,.portal-my-list{display:grid;gap:7px}.portal-device-row{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start;padding:8px;border-bottom:1px solid var(--border)}.portal-device-row span{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted)}.portal-device-row em{font-style:normal;padding:3px 7px;border-radius:999px;background:#1f6feb18;color:#79c0ff}.portal-my-list>div{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px;border-bottom:1px solid var(--border)}
@keyframes alarmShake{from{transform:rotate(-8deg) scale(.98)}to{transform:rotate(8deg) scale(1.04)}}
@media(max-width:900px){.console-pages a{flex-direction:column;gap:2px}.portal-reserve-grid{grid-template-columns:1fr 1fr}.portal-columns{grid-template-columns:1fr}}
@media(max-width:560px){.console-pages{grid-template-columns:1fr}.portal-reserve-grid{grid-template-columns:1fr}.portal-reserve-grid .full{grid-column:auto}.portal-device-row{grid-template-columns:1fr}.head-actions{flex-wrap:wrap}}


/* V1.4 */
.finish-inline-wrap{position:relative}.finish-confirm{display:none;position:absolute;bottom:calc(100% + 6px);right:0;z-index:30;background:#171a22;border:1px solid #3c4353;border-radius:10px;padding:7px;white-space:nowrap;gap:5px;align-items:center}.finish-confirm.open{display:flex}.finish-confirm span{font-size:12px}.finish-confirm form{display:inline-flex}
.timer.expired{color:#ff6969}.customer-search-wrap{position:relative}.customer-search-results{position:absolute;z-index:60;top:68px;right:0;left:0;background:#171a22;border:1px solid #3c4353;border-radius:10px;max-height:220px;overflow:auto;padding:4px}.customer-search-results:empty{display:none}.customer-search-results button{display:block;width:100%;text-align:right;background:transparent;border:0;border-bottom:1px solid #2a3040;border-radius:0}.selected-customer{padding:7px 10px;border:1px dashed #3c4353;border-radius:8px;font-size:13px}
.global-alarm-toggle{position:fixed;left:16px;top:45%;z-index:1000;width:52px;height:52px;border-radius:50%;font-size:22px;background:#242a36;border:1px solid #596274}.global-alarm-toggle span{position:absolute;top:-6px;right:-5px;background:#d53c4b;color:#fff;border-radius:999px;min-width:21px;height:21px;line-height:21px;font-size:11px}.global-alarm-panel{position:fixed;left:78px;top:25%;z-index:999;width:min(360px,calc(100vw - 100px));max-height:55vh;overflow:auto;background:#12161e;border:1px solid #3b4352;border-radius:14px;padding:12px;box-shadow:0 18px 50px #0008}.global-alarm-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-12px;background:#12161e;padding:8px 0}.global-alarm-head button{width:34px;height:34px}.alarm-list-row{display:flex;justify-content:space-between;align-items:center;padding:9px;border:1px solid #303847;border-radius:9px;margin:6px 0}.alarm-list-row div{display:flex;flex-direction:column}.alarm-list-row small{color:#9aa5b7}.alarm-list-row.expired{border-color:#a54b55;background:#431f2538}.alarm-list-row.expired strong{color:#ff737f}.global-alarm-panel h4{margin:12px 0 5px}.invoice-segments{border:1px solid #343b48;border-radius:10px;padding:9px;margin:10px 0}.invoice-segments h3{margin:0 0 8px}.invoice-segments>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #2e3542}.invoice-segments>div:first-of-type{border-top:0}
@media(max-width:760px){.global-alarm-toggle{left:8px;top:auto;bottom:16px}.global-alarm-panel{left:8px;right:8px;top:auto;bottom:78px;width:auto;max-height:55vh}.finish-confirm{right:auto;left:0}}

/* V1.5 controller-count pricing + inline finish confirmation */
.finish-inline-wrap{position:static;display:flex;align-items:center;min-width:0}
.finish-confirm{display:none;position:static!important;inset:auto!important;z-index:auto;background:#171a22;border:1px solid #3c4353;border-radius:8px;padding:3px 5px;white-space:nowrap;gap:4px;align-items:center;max-width:100%}
.finish-confirm.open{display:flex}
.finish-confirm.open + *{min-width:0}
.finish-confirm span{font-size:10px}
.finish-confirm button{height:30px!important;padding:3px 6px!important;font-size:10px}
.finish-confirm form{display:inline-flex;margin:0}
.finish-inline-wrap:has(.finish-confirm.open) .ask-finish{display:none}
.controller-price-matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.controller-price-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:#0d1117}
.controller-price-card h3{margin:0 0 8px}
.controller-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.controller-price-grid label{min-width:0}
.controller-price-grid input{width:100%;min-width:0}
.other-service-prices{margin-top:10px}
#start-controller-wrap[hidden],#transfer-controller-wrap[hidden]{display:none!important}
@media(max-width:900px){.controller-price-matrix{grid-template-columns:1fr}.controller-price-grid{grid-template-columns:1fr 1fr}}
.finish-inline-wrap.confirming .ask-finish{display:none}

/* V1.5.1 - robust inline finish confirmation */
.compact-actions .finish-inline-wrap{flex:1 1 0;min-width:0;display:flex;align-items:stretch}
.compact-actions .finish-inline-wrap>.ask-finish{width:100%}
.compact-actions .finish-confirm{display:none!important;position:static!important;width:100%;min-width:0;padding:0!important;border:0!important;background:transparent!important;gap:4px!important;white-space:normal!important;align-items:stretch!important}
.compact-actions .finish-confirm.open{display:grid!important;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:4px}
.compact-actions .finish-confirm form{display:block!important;min-width:0;margin:0!important}
.compact-actions .finish-confirm button{display:block;width:100%!important;height:34px!important;padding:3px 4px!important;font-size:10px!important;line-height:1.15!important;white-space:normal!important}
.compact-actions .finish-inline-wrap.confirming>.ask-finish{display:none!important}

/* V1.6 */
.main-nav{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.main-nav a{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.main-nav .nav-icon{width:18px;height:18px;flex:0 0 18px;color:#76aaff;filter:drop-shadow(0 0 4px #287dff66);transition:color .2s,filter .2s,transform .2s}.main-nav a:hover .nav-icon{color:#c76dff;filter:drop-shadow(0 0 5px #b43cff88);transform:translateY(-1px)}
.console-pages{display:flex!important;width:max-content;max-width:100%;gap:4px;margin:0 0 10px!important}.console-pages a{min-width:68px!important;padding:6px 9px!important;font-size:11px!important;border-radius:8px!important}.console-pages a small{display:none!important}
.queue-shortcut{display:inline-flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid #3c4353;border-radius:9px;background:#161b22;text-decoration:none;color:#c9d1d9}.queue-shortcut b{background:#1f6feb;color:#fff;border-radius:999px;padding:1px 6px}
.settings-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.settings-tools a{display:block;padding:10px;border:1px solid var(--border);border-radius:9px;text-decoration:none;background:#0d1117;color:#c9d1d9}.settings-tools a:hover{border-color:#58a6ff;color:#79c0ff}
.invoice-modal{width:min(620px,calc(100% - 24px))}.official-invoice{background:#fff;color:#111;border-radius:14px}.official-invoice .invoice-brand{text-align:center;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}.official-invoice .invoice-brand h2{color:#111;margin:0 0 5px}.official-invoice .invoice-info,.official-invoice .price-lines,.official-invoice .invoice-segments,.official-invoice .invoice-items,.official-invoice .invoice-note{color:#111}.official-invoice .invoice-segments,.official-invoice .invoice-note{border-color:#bbb;background:#fafafa}.official-invoice .invoice-segments>div,.official-invoice .invoice-items>div{border-color:#ddd}.invoice-decision{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.invoice-decision button{padding:12px;font-size:15px}
.portal-public{max-width:1350px}.portal-pages{margin-inline:auto!important}.portal-device-grid .device{position:relative}.portal-device-grid .portal-reserve-btn{position:absolute;right:10px;left:10px;bottom:10px}.public-res-list{display:grid;gap:3px;margin-top:8px;max-height:58px;overflow:auto}.public-res-list span{font-size:10px;border:1px solid #1f6feb55;background:#1f6feb18;border-radius:6px;padding:3px 5px;color:#79c0ff}
/* V1.62.1 portal reservation card: reserve space for the absolute reserve button so multiple reservation rows never end up hidden behind it */
.portal-device-grid .card-center{padding-bottom:48px}
/* V1.62.2: reservation list moved to the top of the portal card (right under the title), above the centered status block, so it can never end up behind the absolutely-positioned reserve button no matter how many reservations a device has */
.portal-device-grid .public-res-list{margin-top:6px;margin-bottom:2px;max-height:40px}
/* V1.62.3: on portrait/narrow widths (<901px) .card-center had no min-height:0, so flexbox refused to shrink it and starved .public-res-list down to a sliver instead; give card-center the same min-height:0 desktop already had, and protect the reservation list with flex-shrink:0 + a guaranteed minimum height so it always stays visible */
.portal-device-grid .card-center{min-height:0}
.portal-device-grid .public-res-list{flex-shrink:0;min-height:20px}
.queue-layout{grid-template-columns:minmax(320px,.8fr) minmax(600px,1.7fr)}
.pill.called{color:#e3b341}.pill.playing{color:#3fb950}.pill.cancelled{color:#ff7b72}
@media(max-width:900px){.console-pages{margin-inline:auto!important}.settings-tools{grid-template-columns:1fr}.queue-layout{grid-template-columns:1fr}.invoice-decision{grid-template-columns:1fr}}

/* V1.6.2 compact dashboard tools, queue drawer and invoice sizing */
.header-quick-tools{display:flex;align-items:center;gap:7px;white-space:nowrap}
.header-tool-btn{position:relative;display:inline-flex;align-items:center;gap:5px;padding:7px 9px;background:#21262d;border-color:#3c4353;font-size:12px}
.header-tool-btn span{display:inline-grid;place-items:center;background:#1f6feb;color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 5px;font-size:10px}
#global-alarm-toggle span{background:#d53c4b}
#global-queue-toggle span{background:#256fd6}
.required-note-modal{width:min(500px,calc(100vw - 28px))!important}.required-note-modal .modal-head h2{margin:0;color:#fff}.required-note-text{padding:16px;border:1px solid #ff4d62;border-right:4px solid #ff314d;border-radius:10px;background:#3b1019;color:#ff9aa8;font-weight:900;font-size:17px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.required-note-question{margin:2px 0;color:#d4dceb;text-align:center}.required-note-modal .modal-actions{grid-template-columns:1fr 1.4fr}
.global-alarm-toggle{position:static;width:auto;height:auto;border-radius:8px;font-size:12px;background:#21262d;border:1px solid #3c4353}
.global-side-panel{position:fixed;top:76px;left:18px;z-index:999;width:min(430px,calc(100vw - 36px));max-height:calc(100vh - 96px);overflow:auto;background:#12161e;border:1px solid #3b4352;border-radius:14px;padding:12px;box-shadow:0 18px 50px #0008}
.global-panel-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-12px;z-index:2;background:#12161e;padding:8px 0;border-bottom:1px solid #2d3542;margin-bottom:8px}
.global-panel-head button{width:34px;height:34px;padding:2px}
.queue-quick-form{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px;border:1px solid #303847;border-radius:10px;margin-bottom:10px}
.queue-quick-form input,.queue-quick-form select,.queue-quick-form button{min-width:0;width:100%;font-size:12px;padding:7px}
.queue-quick-form button{grid-column:1/-1}
/* V1.64.0: live customer search (name/mobile) in the queue quick-add form — same dropdown look as the start-session
   search, repositioned to sit right under the name+mobile row instead of the dashboard's fixed top:68px. */
.queue-customer-search-wrap{position:relative;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.queue-customer-search-wrap .customer-search-results{top:100%;margin-top:3px}
.queue-panel-row{border:1px solid #303847;border-radius:10px;padding:9px;margin:7px 0;display:grid;gap:7px}
.queue-panel-row.called{border-color:#d29922}
.queue-row-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.queue-row-head small{display:block;color:var(--muted);margin-top:2px}
.queue-row-meta{font-size:11px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}
.queue-card-actions{display:grid;grid-template-columns:1fr auto;gap:6px}
.queue-card-actions select{min-width:0}
.queue-status-actions{display:flex;gap:5px;flex-wrap:wrap}
.queue-status-actions button{font-size:11px;padding:5px 7px}

.invoice-modal{width:min(440px,calc(100% - 28px))!important;max-height:86vh;height:auto;overflow:auto;padding:0!important}
.invoice-modal::backdrop{background:rgba(0,0,0,.58)!important}
.official-invoice{padding:16px!important;min-height:0!important}
.official-invoice .invoice-brand{padding-bottom:7px;margin-bottom:8px}
.official-invoice .invoice-brand h2{font-size:20px}
.official-invoice .invoice-info{grid-template-columns:1fr;gap:5px;font-size:12px;margin-bottom:8px}
.official-invoice .price-lines{padding:9px;gap:5px}
.official-invoice .invoice-segments{padding:7px;margin:7px 0;font-size:12px}
.official-invoice .invoice-items{font-size:12px}
.invoice-decision{margin-top:10px!important;gap:7px!important}
.invoice-decision button{padding:9px!important;font-size:13px!important}

@media(max-width:1050px){.header-quick-tools{order:2}.user-badge{display:none}}
@media(max-width:760px){.global-side-panel{left:8px;right:8px;top:126px;width:auto;max-height:calc(100vh - 145px)}.queue-quick-form{grid-template-columns:1fr}.queue-quick-form button{grid-column:auto}.header-quick-tools{width:100%;order:4}.header-tool-btn{flex:1;justify-content:center}}
/* V1.7 */
.page-back-wrap{margin:0 0 10px}.back-dashboard{display:inline-flex;align-items:center;padding:7px 10px;border:1px solid #3c4353;border-radius:8px;background:#21262d;color:#dce6f5;text-decoration:none;font-size:12px}
.service-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.service-choice{cursor:pointer}.service-choice input{position:absolute;opacity:0;pointer-events:none}.service-choice span{display:block;text-align:center;border:1px solid #3c4353;background:#171c24;border-radius:9px;padding:9px}.service-choice input:checked+span{border-color:#2f81f7;background:#1f6feb33;box-shadow:inset 0 0 0 1px #2f81f7}.controller-scroll{display:flex;gap:7px;overflow:auto;padding:3px 1px}.controller-scroll label{flex:0 0 auto}.controller-scroll input{position:absolute;opacity:0}.controller-scroll span{display:block;border:1px solid #3c4353;border-radius:8px;padding:8px 14px;background:#171c24}.controller-scroll input:checked+span{border-color:#2f81f7;background:#1f6feb33}.customer-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #3c4353;border-radius:999px;margin:2px;background:#1a2230}.customer-chip button{padding:0 4px;min-width:0;background:transparent;border:0;color:#ff7b72}.price-period-head,.price-period-row{display:grid;grid-template-columns:minmax(70px,.7fr) repeat(3,minmax(90px,1fr));gap:6px;align-items:center}.price-period-head{font-size:11px;color:var(--muted);margin-bottom:4px}.price-period-row{margin:5px 0}.price-period-row input{min-width:0}.weekday-row{display:flex;gap:8px;flex-wrap:wrap}.link-button{display:inline-block;text-decoration:none;text-align:center;margin-bottom:8px}.invoice-decision{grid-template-columns:repeat(3,1fr)!important}
@media(max-width:650px){.service-choice-grid{grid-template-columns:repeat(2,1fr)}.price-period-head,.price-period-row{grid-template-columns:80px repeat(3,120px);min-width:470px}.controller-price-card{overflow:auto}.invoice-decision{grid-template-columns:1fr!important}}

#start-controller-count{width:100%;max-width:220px}.head-actions{flex-wrap:wrap}

.service-choice[hidden]{display:none!important}.quick-rate-picker{display:flex;align-items:center;gap:5px;flex-wrap:wrap;background:#0d1117;border:1px solid var(--border);border-radius:10px;padding:4px 6px;font-size:12px}.quick-rate-picker>span{color:var(--muted);padding:0 3px}.quick-rate-form{margin:0}.quick-rate-btn{min-width:58px;padding:5px 9px;border-radius:8px;background:#21262d;border:1px solid #3c4353;color:#c9d1d9;font-size:12px}.quick-rate-btn.active{background:#238636;border-color:#3fb950;color:#fff;box-shadow:0 0 0 1px #3fb95055}.quick-rate-btn:hover{border-color:#58a6ff}

.quick-rate-auto-now{color:var(--muted);font-size:11px;padding:0 4px;white-space:nowrap}

/* V1.7.4 compact controller rate sections */
.compact-controller-rates{grid-template-columns:1fr!important;gap:10px!important}
.controller-rate-section{padding:10px 12px!important}
.controller-rate-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.controller-rate-title h3{margin:0!important}
.controller-rate-title small{color:var(--muted);font-size:11px}
.controller-rate-section .price-period-head,.controller-rate-section .price-period-row{grid-template-columns:120px repeat(3,minmax(110px,1fr));gap:8px}
.controller-rate-section .price-period-head{padding:0 2px 4px;border-bottom:1px solid #262d37}
.controller-rate-section .price-period-row{padding:3px 0;margin:2px 0}
.controller-rate-section .price-period-row b{font-size:12px;color:#dce6f5}
.controller-rate-section .price-period-row input{height:36px;padding:6px 8px;text-align:center}
@media(max-width:720px){.controller-rate-section{overflow:auto}.controller-rate-section .price-period-head,.controller-rate-section .price-period-row{min-width:520px;grid-template-columns:110px repeat(3,125px)}.controller-rate-title{min-width:520px}}

/* V1.31.6: compact real-<table> rate matrix (replaces the tall stacked boxes) + «حداقل مبلغ» column */
.rate-table-card{padding:10px 12px!important}
.rate-table{width:100%;border-collapse:collapse;font-size:12px}
.rate-table th,.rate-table td{padding:3px 4px}
.rate-table thead th{color:var(--muted);font-weight:400;font-size:11px;text-align:center;padding-bottom:4px;border-bottom:1px solid #262d37}
.rate-table thead th:first-child{text-align:right}
.rate-table tbody th{text-align:right;font-size:12px;color:#dce6f5;font-weight:600;white-space:nowrap;padding-right:2px}
.rate-table tbody tr+tr{border-top:1px solid #1c222c}
.rate-table input{width:100%;height:28px;padding:2px 4px;text-align:center;font-size:12px;min-width:0;border-radius:6px}
@media(max-width:720px){.rate-table-card{overflow:auto}.rate-table{min-width:480px}}

/* V1.8 unified GNY interface */
.app-header{min-height:52px;padding:6px 14px;gap:10px}.brand{display:flex;align-items:center;gap:8px;color:#fff;white-space:nowrap}.gny-logo,.gny-mini-logo,.gny-footer-logo{display:inline-grid;place-items:center;font-weight:900;letter-spacing:1px;background:linear-gradient(135deg,#238636,#1f6feb);color:#fff;border:1px solid #58a6ff55;box-shadow:0 5px 20px #1f6feb22}.gny-logo{width:46px;height:34px;border-radius:10px;font-size:16px}.gny-mini-logo{width:35px;height:25px;border-radius:7px;font-size:11px}.gny-footer-logo{width:30px;height:20px;border-radius:6px;font-size:9px;margin-left:5px}.brand-text{font-size:13px;font-weight:700}.main-nav{gap:4px!important}.main-nav a{padding:6px 8px;border-radius:7px;font-size:12px}.main-nav a:hover{background:#21262d}.header-logout{padding:6px 8px;font-size:11px}.app-main{padding:14px 16px;max-width:1700px}.app-footer{min-height:40px;border-top:1px solid var(--border);background:#10151c;color:#aeb8c4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:11px;padding:5px 10px}.app-footer small{font-size:9px;color:#6e7885}
.dashboard-statusbar{display:flex;align-items:center;gap:8px;margin-bottom:6px;min-height:40px;flex-wrap:nowrap}.dashboard-title{display:flex;align-items:center;gap:7px;margin-left:auto}.dashboard-title strong{font-size:14px;white-space:nowrap}.dashboard-title .pending-reservations{font-size:10px;padding:4px 6px}.dash-control-group{display:flex;align-items:center;gap:4px;background:#111821;border:1px solid #303946;border-radius:9px;padding:3px 5px;white-space:nowrap}.dash-control-group>span{font-size:10px;color:var(--muted);margin:0 2px}.dash-control-group small{font-size:9px;color:var(--muted)}.dash-control-group .quick-rate-btn{min-width:48px;padding:4px 7px;font-size:10px}.dash-active-count{display:flex;align-items:center;gap:7px;border:1px solid #23863688;background:#23863618;border-radius:9px;padding:5px 8px;white-space:nowrap}.dash-active-count span{font-size:10px;color:#a7d9b1}.dash-active-count b{font-size:16px;color:#3fb950}.console-pages{margin-bottom:5px!important}.console-pages a{padding:4px 8px!important}.last-session-summary{display:grid;gap:3px;font-size:10px;color:#9da8b4;border:1px dashed #3c4655;border-radius:8px;padding:5px 7px;width:100%}.last-session-summary b{color:#dce6f5}.last-session-summary .last-price{font-weight:800;color:#3fb950;font-size:11px}.free-card-center{gap:5px!important}.pos-btn{background:#0969da;border-color:#2f81f7;color:#fff}.invoice-decision.four-actions{grid-template-columns:repeat(4,1fr)!important}.invoice-decision.four-actions button{font-size:11px!important;padding:8px 4px!important}
body:has(#dashboard-root) .app-main{padding:7px 12px 44px;max-width:1700px;height:calc(100vh - 52px);overflow:hidden}body:has(#dashboard-root) .page-back-wrap{display:none}body:has(#dashboard-root) .app-footer{position:fixed;bottom:0;right:0;left:0;z-index:18;height:34px;min-height:34px;padding:2px}#dashboard-root{height:100%;display:flex;flex-direction:column}#dashboard-root .device-grid.fixed-ten.compact-cards{flex:1;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));gap:6px}#dashboard-root .compact-cards .device{height:auto;min-height:0;max-height:none;padding:7px}#dashboard-root .card-tool-row{margin:3px 0}#dashboard-root .icon-btn{height:27px;width:31px;font-size:14px}#dashboard-root .active-summary{padding:5px}#dashboard-root .compact-price{margin-top:4px}#dashboard-root .mini-meta{margin-top:3px;min-height:14px}#dashboard-root .compact-actions button{height:28px}#dashboard-root .bottom-start{padding:6px;margin-top:4px}
.login-hero{max-width:920px;margin:5vh auto;display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:stretch}.login-brand-panel{border:1px solid #2d3948;border-radius:20px;padding:38px;background:radial-gradient(circle at 20% 10%,#1f6feb2e,transparent 40%),radial-gradient(circle at 80% 90%,#2386362b,transparent 42%),#111821;display:flex;flex-direction:column;justify-content:center}.hero-logo{width:88px;height:62px;font-size:28px;border-radius:16px;margin-bottom:16px}.login-brand-panel h1{font-size:27px;line-height:1.5;margin:0 0 10px}.login-brand-panel p{color:#9da8b4;line-height:1.9}.login-role-tags{display:flex;gap:6px;margin:10px 0 24px}.login-role-tags span{border:1px solid #334155;background:#0d1117;border-radius:999px;padding:5px 10px;font-size:11px}.portal-entry{display:grid;gap:4px;padding:14px;border-radius:12px;border:1px solid #23863688;background:#2386361f;color:#e6edf3}.portal-entry strong{color:#56d364}.portal-entry small{color:#9da8b4}.login-form-card{align-self:center;padding:28px}.login-form-card h2{margin-top:0}.login-submit{height:44px}.portal-public-head{display:flex;align-items:center;justify-content:center;gap:18px;text-align:right;margin-bottom:10px}.portal-public-head .gny-logo{width:68px;height:48px;font-size:22px}.portal-public-head h1{font-size:22px;margin:0 0 5px}.portal-public-head p{margin:2px 0;color:#dce6f5}.portal-public-head small{color:var(--muted)}
.user-admin-grid{display:grid;grid-template-columns:minmax(380px,.8fr) minmax(620px,1.3fr);gap:14px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.permission-chip input{position:absolute;opacity:0}.permission-chip span{display:block;padding:8px;border:1px solid #3c4655;border-radius:8px;background:#111821;font-size:11px;cursor:pointer}.permission-chip input:checked+span{background:#23863625;border-color:#3fb950;color:#7ee787}.table-scroll{overflow:auto}
@media(max-width:1150px){.brand-text{display:none}.dashboard-statusbar{overflow:auto}.user-admin-grid{grid-template-columns:1fr}body:has(#dashboard-root) .app-main{height:auto;overflow:auto}#dashboard-root .device-grid.fixed-ten.compact-cards{grid-template-rows:none}.app-footer{position:static!important}}
@media(max-width:800px){.login-hero{grid-template-columns:1fr;margin:20px 10px}.login-brand-panel{padding:24px}.login-brand-panel h1{font-size:21px}.permission-grid{grid-template-columns:1fr}.portal-public-head{flex-direction:column;text-align:center}.invoice-decision.four-actions{grid-template-columns:1fr 1fr!important}.dashboard-statusbar{flex-wrap:wrap}.dashboard-title{width:100%}}


/* V1.8.1 refinements */
.delete-customer-form{display:inline-flex;margin-right:5px}.delete-customer-form .danger{padding:7px 9px;font-size:11px}
.login-brand-panel{position:relative;overflow:hidden;isolation:isolate}.login-brand-content{position:relative;z-index:2}.gny-watermark{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(150px,24vw,340px);font-weight:1000;letter-spacing:-12px;color:#58a6ff0e;transform:rotate(-8deg) scale(1.05);user-select:none;pointer-events:none;z-index:0;text-shadow:0 0 70px #1f6feb18}.login-brand-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#0d1117aa,#11182155);z-index:1;pointer-events:none}.login-brand-content .hero-logo{box-shadow:0 8px 34px #1f6feb55}
.pos-modal{width:min(480px,calc(100% - 24px))}.pos-modal-summary{display:grid;gap:7px;background:#0d1117;border:1px solid var(--border);border-radius:10px;padding:10px;margin:10px 0 14px}.pos-modal-summary>div{display:flex;justify-content:space-between;gap:12px}.pos-modal-summary span{color:var(--muted)}.pos-modal-summary .pos-remaining{border-top:1px solid var(--border);padding-top:8px;color:#7ee787}.pos-modal-summary .pos-remaining b{font-size:18px;color:#3fb950}
.quick-rate-btn:disabled{opacity:.65;cursor:wait}


/* V1.8.2 dashboard vertical-fit refinement */
.dashboard-title .dashboard-pages{display:flex!important;width:auto!important;max-width:none!important;margin:0 2px!important;gap:3px!important;align-items:center;flex:0 0 auto}
.dashboard-title .dashboard-pages a{min-width:58px!important;padding:3px 7px!important;font-size:10px!important;line-height:1.2!important;border-radius:7px!important}
body:has(#dashboard-root) .dashboard-statusbar{min-height:34px;margin-bottom:4px}
#dashboard-root .compact-cards .device{padding:6px!important}
#dashboard-root .device-title{min-height:22px}
#dashboard-root .compact-title h2{font-size:15px!important;margin:0}
#dashboard-root .card-tool-row{margin:2px 0!important}
#dashboard-root .icon-btn{height:24px!important;width:29px!important;font-size:13px!important}
#dashboard-root .active-summary{padding:4px!important;gap:4px}
#dashboard-root .compact-cards .timer{font-size:17px!important}
#dashboard-root .compact-price{gap:3px!important;margin-top:3px!important;font-size:10px!important}
#dashboard-root .compact-price span{padding:3px 4px!important}
#dashboard-root .compact-price .final-row{font-size:11px!important}
#dashboard-root .mini-meta{font-size:9px!important;margin-top:2px!important;min-height:11px!important}
#dashboard-root .compact-actions{margin-top:3px!important;min-height:26px}
#dashboard-root .compact-actions button{height:25px!important;padding:2px 6px!important;font-size:11px!important}
#dashboard-root .bottom-start{height:28px!important;padding:4px!important;margin-top:3px!important}
#dashboard-root .last-session-summary{padding:4px 6px!important;gap:2px!important;font-size:9px!important}
#dashboard-root .free-card-center{gap:3px!important}
@media(max-width:800px){.dashboard-title .dashboard-pages{order:3;width:100%!important;justify-content:center}.dashboard-title{flex-wrap:wrap}}

/* V1.8.3 compact dialogs + auto-dismiss toast notifications */
.toast-container{position:fixed;top:72px;left:50%;transform:translateX(-50%);z-index:9999;display:grid;gap:8px;width:min(420px,calc(100% - 24px));pointer-events:none}.toast-notification{opacity:0;transform:translateY(-12px) scale(.98);transition:opacity .22s ease,transform .22s ease;box-shadow:0 12px 34px #0008;border-radius:11px;padding:10px 14px;text-align:center;font-size:13px;font-weight:700;background:#161b22;border:1px solid var(--border);pointer-events:auto}.toast-notification.show{opacity:1;transform:translateY(0) scale(1)}.toast-notification.hide{opacity:0;transform:translateY(-8px) scale(.98)}.toast-notification.success{background:#102819;border-color:#2ea043;color:#7ee787}.toast-notification.error{background:#351418;border-color:#f85149;color:#ffb3b3}
#start-session-modal.start-modal{width:min(430px,calc(100% - 24px));max-height:84vh;overflow:auto;padding:13px}.start-modal .stack{gap:8px}.start-modal .modal-head h2{font-size:18px}.start-modal label{gap:4px}.start-modal input,.start-modal select,.start-modal button{padding:7px 9px}.start-modal .service-choice-grid{gap:6px}.start-modal .service-choice{min-height:38px;padding:7px}.start-modal .modal-actions{gap:7px}.start-modal .modal-actions button{min-width:92px}.start-modal .muted-text,.start-modal small{font-size:11px;line-height:1.45}.start-modal .quick-times{gap:5px}
#invoice-preview-modal.invoice-modal{width:min(390px,calc(100% - 24px))!important;max-height:82vh}.invoice-modal .invoice-box{padding:13px}.invoice-modal .invoice-brand{padding-bottom:7px;margin-bottom:8px}.invoice-modal .invoice-brand h2{font-size:18px;margin-bottom:2px}.invoice-modal .invoice-info{gap:5px;font-size:11px;margin-bottom:7px}.invoice-modal .price-lines{padding:7px;gap:4px}.invoice-modal .invoice-segments,.invoice-modal .invoice-items,.invoice-modal .invoice-note{font-size:11px;margin-top:6px;padding-top:5px}.invoice-modal .invoice-decision{gap:6px;margin-top:9px}.invoice-modal .invoice-decision button{padding:8px 5px;font-size:12px}
@media(max-width:520px){.toast-container{top:58px}#start-session-modal.start-modal,#invoice-preview-modal.invoice-modal{width:calc(100% - 16px)!important;max-height:88vh}}

/* V1.8.4 no-scroll compact start/end dialogs */
#start-session-modal.start-modal{width:min(380px,calc(100% - 20px))!important;max-height:none!important;overflow:visible!important;padding:9px 11px!important}
#start-session-modal .stack{gap:5px!important}
#start-session-modal .modal-head{min-height:28px;align-items:center}
#start-session-modal .modal-head h2{font-size:16px!important;margin:0!important}
#start-session-modal .modal-head p{font-size:10px!important}
#start-session-modal .modal-close{font-size:19px;padding:0 7px!important}
#start-session-modal label{font-size:11px!important;gap:2px!important}
#start-session-modal input,#start-session-modal select{height:32px!important;padding:4px 7px!important;font-size:12px!important}
#start-session-modal .service-choice-grid{gap:4px!important}
#start-session-modal .service-choice span{padding:5px 6px!important;font-size:11px!important;border-radius:7px!important}
#start-session-modal .customer-search-wrap{display:grid;grid-template-columns:1fr auto;gap:4px 6px;align-items:end}
#start-session-modal .customer-search-wrap>label{grid-column:1/-1}
#start-session-modal #customer-search-results{top:51px}
#start-session-modal #selected-customers{grid-column:1/2;min-height:30px;font-size:10px;display:flex;align-items:center;flex-wrap:wrap}
#start-session-modal #set-guest{grid-column:2/3;min-width:86px!important;height:30px!important;padding:3px 6px!important;font-size:10px!important}
#start-session-modal .inline{gap:5px!important}
#start-session-modal .muted-text{display:none!important}
#start-session-modal .modal-actions{margin-top:1px!important;gap:5px!important}
#start-session-modal .modal-actions button{min-width:82px!important;height:32px!important;padding:4px 8px!important;font-size:11px!important}

#invoice-preview-modal.invoice-modal{width:min(365px,calc(100% - 20px))!important;max-height:none!important;overflow:visible!important}
#invoice-preview-modal .invoice-box{padding:9px 11px!important}
#invoice-preview-modal .invoice-brand{padding-bottom:4px!important;margin-bottom:5px!important}
#invoice-preview-modal .invoice-brand .gny-mini-logo{width:30px;height:21px;font-size:9px}
#invoice-preview-modal .invoice-brand h2{font-size:16px!important;line-height:1.2;margin:2px 0 1px!important}
#invoice-preview-modal .invoice-brand small{font-size:9px!important}
#invoice-preview-modal .invoice-info.compact{grid-template-columns:1fr 1fr!important;gap:2px 7px!important;font-size:9.5px!important;margin-bottom:5px!important;border-bottom:1px solid #ddd;padding-bottom:4px}
#invoice-preview-modal .invoice-info.compact span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#invoice-preview-modal .invoice-final-top{display:flex;justify-content:space-between;align-items:center;padding:5px 7px;margin:0 0 4px;border:1px solid #b7d9be;border-radius:8px;background:#f4fbf5;color:#111}
#invoice-preview-modal .invoice-final-top span{font-size:12px;font-weight:700}
#invoice-preview-modal .invoice-final-top b{font-size:20px;color:#188038}
#invoice-preview-modal .invoice-price-compact{display:grid!important;grid-template-columns:1fr 1fr!important;gap:2px 10px!important;background:transparent!important;border:0!important;border-bottom:1px solid #ddd!important;border-radius:0!important;padding:3px 2px 5px!important;margin:0!important;color:#111!important;font-size:9.5px!important}
#invoice-preview-modal .invoice-price-compact span{background:transparent!important;padding:1px 0!important}
#invoice-preview-modal .compact-note{font-size:9.5px!important;padding:4px 6px!important;margin:4px 0!important}
#invoice-preview-modal .invoice-more{margin-top:4px;border:1px solid #ddd;border-radius:7px;background:#fafafa;color:#111;font-size:9.5px}
#invoice-preview-modal .invoice-more summary{cursor:pointer;padding:4px 7px;font-weight:700;list-style:none}
#invoice-preview-modal .invoice-more summary::-webkit-details-marker{display:none}
#invoice-preview-modal .invoice-more[open] summary{border-bottom:1px solid #ddd}
#invoice-preview-modal .invoice-more .invoice-segments,#invoice-preview-modal .invoice-more .invoice-items{font-size:9px!important;margin:3px 5px!important;padding:2px 0!important;max-height:115px;overflow:auto}
#invoice-preview-modal .invoice-more h3{font-size:10px!important;margin:3px 0!important}
#invoice-preview-modal .invoice-more .invoice-segments>div,#invoice-preview-modal .invoice-more .invoice-items>div{padding:2px!important}
#invoice-preview-modal .invoice-decision.four-actions{gap:4px!important;margin-top:5px!important}
#invoice-preview-modal .invoice-decision.four-actions button{height:31px!important;padding:3px 2px!important;font-size:10px!important}
@media(max-width:520px){#start-session-modal.start-modal{width:calc(100% - 12px)!important}#invoice-preview-modal.invoice-modal{width:calc(100% - 12px)!important}}


/* V1.8.5 invoice shell + global fixed-time alarm reliability */
#invoice-preview-modal.invoice-modal{height:fit-content!important;min-height:0!important;max-height:none!important;overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
#invoice-preview-modal.invoice-modal .official-invoice{height:auto!important;min-height:0!important;margin:0!important;overflow:visible!important;box-sizing:border-box}
#invoice-preview-modal.invoice-modal::backdrop{background:rgba(0,0,0,.50)!important}

/* V1.8.6 alarm edit/delete */
.alarm-list-row .alarm-row-side{display:flex;align-items:center;gap:8px}.alarm-row-actions{display:flex;gap:4px}.alarm-row-actions button{padding:4px 7px;font-size:10px;min-height:28px}.compact-alarm-edit{width:min(360px,calc(100% - 24px))}.compact-alarm-edit form{padding:12px}.compact-alarm-edit .modal-head h2{font-size:17px;margin:0}.compact-alarm-edit .modal-actions{margin-top:8px}

/* V1.8.7 reservation, reporting and invoice polish */
.portal-public-head{justify-content:flex-start!important;gap:22px!important;direction:rtl}.portal-gny-hero{flex:0 0 250px;min-height:118px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,#238636,#1f6feb);font-size:58px;font-weight:900;letter-spacing:5px;color:#fff;border:1px solid #58a6ff55;box-shadow:0 10px 28px #1f6feb22}.portal-head-copy{flex:1;text-align:right}.portal-head-copy h1{font-size:24px;margin:0 0 8px}.portal-head-copy p{margin:3px 0}.portal-head-copy small{display:block;margin-top:7px;line-height:1.8}.invoice-total-pair{display:grid;gap:4px;margin-bottom:4px}.invoice-total-pair .invoice-final-top{margin:0!important}.invoice-original-top{background:#f4f8ff!important;border-color:#b9ccea!important}.invoice-original-top b{color:#0969da!important}.invoice-received-top{background:#f4fbf5!important;border-color:#b7d9be!important}.invoice-received-top b{color:#188038!important}.report-filter select{min-width:150px}@media(max-width:800px){.portal-public-head{align-items:stretch!important}.portal-gny-hero{flex:auto;width:100%;min-height:82px;font-size:42px}.portal-head-copy{text-align:center}}


/* V1.8.8 reservation viewport + invoice privacy hierarchy */
.invoice-private-summary .received-subtle{font-size:10px!important;color:var(--muted)!important;opacity:.72}.invoice-private-summary .received-subtle b{font-size:10px!important;color:#9da8b4!important;font-weight:600}.invoice-original-top{margin-bottom:5px!important}.invoice-original-top b{font-size:24px!important}
@media (min-width:1151px) and (min-height:680px){
 body:has(.portal-public){overflow:hidden}
 body:has(.portal-public) .portal-public{height:calc(100vh - 34px);max-width:1500px;margin:0 auto;padding:7px 12px 38px;display:flex;flex-direction:column;gap:5px;overflow:hidden}
 body:has(.portal-public) .portal-public-head{flex:0 0 auto;margin:0!important;gap:14px!important;min-height:72px}
 body:has(.portal-public) .portal-gny-hero{flex:0 0 190px;min-height:72px;height:72px;border-radius:13px;font-size:42px;box-shadow:none}
 body:has(.portal-public) .portal-head-copy h1{font-size:19px;margin:0 0 3px}
 body:has(.portal-public) .portal-head-copy p{font-size:12px;margin:1px 0}
 body:has(.portal-public) .portal-head-copy small{font-size:10px;margin-top:2px;line-height:1.35}
 body:has(.portal-public) .portal-pages{flex:0 0 auto;margin:0!important;gap:5px}
 body:has(.portal-public) .portal-pages a{padding:5px 9px;border-radius:8px;font-size:11px}
 body:has(.portal-public) .portal-device-grid{flex:1;min-height:0;grid-template-columns:repeat(5,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr));gap:6px!important;overflow:hidden!important}
 body:has(.portal-public) .portal-device-grid .device{height:auto!important;min-height:0!important;max-height:none!important;padding:6px!important;border-radius:10px;overflow:hidden}
 body:has(.portal-public) .portal-device-grid .compact-title h2{font-size:14px!important}
 body:has(.portal-public) .portal-device-grid .card-center{gap:4px;place-content:center}
 body:has(.portal-public) .portal-device-grid .big-status{font-size:14px}
 body:has(.portal-public) .portal-device-grid .card-center>small{font-size:9px;line-height:1.2}
 body:has(.portal-public) .public-res-list{margin-top:3px;gap:2px;max-height:31px;overflow:hidden}
 body:has(.portal-public) .public-res-list span{font-size:8px;padding:2px 4px;line-height:1.15}
 body:has(.portal-public) .portal-device-grid .portal-reserve-btn{right:6px;left:6px;bottom:6px;height:27px;padding:3px 6px;font-size:10px}
 body:has(.portal-public) .portal-footer{position:fixed!important;bottom:0;right:0;left:0;height:34px;min-height:34px;padding:2px;z-index:30}
}


/* V1.8.9 public reservation page: true single-screen desktop layout */
@media (min-width:901px){
  html, body.portal-page-body{height:100%;max-height:100%;overflow:hidden!important}
  body.portal-page-body{display:flex;flex-direction:column;margin:0}
  body.portal-page-body .portal-public{
    flex:1 1 auto!important;
    width:100%;
    height:auto!important;
    min-height:0!important;
    max-width:1500px;
    margin:0 auto!important;
    padding:5px 10px 3px!important;
    display:grid!important;
    grid-template-rows:64px 27px minmax(0,1fr)!important;
    gap:4px!important;
    overflow:hidden!important;
  }
  body.portal-page-body .portal-public-head{
    height:64px!important;min-height:64px!important;max-height:64px!important;
    margin:0!important;gap:10px!important;overflow:hidden
  }
  body.portal-page-body .portal-gny-hero{
    flex:0 0 165px!important;width:165px!important;height:60px!important;min-height:60px!important;
    border-radius:10px!important;font-size:35px!important;letter-spacing:3px!important
  }
  body.portal-page-body .portal-head-copy{min-width:0;align-self:center}
  body.portal-page-body .portal-head-copy h1{font-size:17px!important;line-height:1.25!important;margin:0 0 2px!important}
  body.portal-page-body .portal-head-copy p{font-size:10px!important;line-height:1.25!important;margin:0!important;display:inline-block;margin-left:16px!important}
  body.portal-page-body .portal-head-copy small{font-size:9px!important;line-height:1.2!important;margin:2px 0 0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.portal-page-body .portal-pages{height:27px!important;min-height:27px!important;margin:0!important;gap:4px!important;display:grid!important}
  body.portal-page-body .portal-pages a{height:27px!important;min-height:27px!important;padding:2px 7px!important;font-size:10px!important;border-radius:6px!important;line-height:1!important}
  body.portal-page-body .portal-device-grid{
    min-height:0!important;height:100%!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(0,1fr))!important;
    gap:4px!important;overflow:hidden!important;align-items:stretch!important
  }
  body.portal-page-body .portal-device-grid .device{
    height:100%!important;min-height:0!important;max-height:none!important;
    padding:5px!important;border-radius:8px!important;border-top-width:3px!important;overflow:hidden!important
  }
  body.portal-page-body .portal-device-grid .device-title{min-height:19px}
  body.portal-page-body .portal-device-grid .compact-title h2{font-size:12px!important;line-height:1.1!important}
  body.portal-page-body .portal-device-grid .state-dot{width:7px!important;height:7px!important}
  body.portal-page-body .portal-device-grid .card-center{gap:2px!important;padding-bottom:27px!important;place-content:center!important;min-height:0!important}
  body.portal-page-body .portal-device-grid .big-status{font-size:12px!important;line-height:1.1!important}
  body.portal-page-body .portal-device-grid .card-center>small{font-size:8px!important;line-height:1.1!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.portal-page-body .public-res-list{margin-top:1px!important;gap:1px!important;max-height:24px!important;overflow:hidden!important}
  body.portal-page-body .public-res-list span{font-size:7px!important;padding:1px 3px!important;line-height:1.1!important}
  body.portal-page-body .portal-device-grid .portal-reserve-btn{right:5px!important;left:5px!important;bottom:4px!important;height:23px!important;min-height:23px!important;padding:1px 5px!important;font-size:9px!important;border-radius:6px!important}
  body.portal-page-body .portal-footer{
    position:static!important;flex:0 0 28px!important;height:28px!important;min-height:28px!important;
    padding:1px!important;font-size:9px!important
  }
  body.portal-page-body .portal-footer small{font-size:8px!important}
}
@media (max-width:900px){
  body.portal-page-body{overflow:auto!important}
  body.portal-page-body .portal-public{height:auto!important;overflow:visible!important}
}


/* V1.9.0 reservation security, card readability, device bulk management */
body:has(.settings-grid){overflow-y:auto!important;overflow-x:hidden!important}
body:has(.settings-grid) .app-main{height:auto!important;min-height:calc(100vh - 64px);overflow:visible!important}
.device-bulk-bar{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;gap:8px;align-items:center;margin:0 0 10px;padding:8px;border:1px solid var(--border);border-radius:10px;background:#0d1117}
.captcha-row{display:grid;grid-template-columns:180px 42px minmax(120px,1fr);gap:8px;align-items:end}.captcha-row img{width:180px;height:54px;border-radius:9px;border:1px solid var(--border)}.captcha-row button{height:42px}.captcha-row label{margin:0}
@media (min-width:901px){
 body.portal-page-body .portal-device-grid .compact-title h2{font-size:14px!important}
 body.portal-page-body .portal-device-grid .big-status{font-size:14px!important}
 body.portal-page-body .portal-device-grid .card-center>small{font-size:10px!important}
 body.portal-page-body .public-res-list span{font-size:9px!important}
 body.portal-page-body .portal-device-grid .portal-reserve-btn{font-size:11px!important;font-weight:700!important}
}
@media(max-width:760px){.device-bulk-bar{grid-template-columns:1fr}.captcha-row{grid-template-columns:1fr auto}.captcha-row label{grid-column:1/-1}.captcha-row img{max-width:100%}}

/* V1.9.1 settings page hard scroll fix */
html.settings-page-html,
body.settings-page-body{
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:scroll!important;
}
body.settings-page-body{
  position:static!important;
  display:block!important;
}
body.settings-page-body .app-main{
  height:auto!important;
  min-height:calc(100vh - 64px)!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:70px!important;
}
body.settings-page-body .settings-grid{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
body.settings-page-body .app-footer{position:static!important}
.portal-inline-error{margin:0 0 8px!important;padding:8px 10px!important;font-size:12px!important}

/* V1.9.2 scroll all management tool pages + reservation bulk/edit */
html.admin-scroll-html,
body.admin-scroll-body{
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body.admin-scroll-body{
  position:static!important;
  display:block!important;
}
body.admin-scroll-body .app-main{
  height:auto!important;
  min-height:calc(100vh - 64px)!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:72px!important;
}
body.admin-scroll-body .app-footer{position:static!important}
body.admin-scroll-body .card,
body.admin-scroll-body .two-col,
body.admin-scroll-body .user-admin-grid,
body.admin-scroll-body .settings-grid{
  max-height:none!important;
}
.reservation-bulk-bar{display:grid;grid-template-columns:auto minmax(190px,280px) auto;gap:8px;align-items:center;margin:0 0 10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.reservation-table th:first-child,.reservation-table td:first-child{width:38px;text-align:center}.reservation-table .row-actions{display:flex;flex-wrap:wrap;gap:5px}.reservation-table .row-actions form{display:inline-flex;margin:0}.reservation-table .row-actions button{padding:6px 8px;font-size:11px}.reservation-edit-modal{width:min(500px,calc(100% - 24px))!important;max-height:90vh!important;overflow:auto!important}
@media(max-width:760px){.reservation-bulk-bar{grid-template-columns:1fr}.reservation-edit-modal{width:calc(100% - 14px)!important}.reservation-table{min-width:1050px}}
/* V1.9.4 owner bulk tools, login captcha, financial device graphs */
.bulk-manage-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:#0d1117}.bulk-manage-bar select{min-width:190px}.bulk-manage-bar input[type=text]{min-width:220px}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.login-captcha-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.login-captcha-row img{height:54px;max-width:180px;border-radius:9px;border:1px solid var(--border)}.device-chart-grid{margin-top:18px;grid-template-columns:1fr 1fr}.bar-chart{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(90px,130px) minmax(120px,1fr) minmax(90px,auto);gap:10px;align-items:center}.bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:18px;border-radius:999px;background:#0d1117;border:1px solid var(--border);overflow:hidden}.bar-track i{display:block;height:100%;background:linear-gradient(90deg,#1f6feb,#58a6ff);border-radius:inherit}.revenue-chart .bar-track i{background:linear-gradient(90deg,#238636,#56d364)}@media(max-width:900px){.device-chart-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:90px 1fr}.bar-row b{grid-column:2}}


/* V1.10.0 readability, balanced active cards, promotions and public portal */
:root{font-family:"Segoe UI",Tahoma,Arial,sans-serif}
body,input,select,textarea,button{font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-kerning:normal;text-rendering:optimizeLegibility}
.timer,.compact-price,.price-lines,.table,.portal-device-grid{font-variant-numeric:tabular-nums}
.compact-cards .device.busy{display:flex!important;flex-direction:column!important}
.compact-cards .device.busy .active-summary{margin-top:auto!important}
.compact-cards .device.busy .compact-actions{margin-top:auto!important}
.compact-cards .device.busy .compact-price,.compact-cards .device.busy .mini-meta{flex:0 0 auto}
#invoice-preview-modal .invoice-private-summary .received-subtle{font-size:9.5px!important;color:#111!important;opacity:1!important}
#invoice-preview-modal .invoice-private-summary .received-subtle b{font-size:9.5px!important;color:#111!important;font-weight:700!important}
.promotion-control{position:relative}.promotion-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#d29922;color:#111;margin-right:4px}.quick-rate-btn.has-promotion{border-color:#d29922;background:#d2992222}.promotion-panel{position:fixed;top:76px;right:18px;width:min(480px,calc(100% - 36px));max-height:72vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:14px;z-index:80;padding:12px;box-shadow:0 18px 50px #0008}.promotion-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.promotion-head button{font-size:20px;padding:3px 9px}.promotion-section{border-top:1px solid var(--border);padding-top:9px;margin-top:9px}.promotion-section h3{margin:0 0 7px}.promotion-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:9px;margin-bottom:6px;background:#0d1117}.promotion-row>div{display:grid;gap:2px}.promotion-row small{color:var(--muted)}.promotion-row.today-birthday{border-color:#d29922;background:#d2992215}.promotion-row.loyalty-ready{border-color:#238636}.promotion-row form{margin:0}.promotion-row button{padding:6px 8px;font-size:11px}
@media (min-width:901px){
 body.portal-page-body .portal-public{grid-template-rows:78px 34px minmax(0,1fr)!important;gap:5px!important}
 body.portal-page-body .portal-public-head{height:78px!important;min-height:78px!important;max-height:78px!important}
 body.portal-page-body .portal-gny-hero{flex-basis:190px!important;width:190px!important;height:72px!important;min-height:72px!important;font-size:43px!important}
 body.portal-page-body .portal-head-copy h1{font-size:22px!important;line-height:1.15!important}
 body.portal-page-body .portal-head-copy p{font-size:13px!important}
 body.portal-page-body .portal-head-copy small{font-size:11px!important}
 body.portal-page-body .portal-pages{height:34px!important;min-height:34px!important}
 body.portal-page-body .portal-pages a{height:34px!important;min-height:34px!important;font-size:14px!important;font-weight:700!important}
 body.portal-page-body .portal-device-grid{gap:5px!important}
 body.portal-page-body .portal-device-grid .device{padding:7px!important}
 body.portal-page-body .portal-device-grid .device-title{min-height:26px!important}
 body.portal-page-body .portal-device-grid .compact-title h2{font-size:20px!important;line-height:1.05!important}
 body.portal-page-body .portal-device-grid .state-dot{width:10px!important;height:10px!important}
 body.portal-page-body .portal-device-grid .card-center{gap:5px!important;padding-bottom:40px!important}
 body.portal-page-body .portal-device-grid .big-status{font-size:22px!important;font-weight:700!important}
 body.portal-page-body .portal-device-grid .card-center>small{font-size:13px!important;line-height:1.2!important}
 body.portal-page-body .public-res-list{max-height:46px!important;gap:2px!important}
 body.portal-page-body .public-res-list span{font-size:12px!important;padding:2px 4px!important}
 body.portal-page-body .portal-device-grid .portal-reserve-btn{height:34px!important;min-height:34px!important;font-size:16px!important;font-weight:800!important}
 body.portal-page-body .portal-footer{height:26px!important;min-height:26px!important;font-size:10px!important}
}

.reward-ready-text{color:#3fb950;display:block;margin-bottom:4px}.table td .inline-form{display:inline-flex}.table td .inline-form button{padding:4px 7px;font-size:10px}

/* V1.11 login branding */
.login-brand-content .hero-logo{width:122px;height:82px;font-size:38px;border-radius:20px;letter-spacing:1px}
.gny-watermark{font-size:clamp(190px,30vw,410px);color:#58a6ff24;text-shadow:0 0 80px #1f6feb35}
.login-brand-panel:after{background:linear-gradient(135deg,#0d11177d,#11182138)}
.login-commercial-footer{max-width:920px;margin:-1vh auto 0;text-align:center;border-top:1px solid var(--border);padding:14px 12px 0;color:#c7d2df;line-height:1.9}
.login-commercial-footer a{font-weight:800;direction:ltr;display:inline-block}.login-commercial-footer small{display:block;color:var(--muted);margin-top:2px}
.loyalty-rules-card{margin-bottom:14px}.loyalty-rules-grid{display:grid;gap:8px}.loyalty-rule-row{display:grid;grid-template-columns:minmax(100px,1fr) repeat(3,minmax(120px,1fr));gap:8px;align-items:end;padding:10px;border:1px solid var(--border);border-radius:10px;background:#0d1117}.loyalty-rule-row-full{grid-column:1/-1}.loyalty-rule-service{display:flex;align-items:center;gap:8px;font-weight:800;min-height:38px}.loyalty-rule-row label{margin:0}.loyalty-rule-row input[type=number]{width:100%}.reward-service-tag{display:inline-flex;padding:2px 7px;border-radius:999px;border:1px solid #23863688;background:#2386361f;color:#56d364;font-size:10px;margin-left:4px}
@media(max-width:800px){.loyalty-rule-row{grid-template-columns:1fr 1fr}.login-commercial-footer{padding-inline:6px}}
.forgot-password-link{display:block;text-align:center;margin-top:4px;color:#58a6ff;text-decoration:none;font-weight:700}.forgot-password-link:hover{text-decoration:underline}.auth-simple-wrap{min-height:calc(100vh - 90px);display:grid;place-items:center;padding:28px}.auth-simple-card{width:min(520px,100%)}.auth-mini-logo{font-size:42px;margin-bottom:8px}.success-box{padding:12px;border:1px solid rgba(46,160,67,.5);background:rgba(46,160,67,.12);border-radius:10px;color:#7ee787}.email-settings-card{margin-top:18px}.cron-help{margin-top:18px;padding:14px;border:1px dashed #3d444d;border-radius:12px}.cron-help code{display:block;direction:ltr;text-align:left;overflow:auto;padding:10px;background:#0d1117;border-radius:8px;margin:8px 0}

/* V1.12.1 landing page, mobile reservation form and customer table repair */
.gny-landing-body{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;background:radial-gradient(circle at 15% 15%,#1f6feb2b,transparent 34%),radial-gradient(circle at 85% 80%,#23863627,transparent 34%),#0d1117}.gny-landing{position:relative;isolation:isolate;width:min(1050px,calc(100% - 32px));margin:auto;padding:42px 0 28px}.gny-landing-watermark{position:fixed;inset:0;z-index:-1;display:grid;place-items:center;color:#58a6ff0d;font-size:clamp(180px,38vw,560px);font-weight:1000;letter-spacing:-18px;transform:rotate(-8deg);pointer-events:none;user-select:none}.gny-landing-head{text-align:center;background:transparent;border:0;position:static;display:block;padding:0;margin-bottom:32px}.gny-landing-logo{width:150px;height:104px;margin:0 auto 18px;display:grid;place-items:center;border-radius:26px;background:linear-gradient(135deg,#238636,#1f6feb);color:#fff;font-size:48px;font-weight:1000;letter-spacing:5px;border:1px solid #79c0ff88;box-shadow:0 18px 55px #1f6feb42}.gny-landing-head h1{margin:0 0 9px;font-size:clamp(24px,3vw,38px);line-height:1.5}.gny-landing-head p{margin:0;color:#9da8b4;font-size:16px}.gny-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;direction:rtl}.gny-entry-card{min-height:245px;padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:22px;border:1px solid var(--border);color:#e6edf3;background:#161b22e8;box-shadow:0 18px 48px #0005;transition:transform .2s,border-color .2s,box-shadow .2s}.gny-entry-card:hover{transform:translateY(-5px);box-shadow:0 24px 60px #0008}.gny-entry-card .entry-icon{font-size:50px}.gny-entry-card h2{font-size:27px;margin:12px 0 6px}.gny-entry-card p{color:#9da8b4;margin:0 0 22px}.gny-entry-card strong{padding:11px 18px;border-radius:10px}.reservation-entry-card{grid-column:1;border-color:#23863688}.reservation-entry-card strong{color:#7ee787;background:#23863622}.management-entry-card{grid-column:2;border-color:#1f6feb88}.management-entry-card strong{color:#79c0ff;background:#1f6feb22}.gny-landing-footer{text-align:center;padding:16px;border-top:1px solid var(--border);color:#c7d2df;line-height:1.8}.gny-landing-footer small{display:block;color:var(--muted)}.landing-back-link{display:block;text-align:center;margin-top:12px;font-weight:700}
.portal-reservation-modal{max-height:min(92dvh,760px);overflow:hidden}.portal-reservation-modal .portal-reservation-form{max-height:calc(min(92dvh,760px) - 40px);overflow-y:auto;overflow-x:hidden;padding-left:4px;overscroll-behavior:contain}.portal-reservation-modal .modal-head{position:sticky;top:0;z-index:3;background:var(--panel);padding-bottom:8px}.portal-reservation-modal .modal-actions{position:sticky;bottom:0;z-index:3;background:var(--panel);padding-top:10px;border-top:1px solid var(--border)}
.customer-page-layout{grid-template-columns:minmax(270px,340px) minmax(0,1fr)}.customer-page-layout>section:nth-child(2){min-width:0;overflow:hidden}.customer-page-layout>section:nth-child(2) .table{display:block;width:100%;overflow-x:auto;overflow-y:visible;white-space:nowrap;scrollbar-gutter:stable}.customer-page-layout>section:nth-child(2) .table tbody,.customer-page-layout>section:nth-child(2) .table tr{width:100%}.customer-page-layout>section:nth-child(2) .table th{position:sticky;top:0;z-index:2;background:#161b22;color:#c9d1d9;font-size:12px}.customer-page-layout>section:nth-child(2) .table th,.customer-page-layout>section:nth-child(2) .table td{padding:9px 8px;vertical-align:top}.customer-page-layout>section:nth-child(2) .table td:nth-child(3){min-width:130px}.customer-page-layout>section:nth-child(2) .table td:nth-last-child(1){min-width:285px;white-space:normal}.customer-page-layout .row-actions{align-items:flex-start}.customer-page-layout .wallet-form{margin:0!important}.customer-page-layout .wallet-form input{width:105px}
@media(max-width:800px){.gny-landing{width:min(100% - 20px,560px);padding:24px 0}.gny-landing-head{margin-bottom:20px}.gny-landing-logo{width:112px;height:78px;font-size:36px;border-radius:20px}.gny-entry-grid{grid-template-columns:1fr;gap:14px}.gny-entry-card{min-height:178px;padding:20px}.reservation-entry-card{grid-column:1;grid-row:1}.management-entry-card{grid-column:1;grid-row:2}.gny-entry-card .entry-icon{font-size:38px}.gny-entry-card h2{font-size:22px;margin:7px 0 4px}.gny-entry-card p{margin-bottom:14px}.portal-reservation-modal{width:calc(100% - 12px)!important;max-height:96dvh!important;margin:auto;padding:12px!important;border-radius:13px}.portal-reservation-modal .portal-reservation-form{max-height:calc(96dvh - 24px)!important;gap:9px}.portal-reservation-modal .inline{grid-template-columns:1fr;gap:9px}.portal-reservation-modal input,.portal-reservation-modal select,.portal-reservation-modal textarea{width:100%;min-height:42px}.portal-reservation-modal textarea{min-height:62px}.portal-reservation-modal .captcha-row{grid-template-columns:minmax(0,1fr) 44px}.portal-reservation-modal .captcha-row img{width:100%;max-width:180px}.portal-reservation-modal .captcha-row label{grid-column:1/-1}.portal-reservation-modal .modal-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}.portal-reservation-modal .modal-actions button{min-width:0;width:100%;min-height:44px}.customer-page-layout{grid-template-columns:1fr}.customer-page-layout>section:nth-child(2){padding:12px}.customer-page-layout>section:nth-child(2) .table{font-size:12px}.customer-page-layout>section:nth-child(2) .table th,.customer-page-layout>section:nth-child(2) .table td{padding:8px 7px}.customer-page-layout .head-actions{width:100%}.customer-page-layout .head-actions .inline-form{width:100%}.customer-page-layout .head-actions .inline-form input{flex:1;min-width:0}}

/* V1.12.2 persistent sessions, progressive CAPTCHA and universal scrolling */
.captcha-required-block{display:grid;gap:8px}.captcha-free-note{display:block;padding:9px 11px;border:1px solid #23863666;border-radius:9px;background:#23863617;color:#7ee787}.customer-found{color:#7ee787!important}.admin-scroll-html,.admin-scroll-body{height:auto!important;min-height:100%!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important}.admin-scroll-body{display:block!important;position:static!important}.admin-scroll-body .app-main{height:auto!important;min-height:calc(100vh - 64px)!important;max-height:none!important;overflow:visible!important;padding-bottom:84px!important}.admin-scroll-body .two-col,.admin-scroll-body .rentals-layout,.admin-scroll-body .card{max-height:none!important}.admin-scroll-body dialog{max-height:92dvh;overflow:auto}.rentals-layout>section{min-width:0}.rentals-layout>section:last-child .table{display:block;width:100%;overflow-x:auto;white-space:nowrap}.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}#user-permission-customizer[hidden],#owner-full-access-note[hidden]{display:none!important}#user-permission-customizer{display:grid;gap:10px}
@media(max-width:900px){.admin-scroll-body .app-main{padding:12px 12px 90px!important}.rentals-layout{grid-template-columns:1fr!important}.rentals-layout>section:last-child{overflow:hidden}.rentals-layout>section:last-child .table{min-width:760px}.admin-scroll-body .table-scroll{overflow-x:auto}.admin-scroll-body .table-scroll .table{min-width:max-content}}

/* V1.12.3 neon GNY home/login and scroll-free customer cards */
.gny-neo-body{--cyan:#24baff;--violet:#b23cff;min-height:100dvh;margin:0;display:flex;flex-direction:column;overflow-x:hidden;background:radial-gradient(circle at 8% 60%,#006dce3a,transparent 32%),radial-gradient(circle at 92% 62%,#8e00c83d,transparent 34%),linear-gradient(180deg,#020711,#050a16 60%,#080812);color:#f4f7ff}.gny-neo-body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 24%,#1c8fff0c 25%,transparent 27% 73%,#c12cff0c 75%,transparent 77%),repeating-linear-gradient(90deg,transparent 0 119px,#2b72a20a 120px);z-index:0}.gny-neo-landing,.neo-login-shell{position:relative;z-index:1;width:min(1440px,calc(100% - 34px));margin:auto}.neo-watermark{position:fixed;inset:0;z-index:-1;display:grid;place-items:center;font-size:clamp(250px,48vw,750px);font-weight:1000;letter-spacing:-28px;color:transparent;-webkit-text-stroke:2px #7897be0e;transform:scaleX(1.08);user-select:none;pointer-events:none}.neo-welcome{text-align:center;background:none;border:0;position:static;display:block;padding:18px 0 30px}.circuit-title{display:flex;align-items:center;justify-content:center;gap:28px}.circuit-title i{display:block;width:115px;height:2px;background:linear-gradient(90deg,#247cff,#e14cff);box-shadow:0 0 12px #6c55ff}.circuit-title i:first-child:before,.circuit-title i:last-child:after{content:"";display:block;width:7px;height:7px;border-radius:50%;background:#347eff;transform:translateY(-2.5px);box-shadow:0 0 10px #347eff}.circuit-title i:last-child:after{margin-right:auto}.circuit-title h1{font-size:clamp(24px,3vw,43px);margin:0;line-height:1.5}.neo-gny-logo{width:max-content;margin:28px auto 0;font-family:Arial Black,Impact,sans-serif;font-style:italic;font-size:clamp(86px,12vw,180px);font-weight:1000;line-height:.8;letter-spacing:-12px;background:linear-gradient(160deg,#fff 8%,#cbd7ea 35%,#d33cff 50%,#155cff 70%,#e7f3ff 90%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:2px #e5ecfa;text-shadow:0 5px 0 #15213b,0 10px 0 #050916,0 0 28px #287cff99,0 0 42px #b52cff55;filter:drop-shadow(0 18px 12px #000b)}.neo-choice-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"reservation management";direction:ltr;gap:38px;margin:15px auto 0;max-width:1240px}.neo-choice{position:relative;min-height:330px;border-radius:34px;padding:38px;display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:18px;overflow:hidden;color:#fff;background:#071222db;box-shadow:inset 0 0 65px #00142e,0 22px 60px #000a;transition:transform .2s,box-shadow .2s}.neo-choice:before{content:"";position:absolute;inset:0;opacity:.22;background:repeating-linear-gradient(90deg,transparent 0 49px,currentColor 50px,transparent 51px),linear-gradient(145deg,transparent,#000 70%)}.neo-choice:hover{transform:translateY(-5px)}.neo-reservation{grid-area:reservation;border:2px solid var(--cyan);box-shadow:inset 0 0 65px #002b55,0 0 22px #00aaff55,0 22px 60px #000a;color:var(--cyan)}.neo-management{grid-area:management;border:2px solid #bd55ff;box-shadow:inset 0 0 65px #2d0749,0 0 22px #b22cff55,0 22px 60px #000a;color:#c663ff}.neo-choice-copy{position:relative;z-index:2;display:grid;gap:10px;text-align:center;direction:rtl}.neo-choice-copy small,.neo-choice-copy em{color:#f4f4fa;font-size:clamp(18px,1.6vw,27px);font-style:normal}.neo-choice-copy strong{font-size:clamp(34px,3vw,52px);color:currentColor}.neo-choice-icon{position:relative;z-index:2;font-size:clamp(70px,8vw,130px);font-weight:900;text-align:center;text-shadow:0 0 22px currentColor;letter-spacing:-20px}.neo-choice>b{position:absolute;z-index:2;bottom:28px;left:32px;font-size:38px}.neo-footer{position:relative;z-index:2;margin:26px auto 28px;padding:15px 42px;border:1px solid #36405e;border-radius:999px;background:#090d1bdd;color:#cbd2df;text-align:center;box-shadow:0 10px 35px #0008}
.neo-login-page{background:radial-gradient(circle at 5% 60%,#006dce44,transparent 35%),radial-gradient(circle at 95% 60%,#8e00c84a,transparent 36%),linear-gradient(180deg,#020711,#060816)}.neo-login-shell{max-width:1000px;padding:22px 0}.neo-login-head{text-align:center}.circuit-title.small{gap:18px;color:#bec4d0;font-size:20px}.circuit-title.small i{width:80px}.neo-login-head h1{font-size:clamp(32px,4vw,56px);margin:20px 0 4px}.neo-login-head .neo-gny-logo{font-size:clamp(88px,10vw,145px);margin-top:24px;position:relative;z-index:3}.neo-login-card{width:min(640px,100%);margin:-18px auto 0;padding:72px 55px 34px;border:2px solid transparent;border-radius:32px;background:linear-gradient(#070b18e8,#070b18e8) padding-box,linear-gradient(135deg,var(--cyan),#8b4dff,var(--violet)) border-box;box-shadow:0 0 35px #168bff44,0 0 45px #a52cff25,inset 0 0 55px #0b1740}.neo-login-form{display:grid;gap:22px}.neo-login-form>label{display:grid;gap:8px;font-size:17px;color:#d9deea}.neo-input-wrap{display:grid;grid-template-columns:46px 1fr auto;align-items:center;border:1px solid #34415b;border-radius:15px;background:#050914;overflow:hidden;transition:border-color .2s,box-shadow .2s}.neo-input-wrap:focus-within{border-color:#5e87ff;box-shadow:0 0 18px #356eff33}.neo-input-wrap>span{font-size:25px;text-align:center;color:#2f9cff}.neo-input-wrap input{width:100%;height:62px;border:0;border-radius:0;background:transparent;padding:12px;color:#fff;outline:0}.neo-input-wrap button{border:0;background:transparent;font-size:22px;color:#c4c9d5;padding:10px 16px}.neo-forgot{justify-self:start;color:#ce63ff;font-weight:700}.neo-captcha{display:grid;gap:8px}.neo-captcha>input{width:100%}.neo-login-submit{height:66px;border:0;border-radius:17px;background:linear-gradient(100deg,#008cff,#5d39e8,#d51bd9);box-shadow:0 0 24px #087cff88,0 0 26px #c526e466;color:#fff;font-size:24px;font-weight:900}.neo-login-submit span{margin-right:12px}.neo-home-back{height:58px;display:grid;place-items:center;border:1px solid #574274;border-radius:15px;background:#0b0818cc;color:#d98cff;font-size:18px}.neo-login-footer{text-align:center;color:#aeb6c5;padding:0 15px 24px;position:relative;z-index:2;line-height:2}.neo-login-footer strong{display:block;color:#ca68ff}.neo-login-card .error{margin:0 0 16px}
.customer-page-layout{display:grid!important;grid-template-columns:minmax(260px,320px) minmax(0,1fr)!important}.customer-page-layout>section:nth-child(2){overflow:visible!important}.customer-card-grid{display:block!important;overflow:visible!important;white-space:normal!important;border-collapse:separate!important}.customer-card-grid>tbody{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%!important}.customer-card-grid>tbody>tr:first-child{display:none!important}.customer-card-grid>tbody>tr:not(:first-child){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;padding:16px;border:1px solid #34405a;border-radius:16px;background:#0d1117;box-shadow:0 8px 22px #0003;width:auto!important}.customer-card-grid td{display:grid!important;grid-template-columns:minmax(92px,.7fr) minmax(0,1.3fr);align-items:start;gap:8px;border:0!important;border-bottom:1px solid #242b36!important;padding:7px 0!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere}.customer-card-grid td:before{content:attr(data-label);color:#8b949e;font-size:11px;font-weight:700}.customer-card-grid td:last-child{grid-column:1/-1;border-bottom:0!important;padding-top:10px!important}.customer-card-grid td:last-child:before{content:"عملیات"}.customer-card-grid .row-actions{display:flex!important;flex-wrap:wrap!important;gap:7px}.customer-card-grid .row-actions>button,.customer-card-grid .row-actions>form{flex:1 1 120px}.customer-card-grid .row-actions>button,.customer-card-grid .row-actions>form button{width:100%}.customer-card-grid .wallet-form{display:grid!important;grid-template-columns:1fr auto;min-width:210px}.customer-card-grid .wallet-form input{width:100%!important;min-width:0}.customer-card-grid .customer-reward-line{max-width:100%}
@media(max-width:900px){.gny-neo-body{min-height:100dvh}.gny-neo-landing,.neo-login-shell{width:min(100% - 20px,620px);margin:0 auto}.neo-welcome{padding:22px 0 14px}.circuit-title{gap:10px}.circuit-title i{width:38px}.circuit-title h1{font-size:21px}.neo-gny-logo{font-size:86px;letter-spacing:-7px;margin-top:18px}.neo-choice-grid{grid-template-columns:1fr;grid-template-areas:"reservation" "management";gap:14px;margin-top:8px}.neo-choice{min-height:185px;border-radius:22px;padding:20px;grid-template-columns:.75fr 1.25fr}.neo-choice-copy small,.neo-choice-copy em{font-size:16px}.neo-choice-copy strong{font-size:31px}.neo-choice-icon{font-size:60px;letter-spacing:-10px}.neo-choice>b{bottom:14px;left:18px;font-size:25px}.neo-footer{margin:14px 10px 20px;padding:11px 15px;border-radius:16px;font-size:12px}.neo-login-shell{padding:14px 0}.circuit-title.small{font-size:14px}.neo-login-head h1{font-size:30px;margin-top:13px}.neo-login-head .neo-gny-logo{font-size:86px;margin-top:17px}.neo-login-card{margin:-8px auto 0;padding:42px 16px 20px;border-radius:22px}.neo-login-form{gap:16px}.neo-input-wrap input{height:52px}.neo-login-submit{height:56px;font-size:20px}.neo-home-back{height:50px}.login-captcha-row{grid-template-columns:minmax(0,1fr) auto}.login-captcha-row img{width:100%;max-width:180px}.customer-page-layout{grid-template-columns:1fr!important}.customer-card-grid>tbody{grid-template-columns:1fr!important}.customer-card-grid>tbody>tr:not(:first-child){grid-template-columns:1fr!important}.customer-card-grid td,.customer-card-grid td:last-child{grid-column:1!important}.customer-card-grid td{grid-template-columns:100px minmax(0,1fr)}.customer-card-grid .row-actions>button,.customer-card-grid .row-actions>form{flex-basis:100%}.customer-page-layout>section:nth-child(2){padding:10px!important}}
@media(min-width:901px) and (max-height:760px){.neo-welcome{padding:8px 0 12px}.neo-gny-logo{font-size:100px;margin-top:15px}.neo-choice{min-height:250px}.neo-choice-grid{margin-top:5px}.neo-footer{margin:14px auto}.neo-login-head h1{font-size:40px;margin:8px}.neo-login-head .neo-gny-logo{font-size:95px;margin-top:12px}.neo-login-card{padding-top:48px}.neo-login-form{gap:13px}.neo-input-wrap input{height:49px}.neo-login-submit{height:52px}.neo-home-back{height:46px}}

/* V1.12.4 exact desktop composition from the approved visual references */
@media(min-width:901px){
 body.gny-neo-body{height:100vh;min-height:0;overflow:hidden;background-color:#020711;background-repeat:no-repeat;background-position:center;background-size:cover}
 body.gny-neo-body:not(.neo-login-page){background-image:url('gny-home-reference.webp')}
 body.neo-login-page{background-image:url('gny-login-reference.webp')}
 body.gny-neo-body:before,.gny-neo-body .neo-watermark{display:none!important}
 .gny-neo-landing{position:relative;width:100vw;height:100vh;max-width:none;margin:0;padding:0}
 .gny-neo-landing .neo-welcome,.gny-neo-body:not(.neo-login-page)>.neo-footer{visibility:hidden!important}
 .gny-neo-landing .neo-choice-grid{position:absolute;inset:38.25% 8.95% 20.05%;display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"reservation management";gap:2.9%;max-width:none;margin:0}
 .gny-neo-landing .neo-choice{min-height:0;height:100%;padding:0;border:0;border-radius:4.1vw;background:transparent;box-shadow:none;color:transparent;transition:box-shadow .18s,transform .18s}
 .gny-neo-landing .neo-choice>*{visibility:hidden}
 .gny-neo-landing .neo-choice:hover,.gny-neo-landing .neo-choice:focus-visible{transform:translateY(-2px);outline:0}
 .gny-neo-landing .neo-reservation:hover,.gny-neo-landing .neo-reservation:focus-visible{box-shadow:inset 0 0 0 3px #32c8ff,0 0 32px #00a9ff88}
 .gny-neo-landing .neo-management:hover,.gny-neo-landing .neo-management:focus-visible{box-shadow:inset 0 0 0 3px #ca6dff,0 0 32px #ae34ff88}
 .neo-login-shell{position:relative;width:100vw;height:100vh;max-width:none;margin:0;padding:0}
 .neo-login-shell .neo-login-head,.neo-login-page>.neo-login-footer{visibility:hidden!important}
 .neo-login-shell .neo-login-card{position:absolute;left:29.08%;top:29.15%;width:41.65%;height:59.7%;margin:0;padding:7.35% 3.7% 3.4%;border:0;border-radius:0;background:transparent;box-shadow:none}
 .neo-login-shell .neo-login-form{height:100%;gap:2.25%;align-content:start}
 .neo-login-shell .neo-login-form>label{gap:7px;font-size:clamp(14px,1.15vw,20px);color:#e0e4ec}
 .neo-login-shell .neo-input-wrap{height:7.1vh;min-height:54px;border:1px solid #394158;border-radius:15px;background:#050914f2}
 .neo-login-shell .neo-input-wrap input{height:100%;font-size:clamp(13px,1vw,17px)}
 .neo-login-shell .neo-forgot{font-size:clamp(13px,1.05vw,18px);margin:0;color:#d361ff}
 .neo-login-shell .neo-login-submit{height:7.35vh;min-height:56px;font-size:clamp(18px,1.45vw,25px)}
 .neo-login-shell .neo-home-back{height:6.55vh;min-height:50px;font-size:clamp(14px,1.15vw,19px)}
 .neo-login-shell .neo-captcha{display:grid;grid-template-columns:180px minmax(0,1fr);gap:7px 12px;align-items:end}
 .neo-login-shell .neo-captcha>label{grid-column:1/-1}.neo-login-shell .neo-captcha .login-captcha-row{grid-template-columns:1fr auto}.neo-login-shell .neo-captcha>input{height:54px}
 .neo-login-shell .neo-login-form:has(.neo-captcha){gap:1.15%}.neo-login-shell .neo-login-form:has(.neo-captcha) .neo-input-wrap{height:5.8vh;min-height:46px}.neo-login-shell .neo-login-form:has(.neo-captcha) .neo-login-submit{height:5.9vh;min-height:47px}.neo-login-shell .neo-login-form:has(.neo-captcha) .neo-home-back{height:5.3vh;min-height:44px}
}
/* V1.14.2: scroll, privacy and Jalali history filters for customer club */
html:has(body.club-body),body.club-body{height:auto!important;min-height:100%!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch}
body.club-body{display:block!important}.club-shell{height:auto!important;max-height:none!important;overflow:visible!important;padding-bottom:50px}.club-privacy-note{color:#8fa3bd;font-size:12px}.club-leaders li>span{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.club-leaders li>span small{direction:ltr;color:#8fd4ff}.club-filter{display:grid;grid-template-columns:1fr 1fr auto auto;gap:8px;margin-bottom:12px}.club-filter>a{display:grid;place-items:center;text-decoration:none}.club-date-open{display:flex;justify-content:space-between;gap:8px;min-width:0;background:#07101e;border:1px solid #315176;color:#c9d8eb}.club-date-open b{color:#71cbff;direction:ltr}.club-date-dialog{width:min(460px,calc(100% - 24px));border:1px solid #4c83bd;border-radius:18px;background:#091321;color:#edf5ff;padding:18px;box-shadow:0 24px 80px #000c}.club-date-dialog::backdrop{background:#000a}.club-date-head{display:flex;align-items:center;justify-content:space-between}.club-date-head h3{margin:0}.club-date-head button{font-size:22px}.club-date-fields{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8px;margin:18px 0}.club-date-fields label{display:grid;gap:6px}.club-date-fields select{width:100%}.club-privacy-admin{margin-bottom:16px}.club-privacy-admin>small{display:block;color:#91a3bb;margin-top:10px}
@media(max-width:700px){html:has(body.club-body),body.club-body{width:100%;min-width:0}.club-header{padding:8px 10px;gap:8px;flex-wrap:wrap;justify-content:center}.club-header b{font-size:13px}.club-header .btn{font-size:12px;padding:7px 10px}.club-header .gny-logo{width:48px;height:34px;font-size:15px}.club-shell{width:100%;margin:10px 0;padding:0 8px 44px;box-sizing:border-box}.club-shell *{box-sizing:border-box;max-width:100%}.club-hero{grid-template-columns:64px minmax(0,1fr);padding:13px;gap:10px;border-radius:15px}.club-avatar{width:60px;height:60px;font-size:30px}.club-hero h1{font-size:20px}.club-hero p{font-size:11px;overflow-wrap:anywhere}.club-card,.club-stats article{padding:13px;border-radius:13px}.club-card h2{font-size:18px}.club-leaders li{align-items:flex-start;flex-direction:column}.club-leaders li>span{font-size:11px}.club-filter{grid-template-columns:1fr 1fr}.club-filter .primary,.club-filter>a{min-height:42px}.club-date-open{display:grid;gap:3px;text-align:right;font-size:11px}.club-history{max-height:none;overflow:visible}.club-history>div{grid-template-columns:1fr 1fr;gap:5px;font-size:11px}.club-history>div strong{text-align:left}.club-date-fields{grid-template-columns:1fr 1.25fr 1fr}.club-date-dialog{padding:14px}.club-admin-grid{margin:10px 0}.club-admin-list{max-height:none;overflow:visible}.club-privacy-admin .inline{display:grid;grid-template-columns:1fr}.club-privacy-admin button{width:100%}}
.club-wheel-card{position:relative;display:grid;grid-template-columns:300px 1fr;align-items:center;gap:28px;margin:16px 0;padding:22px;border:1px solid #9d5cff;border-radius:22px;background:linear-gradient(130deg,#07192ddd,#2c0d40dd);overflow:hidden}.club-prize-wheel{position:relative;width:280px;height:280px;border:8px solid #ffd86a;border-radius:50%;background:conic-gradient(#188cff 0 25%,#a63cff 25% 50%,#ff9f1c 50% 75%,#14b86e 75%);box-shadow:0 0 34px #a74cff77;transition:transform 4s cubic-bezier(.12,.72,.08,1)}.club-prize-wheel:after{content:'GNY';position:absolute;inset:36%;display:grid;place-items:center;border-radius:50%;background:#07101e;border:4px solid #fff;color:#fff;font-weight:900;transform:rotate(calc(var(--wheel-rotation,0deg) * -1))}.club-prize-wheel span{position:absolute;z-index:1;top:50%;left:50%;width:42%;font-size:10px;font-weight:800;text-align:center;transform-origin:0 0;transform:rotate(calc((360deg / var(--segments)) * var(--i))) translate(30px,-50%);color:#fff;text-shadow:0 1px 3px #000}.club-wheel-pointer{position:absolute;z-index:3;right:296px;top:8px;color:#fff15b;font-size:32px;text-shadow:0 0 10px #ffb800}.club-wheel-copy h2{font-size:30px}.club-wheel-copy>strong{display:block;min-height:35px;margin-top:15px;color:#ffe06a;font-size:20px}.club-prize-list{display:grid;gap:8px;margin-top:14px}.club-prize-list article{display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px;border:1px solid #314158;border-radius:10px}.club-prize-admin{margin-top:16px}.club-date-fields select{appearance:auto!important;-webkit-appearance:menulist!important;color:#eef5ff!important;background:#07101e!important}
@media(max-width:700px){.club-wheel-card{grid-template-columns:1fr;padding:15px;justify-items:center;text-align:center}.club-prize-wheel{width:240px;height:240px}.club-wheel-pointer{right:calc(50% - 15px);top:2px}.club-wheel-copy h2{font-size:23px}.club-prize-list article{grid-template-columns:1fr}.club-prize-list .inline{display:grid;grid-template-columns:1fr 1fr}.club-prize-list .inline input:first-of-type,.club-prize-list .inline select{grid-column:1/-1}}
@media(max-width:900px){
 body.gny-neo-body,body.neo-login-page{background-image:none!important;background:radial-gradient(circle at 8% 35%,#006dce42,transparent 36%),radial-gradient(circle at 92% 68%,#8e00c84a,transparent 38%),linear-gradient(180deg,#020711,#060816)!important;overflow-y:auto!important}
 .gny-neo-landing .neo-welcome,.gny-neo-body:not(.neo-login-page)>.neo-footer,.neo-login-shell .neo-login-head,.neo-login-page>.neo-login-footer{visibility:visible!important}
}

/* V1.14.5: accurate weighted prize wheel and customer avatars */
.club-prize-wheel{background:#188cff}.club-prize-wheel:after{z-index:2;transform:none}.club-prize-wheel span{top:50%;left:50%;width:104px;line-height:1.45;font-size:11px;transform-origin:center;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-91px) rotate(calc(var(--angle) * -1));overflow-wrap:anywhere}.club-admin-avatar,.customer-list-avatar,.customer-profile-avatar{display:block;object-fit:cover;border-radius:50%;border:2px solid #329dff;background:#07101e}.club-admin-avatar{width:34px;height:34px;flex:0 0 34px}.club-admin-list summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.customer-list-avatar{width:30px;height:30px}.customer-pick:has(.customer-list-avatar){grid-template-columns:32px minmax(0,1fr) auto}.customer-profile-avatar{width:58px;height:58px;flex:0 0 58px}.customer-avatar-admin{justify-content:flex-start;margin:-4px 0 4px}.customer-avatar-admin small{color:#8fa0b7}
@media(max-width:700px){.club-prize-wheel span{width:88px;font-size:9px;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-76px) rotate(calc(var(--angle) * -1))}.customer-profile-avatar{width:48px;height:48px;flex-basis:48px}}
.club-wheel-pointer{right:172px;transform:translateX(50%)}
@media(max-width:700px){.club-wheel-pointer{right:calc(50% - 15px);transform:none}}

/* V1.12.4 compact customer directory */
.customer-directory{display:grid;grid-template-columns:minmax(250px,300px) minmax(280px,350px) minmax(0,1fr);grid-template-areas:"editor list detail";gap:14px;align-items:start;max-width:100%;overflow:visible}.customer-editor{grid-area:editor}.customer-list-panel{grid-area:list;min-width:0;padding:14px!important}.customer-detail-panel{grid-area:detail;min-width:0}.customer-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.customer-list-head h1{font-size:21px;margin:0}.customer-list-head small{color:var(--muted)}.customer-export-links{display:flex;gap:5px}.customer-export-links .btn{padding:5px 8px;font-size:11px}.customer-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-bottom:8px}.customer-search input{min-width:0}.customer-search button,.customer-bulk-compact button{padding-inline:10px}.customer-bulk-compact{display:grid;grid-template-columns:auto minmax(90px,1fr) minmax(0,1fr) auto;align-items:center;gap:6px;margin-bottom:8px}.customer-bulk-compact label{display:flex;align-items:center;gap:4px;font-size:11px}.customer-bulk-compact select,.customer-bulk-compact input{min-width:0}.customer-compact-list{display:grid;gap:6px;max-height:66vh;overflow-y:auto;overflow-x:hidden;padding-left:3px;scrollbar-width:thin}.customer-list-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid #2b3446;border-radius:10px;background:#0c121d;overflow:hidden;transition:.18s}.customer-list-row[hidden]{display:none!important}.customer-list-row:hover,.customer-list-row.selected{border-color:#269fff;box-shadow:0 0 14px #168cff35;background:#101b2c}.customer-list-row.online{border-color:#22c96c88;box-shadow:inset 3px 0 #22c96c}.customer-select-check{padding:0 8px;display:grid;place-items:center}.customer-pick{width:100%;min-width:0;border:0;background:transparent;color:#edf4ff;padding:9px 5px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;text-align:right}.customer-pick>span:nth-child(2){min-width:0;display:grid}.customer-pick b,.customer-pick small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-pick small{font-size:10px;color:#95a3b5}.customer-pick em{font-size:9px;color:#68f19e;background:#0d4325;padding:3px 5px;border-radius:999px;font-style:normal;white-space:nowrap}.customer-presence,.customer-profile-presence{width:8px;height:8px;border-radius:50%;background:#596477;box-shadow:0 0 0 3px #5964771c}.customer-list-row.online .customer-presence,.customer-profile-card.online .customer-profile-presence{background:#35e881;box-shadow:0 0 11px #35e881}.customer-empty-state{min-height:380px;display:grid;place-content:center;text-align:center;color:#8e9bad}.customer-empty-state h2{color:#dce7f7;margin:10px 0}.empty-customer-icon{font-size:58px;filter:grayscale(1);opacity:.7}.customer-profile-card{display:grid;gap:14px;min-width:0;border:1px solid #34415a;background:linear-gradient(145deg,#101827,#090d16)}.customer-profile-card[hidden],.customer-empty-state[hidden]{display:none!important}.customer-profile-card.online{border-color:#31d97988;box-shadow:0 0 24px #20ce6820}.customer-profile-head,.customer-profile-head>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.customer-profile-head>div{justify-content:flex-start}.customer-profile-head h2{margin:0;font-size:22px}.customer-profile-head small{color:#8fa0b7}.customer-profile-presence{width:13px;height:13px}.customer-status-badge{padding:5px 9px;border-radius:999px;font-size:11px;background:#394052;color:#d7deeb;white-space:nowrap}.customer-status-badge.online{background:#0c4828;color:#72f3a5}.customer-status-badge.active{background:#12365b;color:#79c4ff}.customer-status-badge.inactive{background:#4c2329;color:#ff9da8}.customer-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.customer-profile-grid>div{display:grid;gap:3px;min-width:0;padding:10px;border:1px solid #293447;border-radius:10px;background:#0a111d}.customer-profile-grid small{color:#8190a5;font-size:10px}.customer-profile-grid b{font-size:13px;overflow-wrap:anywhere}.customer-profile-grid em{font-style:normal;color:#718097;font-size:9px}.customer-profile-note{padding:10px;border-right:3px solid #8c4dff;background:#25163c;border-radius:8px;overflow-wrap:anywhere}.customer-profile-rewards{display:grid;gap:7px}.customer-profile-rewards h3{margin:0}.customer-profile-rewards>div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px;border:1px solid #594779;border-radius:9px}.customer-profile-actions{display:flex;flex-wrap:wrap;gap:7px}.customer-profile-actions>button,.customer-profile-actions>form{flex:1 1 120px}.customer-profile-actions button{width:100%}.customer-profile-actions .wallet-form{display:grid;grid-template-columns:minmax(80px,1fr) auto}.customer-profile-actions input{min-width:0;width:100%}.customer-loyalty-collapsible{margin-top:14px}.customer-loyalty-collapsible>summary{cursor:pointer;font-weight:800}.customer-loyalty-collapsible[open]>summary{margin-bottom:14px}

/* V1.12.4 neon public reservation */
body.portal-page-body{position:relative;background:radial-gradient(circle at 6% 42%,#006cc848,transparent 34%),radial-gradient(circle at 94% 55%,#9413ca48,transparent 35%),linear-gradient(150deg,#020711,#07101d 55%,#090413)!important;color:#eef5ff}.portal-neo-watermark{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;user-select:none;font-family:Arial Black,Impact,sans-serif;font-style:italic;font-weight:1000;font-size:clamp(230px,46vw,700px);letter-spacing:-35px;color:transparent;-webkit-text-stroke:2px #7197c30b;z-index:0}.portal-public,.portal-footer{position:relative;z-index:1}.portal-public-head{border:1px solid #30415d!important;border-radius:18px!important;background:linear-gradient(110deg,#05172dd9,#160923d9)!important;box-shadow:0 0 25px #168dff25,0 0 25px #b52cff1f!important}.portal-gny-hero{font-family:Arial Black,Impact,sans-serif!important;font-style:italic!important;letter-spacing:-8px!important;background:linear-gradient(155deg,#fff,#b9c9e0 35%,#d12fff 53%,#176cff 74%,#e9f3ff)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-stroke:1px #e2ebfb;text-shadow:0 4px 0 #121a30,0 0 24px #3c75ff!important}.portal-head-copy h1{color:#f5f7ff!important}.portal-pages a{border-color:#35445e!important;background:#07101ecc!important;color:#b7c3d5!important}.portal-pages a.active{border-color:#b24dff!important;background:linear-gradient(90deg,#075da8,#672895)!important;color:#fff!important;box-shadow:0 0 14px #6548ff66}.portal-device-grid .device{border:1px solid #2e4967!important;background:linear-gradient(150deg,#07182adc,#080d18ed)!important;box-shadow:inset 0 0 28px #0068b818,0 9px 28px #0007!important}.portal-device-grid .device:nth-child(even){border-color:#683e83!important;background:linear-gradient(150deg,#160c27e8,#090b17ed)!important;box-shadow:inset 0 0 28px #a12aff17,0 9px 28px #0007!important}.portal-device-grid .device.free{border-color:#168ee488!important}.portal-device-grid .device.busy{border-color:#c13cff88!important}.portal-device-grid .device-title{border-bottom-color:#334761!important}.portal-device-grid .portal-reserve-btn{border:1px solid #38beff!important;background:linear-gradient(95deg,#047fe0,#4d38ca,#b424d6)!important;color:#fff!important;box-shadow:0 0 13px #078cff55!important}.portal-reservation-modal{border:2px solid transparent!important;background:linear-gradient(#070c18f5,#070c18f5) padding-box,linear-gradient(130deg,#21b9ff,#7748ff,#d33cff) border-box!important;box-shadow:0 0 40px #168cff55,0 0 50px #b42dff30!important;color:#edf5ff}.portal-reservation-modal .modal-head,.portal-reservation-modal .modal-actions{background:#070c18f5!important}.portal-reservation-modal input,.portal-reservation-modal select,.portal-reservation-modal textarea{background:#040914!important;border-color:#35425b!important;color:#edf5ff!important}.portal-reservation-modal input:focus,.portal-reservation-modal select:focus,.portal-reservation-modal textarea:focus{border-color:#6a62ff!important;box-shadow:0 0 0 3px #406dff28!important}.portal-footer{border-top-color:#2f3650!important;background:#050814cc!important;color:#b9c3d2!important}.portal-footer .gny-footer-logo{color:#9d5eff!important;text-shadow:0 0 12px #8254ff}
@media(max-width:1200px){.customer-directory{grid-template-columns:260px minmax(260px,330px) minmax(0,1fr)}.customer-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.customer-directory{grid-template-columns:minmax(0,1fr);grid-template-areas:"list" "detail" "editor";gap:10px}.customer-list-panel,.customer-editor,.customer-profile-card,.customer-empty-state{padding:12px!important}.customer-compact-list{max-height:52vh}.customer-empty-state{min-height:190px}.customer-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-bulk-compact{grid-template-columns:auto minmax(0,1fr) auto}.customer-bulk-compact input{grid-column:1/-1}.customer-profile-actions>button,.customer-profile-actions>form{flex-basis:100%}.portal-neo-watermark{font-size:55vw;letter-spacing:-18px}.portal-public-head{border-radius:13px!important}.portal-gny-hero{letter-spacing:-5px!important}.portal-reservation-modal{max-width:calc(100vw - 10px)!important}}
@media(max-width:520px){.customer-list-head{align-items:flex-start}.customer-search{grid-template-columns:1fr}.customer-search button{width:100%}.customer-profile-grid{grid-template-columns:1fr}.customer-profile-head{align-items:flex-start}.customer-profile-head h2{font-size:18px}.customer-bulk-compact{grid-template-columns:1fr 1fr}.customer-bulk-compact label{justify-content:center}.customer-bulk-compact button{width:100%}.customer-pick{grid-template-columns:9px minmax(0,1fr)}.customer-pick em{grid-column:2;justify-self:start}.customer-profile-rewards>div{align-items:stretch;flex-direction:column}.customer-profile-rewards button{width:100%}}

/* V1.12.5 repaired login, compact rewards and neon management dashboard */
.reward-settings-link{border-color:#a44fff!important;background:#5b258433!important;color:#e4b2ff!important}.customer-loyalty-collapsible{scroll-margin-top:80px;border-color:#6a438d!important;background:linear-gradient(135deg,#111827,#160c23)!important}.customer-loyalty-collapsible>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px;color:#e3c5ff}.customer-loyalty-collapsible>summary::-webkit-details-marker{display:none}.customer-loyalty-collapsible>summary:after{content:"⌄";font-size:20px;color:#b662ff}.customer-loyalty-collapsible[open]>summary:after{content:"⌃"}.customer-loyalty-collapsible summary small{color:#8e9bb0;font-weight:400}.customer-loyalty-collapsible .loyalty-rules-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.customer-loyalty-collapsible .loyalty-rule-row{grid-template-columns:minmax(80px,.8fr) repeat(3,minmax(88px,1fr));gap:6px;padding:7px}.customer-loyalty-collapsible .loyalty-rule-row label{font-size:10px}.customer-loyalty-collapsible .loyalty-rule-row input{min-height:34px;padding:6px}.customer-loyalty-collapsible form>button{justify-self:end;min-width:180px}

body:has(#dashboard-root){position:relative;background:radial-gradient(circle at 4% 42%,#006fc744,transparent 35%),radial-gradient(circle at 96% 55%,#9613ce42,transparent 37%),linear-gradient(145deg,#020711,#07101d 55%,#090413)!important;background-attachment:fixed!important}body:has(#dashboard-root) .app-header{background:#050a15e8!important;border-bottom-color:#35415d!important;box-shadow:0 5px 24px #0008,0 0 22px #247dff18}body:has(#dashboard-root) .app-main{position:relative;isolation:isolate}.dashboard-gny-watermark{position:fixed;inset:0;z-index:-1;display:grid;place-items:center;pointer-events:none;user-select:none;font-family:Arial Black,Impact,sans-serif;font-style:italic;font-size:clamp(260px,47vw,760px);font-weight:1000;letter-spacing:-40px;color:transparent;-webkit-text-stroke:2px #779bc20b}.dashboard-statusbar{border:1px solid #334560!important;background:linear-gradient(100deg,#071a30e8,#150a25e8)!important;box-shadow:0 0 22px #168dff20,0 0 22px #ae31ff1a!important}.dashboard-title .gny-mini-logo{background:linear-gradient(145deg,#fff,#bdcde5 35%,#cf39ff 55%,#2172ff 78%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;text-shadow:0 0 16px #4b70ff88}.dashboard-pages a,.quick-rate-btn{border-color:#384760!important;background:#07101ecc!important}.dashboard-pages a.active,.quick-rate-btn.active{border-color:#7d63ff!important;background:linear-gradient(90deg,#075da8,#672895)!important;color:#fff!important;box-shadow:0 0 11px #604cff55}.quick-rate-btn.has-promotion{border-color:#d153ff!important;background:#7d2daa42!important;box-shadow:0 0 13px #b52eff55!important}.promotion-panel{border:2px solid transparent!important;background:linear-gradient(#080e1bf5,#080e1bf5) padding-box,linear-gradient(135deg,#1fb8ff,#7c4aff,#ce3cff) border-box!important;box-shadow:0 0 35px #168cff45,0 0 42px #b62dff2b!important}.promotion-row{background:#07101c!important;border-color:#33445e!important}.promotion-row.loyalty-ready{border-color:#36db7c!important;box-shadow:inset 3px 0 #36db7c}.promotion-row .primary{background:linear-gradient(90deg,#087cda,#7c36df)!important;border-color:#6e62ff!important}#dashboard-root .device{position:relative;border:1px solid #285176!important;border-top:2px solid #22afff!important;background:linear-gradient(150deg,#071a2add,#080d18f2)!important;box-shadow:inset 0 0 25px #006eb51d,0 8px 23px #0007!important}#dashboard-root .device:nth-child(even){border-color:#694083!important;border-top-color:#b84fff!important;background:linear-gradient(150deg,#170d28e8,#090b17f2)!important;box-shadow:inset 0 0 25px #9d2bff1b,0 8px 23px #0007!important}#dashboard-root .device.busy{border-color:#ca3f7088!important;border-top-color:#ff477e!important;box-shadow:inset 0 0 28px #c723591f,0 0 16px #c72d5a25!important}#dashboard-root .device.disabled{filter:saturate(.35);opacity:.58}#dashboard-root .active-summary,#dashboard-root .compact-price span,#dashboard-root .last-session-summary{background:#050c17d9!important;border:1px solid #273951!important}#dashboard-root .bottom-start{border-color:#30b9ff!important;background:linear-gradient(95deg,#057fdc,#4d38cb,#ad28d2)!important;box-shadow:0 0 12px #177fff55!important}#dashboard-root .icon-btn{border-color:#35455f!important;background:#07101dcc!important}#dashboard-root .icon-btn:hover{border-color:#796cff!important;background:#18203a!important}.start-modal,.invoice-modal{border:2px solid transparent!important;background:linear-gradient(#080e1bf8,#080e1bf8) padding-box,linear-gradient(135deg,#20b9ff,#7750ff,#cc39ff) border-box!important;box-shadow:0 0 34px #168cff42,0 0 42px #b62dff28!important}.start-modal input,.start-modal select,.start-modal textarea{background:#040914!important;border-color:#35445d!important}.app-footer{background:#050815eb!important;border-top-color:#303b54!important}

@media(min-width:901px){body.neo-login-page{background-size:100% 100%!important;background-position:center!important}.neo-login-shell .neo-login-card{top:29%;height:62%;padding:9% 3.7% 3%;border:2px solid transparent;border-radius:32px;background:linear-gradient(#070b18fa,#070b18fa) padding-box,linear-gradient(135deg,#24baff,#7550ff,#c341ff) border-box;box-shadow:0 0 34px #188cff55,0 0 40px #b42cff30,inset 0 0 45px #101a3d}.neo-login-shell .neo-login-card:before{content:"GNY";position:absolute;left:50%;top:0;transform:translate(-50%,-58%);font-family:Arial Black,Impact,sans-serif;font-style:italic;font-size:clamp(78px,9vw,142px);font-weight:1000;letter-spacing:-10px;line-height:.8;background:linear-gradient(155deg,#fff,#c4d1e5 34%,#cf38ff 53%,#176eff 74%,#edf5ff);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px #e0eafa;text-shadow:0 5px 0 #121a30,0 0 24px #4676ff;z-index:2}.neo-login-shell .neo-login-form{gap:2.7%}.neo-login-shell .neo-input-wrap{background:#040914!important}.neo-login-shell .neo-login-submit{background:linear-gradient(90deg,#078ce8,#573fe4,#c524d6)!important}.neo-login-shell .neo-home-back{background:#0a0716f5!important}}
@media(max-width:1050px){.customer-loyalty-collapsible .loyalty-rules-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.customer-loyalty-collapsible .loyalty-rules-grid{grid-template-columns:1fr}.customer-loyalty-collapsible .loyalty-rule-row{grid-template-columns:1fr 1fr}.customer-loyalty-collapsible form>button{width:100%;justify-self:stretch}.dashboard-gny-watermark{font-size:55vw;letter-spacing:-20px}body:has(#dashboard-root) .app-main{overflow:visible!important}.promotion-panel{top:70px;right:8px;width:calc(100% - 16px);max-height:78dvh}.neo-login-shell .neo-login-card:before{display:none}}
@media(max-width:520px){.customer-loyalty-collapsible>summary{align-items:flex-start;flex-direction:column}.customer-loyalty-collapsible .loyalty-rule-row{grid-template-columns:1fr}.dashboard-statusbar{border-radius:10px!important}}

/* V1.12.6 login field colors, visible credits and independent customer drawer */
.neo-input-wrap input,.neo-input-wrap input:focus,.neo-input-wrap input:active{background:#040914!important;color:#f4f7ff!important;-webkit-text-fill-color:#f4f7ff!important;caret-color:#40baff!important}.neo-input-wrap input:-webkit-autofill,.neo-input-wrap input:-webkit-autofill:hover,.neo-input-wrap input:-webkit-autofill:focus,.neo-input-wrap input:-webkit-autofill:active{-webkit-text-fill-color:#f4f7ff!important;caret-color:#40baff!important;-webkit-box-shadow:0 0 0 1000px #040914 inset!important;box-shadow:0 0 0 1000px #040914 inset!important;transition:background-color 99999s ease-out 0s!important}.neo-input-wrap input:autofill{background:#040914!important;color:#f4f7ff!important;box-shadow:0 0 0 1000px #040914 inset!important}.neo-footer span,.neo-footer strong{display:block}.neo-footer strong{margin-top:3px;color:#ce70ff}.neo-login-footer{background:#050814e8;border:1px solid #3a3453;border-radius:14px;padding:5px 22px!important;line-height:1.45!important;box-shadow:0 8px 24px #0008}.neo-footer{line-height:1.45}
.customer-directory{grid-template-columns:minmax(250px,300px) minmax(0,1fr)!important;grid-template-areas:"toggle toggle" "editor detail"!important}.customer-list-toggle{grid-area:toggle;justify-self:start;display:inline-flex;align-items:center;gap:7px;border-color:#4e6fa1;background:linear-gradient(90deg,#075f9f,#59278d);color:#fff;font-weight:800;box-shadow:0 0 15px #3e5fff35}.customer-list-toggle[aria-expanded="true"]{border-color:#b55eff;box-shadow:0 0 18px #a43cff55}.customer-list-panel{position:fixed!important;z-index:95;top:74px;right:14px;bottom:44px;width:min(390px,calc(100vw - 28px));display:flex!important;flex-direction:column;min-height:0;padding:13px!important;border:2px solid transparent!important;background:linear-gradient(#090f1df8,#090f1df8) padding-box,linear-gradient(145deg,#1ebaff,#704fff,#c43dff) border-box!important;box-shadow:0 0 42px #000c,0 0 30px #3b62ff3d!important;transform:translateX(calc(100% + 28px));opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s ease,opacity .18s ease,visibility .22s}.customer-list-open .customer-list-panel{transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto}.customer-list-head{flex:0 0 auto}.customer-list-close{order:-1;width:34px;height:34px;padding:0;font-size:24px;line-height:1;background:#25152f;border-color:#794493;color:#e7bdff}.customer-list-panel .customer-search{flex:0 0 auto}.customer-list-panel #customer-bulk-form{display:flex;flex:1;min-height:0;flex-direction:column}.customer-list-panel .customer-bulk-compact{flex:0 0 auto}.customer-list-panel .customer-compact-list{flex:1;min-height:0;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain;padding-left:5px}.customer-detail-panel{position:sticky;top:75px;align-self:start;max-height:calc(100dvh - 125px);overflow-y:auto;overflow-x:hidden}.customer-editor{position:sticky;top:75px;align-self:start}.customer-list-open:before{content:"";position:fixed;inset:64px 0 0;z-index:90;background:#0006;backdrop-filter:blur(1px)}
@media(min-width:901px){body.gny-neo-body:not(.neo-login-page)>.neo-footer{visibility:visible!important;position:fixed;z-index:12;right:50%;bottom:10px;transform:translateX(50%);margin:0!important;min-width:390px;padding:7px 28px!important;background:#070b18f2;border-color:#413958}.neo-login-page>.neo-login-footer{visibility:visible!important;position:fixed;z-index:20;right:50%;bottom:5px;transform:translateX(50%);min-width:330px}.neo-login-shell .neo-login-card{height:59%;padding-bottom:4.5%}.neo-login-shell .neo-home-back{min-height:44px}}
@media(max-width:900px){.customer-directory{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"toggle" "detail" "editor"!important}.customer-list-toggle{position:sticky;top:65px;z-index:15}.customer-list-panel{top:66px;right:6px;bottom:8px;width:min(430px,calc(100vw - 12px))}.customer-list-open:before{inset:60px 0 0}.customer-detail-panel,.customer-editor{position:static;max-height:none;overflow:visible}.neo-login-footer{margin:8px auto 18px;width:calc(100% - 20px)}.neo-footer{margin-bottom:14px!important}}
.device.busy .state-dot{transform:scale(4);transform-origin:center;animation:runningDot 1s ease-in-out infinite;position:relative;z-index:2}.device.free .state-dot{transform:none;animation:none}@keyframes runningDot{0%,100%{opacity:1;filter:brightness(1)}50%{opacity:.35;filter:brightness(1.8)}}
#invoice-preview-body .invoice-note{color:#ff3b3b!important;font-weight:800!important;border-color:#ff3b3b!important;background:#ff3b3b14!important}.fixed-time-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.settings-section{border:1px solid var(--border);border-radius:12px;padding:10px}.settings-section summary{cursor:pointer;font-weight:800}.settings-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.no-watermark .dashboard-gny-watermark{display:none!important}.theme-light{--bg:#eef2f8;--panel:#fff;--text:#111827;--muted:#526077;--border:#cfd7e5;background:var(--bg);color:var(--text)}.spacious-ui .compact-cards .device{height:auto;min-height:340px;max-height:none}.app-appearance-tabs{margin-top:14px}.appearance-shared-layout{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
@media(min-width:701px){.neon-off *{text-shadow:none!important}}
@media(max-width:700px){.fixed-time-fields,.settings-option-grid{grid-template-columns:1fr}.device.busy .state-dot{transform:scale(3)}.mobile-neon-off *{text-shadow:none!important}.mobile-spacious-ui .compact-cards .device{height:auto;min-height:340px;max-height:none}.app-appearance-tabs>section{padding:10px}}
.birth-date-parts{display:grid;grid-template-columns:1.5fr auto 1fr auto 1fr;gap:6px;align-items:center;direction:ltr}.birth-date-parts input{min-width:0;text-align:center}.birth-date-parts b{color:var(--muted)}
.settings-main-card{position:relative;padding-left:190px}.settings-side-tabs{position:absolute;left:18px;top:76px;width:150px;display:grid;gap:7px;z-index:3}.settings-tab-btn{width:100%;text-align:right;background:#0b1222;border:1px solid #2b3c59;color:#b9c7dc;padding:11px 13px;border-radius:10px}.settings-tab-btn:hover,.settings-tab-btn.active{color:#fff;border-color:var(--blue);background:linear-gradient(110deg,color-mix(in srgb,var(--blue) 25%,#08101d),color-mix(in srgb,var(--purple) 22%,#08101d));box-shadow:0 0 calc(18px * var(--appearance-neon,1)) color-mix(in srgb,var(--blue) 30%,transparent)}.settings-tab-panel{display:none!important}.settings-tab-panel.active{display:block!important}.settings-main-form>.settings-tab-panel{padding:14px;margin-top:12px;border:1px solid var(--border);border-radius:13px;background:#070c18aa}.settings-save-button{position:sticky;bottom:10px;z-index:4;margin-top:12px}.settings-page-body .settings-grid{grid-template-columns:minmax(0,1fr)}
@media(max-width:800px){.settings-main-card{padding-left:14px}.settings-side-tabs{position:sticky;top:62px;left:auto;width:100%;display:flex;overflow-x:auto;padding:8px 0;background:var(--bg);scrollbar-width:thin}.settings-tab-btn{flex:0 0 auto;width:auto;white-space:nowrap}.settings-main-form>.settings-tab-panel{padding:10px}.weekday-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}}
[data-settings-panel]{display:none!important}[data-settings-panel].active{display:block!important}

/* V1.12.10: uniform console cards and compact full-page settings tabs. */
#dashboard-root .device,#dashboard-root .device:nth-child(even){border-color:#315173!important;border-top-color:#279fff!important;background:linear-gradient(150deg,#08182aee,#080d18f5)!important;box-shadow:inset 0 0 24px #087bca18,0 8px 23px #0007!important}#dashboard-root .device.busy,#dashboard-root .device.busy:nth-child(even){border-color:#c53d6c88!important;border-top-color:#ff477e!important;background:linear-gradient(150deg,#08182aee,#080d18f5)!important}.portal-device-grid .device,.portal-device-grid .device:nth-child(even){border-color:#315173!important;background:linear-gradient(150deg,#08182aee,#080d18f5)!important;box-shadow:inset 0 0 24px #087bca18,0 8px 23px #0007!important}
.settings-main-card{padding:12px 12px 12px 174px}.settings-main-card .page-head{margin-bottom:8px}.settings-side-tabs{left:12px;top:58px;width:145px;gap:5px}.settings-tab-btn{padding:8px 10px;border-radius:8px;font-size:13px}.settings-main-form{gap:7px}.settings-main-form>.settings-tab-panel{margin-top:4px;padding:10px}.settings-main-form h3{margin:5px 0 8px}.settings-main-form .inline{gap:7px}.settings-main-form input,.settings-main-form select{padding:7px 8px}.compact-controller-rates{gap:7px}.controller-price-card{padding:8px!important}.price-period-row{gap:5px!important}.settings-save-button{margin-top:6px;padding:9px}
@media(max-width:800px){.settings-main-card{padding:10px}.settings-side-tabs{top:54px;padding:5px 0}.settings-tab-btn{padding:8px 10px}.settings-main-form>.settings-tab-panel{padding:8px}}
.settings-page-body:has(.settings-preview.active) .settings-main-form,.settings-page-body:has(.email-settings-card.active) .settings-main-form{display:none}.settings-page-body:has(.settings-preview.active) .settings-main-card,.settings-page-body:has(.email-settings-card.active) .settings-main-card{padding-bottom:8px}

/* V1.12.11: mobile-only settings layout and active login sessions. */
.active-login-card{margin-top:14px}.active-login-list{display:grid;gap:10px}.active-login-item{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(120px,1fr)) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:12px;background:#08101dcc}.active-login-item>div{display:grid;gap:4px}.active-login-item span{color:var(--muted);font-size:13px}.active-login-item small{color:var(--muted)}
@media(max-width:800px){
 .settings-page-body .app-main{padding:8px!important;overflow-x:hidden}.settings-page-body .settings-grid,.settings-page-body .settings-main-card{display:block;width:100%;min-width:0}.settings-page-body .settings-main-card{padding:8px!important}.settings-page-body .page-head{display:block}.settings-page-body .settings-side-tabs{position:sticky!important;top:52px!important;z-index:12;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%!important;overflow:visible!important;padding:7px;background:#050a14f2;border:1px solid var(--border);border-radius:12px}.settings-page-body .settings-tab-btn{width:100%!important;min-width:0;padding:9px 4px!important;text-align:center;font-size:12px;white-space:normal}.settings-page-body .settings-main-form>.settings-tab-panel{width:100%;min-width:0;margin:8px 0 0;padding:8px!important}.settings-page-body .settings-main-form .inline,.settings-page-body .price-period-row{display:grid!important;grid-template-columns:1fr!important}.settings-page-body .settings-main-form label,.settings-page-body .settings-main-form input,.settings-page-body .settings-main-form select,.settings-page-body .settings-main-form textarea{width:100%;min-width:0}.settings-page-body .weekday-row{grid-template-columns:1fr 1fr!important}.settings-page-body .compact-controller-rates{grid-template-columns:1fr!important}.settings-page-body .controller-price-card{overflow:hidden}.settings-page-body .settings-save-button{bottom:6px;width:100%}
 .active-login-item{grid-template-columns:1fr 1fr;padding:11px}.active-login-item>div:first-child{grid-column:1/-1}.active-login-item>div:last-child{grid-column:1/-1}.active-login-item button{width:100%}
}
@media(max-width:430px){.settings-page-body .settings-side-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-page-body .weekday-row{grid-template-columns:1fr!important}.active-login-item{grid-template-columns:1fr}.active-login-item>div{grid-column:1!important}}
.reservation-buzz-toast{position:fixed;z-index:99999;left:22px;bottom:22px;width:min(390px,calc(100vw - 28px));display:grid;gap:6px;padding:18px;border:2px solid #40bfff;border-radius:18px;background:linear-gradient(135deg,#06162ff2,#2a0b3ff5);color:#fff;box-shadow:0 0 38px #168cff99,0 0 50px #c23cff66;transform:translateY(140%);opacity:0;transition:.25s}.reservation-buzz-toast.active{transform:translateY(0);opacity:1;animation:reservationBuzz .22s linear 7}.reservation-buzz-toast b{font-size:20px;color:#7ddcff}.reservation-buzz-toast span{font-weight:800}.reservation-buzz-toast small{color:#cbd7e8}.reward-flag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.customer-reward-flags,.customer-profile-note{margin-top:12px;padding:12px;border:1px solid #30435f;border-radius:12px;background:#07101dcc}.customer-note-scroll{max-height:130px;overflow-y:auto;line-height:1.9;margin-top:8px}.customer-profile-note details p{padding:8px;border-top:1px solid #293951}.customer-profile-note small{display:block;color:var(--muted)}@keyframes reservationBuzz{25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}@media(max-width:700px){.reservation-buzz-toast{left:14px;bottom:14px}.reward-flag-grid{grid-template-columns:1fr}}
/* V1.12.14 */.app-version{position:fixed;left:8px;bottom:6px;z-index:900;padding:3px 8px;border:1px solid #35445d;border-radius:999px;background:#07101dcc;color:#91a3bd;font-size:10px;direction:rtl}.device-grid{grid-template-columns:repeat(var(--cards-desktop,5),minmax(0,1fr))!important;gap:var(--card-gap,10px)!important}.session-start-clock{display:block;color:#70cfff;font-size:10px;text-align:center}.settings-sub-tabs{display:flex;gap:7px;overflow-x:auto;margin:4px 0 10px;padding:7px;border:1px solid #293a55;border-radius:11px;background:#070d18;position:sticky;top:58px;z-index:10}.settings-sub-tabs button{flex:0 0 auto;padding:8px 12px;border-radius:8px;border:1px solid #30415e;background:#0b1424;color:#b9c7dc}.settings-sub-tabs button.active{border-color:var(--blue);color:#fff;background:#14305c}.alarm-attention{animation:alarmAttention .75s infinite alternate}.alarm-list-row.completed{opacity:.72;border-color:#40516a}@keyframes alarmAttention{to{box-shadow:0 0 20px #ff304f;transform:scale(1.012)}}#global-alarm-badge.attention{animation:alarmAttention .7s infinite alternate}@media(max-width:1050px){.device-grid{grid-template-columns:repeat(var(--cards-tablet,2),minmax(0,1fr))!important}}@media(max-width:700px){.device-grid{grid-template-columns:repeat(var(--cards-mobile,1),minmax(0,1fr))!important}.settings-sub-tabs{top:154px}.app-version{bottom:3px;font-size:9px}}

/* V1.13.7 */
/* V1.14.0: customer club */
.neo-choice-grid:has(.neo-club){grid-template-columns:repeat(3,minmax(0,1fr))}.neo-club{border-color:#ffbd2e!important;box-shadow:0 0 28px #ffbd2e35!important}.neo-club strong{color:#ffd85c!important}
/* V1.75.0: «نسخه قابل نصب» — کارت چهارم اختیاری در صفحه اول (دقیقاً هم‌سبک کارت کلوب، با تم آبی به‌جای طلایی).
   چون تعداد ستون‌های گرید به تعداد کارت‌های فعال بستگی دارد، حالت‌های با/بدون کارت کلوب هر دو پوشش داده شده‌اند. */
.neo-choice-grid:has(.neo-app-install){grid-template-columns:repeat(3,minmax(0,1fr))}
.neo-choice-grid:has(.neo-club):has(.neo-app-install){grid-template-columns:repeat(4,minmax(0,1fr))}
.neo-app-install{border-color:#2fa8ff!important;box-shadow:0 0 28px #2fa8ff35!important}.neo-app-install strong{color:#7ddcff!important}
.club-body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 15%,#082b55 0,transparent 35%),radial-gradient(circle at 85% 30%,#36104f 0,transparent 38%),#050914;color:#edf5ff;font-family:tahoma,Arial,sans-serif}.club-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(14px,4vw,50px);background:#07101ee8;border-bottom:1px solid #256ca8}.club-header b{display:flex;gap:10px;align-items:center}.club-shell{width:min(1180px,calc(100% - 28px));margin:24px auto}.club-login{min-height:100vh;display:grid;place-items:center;padding:20px;position:relative;overflow:hidden}.club-login-card{width:min(430px,calc(100% - 34px));padding:32px;border:1px solid #2f9cff;border-radius:24px;background:#07101eea;box-shadow:0 0 45px #178cff42;text-align:center;position:relative;z-index:1}.club-login-card .gny-logo{display:inline-grid;margin:auto;font-size:30px;padding:10px}.club-login-card label{text-align:right}.club-login-card input,.club-admin-grid input,.club-admin-grid select,.club-warning input,.club-filter input{width:100%;box-sizing:border-box}.club-error,.club-warning{padding:14px;border-radius:12px;background:#5d1928;border:1px solid #ff627d;margin:12px 0}.club-error.success{background:#124728;border-color:#2bd769}.club-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px;border:1px solid #358de1;border-radius:22px;background:linear-gradient(120deg,#08182cdd,#25103add)}.club-hero h1{margin:0 0 6px}.club-avatar{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;font-size:42px;background:#101d31;border:2px solid #38a5ff;overflow:hidden}.club-avatar img{width:100%;height:100%;object-fit:cover}.club-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.club-stats article,.club-card{background:#0b1422e8;border:1px solid #263f61;border-radius:17px;padding:18px}.club-stats b{display:block;font-size:1.35rem;color:#55c8ff;margin-top:7px}.club-grid,.club-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.club-progress{display:grid;grid-template-columns:1fr auto;gap:7px;margin:15px 0}.club-progress i{grid-column:1/-1;height:9px;background:#1b2636;border-radius:9px;overflow:hidden}.club-progress em{display:block;height:100%;background:linear-gradient(90deg,#168cff,#bd36ff)}.club-progress small{grid-column:1/-1;color:#9fb0c6}.club-reward,.club-admin-row,.club-history>div,.club-leaders li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #243148}.club-reward{flex-wrap:wrap}.club-reward small{width:100%;color:#91a1b6}.club-leaders{padding:0;list-style:none}.club-leaders .me{background:#173a5a;border-radius:9px;color:#73d2ff}.club-history{max-height:430px;overflow:auto}.club-history>div{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr}.club-admin-list{max-height:720px;overflow:auto}.club-admin-list details{border:1px solid #293a51;border-radius:12px;padding:11px;margin:8px 0}.club-admin-list summary{cursor:pointer}.club-admin-list form{margin-top:12px}.club-warning{background:#50390d;border-color:#e7a930}
@media(max-width:800px){.neo-choice-grid:has(.neo-club){grid-template-columns:1fr}.neo-choice-grid:has(.neo-app-install){grid-template-columns:1fr}.neo-choice-grid:has(.neo-club):has(.neo-app-install){grid-template-columns:1fr}
/* V1.77.0: ترتیب نمایش کارت‌های صفحه اول (فقط موبایل). کارت‌های رزرو/مدیریت قبلاً به نواحی نام‌گذاری‌شده‌ی
   گرید پین شده بودند (grid-area) که مانع اعمال order می‌شد؛ در موبایل این پین برداشته می‌شود تا هر ۴ کارت
   آزادانه طبق --land-order (مقداردهی‌شده در Views/login.php از تنظیمات) مرتب شوند. دسکتاپ دست‌نخورده می‌ماند. */
.gny-neo-landing .neo-choice-grid{grid-template-areas:none}
.gny-neo-landing .neo-reservation,.gny-neo-landing .neo-management{grid-area:auto}
.gny-neo-landing .neo-choice-grid>.neo-choice{order:var(--land-order,0)}
.club-grid,.club-admin-grid{grid-template-columns:1fr}.club-hero{grid-template-columns:auto 1fr}.club-hero form{grid-column:1/-1}.club-stats{grid-template-columns:1fr}.club-history>div{grid-template-columns:1fr 1fr}.club-history>div strong,.club-history>div span:last-of-type{text-align:left}.club-shell{width:min(100% - 18px,1180px)}.club-login-card{padding:22px 16px}.club-warning .inline,.club-filter{display:grid;grid-template-columns:1fr}}
@media(min-width:901px){
 .gny-neo-landing .neo-choice-grid:has(.neo-club){grid-template-columns:1fr 1fr;grid-template-areas:"reservation management"}
 .gny-neo-landing .neo-choice-grid:has(.neo-app-install){grid-template-columns:1fr 1fr;grid-template-areas:"reservation management"}
 /* V1.75.0: روی تصویر پس‌زمینه‌ی دسکتاپ، نشان «کلوب» از وسط بالا به سمت چپ منتقل شد و نشان جدید «نسخه قابل
    نصب» سمت راست اضافه شد — هر دو همان قالب پیلِ شناور قبلی (فقط بدون transform:translateX برای وسط‌چینی). */
 .gny-neo-landing .neo-club{position:fixed;z-index:30;top:14px;left:14px;width:min(380px,30vw);height:54px;min-height:54px;padding:0 20px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #ffd45c!important;border-radius:999px!important;background:linear-gradient(100deg,#221804ee,#3d2608ee,#26123cee)!important;color:#ffd45c!important;box-shadow:0 0 20px #ffbd2e55,inset 0 0 18px #ffbd2e18!important}
 .gny-neo-landing .neo-club>*{visibility:visible!important}.gny-neo-landing .neo-club .neo-choice-icon{font-size:26px;letter-spacing:0}.gny-neo-landing .neo-club .neo-choice-copy{display:flex;gap:7px;align-items:center}.gny-neo-landing .neo-club .neo-choice-copy small,.gny-neo-landing .neo-club .neo-choice-copy em{display:none}.gny-neo-landing .neo-club .neo-choice-copy strong{font-size:18px;color:#ffe58c!important}.gny-neo-landing .neo-club>b{display:none}.gny-neo-landing .neo-club:hover,.gny-neo-landing .neo-club:focus-visible{transform:translateY(2px);box-shadow:0 0 30px #ffbd2e99,inset 0 0 22px #ffbd2e28!important}
 .gny-neo-landing .neo-app-install{position:fixed;z-index:30;top:14px;right:14px;width:min(380px,30vw);height:54px;min-height:54px;padding:0 20px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #2fa8ff!important;border-radius:999px!important;background:linear-gradient(100deg,#04203dee,#062d4cee,#0b1a3cee)!important;color:#7ddcff!important;box-shadow:0 0 20px #2fa8ff55,inset 0 0 18px #2fa8ff18!important}
 .gny-neo-landing .neo-app-install>*{visibility:visible!important}.gny-neo-landing .neo-app-install .neo-choice-icon{font-size:26px;letter-spacing:0}.gny-neo-landing .neo-app-install .neo-choice-copy{display:flex;gap:7px;align-items:center}.gny-neo-landing .neo-app-install .neo-choice-copy small,.gny-neo-landing .neo-app-install .neo-choice-copy em{display:none}.gny-neo-landing .neo-app-install .neo-choice-copy strong{font-size:18px;color:#bdeeff!important}.gny-neo-landing .neo-app-install>b{display:none}.gny-neo-landing .neo-app-install:hover,.gny-neo-landing .neo-app-install:focus-visible{transform:translateY(2px);box-shadow:0 0 30px #2fa8ff99,inset 0 0 22px #2fa8ff28!important}
}

/* V1.13.7: QR start requests */
.qr-start-page{min-height:100dvh;background:radial-gradient(circle at 15% 15%,#087dff35,transparent 38%),radial-gradient(circle at 85% 80%,#ae35ff38,transparent 36%),#030815;color:#f4f7ff}.qr-start-shell{width:min(560px,calc(100% - 20px));margin:0 auto;padding:28px 0}.qr-start-card{border:1px solid #3b7cff88;background:#07101feF;box-shadow:0 0 34px #176dff30;border-radius:22px;padding:22px}.qr-start-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}.qr-start-head .gny-logo{width:68px;height:48px;font-size:20px}.qr-start-head h1{margin:0;font-size:22px}.qr-start-head p{margin:3px 0;color:#9da8b4}.qr-blocked,.qr-reservation-warning{border-radius:13px;padding:16px;margin:12px 0}.qr-blocked{background:#ff3b3b15;border:1px solid #ff5a5a;color:#ff8f8f;text-align:center}.qr-blocked strong{font-size:22px}.qr-reservation-warning{background:#d2992217;border:1px solid #d29922;color:#f2cc60}.qr-start-submit{min-height:50px;font-size:17px}.start-request-toast{position:fixed;z-index:180;left:18px;bottom:18px;width:min(380px,calc(100% - 36px));display:grid;gap:7px;padding:16px;border:2px solid #38bdf8;border-radius:15px;background:#07111ff5;color:#f4f7ff;box-shadow:0 0 30px #168cff70,0 15px 40px #000b;animation:startRequestPulse 1.1s infinite alternate}.start-request-toast b{font-size:16px;color:#7dd3fc}.start-request-toast span,.start-request-toast small,.start-request-toast em{display:block}.start-request-toast small{color:#aab7c7}.start-request-toast em{font-style:normal;color:#f2cc60}.start-request-toast button{margin-top:4px}@keyframes startRequestPulse{from{border-color:#168cff;transform:translateY(0)}to{border-color:#c23cff;transform:translateY(-3px);box-shadow:0 0 42px #a43cff75,0 15px 40px #000b}}@media(max-width:600px){.qr-start-shell{padding:10px 0}.qr-start-card{padding:15px;border-radius:16px}.qr-start-form .inline{grid-template-columns:1fr}.start-request-toast{left:8px;bottom:8px;width:calc(100% - 16px)}}
.rounding-example{margin-top:14px;padding:12px;border:1px solid #354762;border-radius:12px;background:#091222;color:#b8c7df}.firewall-block-row{display:block}.firewall-block-row summary{cursor:pointer;list-style:none}.firewall-block-row summary::-webkit-details-marker{display:none}.firewall-block-row>form{margin-top:12px;padding-top:10px;border-top:1px solid #29364f}.firewall-block-row>.inline{margin-top:10px}.firewall-block-row>.inline form{flex:1}.firewall-block-row>.inline button{width:100%}
.portal-open-duration{border:1px solid #7750d8;border-radius:12px;padding:12px;background:#15112b;color:#efe8ff}.portal-open-duration input{width:auto}.internal-customer-note{border-color:#8b5cf6;background:linear-gradient(135deg,rgba(78,45,135,.2),rgba(5,15,32,.85))}.internal-customer-note>small{display:block;color:#aab4c8;margin:6px 0 10px}.firewall-block-list{display:grid;gap:8px;max-height:320px;overflow:auto;margin-top:14px}.firewall-block-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #29364f;border-radius:10px;padding:9px}.firewall-block-row span{display:grid;gap:4px}.firewall-block-row small{color:#9eabc0}.firewall-admin{margin-top:14px}@media(max-width:700px){.firewall-block-row{align-items:stretch;flex-direction:column}.firewall-admin{padding:12px}.portal-open-duration{width:100%}}
.customer-list-panel,.customer-compact-list{scrollbar-gutter:stable;touch-action:pan-y;-webkit-overflow-scrolling:touch}.customer-compact-list{overflow-y:scroll!important;overscroll-behavior-y:contain;grid-auto-rows:minmax(52px,auto);align-content:start}.customer-list-panel{min-height:0;overflow:hidden!important}.persian-name-error{display:block;margin-top:5px;color:#ff6f7d;font-size:12px;font-weight:700}.persian-name-error[hidden]{display:none!important}
html.admin-scroll-html,body.admin-scroll-body{overflow-y:scroll!important;overscroll-behavior-y:auto!important}
.portal-start-now{padding:11px 13px;border:1px solid #2fbf75;border-radius:11px;background:#0b3421;color:#86f5b4;font-weight:800}.portal-start-now input{width:20px;height:20px}.portal-start-now[hidden],#portal-scheduled-time[hidden]{display:none!important}
.time-24h{direction:ltr!important;text-align:center!important;font-variant-numeric:tabular-nums;letter-spacing:1px}.ip-lookup-link{display:inline-flex;align-items:center;gap:3px;color:#6fc7ff;text-decoration:none;border-bottom:1px dashed #4f9ed0}.ip-lookup-link:hover{color:#d18aff;border-bottom-color:#b65cff}
.customer-import-form{display:grid;gap:7px;padding:9px;margin-bottom:9px;border:1px solid #31547d;border-radius:10px;background:#091729}.customer-import-form[hidden]{display:none!important}.customer-import-form label{display:grid;gap:5px;font-size:11px}.customer-import-form input[type=file]{min-width:0;width:100%;padding:7px}.customer-import-form small{color:#8fa3bf}.customer-import-form>div{display:flex;gap:7px}.customer-import-form button{flex:1}.customer-export-links{flex-wrap:wrap}
.qr-known-customer{text-align:center;padding:18px;border:1px solid #258fff;border-radius:16px;background:rgba(12,42,76,.55)}.qr-known-customer>span{font-size:36px}.qr-known-customer h2{margin:6px 0}.qr-known-customer p{color:#a9bad0}.qr-known-customer strong{display:block;margin-top:14px;color:#67d3ff}.qr-start-confirm .btn{text-align:center;text-decoration:none}.customer-tracking{margin:14px 0;border:1px solid #28415e;border-radius:12px;padding:10px;background:#091320}.customer-tracking>summary{cursor:pointer;font-weight:700}.customer-tracking>summary small{color:#8ca4bd}.customer-device-list{display:grid;gap:8px;margin-top:12px}.customer-device-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid #263c55;border-radius:10px}.customer-device-row>div:first-child{display:grid;gap:4px}.customer-device-row a,.customer-ip-history a{direction:ltr;color:#55b5ff}.customer-device-row small{color:#91a1b3}.customer-device-row.revoked{opacity:.55}.customer-history-scroll{max-height:260px;overflow:auto;margin-top:8px}.customer-history-scroll>div{display:grid;grid-template-columns:150px 1fr 160px;gap:8px;padding:7px;border-bottom:1px solid #253447;font-size:12px}@media(max-width:700px){.customer-device-row{align-items:stretch;flex-direction:column}.customer-history-scroll>div{grid-template-columns:1fr}.qr-known-customer{padding:14px}}
.device-qr-actions{display:flex;flex-wrap:wrap;gap:5px}.device-qr-actions .btn{padding:6px 8px;font-size:11px;white-space:nowrap}@media(max-width:700px){.devices-page .table{font-size:11px}.device-qr-actions{display:grid}.device-qr-actions .btn{text-align:center}}
.qr-request-state{text-align:center;padding:24px 16px;border-radius:17px;display:grid;gap:9px}.qr-request-state.pending{border:1px solid #e7b536;background:#49380b55}.qr-request-state.started{border:1px solid #25d978;background:#073b225c;box-shadow:0 0 25px #25d97835}.qr-state-icon{font-size:46px}.qr-request-state h2{margin:0}.qr-request-state.pending h2{color:#ffd56a}.qr-request-state.started h2{color:#70f2aa}.qr-request-state p{margin:0;font-weight:700}.qr-request-state small{color:#9daabc}
.qr-request-state.rejected{border:1px solid #ff5269;background:#48101c66}.qr-request-state.rejected h2{color:#ff8191}.qr-birth-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;border:1px solid #30445f;border-radius:12px;padding:10px}.qr-birth-fields legend{padding:0 7px;color:#b8c8dc}.general-qr-actions{align-items:center;padding:8px;border:1px solid #744ee8;border-radius:10px;background:#17102c}.start-request-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.start-request-actions button{width:100%}.start-request-head{display:flex;align-items:center;gap:10px}.start-request-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:1px solid #38bdf8}.start-request-avatar-empty{display:grid;place-items:center;background:#0d1117;font-size:20px}.start-request-head-text{display:grid;gap:2px;min-width:0}.start-request-head-text b,.start-request-head-text span,.start-request-head-text small{display:block}.start-request-dm{display:flex;gap:6px;margin-top:4px}.start-request-dm input{flex:1;min-width:0}.start-request-dm button{margin:0;white-space:nowrap}@media(max-width:600px){.qr-birth-fields{grid-template-columns:1.5fr 1fr 1fr}.general-qr-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.general-qr-actions b{grid-column:1/-1}.start-request-actions{grid-template-columns:1fr}}
.customer-history-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:10px 0}.customer-history-actions label{display:flex;align-items:center;gap:5px}.customer-history-form .customer-history-scroll>div{grid-template-columns:24px 150px 1fr 160px}@media(max-width:700px){.customer-history-actions{display:grid;grid-template-columns:1fr}.customer-history-actions button{width:100%}.customer-history-form .customer-history-scroll>div{grid-template-columns:24px 1fr}.customer-history-form .customer-history-scroll>div span,.customer-history-form .customer-history-scroll>div time{grid-column:2}}
.alarm-popup{width:min(430px,calc(100vw - 24px))!important;max-width:430px!important}.alarm-popup-box{padding:20px!important;gap:9px!important}.alarm-popup-box .alarm-symbol{font-size:42px!important}.alarm-popup-box h2{font-size:21px!important;margin:3px 0!important}.alarm-popup-box p{font-size:13px!important;margin:2px 0!important}.alarm-popup-box button{min-height:38px!important;padding:8px 11px!important;font-size:13px!important}.dashboard-statusbar>.promotion-control{order:1}.dashboard-statusbar>.dash-control-group:nth-child(2){order:2}.dashboard-statusbar>.dash-control-group:nth-child(4){order:3}.dashboard-statusbar>.dashboard-title{order:0}.dashboard-statusbar>.dash-active-count,.dashboard-statusbar>.shift-badge{order:4}.invoice-note,.compact-note{color:#ff4d67!important;border:1px solid #ff4d6777!important;background:#3b0b16cc!important;font-weight:800!important;font-size:15px!important}.portal-live-details{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0;padding:8px;border:1px solid #30445f;border-radius:9px;background:#050c17cc}.portal-live-details span{align-items:center;justify-content:space-between;gap:5px;font-size:11px}.portal-live-details b{color:#7fd7ff}.portal-appearance-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.portal-appearance-tabs>section{padding:12px;border:1px solid #30415e;border-radius:12px;background:#070d18}.portal-appearance-tabs h4{margin:0 0 10px;color:#7dccff}input[type="time"]{direction:ltr;text-align:left;font-variant-numeric:tabular-nums}
@media(max-width:700px){.alarm-popup{width:min(360px,calc(100vw - 16px))!important}.alarm-popup-box{padding:15px!important}.alarm-popup-box h2{font-size:18px!important}.portal-live-details{grid-template-columns:1fr}.portal-appearance-tabs{grid-template-columns:1fr}}

/* V1.13.7: consistent QR/start form on mobile browsers and WebViews */
.reservation-toast-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}.reservation-toast-actions .btn{text-align:center;text-decoration:none;white-space:nowrap}
@media(max-width:700px){
 html:has(.qr-start-page),body.qr-start-page{width:100%;max-width:100%;min-width:0;overflow-x:hidden!important;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .qr-start-page *,.qr-start-page *::before,.qr-start-page *::after{box-sizing:border-box!important;max-width:100%}
 .qr-start-page .qr-start-shell{display:block;width:100%!important;max-width:100%!important;margin:0!important;padding:8px!important}
 .qr-start-page .qr-start-card{display:block;width:100%!important;min-width:0!important;margin:0!important;padding:14px 12px!important;border-radius:15px!important;overflow:hidden}
 .qr-start-page .qr-start-head{display:grid!important;grid-template-columns:56px minmax(0,1fr)!important;gap:10px!important;align-items:center;margin-bottom:14px}
 .qr-start-page .qr-start-head .gny-logo{width:56px!important;height:44px!important}.qr-start-page .qr-start-head h1{font-size:clamp(20px,7vw,28px)!important;line-height:1.45;overflow-wrap:anywhere}.qr-start-page .qr-start-head p{font-size:14px}
 .qr-start-page form,.qr-start-page .stack,.qr-start-page .inline{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;min-width:0!important;gap:10px!important}
 .qr-start-page label,.qr-start-page fieldset{display:grid;width:100%!important;min-width:0!important;margin:0!important}
 .qr-start-page input,.qr-start-page select,.qr-start-page textarea,.qr-start-page button,.qr-start-page .btn{display:block;width:100%!important;min-width:0!important;font-size:16px!important;line-height:1.4!important}
 .qr-start-page input,.qr-start-page select,.qr-start-page textarea{height:auto!important;min-height:48px;padding:11px 12px!important}
 .qr-start-page .qr-birth-fields{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;padding:10px 8px!important}.qr-start-page .qr-birth-fields label{font-size:13px}.qr-start-page .qr-birth-fields input{text-align:center;padding-inline:5px!important}
 .qr-start-page .captcha-row{display:grid!important;grid-template-columns:1fr!important}.qr-start-page .captcha-row img{margin:auto;max-width:100%;height:auto}
 .qr-start-page .portal-neo-watermark{font-size:45vw!important;overflow:hidden}
 .reservation-toast-actions{grid-template-columns:1fr 1fr}.reservation-toast-actions .reservation-toast-edit{grid-column:1/-1}
}
@supports not selector(:has(*)){@media(max-width:700px){body.qr-start-page{width:100%;max-width:100%;overflow-x:hidden!important}}}

/* V1.14.5 final overrides */
.club-prize-wheel{background:#188cff}.club-prize-wheel:after{z-index:2;transform:none}.club-prize-wheel span{top:50%;left:50%;width:104px;line-height:1.45;font-size:11px;transform-origin:center;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-91px) rotate(calc(var(--angle) * -1));overflow-wrap:anywhere}.club-admin-avatar,.customer-list-avatar,.customer-profile-avatar{display:block;object-fit:cover;border-radius:50%;border:2px solid #329dff;background:#07101e}.club-admin-avatar{width:34px;height:34px;flex:0 0 34px}.club-admin-list summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.customer-list-avatar{width:30px;height:30px}.customer-pick:has(.customer-list-avatar){grid-template-columns:32px minmax(0,1fr) auto}.customer-profile-avatar{width:58px;height:58px;flex:0 0 58px}.customer-avatar-admin{justify-content:flex-start;margin:-4px 0 4px}.customer-avatar-admin small{color:#8fa0b7}
@media(max-width:700px){.club-prize-wheel span{width:88px;font-size:9px;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-76px) rotate(calc(var(--angle) * -1))}.customer-profile-avatar{width:48px;height:48px;flex-basis:48px}}
/* v1.15.0: reward, safety and schedule controls */
@keyframes gny-bell-ring{0%,100%{transform:rotate(0)}15%{transform:rotate(12deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(9deg)}60%{transform:rotate(-9deg)}75%{transform:rotate(5deg)}}
.header-tool-btn.alarm-ringing{border-color:#ff4d5e!important;color:#fff;background:#8c1420!important;animation:gny-bell-ring .65s infinite;transform-origin:50% 10%;box-shadow:0 0 18px #ff304d99}.notification-permission-btn{width:100%;margin:8px 0}.public-hours-settings{margin-top:18px;padding:16px;border:1px solid #2e4058;border-radius:14px}.public-hours-row{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(130px,1fr));gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid #26364b}.club-avatar-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.club-avatar-review-grid article{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:14px;border:1px solid #344967;border-radius:14px;background:#091526}.club-avatar-review-grid img{width:110px;height:110px;object-fit:cover;border-radius:13px}.club-avatar-review-grid article>div:nth-child(2){display:flex;flex-direction:column;gap:7px}.avatar-review-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.avatar-review-actions form{margin:0}.club-avatar-pending-note{display:block;color:#ffc857;margin-top:8px}.qr-reward-picker{display:grid;gap:8px;border:1px solid #9b54ff;border-radius:14px;padding:12px}.qr-reward-picker label{padding:9px;border-radius:9px;background:#111b32}.qr-club-login{margin-top:14px;text-align:center}.public-closed-message{text-align:center;font-size:1.1rem;padding:18px}
@media(max-width:760px){.public-hours-row{grid-template-columns:1fr 1fr}.public-hours-row>.check-row{grid-column:1/-1}.club-avatar-review-grid{grid-template-columns:1fr}.club-avatar-review-grid article{grid-template-columns:76px 1fr}.club-avatar-review-grid img{width:76px;height:76px}.avatar-review-actions{display:grid;grid-template-columns:1fr}.avatar-review-actions button{width:100%}.qr-start-shell{width:min(100% - 16px,560px)!important;margin-inline:auto}.qr-start-card{padding:clamp(14px,4vw,24px)!important}.qr-start-form .inline,.qr-start-confirm .inline,.qr-birth-fields{grid-template-columns:1fr!important}.club-hero{align-items:center}.club-hero form{width:100%}.club-hero .btn{display:block;text-align:center}}
.app-version{font-size:.72rem}.club-rule-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}.club-rule-edit-grid details{padding:10px;border:1px solid #304562;border-radius:12px}
.club-settings-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.club-setting-card{padding:0;overflow:hidden;border:1px solid rgba(46,157,255,.3);background:linear-gradient(145deg,rgba(10,25,45,.96),rgba(20,13,43,.95));box-shadow:0 12px 34px rgba(0,0,0,.24)}.club-setting-card>header{padding:16px 18px 12px;border-bottom:1px solid rgba(255,255,255,.09)}.club-setting-card>header h2{font-size:18px;margin:0 0 4px}.club-setting-card>header p{font-size:12px;color:#9fb1ca;margin:0}.club-card-form{padding:16px 18px}.club-card-form+.club-card-form{border-top:1px dashed rgba(255,255,255,.14)}.club-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.club-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.club-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#c8d8ee}.club-fields input,.club-fields select,.club-customer-filter,#club-account-search{width:100%;min-height:42px}.club-fields small{color:#8296af}.club-checks{display:flex;flex-wrap:wrap;gap:10px 20px;margin:14px 0}.club-checks label,.club-mode-selector label{display:flex;align-items:center;gap:7px;font-size:12px}.club-card-form footer{display:flex;align-items:center;gap:12px;margin-top:15px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.club-card-form footer button{min-width:150px}.club-save-state{color:#42db7b;font-size:12px}.club-mode-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.club-mode-selector label{padding:10px;border:1px solid #304661;border-radius:10px;background:#071424}.club-customer-picker{margin-top:12px}.club-customer-checklist{max-height:230px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px;padding:8px;border:1px solid #283c56;border-radius:12px}.club-customer-checklist label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px;background:rgba(255,255,255,.035);border-radius:8px}.club-customer-checklist small{color:#879ab2}.club-full-textarea{display:flex;flex-direction:column;gap:6px;width:100%;font-size:12px;color:#c8d8ee;margin-top:12px}.club-full-textarea textarea{width:100%;min-height:120px}
.club-record-list{padding:0 18px 18px;display:grid;gap:9px}.club-record-list>article,.club-record-list>details{border:1px solid #2a3d58;border-radius:12px;background:rgba(3,12,25,.55);padding:10px}.club-record-list summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer}.club-record-list summary span{font-size:11px;color:#8fa9c7}.club-card-form.compact{padding:12px 4px}.club-inline-message{position:fixed;z-index:2000;left:20px;bottom:20px;max-width:360px;padding:12px 18px;border-radius:12px;box-shadow:0 10px 35px #0008}.club-inline-message.success{background:#126b38;color:#fff}.club-inline-message.error{background:#8e2430;color:#fff}.club-page-head{margin-bottom:14px}.active-reward-badge{margin:5px 8px;padding:5px 8px;border:1px solid #eab308;border-radius:8px;background:rgba(234,179,8,.12);color:#ffd95b;font-size:11px;font-weight:700;text-align:center}.club-admin-list{max-height:680px;overflow:auto}.club-admin-list details[hidden],.club-customer-checklist label[hidden]{display:none}
@media(max-width:900px){.club-settings-board{grid-template-columns:1fr}.club-fields.three{grid-template-columns:repeat(2,minmax(0,1fr))}.club-setting-card>header{padding:14px}.club-card-form{padding:14px}.club-mode-selector{grid-template-columns:1fr}.club-customer-checklist{grid-template-columns:1fr}}
@media(max-width:560px){.club-page-head h1{font-size:21px}.club-settings-board{gap:11px}.club-setting-card>header h2{font-size:16px}.club-setting-card>header p{font-size:11px}.club-fields,.club-fields.three{grid-template-columns:1fr}.club-checks{display:grid;grid-template-columns:1fr;gap:8px}.club-card-form footer{position:sticky;bottom:0;background:#0b1728;padding:10px 0;margin-bottom:-5px}.club-card-form footer button{width:100%;min-width:0}.club-record-list{padding:0 10px 12px}.club-record-list summary{flex-direction:column}.club-customer-checklist{max-height:280px}.club-inline-message{left:10px;right:10px;bottom:10px;max-width:none}.active-reward-badge{font-size:10px}.club-full-textarea textarea{min-height:100px}}


/* --- v1.16.0: reward badge as a fixed-size overlay (card size never changes), start-card reward panel, per-customer split line, club admin accordion --- */
.device.card{position:relative}
.active-reward-badge{position:absolute;top:6px;left:6px;margin:0;padding:0;width:22px;height:22px;line-height:22px;border-radius:50%;border:1px solid #eab308;background:rgba(234,179,8,.18);color:#ffd95b;font-size:13px;font-weight:700;text-align:center;cursor:default;z-index:5;animation:reward-badge-pulse 1.6s ease-in-out infinite}
@keyframes reward-badge-pulse{0%,100%{box-shadow:0 0 0 0 rgba(234,179,8,.55)}50%{box-shadow:0 0 0 6px rgba(234,179,8,0)}}
@media(max-width:700px){.active-reward-badge{width:18px;height:18px;line-height:18px;font-size:11px;top:4px;left:4px}}

.start-reward-panel{margin:8px 0;padding:10px;border:1px dashed #eab308;border-radius:10px;background:rgba(234,179,8,.08)}
.start-reward-panel .reward-toggle{display:flex;align-items:center;gap:6px;font-weight:700}
.start-reward-panel #start-reward-fields{margin-top:8px}
.start-reward-panel small{display:block;margin-top:4px;opacity:.8}
.invoice-per-customer{background:rgba(22,140,255,.1);border:1px dashed var(--blue,#168cff)}

/* Club admin settings: a fixed row of tabs (like the top nav) switches between sections instead of a long scroll. */
.club-tabs{position:sticky;top:62px;z-index:12;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:9px;background:#050a14f2;border:1px solid var(--border);border-radius:12px;margin-bottom:14px;scrollbar-width:thin}
.club-tab-btn{flex:0 0 auto;white-space:nowrap;background:#0b1222;border:1px solid #2b3c59;color:#b9c7dc;padding:9px 14px;border-radius:10px;font-size:13px;cursor:pointer}
.club-tab-btn:hover,.club-tab-btn.active{color:#fff;border-color:var(--blue);background:linear-gradient(110deg,color-mix(in srgb,var(--blue) 25%,#08101d),color-mix(in srgb,var(--purple) 22%,#08101d));box-shadow:0 0 calc(18px * var(--appearance-neon,1)) color-mix(in srgb,var(--blue) 30%,transparent)}
@media (max-width:720px){.club-tabs{top:52px;padding:7px;gap:6px}.club-tab-btn{padding:8px 10px;font-size:12px}}
.club-settings-board{display:flex;flex-direction:column;gap:10px}
.club-tab-panel{display:none!important}
.club-tab-panel.active{display:block!important}
.club-setting-card{padding:0;overflow:hidden}
.club-setting-card>.club-panel-header{padding:14px 16px;background:inherit;border-bottom:1px solid var(--border)}
.club-setting-card>.club-panel-header h2{margin:0;font-size:15px}
.club-setting-card>.club-panel-header p{margin:2px 0 0;font-size:12px;opacity:.75}
.club-setting-card>.club-section-body{padding:16px}
.club-setting-card .club-fields,.club-setting-card .club-checks{margin-top:8px}
.club-reward-usage{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;margin:4px 0 8px;opacity:.9}
.club-reward-usage span{background:rgba(255,255,255,.06);border-radius:8px;padding:3px 8px}

/* --- v1.17.0: conditional wheel reward badge, day/evening discount-service cards, controller picker, wheel toasts --- */

/* عنوان کارت: دایره‌ی وضعیت (که هنگام شروع نشست ۴ برابر بزرگ می‌شود) و ستاره‌ی جایزه‌ی گردونه کنار هم، هرکدام با فضای رزروشده‌ی خودش تا هیچ‌وقت روی هم نیفتند */
.title-indicators{display:flex;align-items:center;gap:20px;flex:none}
.title-indicators .state-dot{margin:0}
.wheel-status-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:2px;width:40px;height:40px;border-radius:50%;border:1px solid #4b5566;background:rgba(255,255,255,.04);color:#8b949e;font-size:19px;font-weight:800;cursor:default;filter:grayscale(1);opacity:.55;flex:none;transform:translateX(4px);transition:filter .2s,opacity .2s,color .2s,border-color .2s,background .2s}
.wheel-status-badge b{font-size:13px;line-height:1}
.wheel-status-badge.has-reward{filter:none;opacity:1;border-color:#c23cff;background:rgba(194,60,255,.18);color:#e3b8ff}
.wheel-status-badge.has-reward.blinking{animation:wheel-badge-blink 1s steps(2,jump-none) infinite}
@keyframes wheel-badge-blink{50%{opacity:.2;box-shadow:0 0 0 6px rgba(194,60,255,0)}}
@media(max-width:700px){.title-indicators{gap:14px}.wheel-status-badge{width:30px;height:30px;font-size:15px;transform:translateX(3px)}.wheel-status-badge b{font-size:10px}}
.wheel-request-toast{border-color:#c23cff !important;animation:startRequestPulse 1.1s infinite alternate}
.wheel-request-toast b{color:#e3b8ff !important}
.club-wheel-choice{margin-top:12px;padding:12px;border:1px dashed #c23cff;border-radius:12px;background:rgba(194,60,255,.08);display:grid;gap:8px}
.club-wheel-choice-msg{margin:0;font-weight:700}
.club-wheel-choice-actions{display:flex;gap:10px;flex-wrap:wrap}
.club-wheel-choice-actions button{min-height:42px;flex:1 1 120px}
.wheel-reward-ready-toast{position:fixed;z-index:99999;left:50%;top:14px;transform:translate(-50%,-140%);width:min(420px,calc(100vw - 28px));padding:14px 18px;border-radius:14px;background:linear-gradient(135deg,#3a0a5cf5,#0a1c3af5);border:2px solid #c23cff;color:#f4f7ff;font-weight:700;text-align:center;box-shadow:0 0 34px #a43cff70;transition:transform .3s}
.wheel-reward-ready-toast.show{transform:translate(-50%,0)}
.discount-service-card{border:1px solid #304661;border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.03);flex:1 1 220px}
.discount-service-card legend{padding:0 6px;font-weight:700;color:#9fb1ca}
.discount-service-card .check-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px}
.qr-controller-pick{margin:10px 0}
.qr-controller-pick select{width:100%;min-height:44px}
@media(max-width:560px){.discount-service-card{flex:1 1 100%}.wheel-reward-ready-toast{left:8px;right:8px;transform:translateY(-140%);width:auto}.wheel-reward-ready-toast.show{transform:translateY(0)}}
.controller-opts-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:10px 0}
.controller-opts-row>span{color:#9fb1ca;font-size:13px}
.check-row.inline{display:inline-flex!important;width:auto}
#qr-confetti-canvas{position:fixed;inset:0;z-index:60;pointer-events:none;width:100vw;height:100vh}
.qr-birthday-banner{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:14px 16px;border-radius:16px;border:1px solid #f2cc60;background:linear-gradient(135deg,rgba(242,204,96,.18),rgba(194,60,255,.14));box-shadow:0 0 24px rgba(242,204,96,.25);animation:qrBirthdayPop .5s ease}
.qr-birthday-emoji{font-size:30px;line-height:1;flex:none}
.qr-birthday-banner p{margin:0;font-weight:700;color:#ffe9b3;font-size:15px}
@keyframes qrBirthdayPop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:600px){.controller-opts-row{gap:6px 12px}.qr-birthday-banner{padding:11px 12px;gap:8px}.qr-birthday-emoji{font-size:24px}.qr-birthday-banner p{font-size:13px}}
.club-chat-section{margin-top:14px}
.club-chat-notice{padding:12px;border:1px solid #304661;border-radius:12px;background:rgba(255,255,255,.03)}
.club-chat-room{display:flex;flex-direction:column;gap:8px}
.club-chat-messages{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid #304661;border-radius:12px;background:#0d1117}
.club-chat-msg{max-width:80%;padding:8px 10px;border-radius:12px;background:#161d29;align-self:flex-start}
.club-chat-msg.mine{align-self:flex-end;background:#1f3a63}
.club-chat-msg-head{display:flex;align-items:center;gap:6px;font-size:11px;color:#9fb1ca;margin-bottom:3px}
.club-chat-msg-head img{width:20px;height:20px;border-radius:50%;object-fit:cover}
.club-chat-msg-head b{color:#e6edf3}
.club-chat-msg p{margin:0;font-size:13px;word-break:break-word;white-space:pre-wrap}
.club-chat-msg-del{margin-inline-start:auto;background:transparent;border:none;cursor:pointer;font-size:12px;padding:0 2px;opacity:.7;line-height:1}
.club-chat-msg-del:hover{opacity:1}
.club-chat-report{margin-inline-start:auto;background:transparent;border:none;cursor:pointer;font-size:12px;padding:0 2px}
.club-chat-send-form{display:flex;gap:8px}
.club-chat-send-form input{flex:1;min-height:42px}
.club-chat-dm{margin-top:12px;padding-top:12px;border-top:1px dashed #304661}
.club-chat-dm-body{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.club-chat-dm .club-chat-messages{max-height:220px}
.club-chat-subhead{margin:18px 0 8px;font-size:15px;color:#c8d8ee}
.club-chat-pending-row,.club-chat-member-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #2a3d58;border-radius:12px;background:rgba(3,12,25,.55)}
.club-chat-pending-row img,.club-chat-member-row img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.club-chat-member-row.blocked{border-color:#8e2430}
.club-chat-member-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.club-chat-member-actions form{margin:0}
.club-chat-member-actions form.inline{display:flex;gap:4px}
.club-chat-reported-text{margin:6px 0 0;padding:8px;background:#0d1117;border-radius:8px;font-size:13px}
.club-chat-dm-thread{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #2a3d58;border-radius:10px;background:#0d1117;margin-top:8px}
.club-chat-dm-thread .club-chat-dm-msg{max-width:80%;padding:6px 9px;border-radius:10px;background:#161d29;align-self:flex-start;font-size:12px}
.club-chat-dm-thread .club-chat-dm-msg.admin{align-self:flex-end;background:#1f3a63}
.club-chat-dm-send{display:flex;gap:6px;margin-top:8px}
.club-chat-dm-send input{flex:1;min-height:38px}
@media(max-width:700px){.club-chat-messages{max-height:280px}.club-chat-msg{max-width:92%}.club-chat-pending-row,.club-chat-member-row{grid-template-columns:1fr}.club-chat-member-actions{justify-content:flex-start}}
.club-chat-msg.admin-msg{align-self:center;background:#3a2a12;border:1px solid #b98a2f;max-width:92%}
.club-chat-msg.admin-msg .club-chat-msg-head b{color:#ffc857}
.club-chat-rules{padding:14px;border:1px solid #b98a2f;border-radius:12px;background:rgba(185,138,47,.08);display:flex;flex-direction:column;gap:10px}
.club-chat-rules h3{margin:0}
.club-chat-rules p{margin:0;white-space:pre-wrap;font-size:13px;line-height:1.9}
.club-national-id-note{display:block;color:#8fd0ff;margin-top:8px}
.club-chat-dm-access-card{margin-top:18px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.14)}
.club-chat-violation-alert{border-color:#b98a2f!important;background:rgba(185,138,47,.1)!important}
.club-chat-violation-log summary{cursor:pointer;color:#9fb1ca;font-size:12px;margin:6px 0}
.club-chat-room[hidden],.club-chat-notice[hidden],.club-chat-dm[hidden]{display:none!important}
.club-chat-rules-success{color:#86f5b4!important;font-weight:700}
@media(max-width:560px){.club-chat-dm-access-card{margin-top:14px;padding-top:10px}}
.club-national-id-form{display:flex;gap:8px;margin-top:8px}
.club-national-id-form input{min-height:38px;max-width:180px}
.admin-chatroom-messages{max-height:360px}
@media(max-width:700px){.admin-chatroom-messages{max-height:260px}.club-national-id-form{flex-wrap:wrap}}
.global-chat-tabs{display:flex;gap:6px;padding:8px 10px 0}
.global-chat-tab-btn{flex:1;padding:8px;border-radius:10px 10px 0 0;border:1px solid #2a3d58;border-bottom:none;background:#0d1117;color:#9fb3c8;cursor:pointer;font-size:13px}
.global-chat-tab-btn.active{background:#161d29;color:#e8eef5;font-weight:bold}
.global-chat-tab-panel{padding:0 10px 10px}
.global-chat-dm-head{margin:12px 0 6px;font-size:13px}
.global-chat-dm-thread-row{border:1px solid #2a3d58;border-radius:10px;padding:8px;margin-bottom:8px;background:#0d1117}
.global-chat-dm-thread-row summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;font-size:12px}
.global-chat-dm-thread-row .club-chat-dm-thread{max-height:180px;overflow:auto}
@media(max-width:700px){.global-chat-tab-btn{font-size:12px}}
.club-dm-read-toggle{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#9fb3c8;cursor:pointer;margin-inline-start:auto}
.club-dm-read-state{font-size:11px;color:#42db7b;transition:opacity .3s}
.club-dm-read-state.error{color:#ff6b6b}
.club-collapse-toggle{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;user-select:none}
.club-collapse-chevron{font-size:.85em;color:#8fa9c7}
.club-collapse-body[hidden]{display:none}
@media(max-width:700px){.club-dm-read-toggle{font-size:10px}}

/* V1.25.0: block-English-input warning under the customer chat-room/DM inputs */
.club-chat-lang-warning{color:#ff7b72;font-weight:700}
.club-chat-lang-warning[hidden]{display:none!important}
/* V1.25.0: read-receipt checkmarks on admin-sent DM messages */
.club-chat-dm-check{margin-inline-start:6px;color:#8b949e;font-size:11px}
.club-chat-dm-check.read{color:#3fb950}
/* V1.27.0: real customer-read status next to each DM thread's name (replaces the old ambiguous "خوانده‌شده" badge state) */
.club-dm-read-real{margin-inline-start:6px;font-size:11px;color:#8b949e}
.club-dm-read-real.read{color:#3fb950}
/* V1.27.0: select-all + bulk delete-conversation bar above the collapsible DM thread lists */
.global-chat-dm-bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:12px}
@media(max-width:700px){.club-dm-read-real{font-size:10px}.global-chat-dm-bulk-bar{font-size:11px}}
/* V1.25.0: delete button on DM messages, mirroring the live chat-room's .club-chat-msg-del */
.club-chat-dm-msg{position:relative;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.club-chat-dm-del{margin-inline-start:auto;background:transparent;border:none;cursor:pointer;font-size:11px;padding:0 2px;opacity:.7;line-height:1}
.club-chat-dm-del:hover{opacity:1}
/* V1.31.0: camera/gallery choice buttons for the club-customer avatar upload (replaces the single hidden file input) */
.club-avatar-upload-form{display:flex}
.club-avatar-upload-choices{display:flex;flex-direction:column;gap:6px}
.club-avatar-upload-choices .btn{white-space:nowrap;text-align:center}
@media(max-width:700px){.club-avatar-upload-choices{flex-direction:row;flex-wrap:wrap}}
/* V1.31.0: bigger, more prominent «🔙 بازگشت به نشست مشتری» button at the top of the club page */
.club-back-to-session-btn{font-size:15px;font-weight:800;padding:11px 18px;border-radius:12px;border:1px solid #38a5ff;background:linear-gradient(135deg,#0d3a63,#1c6fc2);color:#eaf6ff;box-shadow:0 0 18px #1f8cff55;animation:clubBackPulse 1.6s infinite alternate}
.club-back-to-session-btn:hover{box-shadow:0 0 26px #1f8cff88}
@keyframes clubBackPulse{from{box-shadow:0 0 14px #1f8cff40}to{box-shadow:0 0 24px #1f8cff90}}
@media(max-width:700px){.club-header .club-back-to-session-btn{font-size:13px;padding:9px 14px}}
/* V1.31.0: customer-phone alarm banner (club page + «نشست آغاز شد» page) — shown when the customer's own console alarm is ringing on the admin side */
.gny-alarm-banner{position:fixed;z-index:99999;left:50%;bottom:14px;transform:translateX(-50%);width:min(420px,calc(100vw - 24px));padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,#5c0a0af5,#3a0a0af5);border:2px solid #ff5a5a;color:#fff;font-weight:700;text-align:center;box-shadow:0 0 34px #ff3b3b70;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;animation:gnyAlarmPulse .9s infinite alternate}
.gny-alarm-banner span{flex:1;min-width:160px;text-align:right}
.gny-alarm-banner button{background:#fff;color:#a30000;border:0;border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer}
@keyframes gnyAlarmPulse{from{box-shadow:0 0 20px #ff3b3b60}to{box-shadow:0 0 42px #ff3b3bb0}}
@media(max-width:520px){.gny-alarm-banner{width:calc(100% - 16px);font-size:13px}}
/* V1.30.0: per-message checkbox selection + bulk-delete bars, live chat room (header panel) and each open DM thread */
.club-chat-msg-check,.club-chat-dm-msg-check{margin:0;cursor:pointer}
.club-chat-msg-bulk-bar,.club-chat-dm-bulk-bar-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;padding:6px 8px;background:rgba(3,12,25,.5);border:1px solid #2a3d58;border-radius:8px;font-size:12px}
.club-chat-dm-bulk-bar-inline{margin-bottom:6px}
@media(max-width:700px){.club-chat-msg-bulk-bar,.club-chat-dm-bulk-bar-inline{font-size:11px;gap:6px}}
/* V1.25.0: admin panel "پیام جدید" compose card above the DM thread list */
.club-chat-dm-new{margin:10px 0 18px;padding:12px;border:1px solid #2a3d58;border-radius:12px;background:rgba(3,12,25,.4)}
.club-chat-dm-new .club-fields{grid-template-columns:1fr 1fr}
/* V1.25.0: header quick-panel "+ پیام جدید" mini-form — collapsed by default, does not disrupt the compact panel */
.global-chat-dm-new-toggle{width:100%;margin:6px 0;font-size:12px}
.global-chat-dm-new-form{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #2a3d58;border-radius:10px;background:rgba(3,12,25,.4);margin-bottom:10px;position:relative}
.global-chat-dm-new-form[hidden]{display:none!important}
.global-chat-dm-new-form input{width:100%}
.global-chat-dm-new-results{position:relative;max-height:160px;overflow:auto}
/* V1.25.0: broadcast DM card in Settings > چت > چت به مدیر */
.club-chat-dm-broadcast-card{margin-top:18px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.14)}
/* V1.25.0: blinking "you have a message" banner in the start-session modal */
.start-modal-dm-alert{margin:8px 0;padding:9px 11px;border-radius:10px;border:1px solid var(--red);background:rgba(218,54,51,.16);color:#ff7b72;font-weight:700;text-align:center;font-size:13px}
.start-modal-dm-alert.blink-red{animation:startDmBlink 1s steps(1) infinite}
@keyframes startDmBlink{50%{opacity:.25}}
/* V1.25.1: non-blinking "customer already has an active session elsewhere" warning in the start-session modal */
.start-modal-active-session-alert{margin:8px 0;padding:9px 11px;border-radius:10px;border:1px solid #d29922;background:rgba(210,153,34,.16);color:#f0b93d;font-weight:700;text-align:center;font-size:13px}
@media(max-width:520px){.club-chat-dm-new .club-fields{grid-template-columns:1fr}.start-modal-dm-alert{font-size:12px}.start-modal-active-session-alert{font-size:12px}}
.club-dm-mode-toggle{grid-template-columns:repeat(2,1fr);margin-bottom:12px}
















.brand-logo-img{object-fit:contain;display:block;margin:auto}
.neo-gny-logo.brand-logo-img{width:min(240px,55vw);height:130px;filter:drop-shadow(0 10px 10px #000a)}
.auth-mini-logo.brand-logo-img{width:64px;height:64px}
.branding-logo-preview{margin-top:6px;width:90px;height:90px;border-radius:10px;border:1px solid #35445d;background:#0d1117;display:grid;place-items:center;overflow:hidden}
.branding-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.branding-logo-preview.small{width:48px;height:48px}
.portal-gny-hero.brand-logo-img{width:100%;height:100%}







/* V1.41.0: instant client-side customer filter input (mirrors #club-account-search's own default styling) */
.customer-search-live{width:100%;margin-bottom:8px}




.customer-status-filters{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px;padding:8px 10px;border:1px solid #2b3446;border-radius:10px;background:#0c121d}
.customer-status-filters label{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;cursor:pointer}





.qr-reward-locked-row{opacity:.55}.qr-reward-locked-note{display:block;color:#ff9f43;font-size:12px;margin-top:3px}
/* V1.56.0: reward↔device cross-filtering on the session-start page — dimmed (not hidden) so the customer can see
   why a choice is unavailable instead of it silently disappearing. */
.qr-reward-dim{opacity:.4}
.qr-reward-device-tag{color:#7fd0ff;font-size:12px}
select option.qr-device-dim{color:#5b6b83}
.reward-period-table{width:100%;border-collapse:collapse;margin:10px 0}
.reward-period-table th,.reward-period-table td{padding:7px 8px;border-bottom:1px solid #26364b;text-align:right}
.reward-period-table th{color:var(--muted,#8fa0b7);font-weight:normal;font-size:13px}
.reward-period-table td:nth-child(2),.reward-period-table td:nth-child(3),.reward-period-table th:nth-child(2),.reward-period-table th:nth-child(3){text-align:center;width:70px}
.reward-period-save-state{margin-inline-start:8px;font-size:12px;color:var(--muted,#8fa0b7)}
.reward-period-save-state.ok{color:#7ee787}
.reward-period-save-state.err{color:#ff6b6b}
.reward-period-warning{background:#3a2a0a;border:1px solid #ffb020;color:#ffcf7a;border-radius:10px;padding:10px 12px;margin:8px 0;font-size:13px;line-height:1.9}
.rp-toggle-state{display:inline-block;min-width:14px;font-size:12px;margin-inline-start:4px;color:var(--muted,#8fa0b7)}
.rp-toggle-state.ok{color:#7ee787}
.rp-toggle-state.err{white-space:nowrap}
.rp-toggle-state.err{color:#ff6b6b}
.rp-toggle-row input:disabled,.reward-period-table input:disabled{opacity:.5}
.rp-group{border:1px solid #26364b;border-radius:12px;margin:10px 0;padding:6px 14px 12px}
.rp-group>summary{cursor:pointer;font-weight:700;padding:10px 2px;list-style:none}
.rp-group>summary::-webkit-details-marker{display:none}
.rp-group>summary::before{content:'▸';display:inline-block;margin-inline-end:6px;transition:transform .15s}
.rp-group[open]>summary::before{transform:rotate(90deg)}
.rp-group-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.rp-group-toolbar select,.rp-group-toolbar button{font-size:12px;padding:6px 10px}
.rp-group-cards{display:flex;gap:10px;flex-wrap:wrap}
.rp-item{position:relative}
.rp-item input:disabled{opacity:.5}





/* V1.57.1: بخش‌های کشویی تنظیمات ← ظاهر («ساعات فعالیت و نمایش صفحه اول» / «برندینگ») — details/summary بومی. */
.settings-collapse{border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:0 16px 16px;margin:14px 0;background:rgba(255,255,255,.02)}
.settings-collapse>summary{list-style:none;cursor:pointer;padding:14px 0;display:flex;align-items:center;user-select:none}
.settings-collapse>summary::-webkit-details-marker{display:none}
.settings-collapse>summary h3{margin:0;display:flex;align-items:center;gap:8px}
.settings-collapse>summary h3::before{content:'▸';display:inline-block;color:#8fa9c7;transition:transform .15s ease;font-size:.85em}
.settings-collapse[open]>summary h3::before{transform:rotate(90deg)}
.settings-collapse>summary:hover h3{color:var(--accent,#b43cff)}
/* V1.57.1: انتخاب طرح پیش‌پرداخت در کارت نشست مشتری (بعد از اسکن QR) — همان ظاهر .qr-reward-picker. */
.qr-package-picker{display:grid;gap:8px;border:1px solid #9b54ff;border-radius:14px;padding:12px;margin-top:10px}
.qr-package-picker label{padding:9px;border-radius:9px;background:#111b32}
/* V1.58.0: کم‌رنگ‌شدن «نوع کنسول/سرویس» در دیالوگ «شروع» داشبورد وقتی با بسته‌ی انتخابی نمی‌خواند. */
.service-choice-dim{opacity:.4}


/* V1.60.0: باکس جستجوی کلمه‌به‌کلمه‌ی تنظیمات — همان الگوی .customer-search-results. */
.settings-search-wrap{position:relative;margin:10px 0}
.settings-search-live{width:100%}
.settings-search-results{position:absolute;z-index:60;top:calc(100% + 4px);right:0;left:0;background:#171a22;border:1px solid #3c4353;border-radius:10px;max-height:280px;overflow:auto;padding:4px}
.settings-search-results:empty{display:none}
.settings-search-results button{display:block;width:100%;text-align:right;background:transparent;border:0;border-bottom:1px solid #2a3040;border-radius:0;padding:8px 6px}
.settings-search-results button:last-child{border-bottom:0}
.settings-search-results button:hover{background:#232a3b}
.settings-search-results small{display:block;color:#8fa0b7;font-size:11px;margin-top:2px}
@keyframes settingsSearchFlash{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 3px #ffb020}}
.settings-search-hit{animation:settingsSearchFlash 1s ease-in-out 2;border-radius:8px}

/* V1.62.0: «ساعات بازی» کنار فیلترهای عکس/کد ملی در تب «مشتریان و حساب‌های کلوب». */
.club-playtime-bar{margin:10px 0}
.club-playtime-custom{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.club-playtime-custom .club-date-open{flex:1 1 160px}
.club-play-hours{color:#8fd4ff;font-size:11px}







/* V1.65.0: «⏱️ محدودیت زمانی و شرایط رزرو آنلاین» — ویرایشگر بازه‌های ساعتی (تنظیمات ← ظاهر) و پیام عدم‌تأیید در صفحه رزرو عمومی. */
.reservation-ranges-block{display:grid;gap:8px;margin:8px 0}
.reservation-ranges-editor{display:grid;gap:6px}
.reservation-range-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reservation-range-row input[type=time]{width:auto}
.reservation-device-rule-fields{border:1px solid var(--border);border-radius:10px;padding:12px;margin-top:10px;display:grid;gap:10px}
.portal-inline-error#portal-verification-block{display:block;margin-top:6px}


/* V1.67.0: «📱 اپلیکیشن نصب‌شدنی (PWA)» — صفحه نصب/ثبت‌نام (app_install.php)، صفحه خانه با سه دکمه بزرگ
   (app_home.php)، صفحه اسکن دوربین (app_scan.php)، و پیش‌نمایش بارکد نصب در تنظیمات. */
.app-pwa-body{margin:0;background:radial-gradient(circle at 50% -10%,#1f6feb33,#0d1117 60%);min-height:100vh;font-family:Tahoma,Arial,sans-serif;color:#e6edf3}
.app-pwa-shell{max-width:480px;margin:0 auto;padding:18px}
.app-pwa-center{min-height:100vh;display:flex;align-items:center;justify-content:center}
.app-pwa-card{width:100%;text-align:center;padding:28px 22px}
.app-pwa-logo{margin-bottom:10px}
.app-pwa-logo-img{max-height:64px;max-width:160px;object-fit:contain}
.app-pwa-card h1{margin:4px 0 10px;font-size:22px}
.app-pwa-hello{font-size:17px;margin:14px 0}
.app-pwa-register-form{text-align:right;margin-top:14px}
.app-pwa-install-btn{width:100%;font-size:17px;padding:14px;margin:10px 0}
.app-pwa-ios-help{background:#0d1117;border:1px solid var(--border);border-radius:10px;padding:12px;margin:10px 0;text-align:right;font-size:14px}
#app-pwa-continue{display:block;margin-top:10px;width:100%;text-align:center}
.app-home-body .app-pwa-shell{max-width:520px}
.app-home-header{text-align:center;margin-bottom:22px}
.app-home-header .app-pwa-logo-img{max-height:56px}
.app-home-header h1{margin:6px 0 2px;font-size:24px}
.app-home-hello{color:var(--muted);margin:0}
.app-home-hello.app-home-guest a{color:#58a6ff}
.app-home-grid{display:grid;gap:16px}
.app-home-tile{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:#fff;padding:28px 16px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(135deg,#161b22,#0d1117);box-shadow:0 0 0 1px #ffffff08 inset;transition:transform .15s}
.app-home-tile:active{transform:scale(.97)}
.app-home-tile-icon{font-size:40px;line-height:1}
.app-home-tile-title{font-size:19px;font-weight:700}
.app-home-tile-sub{font-size:12px;color:var(--muted)}
.app-home-tile-session{border-color:#1f6feb;box-shadow:0 0 24px #1f6feb33}
.app-home-tile-reserve{border-color:#d29922;box-shadow:0 0 24px #d2992233}
.app-home-tile-club{border-color:#bc8cff;box-shadow:0 0 24px #8957e533}
.app-home-tile-form{padding:0;border:0;background:none;box-shadow:none}
.app-home-tile-btn{all:unset;display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;cursor:pointer;padding:28px 16px;border-radius:18px;border:1px solid #bc8cff;background:linear-gradient(135deg,#161b22,#0d1117);box-shadow:0 0 24px #8957e533,0 0 0 1px #ffffff08 inset;color:#fff;box-sizing:border-box}
.app-scan-card{padding-top:20px}
.app-scan-viewport{position:relative;width:100%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#000;margin:14px 0}
.app-scan-viewport video{width:100%;height:100%;object-fit:cover}
.app-scan-frame{position:absolute;inset:14%;border:3px solid #3fb950;border-radius:14px;box-shadow:0 0 0 2000px #00000055;pointer-events:none}
.app-scan-status{min-height:22px;font-weight:700}
.app-scan-help{font-size:12px}
.app-install-qr-preview{display:flex;justify-content:center;margin:10px 0}
.app-install-qr-preview img{border-radius:10px;border:1px solid var(--border);background:#fff;padding:8px}

/* V1.68.0: راهنمای مجوز دوربین مخصوص اپ نصب‌شده (app_scan.php) + لوگوی اختصاصی اپلیکیشن در تنظیمات. */
.app-scan-help-box{background:#0d1117;border:1px solid #d29922;border-radius:10px;padding:12px;margin:10px 0;text-align:right;font-size:13px}

/* V1.69.0: نمایش وضعیت دقیق مجوز دوربین Chrome برای همین آدرس (app_scan.php). */
.app-scan-permstate{font-size:13px;color:var(--muted);background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:4px 0}



.portal-known-customer-row{font-size:14px;background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:0 0 4px}

.portal-back-to-app-btn{margin:0 0 10px;display:inline-block}

.app-home-tile-active-session{outline:2px solid var(--accent,#168cff)}






/* V1.79.0: قفل نرم رزرو/کلوب خارج از ساعت */
.neo-locked{filter:saturate(.35) brightness(.8)}.neo-locked:hover{transform:none}
.app-home-tile-locked{opacity:.6;filter:saturate(.4)}
.feature-closed-card{text-align:center}.feature-closed-msg{font-size:1.15rem;line-height:2;margin:14px 0}.feature-closed-card .btn{display:block;margin-top:16px}


/* V1.80.0: گزارش کلمات نامناسب (انتخاب گروهی/اقدام) + مرتب‌سازی ساعات بازی */
.club-chat-violation-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.club-chat-violation-row .club-chat-member-actions{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:760px){.club-chat-violation-row{grid-template-columns:auto minmax(0,1fr)}.club-chat-violation-row .club-chat-member-actions{grid-column:1/-1}}
.club-playtime-sort{margin-top:8px}


/* V1.81.0: نوار درخواست‌های داخل برنامه + کارت تنظیمات اعلان سیستم‌عامل */
.live-request-banner{position:fixed;z-index:9999;right:14px;bottom:14px;display:grid;gap:8px;width:min(420px,calc(100vw - 28px))}
.live-request-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid #d29922;border-radius:12px;background:#10192bf2;box-shadow:0 8px 28px #000a}
.live-request-text{display:grid;gap:2px;min-width:0}.live-request-text span{font-size:.85rem;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:560px){.live-request-banner{right:8px;left:8px;width:auto}.live-request-item{grid-template-columns:1fr 1fr}.live-request-text{grid-column:1/-1}}
.os-notify-status{display:grid;gap:8px;margin:10px 0}.os-notify-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.os-notify-tips{padding-inline-start:20px;line-height:1.9}





/* V1.85.0: isolated history/rewards components, desktop and touch layouts. */
.gny-history,.gny-rewards{min-width:0;width:100%;box-sizing:border-box}
.gny-history>summary,.gny-rewards>summary{font-size:1.15rem;font-weight:700;cursor:pointer;padding:14px 0;min-height:44px;box-sizing:border-box}
.gny-history-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:10px 0}
.gny-history-filters label{display:grid;gap:6px;flex:1 1 145px;min-width:0}
.gny-history-filters input{width:100%;min-width:0;box-sizing:border-box;direction:ltr;text-align:center}
.gny-history-filters button,.gny-date-picker button{min-height:44px;white-space:normal}
.gny-history-results{max-height:350px;overflow:auto;overscroll-behavior:contain;min-width:0}
.gny-history-results .gny-history-row{display:grid;grid-template-columns:minmax(80px,1fr) minmax(130px,1.3fr) auto auto;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid #334155;overflow-wrap:anywhere}
.gny-history-reward{grid-column:1/-1;color:#71dba1}
.gny-history-message:empty{display:none}.gny-history-message{font-size:.9rem}
.gny-date-picker{max-width:calc(100vw - 32px);width:400px;box-sizing:border-box;border:1px solid #334155;border-radius:14px;background:#101b2b;color:#fff;padding:18px;direction:rtl}
.gny-date-picker::backdrop{background:#0009}.gny-date-selects{display:flex;gap:10px}.gny-date-selects label{display:grid;gap:8px;min-width:0;flex:1}.gny-date-selects select{width:100%;min-height:44px}.gny-date-actions{display:flex;gap:10px;margin-top:20px}
@media(max-width:600px){.gny-history-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gny-history-filters>*{min-width:0}.gny-history-results .gny-history-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;font-size:.9rem}.gny-history-results time{text-align:left}.gny-history-results{max-height:320px}.gny-rewards .club-reward{flex-wrap:wrap;overflow-wrap:anywhere}}

/* V1.86.0: app manager tile and device-specific visibility. */
.app-home-tile-admin{border-color:#2ea876;box-shadow:0 0 24px #2ea87633}
.app-order-settings .public-hours-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.app-order-settings .public-hours-row>b{flex:1 1 160px}.app-admin-options{overflow-wrap:anywhere}
@media(max-width:700px){.app-home-grid>.app-admin-hide-mobile{display:none}.app-order-settings .public-hours-row>label{flex:1 1 120px;min-width:0}}
@media(min-width:701px){.app-home-grid>.app-admin-hide-desktop{display:none}}

/* V1.87.1: landing ordering is mobile-only; desktop retains the original graphical layout. */
@media(max-width:800px){body.unified-landing .neo-choice-grid{display:flex!important;flex-direction:column!important;gap:16px!important;position:relative!important;width:min(680px,100%)!important;height:auto!important;min-height:0!important;margin:20px auto!important;padding:12px!important;background:none!important;aspect-ratio:auto!important}}
@media(max-width:800px){body.unified-landing .neo-choice-grid>a{order:var(--land-order)!important;position:relative!important;inset:auto!important;transform:none!important;grid-area:auto!important;width:100%!important;height:auto!important;min-height:88px!important;opacity:1!important;visibility:visible!important;color:#fff!important;background:linear-gradient(135deg,#173854,#171d35)!important;border:1px solid #4b7897!important;border-radius:16px!important;padding:20px!important;pointer-events:auto!important;font-size:18px!important;text-indent:0!important}}
@media(max-width:800px){body.unified-landing .neo-choice-grid>a>*{opacity:1!important;visibility:visible!important;color:inherit!important}}
@media(max-width:800px){@media(max-width:700px){body.unified-landing .neo-choice-grid>a{order:var(--land-order)!important}}}
.settings-collapse>summary{cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:list-item;padding:14px 8px}.settings-collapse:not([open]){padding-bottom:0}.section-save-state{display:inline-block;margin:10px;overflow-wrap:anywhere}.app-message-list{max-height:55vh;overflow:auto;padding:12px}.app-message-list p{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border-radius:10px;background:#20364a}.app-message-list p[data-sender="admin"]{background:#275d4d}.app-message-form textarea{width:100%;min-height:100px;box-sizing:border-box}

@media(max-width:800px){body.unified-landing{height:auto!important;min-height:100vh!important;overflow:auto!important;background:radial-gradient(ellipse at top,#18324b,#080e1c 70%)!important}body.unified-landing .gny-neo-landing{width:100%!important;height:auto!important;min-height:100vh!important;padding:24px 12px!important;box-sizing:border-box}body.unified-landing .neo-welcome{visibility:visible!important;position:relative!important}body.unified-landing .neo-choice-grid{inset:auto!important;box-sizing:border-box}body.unified-landing .neo-choice-grid>a{box-sizing:border-box;display:flex!important;align-items:center;justify-content:space-between;gap:12px}body.unified-landing .neo-choice-copy{position:static!important;display:flex!important;flex-direction:column;min-width:0}body.unified-landing .neo-choice-copy strong{font-size:20px!important;color:inherit!important}}
[data-appearance-section] input,[data-appearance-section] select,[data-appearance-section] textarea{min-width:0;max-width:100%;box-sizing:border-box}[data-appearance-section] label{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){[data-appearance-section] .public-hours-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}[data-appearance-section] .public-hours-row>label{width:auto;min-width:0;max-width:100%}[data-appearance-section] .public-hours-row>.check-row,[data-appearance-section] .public-hours-row>b{grid-column:1/-1}[data-appearance-section] input[type=date],[data-appearance-section] input[type=time]{width:100%;min-width:0}}
@media(max-width:800px){body.unified-landing .neo-choice-grid>a>b{position:static!important;inset:auto!important;font-size:26px!important;flex-shrink:0}body.unified-landing .neo-choice-icon{font-size:38px!important;letter-spacing:0!important;flex-shrink:0}body.unified-landing .neo-footer{position:relative!important;inset:auto!important;transform:none!important;visibility:visible!important;margin:16px auto!important;width:fit-content;max-width:calc(100% - 24px);box-sizing:border-box}body.unified-landing .gny-neo-landing{min-height:0!important}}
.settings-collapse>summary h3{display:inline;font-size:inherit}

/* V1.88.0: controller registry and grouped repair history. */
.gamepads-page{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start}.gamepads-page>section{min-width:0}.gamepads-table-scroll{max-width:100%;overflow-x:auto}.gamepads-table{width:100%;min-width:670px;table-layout:fixed}.gamepads-table th,.gamepads-table td{white-space:normal;overflow-wrap:anywhere;vertical-align:top;padding:10px 8px}.gamepads-table th:first-child{width:10%}.gamepads-table th:last-child{width:15%}.gamepads-table button{margin:3px 0;max-width:100%}.gamepads-page input,.gamepads-page select{min-width:0;width:100%;box-sizing:border-box}.gamepads-page input[type=checkbox]{width:auto}
.repair-groups{display:grid;gap:12px;min-width:0}.repair-group{min-width:0;scroll-margin-top:90px}.repair-group>summary{cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;list-style:disclosure-closed}.repair-group>summary::before{content:'▸'}.repair-group[open]>summary::before{content:'▾'}.repair-group>summary strong{flex:1 1 130px}.repair-group>summary span{font-size:.9rem;overflow-wrap:anywhere}.repair-group-body{padding:12px;min-width:0}.repair-history{display:grid;gap:12px}.repair-history-item{padding:14px;border:1px solid var(--border);border-radius:12px;min-width:0}.repair-history-item header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.repair-history-item dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.repair-history-item dt{color:var(--muted);font-size:.85rem}.repair-history-item dd{margin:5px 0;overflow-wrap:anywhere}.repair-note{white-space:pre-wrap;overflow-wrap:anywhere}.repair-editor{margin-top:16px}.repair-editor>summary{cursor:pointer;padding:12px}.repair-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.repair-entry label{min-width:0}.repair-entry input,.repair-entry select,.repair-entry textarea{width:100%;min-width:0;box-sizing:border-box}.repair-form-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.repair-picker{display:grid;gap:8px;max-width:500px}.repair-picker select{width:100%;min-width:0}
@media(max-width:1050px){.gamepads-page{grid-template-columns:1fr}}@media(max-width:600px){.repair-entry,.repair-history-item dl{grid-template-columns:1fr}.repair-group>summary{gap:8px}.repair-group>summary strong{flex-basis:100%}.repair-group-body{padding:8px}.repair-history-item{padding:10px}}
.repair-history-item header{position:static;top:auto;z-index:auto;min-height:0;padding:0 0 10px;background:transparent;overflow-wrap:anywhere}.gamepads-table td:last-child{white-space:normal}.gamepads-table td:last-child>a{display:block;margin-bottom:6px}.gamepads-table .inline-form{display:inline-flex;flex-wrap:wrap}

/* V1.90.0: compact rows and device filtering. */
.repair-group{padding:6px 10px}.repair-group>summary{padding:5px 2px;gap:8px;min-height:32px}.repair-group>summary strong{font-size:.95rem}.repair-group>summary span{font-size:.8rem}.repair-groups{gap:8px}.repair-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.repair-filters .repair-picker{flex:1 1 200px}.repair-archive-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem}.repair-row-action{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}.repair-row-action [hidden],.repair-group[hidden],#repair-filter-empty[hidden]{display:none!important}#repair-row-message:empty{display:none}.repair-group[data-archived="1"]>summary{opacity:.65}@media(max-width:600px){.repair-group>summary strong{flex-basis:auto;flex-grow:1}.repair-group>summary{gap:5px 8px}.repair-group>summary span{font-size:.75rem}.repair-row-action button{flex:1 1 140px}.repair-group-body{padding:7px 2px}}

/* v1.89 customer access controls */
.customer-access-content{min-width:0;padding:10px}.access-feature-form,.access-history-form{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 0;border-bottom:1px solid var(--border,#334155);margin:0}.access-feature-form>strong{flex:1 1 160px}.access-feature-form label,.access-history-form label{display:flex;flex-direction:column;gap:4px;min-width:0}.access-feature-form select{min-width:90px}.access-reason{flex:2 1 180px}.access-reason input{width:100%;min-width:0;box-sizing:border-box}.access-actions{display:flex;flex-wrap:wrap;gap:6px}.access-history{margin-top:12px}.access-history-form>div:first-of-type{flex:1 1 220px}.access-history-form small{display:block;margin-top:4px}.access-status{padding:8px;overflow-wrap:anywhere}.app-home-tile-blocked{opacity:.68}.customer-access-content .muted-text{line-height:1.9}@media(max-width:600px){.access-feature-form>strong{flex-basis:100%}.access-reason{flex-basis:100%}.access-actions{width:100%}.access-actions button{flex:1}.customer-access-content{padding:8px 0}}

/* v1.90 Wallet */
.customer-wallet-panel{border:1px solid var(--border,#334155);border-radius:10px;padding:12px;margin:12px 0;min-width:0}.customer-wallet-form{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin:10px 0}.customer-wallet-form label{flex:1 1 180px;min-width:0}.customer-wallet-form input{width:100%;box-sizing:border-box}.wallet-save-status{line-height:1.8;overflow-wrap:anywhere}.wallet-pay-button{font-weight:700;border:1px solid #16a34a;background:#166534;color:white;padding:10px;border-radius:8px}.wallet-pay-button:disabled{opacity:.35;filter:grayscale(1);cursor:not-allowed}.wallet-pay-button.selected{outline:2px solid #86efac}.wallet-payment-notice{background:#fff4ce;color:#583d00;padding:10px;border-radius:8px;line-height:1.9;overflow-wrap:anywhere}.invoice-decision{flex-wrap:wrap}.invoice-decision>button{min-width:0;white-space:normal}@media(max-width:600px){.customer-wallet-form>button{width:100%}.wallet-pay-button{max-width:100%;white-space:normal}}

#invoice-preview-modal .invoice-decision.four-actions{display:flex!important;flex-wrap:wrap!important}#invoice-preview-modal .invoice-decision.four-actions button{flex:1 1 90px!important;min-height:36px!important;height:auto!important}#invoice-preview-modal #send-invoice-wallet{flex-basis:100%!important}

/* Wallet statement, admin and read-only club */
.wallet-operation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wallet-operation-grid .customer-wallet-form{align-content:start}.wallet-history{min-width:0;margin:10px 0}.wallet-history>summary{cursor:pointer;padding:10px 0;font-weight:700;line-height:1.8}.wallet-history-content{min-width:0}.wallet-history-balance{padding:10px 0}.wallet-history-entry{border:1px solid #475569;border-inline-start:4px solid #22c55e;border-radius:10px;margin:10px 0;padding:12px;display:flex;flex-direction:column;gap:8px;line-height:1.8;overflow-wrap:anywhere}.wallet-history-entry.wallet-debit{border-inline-start-color:#ef4444}.wallet-entry-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.wallet-entry-heading time{font-size:.85em;opacity:.85}.wallet-entry-balance{align-self:flex-end;border-top:1px solid #64748b;padding-top:6px;min-width:45%;text-align:end}.wallet-history-pages{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.wallet-history-status{overflow-wrap:anywhere;line-height:1.8}@media(max-width:600px){.wallet-operation-grid{grid-template-columns:1fr}.wallet-entry-heading{flex-direction:column}.wallet-entry-balance{width:100%}.wallet-history-entry{padding:10px}}

/* One-screen wallet confirmation, scoped to the wallet path only. */
:is(#pos-modal,#wallet-standalone).wallet-compact-mode{width:min(390px,calc(100vw - 20px))!important;height:fit-content!important;min-height:0!important;max-height:calc(100dvh - 16px)!important;padding:0!important;overflow:auto;box-sizing:border-box}
:is(#pos-modal,#wallet-standalone).wallet-compact-mode .invoice-box{padding:12px!important;min-height:0!important;height:auto!important}
:is(#pos-modal,#wallet-standalone).wallet-compact-mode .modal-head{margin:0 0 8px!important;padding:0!important;min-height:32px!important;align-items:center}
:is(#pos-modal,#wallet-standalone).wallet-compact-mode .modal-head>div{display:flex;align-items:center;gap:6px;min-width:0}
:is(#pos-modal,#wallet-standalone).wallet-compact-mode .modal-head h2{font-size:17px!important;margin:0!important;line-height:1.5!important}
:is(#pos-modal,#wallet-standalone).wallet-compact-mode .modal-head .gny-mini-logo{display:none!important}
:is(#pos-modal,#wallet-standalone).wallet-compact-mode .modal-close{width:32px;height:32px;min-height:32px;padding:0!important;flex-shrink:0}
.wallet-quick-customer{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:7px}.wallet-quick-customer small{opacity:.75}
.wallet-quick-lines{border:1px solid #334155;border-radius:8px;padding:7px 9px;font-size:12px;display:grid;gap:5px}
.wallet-quick-lines>div{display:flex;justify-content:space-between;gap:8px;line-height:1.6}.wallet-quick-lines b{white-space:nowrap}.wallet-quick-debit{border-top:1px solid #334155;padding-top:5px;color:#86efac;font-weight:700}.wallet-quick-cash{color:#fcd34d}
.wallet-quick-note{font-size:11px;line-height:1.7;margin:7px 0!important}.wallet-quick-actions{display:flex;gap:8px}.wallet-quick-actions button{flex:1;min-width:0;min-height:38px!important;padding:6px 8px!important;font-size:13px!important;margin:0!important}.wallet-quick-error{font-size:12px;color:#fca5a5;line-height:1.6;margin:4px 0 8px;overflow-wrap:anywhere}#wallet-quick-form{margin:0!important;gap:0!important}
@media(max-height:440px){:is(#pos-modal,#wallet-standalone).wallet-compact-mode .invoice-box{padding:8px!important}.wallet-quick-lines{gap:2px;padding:5px 7px}.wallet-quick-note{margin:4px 0!important}:is(#pos-modal,#wallet-standalone).wallet-compact-mode .modal-head{margin-bottom:4px!important}}

/* Wallet settings and balances: scoped, no effect on the graphical home. */
.wallet-settings-section{margin:12px 0;padding:12px;border:1px solid #64748b55;border-radius:12px;min-width:0}.wallet-settings-section>summary{cursor:pointer;font-weight:bold}.wallet-settings-section fieldset{border:0;padding:12px 0;display:flex;flex-wrap:wrap;gap:12px}.wallet-fields label{flex:1 1 190px;min-width:0}.wallet-fields input:not([type=checkbox]),.wallet-fields select{width:100%;box-sizing:border-box}.wallet-balances{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.wallet-balances span{padding:6px 10px;border:1px solid #64748b55;border-radius:8px}.wallet-period{font-size:.85em}.wallet-history-entry{overflow-wrap:anywhere}@media(max-width:600px){.wallet-fields label{flex-basis:100%}.wallet-balances{display:grid;grid-template-columns:1fr}.wallet-settings-section{padding:9px}.wallet-operation-grid{grid-template-columns:1fr}}

/* Wallet statements and large accessible disclosure headers, v1.94 */
.customer-wallet-panel details>summary,.club-wallet-panel details>summary,.wallet-settings-section>summary{display:list-item!important;position:relative;min-height:44px;box-sizing:border-box;width:100%;padding:10px 8px!important;cursor:pointer;pointer-events:auto!important;line-height:1.6;list-style-position:inside;user-select:none}
.customer-wallet-panel details>summary:focus-visible,.club-wallet-panel summary:focus-visible,.wallet-settings-section>summary:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}
.wallet-statement{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px;direction:rtl}.wallet-statement th,.wallet-statement td{padding:9px 4px!important;white-space:normal!important;overflow-wrap:anywhere;text-align:right;border-bottom:1px solid #64748b55}.wallet-statement th:nth-child(1){width:23%}.wallet-statement th:nth-child(3),.wallet-statement th:nth-child(4){width:22%}.wallet-statement td small{display:block;font-size:10px;line-height:1.6;opacity:.8}.wallet-statement .wallet-row-balance{text-align:end;font-weight:700}.wallet-statement .wallet-debit .wallet-amount{color:#f87171}.wallet-statement .wallet-credit .wallet-amount{color:#4ade80}.wallet-history-content{overflow:visible}.wallet-history-group{margin:10px 0}.wallet-bulk-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}.wallet-bulk-bar select{width:auto;max-width:100%}.wallet-select-row{display:inline-flex;align-items:center;gap:8px;min-height:44px}.wallet-select-row input{width:20px;height:20px}.wallet-pay-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wallet-pay-choices button{white-space:normal!important;min-width:0}.wallet-pay-choices small{display:block}@media(max-width:480px){.wallet-pay-choices{grid-template-columns:1fr}.wallet-statement{font-size:11px}.wallet-statement th,.wallet-statement td{padding:8px 3px!important}}

.session-card-options{display:grid;gap:8px}.session-card-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;border-bottom:1px solid #64748b44;flex-wrap:wrap}.session-card-option-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.session-card-option-controls label{display:flex;align-items:center;gap:5px;font-size:12px}.session-card-option-controls input[type=checkbox]{width:18px;height:18px;margin:0}.session-card-option-controls input.session-card-order{width:44px!important;min-width:44px!important;height:28px;padding:2px!important;text-align:center;font-size:12px;direction:ltr}.session-card-order-label span{font-size:11px}@media(max-width:480px){.session-card-option{align-items:flex-start}.session-card-option>strong{width:100%;font-size:13px}.session-card-option-controls{width:100%;justify-content:space-between;gap:6px}}

.customer-pages{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.customer-lazy-section{min-width:0;margin:10px 0}.customer-lazy-section>summary{cursor:pointer;min-height:44px;padding:10px 4px;font-weight:700}.customer-section-content{min-width:0;overflow-wrap:anywhere}#customer-profile-content{min-width:0}.customer-directory .customer-profile-card{margin:0}@media(max-width:700px){.customer-pages button{min-height:40px}.customer-section-content .inline-form{flex-wrap:wrap}}

/* 1.96.1: keep the AJAX list wrapper in the drawer's bounded flex chain. */
.customer-list-panel #customer-list-content{display:flex;flex-direction:column;flex:1 1 0%;min-height:0;min-width:0}
.customer-list-panel .customer-compact-list{grid-auto-rows:max-content;align-content:start;-webkit-overflow-scrolling:touch}
.customer-list-panel .customer-pages{flex:0 0 auto}
.customer-list-panel{overflow-y:auto}
.customer-list-panel #customer-live-filter,.customer-list-panel .customer-status-filters{flex-shrink:0}
/* 1.97: device history and in-place buffet deletion. */
#device-history-modal{width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-sizing:border-box;overflow:auto;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text)}
#device-history-modal::backdrop{background:#0009}.device-history-entry{border:1px solid var(--border);border-radius:10px;padding:10px;margin:10px 0;overflow-wrap:anywhere}.device-history-entry>summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;cursor:pointer;min-height:44px}.device-history-entry>summary b{flex:1 1 150px}.device-history-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.device-history-fields>div{min-width:0}.device-history-fields dt{color:var(--muted);font-size:12px}.device-history-fields dd{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.edit-buffet-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.edit-buffet-row span{min-width:0;overflow-wrap:anywhere}.edit-buffet-row button{flex-shrink:0;min-height:40px}#edit-session-buffet{min-width:0}#edit-session-modal{max-height:calc(100dvh - 24px);overflow:auto}.card-tool-row{flex-wrap:wrap}@media(max-width:480px){.device-history-fields{grid-template-columns:1fr}#device-history-modal{padding:10px}.device-history-entry>summary{font-size:12px}}
/* 1.97.9: invoice-sized history with compact statement rows. */
#device-history-modal{width:min(365px,calc(100vw - 20px));max-height:82vh;max-height:82dvh;padding:10px;overflow:hidden}
#device-history-modal[open]{display:flex;flex-direction:column}
#device-history-modal>.modal-head{flex:0 0 auto;margin:0 0 6px;padding:0;gap:6px;min-height:32px}
#device-history-modal>.modal-head h2{font-size:15px;margin:0;line-height:1.5}
#device-history-close{width:32px;height:32px;padding:0;flex:0 0 32px;font-size:20px}
#device-history-content{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;font-size:11px;line-height:1.65}
#device-history-content>p{margin:3px 0 7px;font-size:11px}
#device-history-modal .device-history-entry{margin:5px 0;padding:6px;border-radius:7px}
#device-history-modal .device-history-entry>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;min-height:42px;font-size:11px;line-height:1.5}
#device-history-modal .device-history-entry>summary>b{grid-column:1/-1;font-size:12px;min-width:0}
#device-history-modal .device-history-entry>summary>span{min-width:0;overflow-wrap:anywhere}
#device-history-modal .device-history-fields{display:block;margin:7px 0}
#device-history-modal .device-history-fields>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid var(--border)}
#device-history-modal .device-history-fields dt{font-size:11px;flex:0 1 45%}
#device-history-modal .device-history-fields dd{font-size:11px;flex:1 1 55%;text-align:left;margin:0;line-height:1.65}
#device-history-modal .device-history-entry h4{font-size:12px;margin:7px 0 3px}
#device-history-modal .device-history-entry p{margin:4px 0;font-size:11px}
/* 1.97.9: shared-session additions inherit existing invoice typography and spacing. */
.invoice-share-rows{display:grid;gap:3px;margin:6px 0;font:inherit;font-size:.85em}
.invoice-share-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0;padding:4px 0;border-bottom:1px solid #8883}
.invoice-share-row>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:9em;min-width:0}
.invoice-share-row>small{font-size:1em;white-space:nowrap;flex:1}
.invoice-share-row>button{font:inherit;font-size:.9em;padding:3px 6px;min-height:26px;line-height:1.3;white-space:nowrap;width:auto}
.invoice-share-history{font-size:.82em;margin:6px 0}.invoice-share-history>div{padding:3px 0}
.shared-payment-dialog,.shared-roster-dialog{width:min(420px,calc(100vw - 24px));max-height:85dvh;overflow:auto;font:inherit;padding:14px;border-radius:12px}
.shared-payment-dialog form{display:grid;gap:8px}.shared-payment-dialog label{font:inherit;font-size:.9em}
.shared-payment-dialog select,.shared-payment-dialog input{font:inherit}.shared-payment-plan{font-size:.85em;line-height:1.7;padding:8px;border:1px solid #8884;border-radius:6px}
.shared-targets{display:grid;gap:5px;max-height:150px;overflow:auto;padding:6px}.shared-targets label{display:flex;gap:6px;align-items:center}.shared-targets input{width:auto}
.shared-roster-dialog>div{font-size:.9em;padding:6px 0}.shared-roster-dialog{max-height:60dvh}.shared-roster-dialog header{margin-bottom:8px}
.session-customer-compact{display:block;min-width:0;overflow:hidden;max-width:100%}.session-customer-compact>button{display:block;font:inherit;color:inherit;background:transparent;border:0;padding:0;min-height:0;max-width:100%;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;line-height:inherit}
.device .service-customer{min-width:0;overflow:hidden}.device .active-summary{min-width:0}.device .timer{flex-shrink:0}.device .compact-actions{flex-shrink:0}
.session-join-pending{font-size:.9em;margin-bottom:8px}.session-join-pending button{padding:4px 8px;font:inherit}
.join-game-list{display:grid;gap:10px;margin-top:12px}.join-game-list section{margin:0}.join-game-list form{display:grid;gap:8px}.join-game-list label{font:inherit}.join-game-list p{margin:8px 0}
@media(max-width:480px){.invoice-share-row>b{max-width:7em}.invoice-share-row>small{font-size:.92em}.invoice-share-row>button{font-size:.85em}}

.shared-payment-dialog,.shared-roster-dialog{box-sizing:border-box;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:13px}.shared-payment-dialog::backdrop,.shared-roster-dialog::backdrop{background:#0009}.shared-payment-dialog header button,.shared-roster-dialog header button{width:28px;height:28px;padding:0;font-size:20px}.compact-cards .device .compact-actions{margin-top:auto;flex-shrink:0}
/* 1.97.9: reuse the existing invoice, wallet and history visual language. */
.session-customer-compact>[data-session-roster]{display:block;width:auto;min-width:0;max-width:100%;margin:0;padding:0;border:0!important;background:none!important;box-shadow:none!important;outline-offset:2px;color:inherit!important;font:inherit!important;line-height:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.shared-roster-dialog{width:min(365px,calc(100vw - 20px));max-height:82dvh;padding:10px;border-radius:14px;overflow:hidden;font-family:inherit}
.shared-roster-dialog[open]{display:flex;flex-direction:column}.shared-roster-dialog>.modal-head{flex:0 0 auto;margin:0 0 6px;padding:0;gap:6px;min-height:32px}.shared-roster-dialog>.modal-head h2{font-size:15px;margin:0;line-height:1.5}.shared-roster-dialog>.modal-head button{width:32px;height:32px;padding:0;flex:0 0 32px;font-size:20px}
.shared-roster-content{min-height:0;overflow-y:auto;overflow-x:hidden;font-size:11px;line-height:1.65}.shared-roster-content>.row-between{padding:5px 0;gap:8px;border-bottom:1px solid var(--border)}.shared-roster-content small{font:inherit;white-space:nowrap}
.invoice-member-shares{font:inherit;margin:5px 0}.invoice-member-shares h3{font:inherit;font-weight:700;margin:5px 0}.invoice-member-shares>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font:inherit;padding:3px 0}.invoice-member-shares>div span{min-width:0;overflow-wrap:anywhere}.invoice-member-shares>div b{font:inherit;font-weight:700;white-space:nowrap}
.invoice-member-wallets{display:grid;gap:6px;margin:6px 0;font:inherit}.member-wallet-row{min-width:0;font:inherit}.member-wallet-name{display:block;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font:inherit;font-weight:700;margin-bottom:3px}
.member-wallet-row .wallet-pay-choices{margin:0;gap:5px}.member-wallet-row .wallet-pay-button{font-family:inherit}.member-wallet-amount{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:3px;font-size:inherit}.member-wallet-amount>span,.member-wallet-amount>small{font:inherit}.member-wallet-amount>input{width:90px!important;min-width:0!important;padding:3px 5px!important;height:27px;font:inherit;direction:ltr;text-align:center}.member-wallet-amount>button{width:25px;height:25px;min-height:0;padding:0;font:inherit}.member-wallet-amount>small{margin-inline-start:auto;white-space:nowrap}.member-other-pay{font:inherit;font-size:inherit;padding:3px 7px;margin:5px 0;min-height:27px}
.invoice-shared-payments .invoice-more{font:inherit;margin:5px 0}.invoice-share-history{font:inherit}.join-request-error{font:inherit;color:#f87171;margin:6px 0 0}.session-join-pending[hidden]{display:none!important}
/* 1.97.9: one compact finish/real-wallet/promo-wallet row per participant. */
.invoice-customer-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:4px;align-items:stretch;font:inherit}
.invoice-customer-actions>button{min-width:0;width:100%;min-height:34px;padding:5px 3px;font-family:inherit;font-size:inherit;line-height:1.4;margin:0;overflow:hidden;text-overflow:ellipsis}
.invoice-customer-actions>button.primary{white-space:nowrap}.invoice-customer-actions>.wallet-pay-button small{display:block;font:inherit;font-size:.9em;margin-top:2px}
.member-payment-amount{margin:3px 0;font:inherit}.member-payment-amount>summary{font:inherit;cursor:pointer;line-height:1.6;padding:0;color:var(--muted)}
.invoice-decision [hidden]{display:none!important}

/* V1.97.11: فاکتور چندمشتری — دکمه‌های اتمام/کیف پول هم‌اندازه فاکتور تک‌مشتری؛ فقط نام کوچک، متن داخل کادر */
.invoice-member-wallets{gap:4px;margin:4px 0}
.invoice-member-wallets .invoice-customer-actions{gap:4px}
.invoice-member-wallets .invoice-customer-actions>button{height:36px!important;min-height:36px!important;max-height:36px;padding:2px 3px!important;font-size:10px!important;line-height:1.25!important;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.invoice-member-wallets .invoice-customer-actions>button>span,.invoice-member-wallets .invoice-customer-actions>button>small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0!important}
.invoice-member-wallets .invoice-customer-actions>button>small{font-size:9px!important;opacity:.85}
.invoice-member-wallets .member-payment-amount{margin:1px 0 3px}
.invoice-member-wallets .member-payment-amount>summary{font-size:10px;line-height:1.5}
.invoice-member-wallets .member-wallet-amount{font-size:11px}

/* V1.97.13: وضعیت پرداخت درجا در پیش‌نمایش فاکتور */
#invoice-preview-body [data-inplace-status]{font-size:12px;line-height:1.7;padding:6px 8px;margin:0 0 6px;border-radius:8px}
#invoice-preview-body [data-inplace-status] button{font-size:11px;padding:3px 8px;min-height:0;margin-inline-start:6px}

/* V1.98.6: «درخواست شروع بازی» — عنوان بزرگ‌تر، توضیح کوچک‌تر */
.app-home-tile-session .app-home-tile-title{font-size:22px;font-weight:800}
.app-home-tile-session .app-home-tile-sub{font-size:11px}

/* V1.98.6: دکمه کوچک فعال/غیرفعال کنار نام کنسول در داشبورد */
.device-title h2{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.device-active-toggle{font-size:10px!important;line-height:1.2!important;padding:2px 7px!important;min-height:0!important;height:auto!important;border-radius:999px!important;font-weight:600;width:auto!important;margin:0!important;cursor:pointer;opacity:1!important;filter:none!important}
.device-active-toggle.is-on{background:transparent!important;border:1px solid #f85149!important;color:#ff7b72!important}
.device-active-toggle.is-off{background:#238636!important;border:1px solid #2ea043!important;color:#fff!important}
.device.disabled .device-active-toggle{pointer-events:auto}
.device-inactive-hint{display:block;margin-top:6px;font-size:11px;color:var(--muted);text-align:center}
/* کارت غیرفعال کم‌رنگ می‌ماند، ولی دکمه «فعال کردن» واضح و قابل کلیک است */
#dashboard-root .device.disabled{filter:none!important;opacity:1!important}
#dashboard-root .device.disabled>*{filter:saturate(.35);opacity:.55}
#dashboard-root .device.disabled>.device-title{filter:none;opacity:1}
#dashboard-root .device.disabled>.device-title h2{color:var(--muted)}
#dashboard-root .device.disabled>.device-title .title-indicators{filter:saturate(.35);opacity:.55}
#dashboard-root .device.disabled .device-inactive-hint{opacity:1}
#dashboard-root .device.disabled>.card-center{opacity:.85;filter:none}
/* V1.98.7: تنظیمات «ظاهر کادر تأیید مدیر» */
.approval-ui-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px 10px!important;align-items:end!important;padding:10px 0;border-bottom:1px solid var(--line,#30363d)}
.approval-ui-row>b{grid-column:1/-1;font-size:14px}
.approval-ui-row>label{display:flex!important;flex-direction:column;gap:4px;min-width:0;font-size:12px}
.approval-ui-row input[type=text]{width:100%!important;min-width:0!important;box-sizing:border-box}
.approval-ui-row input[type=color]{width:100%!important;height:34px!important;padding:2px!important;box-sizing:border-box;cursor:pointer}
.approval-ui-row .approval-ui-preview{grid-column:1/-1;justify-self:start;max-width:380px!important;display:grid;gap:6px;padding:12px!important}
.approval-ui-row .approval-ui-preview .start-request-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.approval-ui-row .approval-ui-preview button{white-space:nowrap;padding:7px 6px!important;font-size:13px!important}
@media(max-width:700px){.approval-ui-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* V1.98.8: تبریک شارژ کیف پول */
.wallet-celebration-banner{border-color:#3fb950!important;background:linear-gradient(135deg,rgba(63,185,80,.18),rgba(242,204,96,.16))!important}
.wallet-celebration-banner p{margin:0;line-height:1.8}
.wallet-celebration-banner b{color:#f2cc60}
.wallet-celebration-banner small{display:block;font-size:12px;opacity:.85}
.wallet-celebration-banner p{font-size:16px}
/* V1.99.0: لیست مشتری‌ها — ارتفاع بیشتر برای ردیف‌ها؛ کنترل‌های بالای لیست فشرده‌تر (بدون تغییر عملکرد) */
.customer-list-panel{bottom:12px!important;padding:10px 11px!important}
.customer-list-panel .customer-list-head{margin-bottom:6px!important;gap:6px}
.customer-list-panel .customer-list-head h1{font-size:18px}
.customer-list-panel .customer-list-head small{font-size:11px}
.customer-list-panel .customer-search-live,.customer-list-panel .customer-search input{height:34px!important;min-height:0!important;padding:5px 10px!important;font-size:13px!important;margin-bottom:6px!important}
.customer-list-panel .customer-search{margin-bottom:6px!important;gap:6px}.customer-list-panel .customer-search input{margin-bottom:0!important}
.customer-list-panel .customer-search button{height:34px!important;min-height:0!important;padding:0 12px!important;font-size:13px!important}
.customer-list-panel .customer-status-filters{flex-wrap:wrap!important;gap:3px 10px!important;line-height:1.5;margin-bottom:6px!important;padding:5px 8px!important;font-size:11.5px;scrollbar-width:thin}
.customer-list-panel .customer-status-filters label{white-space:nowrap;flex:0 0 auto;display:flex;align-items:center;gap:4px}
.customer-list-panel .customer-bulk-compact{margin-bottom:6px!important}
.customer-list-panel .customer-bulk-compact select,.customer-list-panel .customer-bulk-compact button,.customer-list-panel .customer-bulk-compact input{height:32px!important;min-height:0!important;padding-top:0!important;padding-bottom:0!important;font-size:13px!important}
.customer-list-panel .customer-compact-list{gap:5px!important}
.customer-list-panel .customer-pick{padding:6px 5px!important}
.customer-list-panel .customer-pages{flex:0 0 auto;margin-top:6px}
.customer-list-panel .customer-pages button{height:32px;min-height:0;padding:0 12px}
@media(max-width:900px){.customer-list-panel{bottom:8px!important}}
/* V1.99.0: موجودی کیف پول در لیست مشتریان کلوب */
.club-wallet-balance{font-size:12px;color:var(--muted);white-space:nowrap}
.club-wallet-balance.has-balance{color:#7ee787;font-weight:700}
.club-wallet-filter-label{font-weight:700;color:#f2cc60}
/* V1.99.0: گزارش صندوق — ریز نقدی و کیف پول تشویقی */
.cash-detail-report{margin-top:16px}
.cash-detail-report .page-head{flex-wrap:wrap;gap:10px}
.cash-report-filter{flex-wrap:wrap;gap:6px}
.cash-report-filter input[type=text]{width:120px}
.cash-report-filter input[type=search]{min-width:170px}
.cash-report-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 12px}
.cash-report-totals>div{border:1px solid var(--line,#2b3445);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.cash-report-totals>div.promo{border-color:#a371f7}
.cash-report-totals small,.cash-report-totals em{color:var(--muted);font-style:normal;font-size:12px}
.cash-report-totals strong{font-size:18px}
.cash-report-table-wrap{overflow-x:auto}
.cash-method-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:rgba(126,231,135,.14);color:#7ee787}
.cash-method-badge.promo{background:rgba(163,113,247,.16);color:#d2a8ff}
.cash-promo-line b{color:#d2a8ff}
@media(max-width:760px){.cash-report-totals{grid-template-columns:1fr}.cash-report-filter input[type=text],.cash-report-filter input[type=search]{width:100%;min-width:0;flex:1 1 140px}
.cash-report-table thead{display:none}.cash-report-table,.cash-report-table tbody,.cash-report-table tr,.cash-report-table td{display:block;width:100%}.cash-report-table tr{border:1px solid var(--line,#2b3445);border-radius:10px;margin-bottom:8px;padding:6px 8px}.cash-report-table td{border:0!important;padding:3px 0!important;display:flex;gap:8px;justify-content:space-between;text-align:left}.cash-report-table td::before{content:attr(data-label);color:var(--muted);font-size:12px;flex:0 0 auto}}
@media(max-width:760px){.cash-report-table td>.cv{text-align:left;min-width:0;overflow-wrap:anywhere}}
/* V1.99.0: پاپ‌آپ «پیام جدید مشتری به مدیر» — شبیه اعلان ویندوز (گوشه پایین سمت راست) */
.admin-msg-toasts{position:fixed;right:18px;bottom:18px;z-index:10002;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(360px,calc(100vw - 36px));pointer-events:none}
.admin-msg-toasts>*{pointer-events:auto}
.admin-msg-toast{position:relative;overflow:hidden;background:var(--card,#161b22);color:var(--text,#e6edf3);border:1px solid rgba(88,166,255,.45);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.45);padding:11px 12px 13px;cursor:pointer;opacity:0;transform:translateY(14px);transition:opacity .2s ease,transform .2s ease}
.admin-msg-toast.shown{opacity:1;transform:none}
.admin-msg-toast.closing{opacity:0;transform:translateX(30px)}
.admin-msg-head{display:flex;align-items:flex-start;gap:9px}
.admin-msg-icon{flex:0 0 34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(88,166,255,.16);font-size:17px}
.admin-msg-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.admin-msg-title b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-msg-title small{color:var(--muted);font-size:12px}
.admin-msg-close{flex:0 0 auto;background:transparent!important;border:0!important;color:var(--muted)!important;font-size:20px;line-height:1;padding:0 4px!important;min-height:0!important;cursor:pointer}
.admin-msg-close:hover{color:var(--text,#fff)!important}
.admin-msg-text{margin:8px 0 9px;font-size:13.5px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.admin-msg-actions{display:flex;justify-content:flex-start;gap:6px}
.admin-msg-actions button{min-height:32px;padding:5px 12px;font-size:13px}
.admin-msg-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:#58a6ff;transform-origin:right center;transform:scaleX(1)}
.admin-msg-toast.paused{border-color:#f2cc60}
.admin-msg-toast.paused .admin-msg-bar{background:#f2cc60}
.admin-msg-more{align-self:flex-end;background:rgba(22,27,34,.92);border:1px solid rgba(88,166,255,.35);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--muted)}
@media(max-width:640px){.admin-msg-toasts{right:8px;left:8px;bottom:8px;width:auto}}
@media(max-width:640px){.admin-msg-toasts{top:8px;bottom:auto}}
@media(max-width:640px){body:has(#queue-request-popup):not(:has(#join-request-popup)):not(:has(.start-request-toast:not(#queue-request-popup))) .admin-msg-toasts{top:auto;bottom:8px}}
