:root{color-scheme:dark;font-family:'Segoe UI Variable','Segoe UI',sans-serif;background:#101114;color:#f5f5f7;font-size:16px;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh}aside{width:230px;position:fixed;inset:0 auto 0 0;background:#18191e;border-right:1px solid #303138;padding:32px 16px;display:flex;flex-direction:column}.brand{font-size:28px;font-weight:650;padding:0 16px 32px;letter-spacing:-.7px}.brand span{display:block;font-size:13px;color:#b7bac4;font-weight:400;letter-spacing:0;margin-top:7px}nav{display:grid;gap:8px}.local{margin-top:auto;padding:20px 12px;font-size:13px;line-height:1.8}.local span,.muted{color:#b7bac4}main{margin-left:230px;padding:32px 36px;width:calc(100% - 230px)}header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}h1{font-size:36px;letter-spacing:-1px;margin:8px 0}h2{font-size:25px;margin:0 0 22px}h3{font-size:22px;margin:0 0 12px}button,input,select{font:inherit;min-height:58px;border-radius:16px;border:1px solid #40424b;padding:14px 20px}button{background:#282a32;color:#f5f5f7;cursor:pointer;touch-action:manipulation;font-weight:600}button:active{transform:scale(.98);background:#3b3e49}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82b5ff;outline-offset:3px}.primary,nav .selected{background:#236dd9;border-color:#347fe9}.danger{color:#ffb4b9;background:#49252d;border-color:#70333f}input,select{background:#131419;color:#fff;width:100%}label{display:block;color:#c2c5cf;margin:18px 0 9px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}.card,.panel{border:1px solid #34363e;background:#1c1d22;border-radius:24px;padding:26px}.card{display:flex;flex-direction:column;gap:12px}.card.occupied{border-color:#517ebd}.status{color:#a6d5b7;font-size:14px}.occupied .status{color:#a7caff}.time{font-size:38px;font-weight:650;letter-spacing:-1px}.amount{font-size:30px;font-weight:650}.card button{margin-top:auto;width:100%}.row{display:flex;align-items:center;justify-content:space-between;gap:16px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.actions button{flex:1;min-width:120px}.layout{display:grid;grid-template-columns:minmax(350px,1.1fr) minmax(300px,1fr);gap:24px}.bill-line{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid #353740}.bill-line button{min-width:58px;padding:10px}.total{padding:28px 0;font-size:24px;display:flex;justify-content:space-between}.products{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.products button{text-align:left;min-height:105px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}.products small{color:#bec2ce;font-weight:400}.empty{padding:24px 0;color:#b7bac4;line-height:1.7}table{border-collapse:collapse;width:100%;margin-top:18px}td,th{text-align:left;padding:18px 12px;border-bottom:1px solid #353740}th{color:#b7bac4;font-weight:500}td button{min-height:52px;padding:10px 16px}dialog{background:#1c1d22;color:#fff;border:1px solid #454852;border-radius:28px;width:min(560px,95vw);padding:32px;max-height:94vh}dialog::backdrop{background:#000a}.dialog-actions{display:flex;gap:16px;margin-top:30px}.dialog-actions button{flex:1}#notice:not(:empty){padding:16px 20px;border:1px solid #76613a;background:#342c1e;border-radius:16px;margin-bottom:24px;color:#ffe2aa}#dialog-error{color:#ffb4b9;margin-top:16px}.hint{font-size:14px;color:#b7bac4;line-height:1.6}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.scroll{overflow:auto}#receipt{display:none}@media(max-width:1050px){aside{width:180px;padding:24px 10px}.brand{font-size:24px}main{margin-left:180px;width:calc(100% - 180px);padding:24px}.layout{grid-template-columns:1fr}td,th{padding:14px 8px}}@media print{body>*{display:none!important}body #receipt{display:block!important;color:#000;background:#fff;width:72mm;font:12px monospace}#receipt h2{font-size:18px}#receipt .receipt-line{display:flex;justify-content:space-between;gap:8px;margin:8px 0}@page{margin:4mm}}
@media(max-width:760px){aside{width:100%;height:144px;bottom:auto;padding:14px 12px;border-right:0;border-bottom:1px solid #303138;z-index:2}.brand{font-size:22px;padding:0 4px 12px}.brand span{display:none}nav{display:flex;overflow-x:auto;gap:8px;padding-bottom:6px}nav button{flex:0 0 auto;min-height:56px}.local{display:none}main{margin:0;padding:164px 16px 24px;width:100%}header{gap:12px;flex-wrap:wrap;margin-bottom:16px}h1{font-size:30px}.cards{grid-template-columns:minmax(0,1fr)}.card,.panel{padding:22px;min-width:0}.layout{grid-template-columns:minmax(0,1fr)}.section-head{flex-wrap:wrap}dialog{padding:24px}.time{font-size:32px}.bill-line{gap:10px}.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
.billing-mode{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}.billing-mode button{min-height:72px;border-radius:20px;font-size:19px}.hours-counter{display:grid;grid-template-columns:80px 1fr 80px;gap:14px;align-items:center}.hours-counter button{min-height:80px;font-size:32px;border-radius:22px}.hours-counter input{height:80px;text-align:center;font-size:34px;font-weight:650;border-radius:22px;appearance:textfield}.hours-counter input::-webkit-inner-spin-button{appearance:none}
#auth-screen{display:none}.auth-needed>aside,.auth-needed>main{display:none}.auth-needed #auth-screen{display:flex;width:100%;min-height:100vh;align-items:center;justify-content:center;padding:24px}.login-panel{width:min(480px,100%);padding:36px;background:#1c1d22;border:1px solid #34363e;border-radius:30px}.login-panel>button{width:100%;margin-top:12px;min-height:64px}.login-panel h1{font-size:38px;margin-bottom:24px}.login-panel h2{font-size:23px}.header-actions{display:flex;gap:12px;flex-wrap:wrap}#login-error{color:#ffb4b9}
.reconcile{padding:22px 0;border-top:1px solid #383a44}.reconcile .row{align-items:flex-start;flex-wrap:wrap}.reconcile h3{font-size:22px}.reconcile strong{font-size:18px}.reconcile label{margin-top:12px}
.booking-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.booking-toolbar strong{font-size:22px;padding:0 8px}.schedule{overflow:auto;max-height:70vh;border:1px solid #3a3d47;border-radius:22px;background:#191b21}.schedule-inner{width:2740px}.schedule-header,.schedule-row{display:flex}.station-name{width:180px;flex:0 0 180px;padding:24px 18px;position:sticky;left:0;z-index:1;background:#24262e;border-right:1px solid #4b4e59}.station-name small{display:block;color:#b7bac4;font-size:13px;margin-top:10px}.hour-rail{display:flex;width:2560px;background:#24262e}.hour{position:relative;flex:0 0 80px;padding:18px 6px 26px;border-left:1px solid #555864;font-size:14px}.hour small{position:absolute;bottom:7px;left:43px;color:#b7bac4;font-size:11px}.table-rail{position:relative;width:2560px;min-height:100px;background:repeating-linear-gradient(90deg,transparent 0,transparent 39px,#30333e 39px,#30333e 40px,transparent 40px,transparent 79px,#50535e 79px,#50535e 80px);border-bottom:1px solid #42454f;cursor:pointer}.schedule-row:nth-child(odd) .table-rail{background-color:#20222a}.booking-bar{position:absolute;top:20px;height:60px;min-height:60px;border-radius:14px;background:#5842b0;border:1px solid #9a87e2;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;padding:12px;z-index:0}
.history-actions{display:flex;gap:10px;flex-wrap:wrap}.history-actions button{min-width:110px}#mixed-payment{margin-top:20px;padding-top:6px;border-top:1px solid #3c3e47}
.check-row{display:flex;align-items:center;gap:16px;min-height:72px;background:#282a32;border-radius:16px;padding:14px}.check-row input{width:28px;height:28px;min-height:28px;accent-color:#2683ff;flex:0 0 28px}.payment-summary{padding:16px 20px;border-radius:18px;background:#242730;margin-bottom:20px}.payment-summary p{display:flex;justify-content:space-between;gap:16px}
.touch-choices{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.touch-choices button{min-width:68px;flex:1 0 68px;min-height:60px;border-radius:17px}.touch-choices[aria-label="Час прихода"] button{flex:0 0 calc((100% - 50px)/6);min-width:0;padding:12px}.touch-choices[aria-label="Минуты"] button{flex:1}.history-actions{min-width:370px}
.report-toolbar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;margin-bottom:20px}.report-toolbar .touch-choices{margin:0}.report-dates{display:flex;align-items:end;gap:10px}.report-dates label{margin:0;color:#b7bac4;font-size:13px}.report-dates input{display:block;min-height:52px;padding:10px 14px;margin-top:6px}.report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:30px}.report-kpis article{display:flex;flex-direction:column;gap:9px;padding:18px;background:#242730;border:1px solid #383b46;border-radius:18px}.report-kpis article span{color:#b7bac4;font-size:14px}.report-kpis article strong{font-size:22px}.report-toolbar+.panel h2{font-size:23px;margin:0 0 14px}.error{color:#ffb4b9;padding:10px 0}@media(max-width:1050px){.report-toolbar{grid-template-columns:1fr}.report-dates{flex-wrap:wrap}.report-dates label{flex:1;min-width:130px}}
.reservation-time-stepper{display:grid;grid-template-columns:84px minmax(130px,1fr) 84px;gap:12px;align-items:center;margin:8px 0 10px}.reservation-time-stepper button{min-height:72px;font-size:30px;font-weight:700;border-radius:20px}.reservation-time-stepper output{display:grid;place-items:center;min-height:72px;border:1px solid #40424b;border-radius:20px;background:#131419;font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}.time-now{min-height:52px;padding:10px 16px;margin:0 0 12px;color:#b8d4ff;border-color:#3b5273;background:#1b2636}.reservation-time-stepper button:active,.time-now:active{transform:scale(.98)}
.reservation-time-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 14px}.reservation-picker>span{display:block;margin:0 0 8px;color:#b7bac4;font-size:14px}.reservation-time-pickers .reservation-time-stepper{grid-template-columns:minmax(56px,72px) minmax(52px,1fr) minmax(56px,72px);gap:8px;margin:0}.reservation-time-pickers .reservation-time-stepper button{min-height:64px;padding:10px;font-size:28px;border-radius:17px}.reservation-time-pickers .reservation-time-stepper output{min-height:64px;font-size:26px;border-radius:17px}.duration-pickers{margin-bottom:18px}
.settings-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px;padding-bottom:16px;border-bottom:1px solid #34363e}.settings-tabs button{min-width:140px}.reservation-table-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:10px 0 14px}.reservation-table-grid button{min-height:62px}.booking-warning{padding:14px 16px;border:1px solid #8b6331;border-radius:14px;background:#3b2d1b;color:#ffe2aa;line-height:1.5}.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:18px}.integration-grid article{padding:18px;border:1px solid #34363e;background:#24262e;border-radius:18px}.integration-grid strong{font-size:17px}.report-section{padding:22px 0;border-top:1px solid #34363e}.report-section h2{margin:0 0 14px;font-size:22px}.report-section .row{align-items:center;flex-wrap:wrap}.report-section .row h2{margin:0}.report-section table{margin-top:12px}.report-kpis article strong{overflow-wrap:anywhere}.report-kpis{margin-bottom:20px}
@media(max-width:760px){.settings-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-tabs button{min-width:0}.reservation-table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-section .row .header-actions{width:100%}.report-section .row .header-actions button{flex:1}}

.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 6px}.permission-grid .check-row{min-width:0;min-height:68px;border:1px solid #3a3c46;color:#f5f5f7;line-height:1.35}.permission-grid .check-row span{font-size:15px}@media(max-width:760px){.permission-grid{grid-template-columns:1fr}}

/* Compact touch booking dialog: keep validation and actions inside the modal. */
dialog.reservation-dialog{width:min(900px,calc(100vw - 20px));max-height:calc(100dvh - 20px);padding:20px;overflow:hidden}
.reservation-dialog #form{display:flex;flex-direction:column;min-height:0}
.reservation-dialog h2{font-size:24px;margin:0 0 12px}
.reservation-dialog #fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.reservation-column{min-width:0}
.reservation-dialog label{margin:10px 0 6px;font-size:14px}
.reservation-dialog input,.reservation-dialog button{min-height:46px;padding:10px 12px;border-radius:12px}
.reservation-dialog .reservation-table-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:6px 0 10px}
.reservation-dialog .reservation-table-grid button{font-size:14px;min-height:54px}
.reservation-dialog .reservation-time-pickers{gap:10px;margin:6px 0 10px}
.reservation-dialog .reservation-time-stepper{grid-template-columns:44px minmax(32px,1fr) 44px;gap:4px}
.reservation-dialog .reservation-time-stepper button,.reservation-dialog .reservation-time-stepper output{min-height:48px;font-size:23px;padding:4px;border-radius:12px}
.reservation-dialog .reservation-picker>span{font-size:13px;margin-bottom:4px}
.reservation-dialog .dialog-actions{margin-top:12px;gap:10px}
.reservation-dialog #dialog-error:empty{display:none}
.reservation-dialog #dialog-error{margin-top:10px;padding:10px;background:#49252d;border-radius:12px;font-size:14px;line-height:1.35}
.reservation-dialog .booking-warning{padding:8px;font-size:13px;margin:8px 0}
@media(max-height:650px){dialog.reservation-dialog{padding:12px}.reservation-dialog label{margin-top:6px}.reservation-dialog input,.reservation-dialog button{min-height:40px}.reservation-dialog h2{font-size:20px;margin-bottom:6px}.reservation-dialog .reservation-time-stepper button,.reservation-dialog .reservation-time-stepper output{min-height:42px}.reservation-dialog .dialog-actions{margin-top:8px}}

/* Reports: compact sales, stable cash controls, readable period totals. */
#report-body{min-width:0}
.report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}
.report-kpis article{min-width:0;padding:14px;border:1px solid #383b44;border-radius:14px;background:#23252c}
.report-kpis article span{display:block;font-size:13px;color:#b7bac4;margin-bottom:7px}
.report-kpis article strong{display:block;font-size:21px;line-height:1.3}
.report-products table{font-size:14px;margin-top:6px}
.report-products td,.report-products th{padding:9px 10px;line-height:1.35}
.report-products td:first-child{width:45%}
.report-products td:nth-child(n+3),.report-products th:nth-child(n+3){text-align:right;white-space:nowrap}
.report-cash-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.report-cash-head h2{margin:0}
.report-cash-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-cash-actions button{min-height:46px;padding:10px 18px}
.report-cash .report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-section .scroll{max-width:100%}

.account-product-groups{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.account-product-groups button{min-height:50px;padding:10px 14px}.stock-filters{display:grid;gap:10px;margin-bottom:18px}

/* Reports use one focused section instead of a continuous wall of tables. */
#report-body{padding:20px}
#report-body .report-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
#report-body .report-summary article{padding:14px 16px;background:transparent;border:0;border-left:2px solid #3a6cad;border-radius:0}
#report-body .report-summary article strong{font-size:24px}
.report-section-tabs{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid #383b44;margin-bottom:18px}
.report-section-tabs button{min-height:48px;padding:10px 18px;border-radius:12px}
#report-body .report-section{border:0;padding:0}
#report-body .report-section[hidden]{display:none!important}
.report-overview h2{font-size:22px;margin:0 0 18px}
.report-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px 0}
.report-overview-grid article span{display:block;color:#b7bac4;font-size:14px;margin-bottom:10px}
.report-overview-grid article strong{font-size:24px}
#report-body table{font-size:14px;margin-top:10px}
#report-body td,#report-body th{padding:10px 12px;vertical-align:top}
#report-body th{background:#25272e;white-space:nowrap}
#report-body .report-section h2{font-size:21px}
@media(max-width:800px){#report-body{padding:14px}#report-body .report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.report-overview-grid{grid-template-columns:1fr;gap:16px}.report-section-tabs{gap:6px}.report-section-tabs button{flex:1;padding:10px 12px}}

.report-money-summary{display:grid;grid-template-columns:minmax(230px,1fr) minmax(260px,1.3fr);gap:24px;margin-bottom:22px;padding:8px 0 22px;border-bottom:1px solid #383b44}
.report-revenue-main{display:flex;flex-direction:column;justify-content:center;gap:9px;padding:18px 20px;background:#182c48;border:1px solid #375c8e;border-radius:18px}
.report-revenue-main>span{font-size:15px;color:#c9ddfa}.report-revenue-main>strong{font-size:clamp(30px,4vw,46px);letter-spacing:-1px;line-height:1.15}.report-revenue-main>small{color:#b7c9e0;font-size:14px}
.report-money-details{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;align-content:center}.report-money-details>div{display:flex;flex-direction:column;gap:6px}.report-money-details span{font-size:14px;color:#b7bac4}.report-money-details strong{font-size:23px}.report-money-details .payment-split{border-top:1px solid #383b44;padding-top:12px}.report-money-details .payment-split strong{font-size:19px}
@media(max-width:800px){.report-money-summary{grid-template-columns:1fr;gap:16px}.report-money-details{gap:14px}.report-revenue-main{padding:16px}}

/* Stable alignment in the table account and its touch product picker. */
.layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.layout>.panel{min-width:0}
.layout .row h3{margin:0;min-width:0;overflow-wrap:anywhere}
.layout .row .status{flex-shrink:0;text-align:right}
.layout .bill-line{grid-template-columns:minmax(0,1fr) minmax(72px,auto) 90px;gap:12px;min-height:72px}
.layout .bill-line>span:first-child{min-width:0;overflow-wrap:anywhere;line-height:1.4}
.layout .bill-line>strong{white-space:nowrap;text-align:right}
.layout .bill-line>button{width:90px;min-height:48px;padding:10px 8px}
.layout .products{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;align-items:stretch}
.layout .products>button{display:grid;grid-template-rows:minmax(44px,auto) 28px 22px;align-content:start;align-items:start;gap:8px;min-height:150px;padding:16px;text-align:left;min-width:0}
.layout .products>button>span{font-size:16px;line-height:1.35;overflow-wrap:anywhere;align-self:start}
.layout .products>button>strong{font-size:20px;line-height:28px;white-space:nowrap;align-self:end}
.layout .products>button>small{font-size:13px;line-height:22px;white-space:nowrap;align-self:end}
.layout .account-product-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:stretch}
.layout .account-product-groups button{min-width:0;min-height:60px;padding:10px 12px;line-height:1.35;overflow-wrap:anywhere}
.layout .payment-summary p{align-items:baseline;line-height:1.4}
.layout .payment-summary strong,.layout .total strong{white-space:nowrap}
#content>.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}
#content>.actions button{min-width:0;min-height:60px;line-height:1.3;padding:12px}
@media(max-width:1050px){.layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.layout .bill-line{grid-template-columns:minmax(0,1fr) auto;gap:8px}.layout .bill-line>button{grid-column:2}.layout .products{grid-template-columns:repeat(2,minmax(0,1fr))}.layout .products>button{padding:12px}}

textarea{font:inherit;width:100%;background:#131419;color:#fff;border:1px solid #40424b;border-radius:14px;padding:14px;resize:vertical}.receipt-qr-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;border-bottom:1px solid #353740}.receipt-qr-row input{width:auto;max-width:100%}.receipt-custom{white-space:pre-wrap;overflow-wrap:anywhere}.receipt-qr{display:block;width:35mm;height:35mm;object-fit:contain;margin:4mm auto}

#phone-incoming{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px;padding:12px 16px;background:#1b2839;border:1px solid #385777;border-radius:16px}#phone-incoming button{min-height:48px}

.relay-settings{margin-top:18px}.relay-devices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:18px}.relay-devices article{border:1px solid #3b414e;border-radius:16px;padding:18px;background:#25272f}.relay-settings .section-head{flex-wrap:wrap}.relay-devices .actions{margin-bottom:0}.relay-settings input[type=checkbox]{min-height:28px}

.pin-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.pin-keypad button{min-height:52px;padding:10px;font-size:23px;border-radius:14px}.pin-keypad button[data-pin-key=clear]{font-size:14px}.login-panel{max-height:calc(100dvh - 24px);overflow:auto;padding:24px!important}.login-panel h1{font-size:30px}.login-panel h2{font-size:22px;margin-bottom:12px}
.vk-settings{max-width:760px}.vk-settings input:not([type=checkbox]){width:100%;min-height:52px;margin:6px 0 16px}.vk-settings .check-row{margin:10px 0 16px}.vk-request{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0;border-top:1px solid var(--line,#393b43)}.vk-request p{margin:8px 0 0;color:var(--muted,#b7bac4)}.vk-request-state{display:inline-block;margin-left:12px;color:var(--muted,#b7bac4);font-size:.9em}.vk-request .actions{flex-wrap:wrap}@media(max-width:760px){.vk-request{align-items:flex-start;flex-direction:column}.vk-request .actions{width:100%}.vk-request .actions button{flex:1}}

/* Touch terminal: neutral black palette and compact 1024x768 layout. */
body{background:#101012;color:#f5f5f7}aside{background:#171719}button{background:#29292c;border-color:#454549}.primary,nav .selected{background:#e8e8ed;border-color:#e8e8ed;color:#111114}input,select{background:#141416}.card,.panel,dialog{background:#1d1d20}.card.occupied{border-color:#88888e}.occupied .status{color:#dedee5}aside .local{display:grid;gap:8px;padding:12px 0;line-height:1.3}aside .local button{min-height:44px;padding:10px;font-size:13px}.employee-choices{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.employee-choices button{flex:1;min-width:120px}#touch-number-pad{position:fixed;z-index:10000;right:16px;bottom:16px;width:250px;padding:14px;background:#242427;border:1px solid #666;border-radius:20px;box-shadow:0 12px 40px #0009}#touch-number-pad[hidden]{display:none}.number-pad-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.number-pad-keys button{min-height:48px;padding:8px;font-size:21px}.number-pad-display{padding:8px;min-height:34px;text-align:right}#touch-number-pad>button{width:100%;margin-top:8px;min-height:45px}@media(min-width:761px) and (max-width:1100px){aside{width:164px;padding:16px 8px}.brand{font-size:22px;padding:0 8px 18px}main{margin-left:164px;width:calc(100% - 164px);padding:18px}nav{gap:6px}nav button{min-height:48px;padding:10px;font-size:14px}header{margin-bottom:14px}h1{font-size:28px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card{padding:16px;gap:8px}.card h3{font-size:21px}.time{font-size:27px}.amount{font-size:25px}dialog{max-height:96vh;padding:20px}.section-head{gap:10px}}
.active-game-bar{position:absolute;top:5px;height:34px;padding:8px 10px;background:#326650;color:#fff;border-radius:8px;overflow:hidden;white-space:nowrap;pointer-events:none}
@media print{body #receipt{width:48mm!important;font:11px monospace!important}#receipt img{max-width:44mm}#receipt .receipt-line{overflow-wrap:anywhere}} .vk-message{padding:14px 0;border-bottom:1px solid #414146}.vk-message p{white-space:pre-wrap;overflow-wrap:anywhere}
[hidden]{display:none!important}#phone-incoming{background:#222225;border-color:#414146}
.time-now,.billing-mode button:not(.primary){background:#29292c!important;border-color:#454549!important;color:#eee!important}
.billiards-logo{width:38px;height:38px;display:block;margin-bottom:9px}.call-card{display:flex!important;align-items:center;gap:16px;padding:18px 20px!important;background:#202023!important;border:1px solid #4f6258!important;border-radius:20px;margin-bottom:18px}.call-symbol{display:grid;place-items:center;width:52px;height:52px;flex-shrink:0;background:#243c30;color:#b5e6c8;border-radius:17px;font-size:28px}.call-copy{flex:1;min-width:0}.call-caption{font-weight:600;font-size:15px;color:#c6e7d2}.call-caption span{font-weight:400;color:#b8b8c0}.call-number{display:block;font-size:27px;letter-spacing:.2px;margin:5px 0;color:#fff;font-variant-numeric:tabular-nums}.call-time{font-size:13px;color:#bdbdc6}.call-card button{min-height:62px;padding:12px 18px}.call-card button span{display:block;font-size:11px;font-weight:400;margin-top:5px}#hide-to-tray{min-width:44px;min-height:44px;padding:4px;font-size:28px;border-radius:12px;margin-left:auto}#phone-incoming[hidden]{display:none!important}@media(max-width:760px){.call-card{flex-wrap:wrap}.call-card button{width:100%}.call-number{font-size:23px}}
.audit-events{max-height:52vh;overflow:auto}.audit-event{padding:14px 0;border-bottom:1px solid #444}.audit-event p{color:#bdbdc5;font-size:13px}.audit-event pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.settings-tabs{flex-wrap:wrap}
@media(min-width:761px) and (max-width:1100px){.settings-tabs{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.settings-tabs button{min-width:0!important;min-height:50px;padding:8px 6px;font-size:13px}}
.surveillance-toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.surveillance-toolbar button{min-height:44px;padding:8px 12px;font-size:13px;flex:1}.surveillance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;height:calc(100dvh - 190px);min-height:350px}.surveillance-grid.single{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.surveillance-camera{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #3c3c43;border-radius:18px;background:#080809}.surveillance-camera header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;margin:0;background:#202023}.surveillance-camera header strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surveillance-camera header button{min-height:34px;min-width:80px;padding:6px 10px;font-size:12px;border-radius:10px}.camera-view{position:relative;min-height:0;flex:1;display:flex;justify-content:center;align-items:center;overflow:hidden}.camera-view img,.camera-view video,.camera-view iframe{width:100%;height:100%;object-fit:contain;border:0;background:#080809}.camera-placeholder{padding:16px;text-align:center;color:#b9b9c1}.camera-placeholder>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #4b4b53;border-radius:50%;font-size:22px;margin:0 auto 12px}.camera-placeholder strong{font-size:14px}.camera-placeholder p{font-size:12px;line-height:1.5;max-width:230px}.camera-error{padding:20px;color:#e6c7c7;font-size:14px}.camera-setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #3c3c43}.camera-setting-row small{display:block;color:#bdbdc5;margin-top:5px}.camera-setting-row button{min-height:44px;padding:8px 14px}@media(max-width:760px){.surveillance-grid{height:650px}.surveillance-grid.single{height:450px}.surveillance-toolbar button{flex-basis:28%}}@media(min-width:761px) and (max-width:1100px){nav{gap:5px}nav button{min-height:44px;padding:8px;font-size:13px}.brand{padding-bottom:14px}}
