:root{--navy:#102342;--navy2:#19355e;--ink:#17324d;--muted:#68809a;--blue:#215cdb;--teal:#06a994;--aqua:#e5faf6;--bg:#f4f7fb;--border:#dde6f2;--red:#c84155;--orange:#df9336;--white:#fff;--shadow:0 15px 35px rgba(16,35,66,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 'Segoe UI',Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}a:hover{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #74c9ff;outline-offset:3px}
.wrap{width:min(1200px,calc(100% - 40px));margin:auto}.topbar{background:#fff;border-bottom:1px solid var(--border)}.top-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0}.brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:850;letter-spacing:-.4px}.brand img{width:44px;height:44px}.brand em{font-style:normal;color:var(--teal)}.tag{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:800;color:#077767;background:#e1f8f2;border-radius:50px;padding:6px 12px}.nav{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;font-weight:700}.nav a{color:#55718f}.nav a[aria-current=page]{color:var(--blue)}
.hero{background:linear-gradient(122deg,#102342,#1a3e6b);border-radius:22px;color:#fff;padding:38px 43px;position:relative;overflow:hidden;box-shadow:var(--shadow);margin:24px 0}.hero:after{content:'';position:absolute;width:320px;height:320px;border:55px solid rgba(81,214,204,.07);border-radius:100%;right:-45px;top:-130px;pointer-events:none}.eyebrow{display:inline-flex;align-items:center;gap:9px;letter-spacing:1.5px;text-transform:uppercase;font-size:11px;font-weight:800;color:#8aedd7}.pulse{height:8px;width:8px;border-radius:100%;background:#55e6b8;box-shadow:0 0 0 5px #55e6b827}.hero h1{font-size:clamp(27px,3.9vw,48px);line-height:1.1;margin:15px 0 14px;font-weight:850;letter-spacing:-1.5px}.hero p{color:#d3e3f6;max-width:600px;font-size:15px}.flex{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.btn{border:0;border-radius:12px;background:var(--blue);color:#fff;font-weight:800;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 5px 15px #215cdb25;transition:.14s transform,.14s background;white-space:nowrap}.btn:hover{background:#1646b5;transform:translateY(-1px);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.light{background:#fff;color:var(--navy)}.btn.light:hover{background:#e9f1ff}.btn.ghost{background:#e8eef9;color:#24486f;box-shadow:none}.btn.danger{background:#f9e6e9;color:#a02639;box-shadow:none}.btn.green{background:#00a38d}.btn.outline{background:transparent;border:1px solid #cbd7e6;color:#294a72;box-shadow:none}.btn.xl{min-height:58px;font-size:16px}.btn.block{width:100%}
.section-head{margin:26px 0 13px;display:flex;justify-content:space-between;align-items:end;gap:12px}.section-head h2{margin:0;font-size:21px;letter-spacing:-.6px}.muted{color:var(--muted)}.small{font-size:12px}.card{background:var(--white);border:1px solid var(--border);border-radius:19px;box-shadow:var(--shadow)}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.service{padding:28px 15px;min-height:220px;text-align:left;border:1px solid var(--border);background:#fff;border-radius:19px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:.2s transform,.2s border-color}.service:hover{transform:translateY(-4px);border-color:var(--blue)}.service-icon{display:inline-grid;place-items:center;width:65px;height:65px;border-radius:18px;font-size:32px;background:#e5f0ff}.service:nth-child(2) .service-icon{background:#e0faf4}.service:nth-child(3) .service-icon{background:#fff0df}.service:nth-child(4) .service-icon{background:#efeaff}.service h3{font-size:18px;margin:13px 0 3px;line-height:1.15}.service p{font-size:12px;color:var(--muted);margin:0}.service .arrow{position:absolute;right:19px;top:25px;color:var(--blue);font-weight:bold;font-size:21px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{padding:20px}.stat h3{font-size:31px;letter-spacing:-1px;margin:4px 0;line-height:1.2}.stat p{font-size:12px;color:var(--muted);font-weight:650;margin:0}.stat .dot{display:inline-block;width:9px;height:9px;background:var(--teal);border-radius:50%;margin-right:7px}.foot{padding:33px 0;margin-top:28px;font-size:12px;color:#8598b0;display:flex;align-items:center;justify-content:space-between;gap:10px}.foot a{color:var(--blue)}
.modal-backdrop{position:fixed;inset:0;background:#08172dc9;display:grid;place-items:center;padding:16px;z-index:100}.modal-backdrop[hidden]{display:none}.modal{background:white;border-radius:22px;width:min(460px,100%);padding:27px;box-shadow:0 25px 75px #07132666}.receipt{margin:15px auto;border:2px dashed #b8c8da;border-radius:10px;width:280px;max-width:100%;padding:26px;text-align:center;background:white;color:#132338}.receipt h1{font-size:57px;line-height:1.1;letter-spacing:-2px;margin:19px 0 7px}.receipt h3{margin:3px 0;font-size:14px}.receipt p{font-size:11px;color:#586d80}.receipt hr{border:0;border-top:1px dashed #b8c8da;margin:17px 0}.receipt .rbrand{font-size:16px;font-weight:900}.receipt .date{font-size:10px}.modal .actions{display:flex;gap:9px;flex-wrap:wrap}.modal .actions .btn{flex:1}.close{border:0;background:transparent;color:#7790a4;font-size:25px;float:right}.toast{position:fixed;bottom:25px;right:25px;z-index:150;background:#102342;color:white;border-radius:13px;padding:13px 18px;box-shadow:var(--shadow);max-width:min(400px,calc(100% - 28px))}.toast[hidden]{display:none}
.staff-layout{display:grid;grid-template-columns:255px 1fr;gap:20px;margin-top:24px;align-items:start}.sidebar{padding:22px;position:sticky;top:20px}.sidebar .selector{margin-top:12px;display:flex;flex-direction:column;gap:8px}.counter-btn{padding:13px;border:1px solid var(--border);border-radius:12px;background:#fff;text-align:left;font-weight:800;color:#607896}.counter-btn.active{background:#e8f0ff;border-color:#669aff;color:#174cb6}.counter-btn small{display:block;color:#8196ad;font-weight:500}.workspace{min-width:0}.maincounter{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}.serving{background:linear-gradient(145deg,#17365c,#11233f);color:white;border-radius:19px;padding:29px;min-height:265px}.serving .caption{color:#92bdde;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:850}.serving .big{font-size:clamp(50px,7vw,89px);line-height:1.35;font-weight:900;letter-spacing:-3px;color:#7af0c9;margin:12px 0}.serving p{color:#c1d4e8;margin:0}.tools{display:flex;flex-direction:column;gap:10px;justify-content:center;padding:24px}.tools .btn{min-height:46px}.panel{padding:22px;margin-top:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#7890a9;text-transform:uppercase;letter-spacing:1px;font-size:10px;border-bottom:1px solid var(--border)}td,th{padding:12px 9px}td{border-bottom:1px solid #edf1f6}tr:last-child td{border-bottom:0}.number{font-weight:900;color:#1c4d8c}.pill{display:inline-block;background:#eaf2ff;color:#315a9b;border-radius:100px;padding:3px 9px;font-weight:700;font-size:11px}.login{width:min(430px,100%);margin:35px auto;padding:33px}.login input{border:1px solid #b8c9dd;border-radius:10px;width:100%;padding:15px;margin:8px 0 17px}.login label{font-weight:700;font-size:12px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:23px 0}.guide-card{padding:25px}.guide-card h2{margin:0 0 9px}
/* Stand-alone high contrast TV */
body.tv-body{background:#07152a;color:#fff;min-height:100vh;overflow-x:hidden}.tv-header{padding:25px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #223b5e;background:#0a1a31}.tv-brand{font-size:clamp(20px,2.4vw,37px);font-weight:900;letter-spacing:-1px}.tv-brand span{color:#53e1ba}.tv-clock{text-align:right;font-size:clamp(18px,2vw,30px);font-weight:750}.tv-clock small{display:block;font-weight:600;font-size:12px;color:#9bb8d5}.tv-title{text-align:center;margin:26px 0 20px}.tv-title h1{font-size:clamp(27px,3.5vw,57px);letter-spacing:3px;margin:0}.tv-title p{color:#9cbbd8;text-transform:uppercase;letter-spacing:3px;font-size:13px}.tv-grid{width:min(1450px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.tv-box{border:1px solid #294262;background:#112642;border-radius:20px;padding:22px 30px;text-align:center;min-height:207px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.tv-box small{color:#a7bed5;font-size:clamp(12px,1.4vw,19px);text-transform:uppercase;letter-spacing:1.5px;font-weight:800}.tv-box strong{font-size:clamp(46px,6.8vw,98px);line-height:1.1;color:#5aebbb;letter-spacing:-3px}.tv-box strong.empty{color:#425f7e}.tv-box em{font-size:12px;color:#98b2cc;font-style:normal}.tv-ticker{position:fixed;bottom:0;left:0;right:0;background:#12a88d;color:white;padding:16px 25px;text-align:center;font-weight:750;font-size:clamp(12px,1.4vw,20px)}.tv-sound{position:fixed;bottom:73px;right:22px;z-index:5;background:#21395a;color:white;border:1px solid #416188;border-radius:100px;padding:11px 15px;font-size:12px;font-weight:750}.tv-sound.on{background:#097c6a}.tv-status{color:#b1c9db;font-size:12px}.tv-badge{background:#203955;color:#9fc2e3;font-size:12px;border-radius:100px;padding:7px 13px;font-weight:800}
@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.maincounter{grid-template-columns:1fr}.staff-layout{grid-template-columns:1fr}.sidebar{position:static}.sidebar .selector{display:grid;grid-template-columns:repeat(2,1fr)}.guide-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.wrap{width:calc(100% - 25px)}.top-inner{flex-wrap:wrap}.nav{gap:12px}.hero{padding:25px}.service{min-height:180px;padding:18px 12px}.service-icon{width:53px;height:53px;font-size:24px}.service h3{font-size:15px}.stats{gap:8px}.stat{padding:13px}.tv-header{padding:17px}.tv-grid{width:calc(100% - 22px);gap:9px}.tv-box{padding:12px;min-height:160px}.tv-box strong{font-size:clamp(30px,9vw,57px)}.tv-ticker{padding:10px}.tv-title{margin:20px 0}.tv-title p{font-size:10px}}
@media print{body *{visibility:hidden!important}.receipt,.receipt *{visibility:visible!important}.receipt{position:absolute!important;top:0;left:0;margin:0;border:0;width:72mm!important;padding:5mm!important;box-shadow:none}.receipt h1{font-size:45px}@page{size:80mm auto;margin:0}}

.receipt-assignment{margin:13px 0 4px;display:grid;gap:3px;font-size:10px;letter-spacing:.6px;color:#56697e}.receipt-assignment strong{font-size:18px;letter-spacing:0;color:#15335c}

/* Dynamic next-available service selection */
.service-call-buttons{display:grid;gap:9px;margin:1px 0 9px}
.service-call-buttons .btn{white-space:normal;min-height:50px}

/* Configurable service and workstation admin controls */
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin:25px 0}
.admin-card{padding:23px;min-width:0}
.admin-card .section-head{margin:0 0 15px;align-items:center}
.config-list{display:grid;gap:8px;margin-bottom:22px;max-height:400px;overflow:auto}
.config-item{display:grid;gap:5px;text-align:left;border:1px solid var(--border);border-radius:11px;background:#f8fbff;padding:12px 14px;width:100%;color:#21365c}
.config-item:hover{border-color:#6b9efd;background:#e8f1ff}
.config-item small{color:#6c84a0}
.config-form{display:grid;gap:11px;border-top:1px solid var(--border);padding-top:15px}
.config-form h3{margin:0 0 5px}.config-form label{font-size:12px;font-weight:750}
.config-form>input{width:100%;border:1px solid #c2d2e2;border-radius:10px;padding:12px;font-size:15px}
.config-form>input:disabled{background:#e8eef5;color:#687e92}
.config-form p{margin:0}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:240px;overflow:auto}
.inline-check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;border:1px solid var(--border);padding:10px;border-radius:8px;background:white;cursor:pointer}
.inline-check input{accent-color:var(--blue);width:17px;height:17px;flex-shrink:0}
@media(max-width:850px){.admin-grid{grid-template-columns:1fr}}
@media(max-width:500px){.checks{grid-template-columns:1fr}}
.tv-grid{padding-bottom:110px;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr))}

/* Preview-stage guard: never print a draft ticket or hide confirmation controls. */
.modal .actions .btn{min-width:100px}
.modal .actions .btn[hidden]{display:none}
.modal button:disabled{opacity:.55;cursor:wait}
@media print{.modal:not([hidden]) .receipt{background:white}}
