@import url("/theme.css");
:root{color-scheme:dark;--forest:#16392f;--deep:#102c27;--mint:#dcece3;--paper:#f7f6f1;--cream:#f1f0ea;--line:#e3e8e0;--ink:#1b322c;--muted:#647a72;--accent:#d0a16a;--white:#fff;--danger:#a4533f;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.48}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--forest)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,dialog:focus-visible{outline:3px solid #cc985d;outline-offset:3px}.skip{position:absolute;top:-100px;left:1rem;z-index:8;padding:.7rem 1rem;background:#fff}.skip:focus{top:1rem}.shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{height:100vh;position:sticky;top:0;display:flex;flex-direction:column;background:var(--deep);color:#f0f7ed;padding:27px 17px;gap:1.4rem}.brand{display:flex;align-items:center;gap:.65rem;padding:0 9px;text-decoration:none;color:white;font-size:23px;font-weight:800;letter-spacing:-.06em;line-height:1.08}.brand-icon{height:40px;width:40px;display:grid;place-items:center;border:1px solid #c3d8c8;border-radius:12px;background:#33544a;color:#f9efe4;font-family:Georgia,serif;font-size:29px;font-weight:400}.brand-accent{color:#d7ac7b}.brand small{display:block;letter-spacing:.22em;font-size:9px;font-weight:750;color:#acc5b4;margin-top:.28rem}.side-label,.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.18em}.side-label{margin:20px 13px 0;color:#89ab99}#nav{display:grid;gap:.32rem}#nav button{width:100%;text-align:left;display:flex;align-items:center;gap:.7rem;padding:.74rem .85rem;border:1px solid transparent;border-radius:10px;background:none;color:#d2e3d7;font-weight:620}#nav button span{font-size:1.35rem;line-height:1}#nav button:hover,#nav button[aria-current]{background:#36574c;color:white}#nav button[aria-current]{border-color:#789380}.side-bottom{margin-top:auto;display:grid;gap:1rem;padding:0 9px}.side-bottom>a{color:#ceded4;text-decoration:none;font-size:.84rem}.side-bottom>a:hover{text-decoration:underline}.side-card{border-radius:14px;border:1px solid #6b897482;background:#25463a;padding:1rem}.side-card strong{font-size:.82rem}.side-card p{margin:.5rem 0 0;color:#d0e1d6;font-size:.77rem}.side-dot,.mode i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#95dbaf;margin-right:.35rem}.content{min-width:0;padding:0 clamp(18px,4vw,55px)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:84px;border-bottom:1px solid var(--line)}.topbar .eyebrow{color:#577568}.today{display:block;color:var(--muted);font-size:.82rem;margin-top:.2rem}.top-actions{display:flex;align-items:center;gap:.7rem}.mode{border:1px solid #cfddcf;border-radius:20px;padding:.42rem .65rem;color:#355748;white-space:nowrap;font-size:.67rem;font-weight:800;letter-spacing:.09em}.outline,.ghost,.mini,.light-btn,.text-button,.primary{border-radius:10px;padding:.7rem 1rem;font-weight:720}.outline{background:#fff;color:var(--forest);border:1px solid #c5d3c9}.outline:hover{border-color:var(--forest)}.primary{border:1px solid var(--forest);background:var(--forest);color:white;box-shadow:0 7px 13px #16392f17}.primary:hover{background:#265248}.ghost{background:transparent;border:1px solid #bdcbc2;color:var(--forest)}.notice{background:#eeeade;border:1px solid #e2d5bc;border-radius:11px;padding:.85rem 1rem;font-size:.81rem;color:#4d5144;margin-top:1.1rem}.notice strong{color:#343b31}main{max-width:1580px;margin:auto;min-height:60vh}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:2.2rem 0 1.65rem}.page-title .eyebrow{color:#768d78}.page-title h1,.intro h1{font-family:Georgia,serif;font-size:clamp(2rem,3vw,3rem);font-weight:500;letter-spacing:-.04em;line-height:1.1;margin:.5rem 0}.page-title p,.intro p{color:var(--muted);margin:0;max-width:680px}.page-title button{white-space:nowrap}.welcome{display:flex;align-items:stretch;justify-content:space-between;background:linear-gradient(110deg,#173c32,#1b4f43 65%,#426d50);border-radius:19px;color:white;min-height:230px;padding:clamp(1.5rem,3.6vw,2.5rem);overflow:hidden;position:relative}.welcome h2{font:400 clamp(1.7rem,2.6vw,2.7rem) Georgia,serif;margin:.65rem 0}.welcome p{max-width:450px;color:#d6e8da;margin:0 0 1.25rem}.welcome .eyebrow{color:#c6d8c4}.light-btn{color:#14372d;background:#f3efe1;border:0;padding:.65rem .95rem}.light-btn:hover{background:#fff}.welcome-symbol{display:grid;place-content:center;text-align:center;min-width:210px;margin:-6rem -2rem -6rem 0;border:1px solid #b1d8ba5e;border-radius:55% 15% 55% 15%;transform:rotate(-12deg);opacity:.78}.welcome-symbol span{font:110px Georgia,serif;color:#f4ecd6}.welcome-symbol small{font-size:10px;letter-spacing:.2em}.brief{background:#e7efe4;border:1px solid #bdd2bf;border-radius:12px;padding:1.1rem;margin:1rem 0;white-space:pre-line}.brief strong{font-size:.73rem;letter-spacing:.12em}.brief p{margin:.5rem 0 0}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.2rem 0 1.5rem}.stat-card,.surface,.room-card{border:1px solid var(--line);background:#fff;border-radius:14px;box-shadow:0 6px 26px #17382b0a}.stat-card{padding:1.15rem 1.25rem}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#587064;font-size:.83rem}.stat-top span:last-child{font-size:1.4rem;color:#779f89}.stat-card strong{display:block;font:400 2.15rem Georgia,serif;margin:.35rem 0 .05rem}.stat-card small{color:var(--muted);font-size:.78rem}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:1rem}.surface{min-width:0;padding:1.3rem}.surface-head,.section-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.surface-head h2,.section-bar h2{font:400 1.55rem Georgia,serif;margin:.25rem 0 .95rem}.surface-head .eyebrow{color:#7b9684}.text-button{border:0;background:none;color:#326b51;padding:.5rem .1rem;font-size:.81rem}.text-button:hover{text-decoration:underline}.reservation{display:grid;grid-template-columns:minmax(130px,1.25fr) minmax(120px,1fr) minmax(120px,1fr) auto;align-items:center;gap:.75rem;padding:1rem 1.2rem;border-top:1px solid var(--line)}.res-list .reservation:first-child{border-top:0}.reservation strong{display:block;font-size:.86rem}.reservation small{display:block;font-size:.74rem;color:var(--muted);margin-top:.12rem}.res-guest{display:flex;gap:.7rem;align-items:center;min-width:0}.res-guest>div:last-child{min-width:0}.res-guest strong,.res-guest small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#e9efe6;color:#2e5841;font-weight:800}.res-action{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.badge,.room-status{border-radius:20px;padding:.28rem .55rem;font-size:.69rem;font-weight:800;text-transform:capitalize;white-space:nowrap}.badge.reserved,.room-status.upcoming{background:#fff2da;color:#825b24}.badge.checked-in,.badge.served,.room-status.ready{background:#dcefe1;color:#236043}.badge.checked-out{background:#e9ece8;color:#4f6558}.badge.preparing{background:#e7eaf6;color:#465e96}.mini{padding:.35rem .6rem;background:#fff;border:1px solid #bdcec3;color:#285444;font-size:.74rem}.mini:hover{border-color:#245440;background:#eff7f0}.ticket-short,.ticket{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.78rem 0;border-bottom:1px solid var(--line)}.ticket-short strong,.ticket strong{display:block;font-size:.86rem}.ticket-short small,.ticket small{display:block;color:var(--muted);font-size:.76rem}.side-surface .text-button{margin-top:1.2rem}.muted{color:var(--muted)}.section-bar{margin:1.7rem 0 .65rem}.section-bar h2{margin:0}.section-bar span,.count-pill{border-radius:20px;background:#e9efe9;color:#3a6650;padding:.25rem .55rem;font-size:.72rem;font-family:system-ui;font-weight:750}.padless{padding:0}.empty{padding:1rem;color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:1rem;margin:.5rem 0 1.4rem;color:#526c5c;font-size:.82rem}.legend span{display:flex;align-items:center;gap:.4rem}.legend i{display:block;width:10px;height:10px;border-radius:50%}.legend i.ready{background:#61ac76}.legend i.occupied{background:#547c95}.legend i.upcoming{background:#e0b467}.legend i.housekeeping{background:#b27566}.room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.room-card{padding:1.25rem;display:flex;flex-direction:column;min-width:0}.room-card-top,.room-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.room-card-top>span:first-child{font-size:.69rem;letter-spacing:.1em;font-weight:750;color:var(--muted)}.room-status.occupied{background:#e6ecf3;color:#3a6280}.room-status.housekeeping{background:#f6e8e4;color:#98554b}.room-icon{font-size:3rem;line-height:1;color:#a8c9b0;margin:1.35rem 0 .25rem}.room-card h2{font:400 1.65rem Georgia,serif;margin:0}.room-card p{color:var(--muted);font-size:.79rem;margin:.22rem 0 1.2rem}.room-card-bottom{margin-top:auto;border-top:1px solid var(--line);padding:.7rem 0 .8rem;font-size:.76rem;color:var(--muted)}.room-card-bottom strong{color:var(--ink);font-size:.85rem;white-space:nowrap}.room-card-bottom small{font-weight:400}.full{width:100%}.pos-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:1rem;align-items:start}.category-row{display:flex;gap:.35rem;flex-wrap:wrap;margin:0 0 1rem}.category{padding:.4rem .7rem;border-radius:25px;border:1px solid #dbe5db;background:white;color:#486352;font-size:.76rem}.category.active{background:#214939;color:white}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.menu-item{border:1px solid var(--line);background:#fafbf7;border-radius:12px;padding:1rem;min-width:0}.dish-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e6efe3;color:#4b7c61;font-size:1.65rem}.dish-group{display:block;font-size:.67rem;color:#7b936f;text-transform:uppercase;letter-spacing:.1em;margin:.85rem 0 .2rem}.menu-item h3{margin:0;font:400 1.1rem Georgia,serif}.menu-item p{font-size:.74rem;color:var(--muted);min-height:1rem;margin:.2rem 0 .8rem}.menu-item>div:last-child{display:flex;justify-content:space-between;align-items:center}.menu-item>div:last-child strong{font-size:.87rem}.add-item{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:9px;background:var(--forest);color:white;font-size:1.3rem;line-height:1}.pos-cart label,.dialog-head~p+label{display:block;font-weight:700;margin:.6rem 0 .36rem;font-size:.81rem}.pos-cart select,dialog select,dialog input{width:100%;min-width:0;border:1px solid #b9cbc1;border-radius:9px;background:#fff;color:var(--ink);padding:.75rem;margin-bottom:.55rem}.pos-cart select:focus-visible{outline-offset:1px}.hint{color:var(--muted);font-size:.75rem}.cart-list{min-height:165px;padding:1rem 0}.cart-empty{text-align:center;color:var(--muted);padding:1.2rem}.cart-empty span{font-size:2.5rem;color:#a6bda9}.cart-line{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.72rem 0;border-top:1px solid var(--line)}.cart-line>div:first-child{flex:1;min-width:0}.cart-line strong{font-size:.79rem}.cart-line small{display:block;color:var(--muted);font-size:.71rem}.qty{display:flex;align-items:center;gap:.35rem}.qty button{width:25px;height:25px;border:1px solid #bdcec3;border-radius:7px;background:white}.cart-footer{border-top:1px solid var(--line);padding-top:1rem}.cart-footer>div{display:flex;justify-content:space-between;margin:0 0 1rem}.cart-footer strong{font-size:1.25rem}.cart-footer p{color:var(--muted);font-size:.72rem;text-align:center}.tickets{margin-top:1rem}.ticket>div:last-child{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.ticket small{overflow-wrap:anywhere}.about-demo{margin:3rem 0 0;border-top:1px solid var(--line);padding:1.2rem 0 2rem;color:#526a5d}.about-demo h2{font-size:.9rem}.about-demo p{font-size:.83rem;max-width:920px}footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding:1.2rem 0 2rem;font-size:.74rem;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:16px;padding:1.5rem;width:min(95vw,520px);max-height:90vh;overflow:auto;box-shadow:0 22px 80px #00171152}dialog::backdrop{background:#0c2018b9}.dialog-head{display:flex;justify-content:space-between;gap:1rem}.dialog-head h2{font:400 1.8rem Georgia,serif;margin:.25rem 0}dialog p{color:var(--muted);font-size:.83rem}dialog label{display:block;font-weight:700;font-size:.8rem;margin:.65rem 0 .38rem}.close{border:0;background:#eef1ed;border-radius:9px;width:34px;height:34px;color:var(--forest);font-size:1.45rem}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.form-error{min-height:1rem;color:var(--danger);font-size:.8rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;margin-top:.7rem}#toast{position:fixed;right:1.3rem;bottom:1.3rem;z-index:12;background:#14382e;color:white;max-width:min(400px,90vw);padding:.85rem 1rem;border-radius:10px;box-shadow:0 15px 40px #1d3b3052;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translateY(0)}@media(max-width:1150px){.shell{grid-template-columns:205px minmax(0,1fr)}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.pos-grid{grid-template-columns:1fr}.reservation{grid-template-columns:minmax(120px,1.3fr) minmax(115px,1fr) minmax(105px,.8fr) auto}}@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:relative;padding:.9rem 1rem;gap:.55rem}.brand{padding:0;font-size:20px}.brand-icon{width:33px;height:33px;font-size:23px}.side-label,.side-bottom{display:none}#nav{display:flex;overflow-x:auto;white-space:nowrap;scrollbar-width:thin}#nav button{width:auto;flex:none;padding:.55rem .65rem;font-size:.78rem}#nav button span{font-size:1rem}.content{padding:0 1rem}.topbar{min-height:60px}.notice{margin-top:.8rem}.page-title{margin:1.8rem 0 1.2rem}.reservation{grid-template-columns:1fr 1fr;gap:.55rem}.res-action{justify-content:flex-start}.res-list .reservation{padding:.9rem}.welcome-symbol{min-width:130px}.welcome-symbol span{font-size:65px}}@media(max-width:520px){.top-actions .mode{display:none}.topbar .eyebrow{font-size:.58rem}.today{font-size:.7rem}.topbar .outline{font-size:.74rem;padding:.43rem .55rem}.page-title{align-items:flex-start;flex-direction:column}.page-title h1{font-size:2.05rem}.page-title .primary{width:100%}.welcome{padding:1.3rem;min-height:0}.welcome-symbol{display:none}.stat-grid,.menu-grid{grid-template-columns:1fr 1fr;gap:.6rem}.stat-card{padding:.9rem}.stat-card strong{font-size:1.8rem}.stat-top{font-size:.72rem}.room-grid{grid-template-columns:1fr}.reservation{grid-template-columns:1fr 1fr}.reservation .res-guest{grid-column:1/-1}.res-room{grid-column:1}.res-action{grid-column:2}.menu-item{padding:.8rem}.menu-item h3{font-size:1rem}.ticket{align-items:flex-start}.ticket>div:last-child{display:block;text-align:right}.ticket>div:last-child>*{display:block;margin:.2rem 0}.form-pair{gap:.5rem}.form-pair input,.form-pair select{padding:.6rem}}

/* ==========================================================================
   Retro CRT theme: dark + cyberpunk neon + CRT hover + 60s/70s cartoon.
   Tokens only (see /theme.css). Page-level CRT overlay comes from /theme-fx.css.
   ========================================================================== */
:root{color-scheme:dark;--forest:hsl(var(--t-primary));--deep:hsl(var(--t-bg));--mint:hsl(var(--t-bg-alt));--paper:hsl(var(--t-bg));--cream:hsl(var(--t-surface));--line:hsl(var(--t-border));--ink:hsl(var(--t-fg));--muted:hsl(var(--t-muted));--accent:hsl(var(--t-accent));--white:hsl(var(--t-surface));--danger:hsl(var(--t-danger));font-family:var(--t-font-mono)}
body{background:hsl(var(--t-bg));color:hsl(var(--t-fg));overflow-x:hidden}
a{color:hsl(var(--t-primary))}
a:hover{color:hsl(var(--t-accent));text-shadow:2px 0 hsl(var(--t-accent) / .9),-2px 0 hsl(var(--t-info) / .9)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,dialog:focus-visible{outline:3px solid hsl(var(--t-warn));outline-offset:3px}
.pos-cart select:focus-visible{outline-offset:1px}
button:disabled{opacity:.6;box-shadow:none;transform:none}
.skip{background:hsl(var(--t-warn));color:hsl(var(--t-ink));font-family:var(--t-font-mono);font-weight:700;border:var(--t-stroke) solid hsl(var(--t-outline))}

/* Sidebar: stripe edge */
.sidebar{background:hsl(var(--t-bg-alt));color:hsl(var(--t-fg));border-right:var(--t-stroke) solid hsl(var(--t-outline));box-shadow:var(--t-offset) 0 0 hsl(var(--t-accent))}
.brand{color:hsl(var(--t-fg));font-family:var(--t-font-display);font-weight:400;letter-spacing:.02em;text-transform:uppercase}
.brand-icon{border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:50%;background:hsl(var(--t-primary));color:hsl(var(--t-ink));font-family:var(--t-font-display);box-shadow:3px 3px 0 hsl(var(--t-accent))}
.brand-accent{color:hsl(var(--t-warn))}
.brand small{color:hsl(var(--t-muted));font-family:var(--t-font-mono)}
.side-label,.eyebrow{font-family:var(--t-font-mono);font-weight:700;text-transform:uppercase;letter-spacing:.14em}
.side-label{color:hsl(var(--t-warn))}
#nav button{font-family:var(--t-font-display);font-weight:400;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;color:hsl(var(--t-fg));border:var(--t-stroke) solid transparent;transition:transform .15s,box-shadow .15s,background .15s}
#nav button:hover{background:hsl(var(--t-surface));color:hsl(var(--t-fg));border-color:hsl(var(--t-outline));transform:translate(2px,2px);box-shadow:3px 3px 0 hsl(var(--t-info));text-shadow:2px 0 hsl(var(--t-accent) / .9),-2px 0 hsl(var(--t-info) / .9);animation:crt-pop .3s ease-out}
#nav button[aria-current]{background:hsl(var(--t-primary));color:hsl(var(--t-ink));border-color:hsl(var(--t-outline));box-shadow:4px 4px 0 hsl(var(--t-accent));text-shadow:none}
.side-bottom>a{color:hsl(var(--t-muted))}
.side-bottom>a:hover{color:hsl(var(--t-fg));text-decoration:none}
.side-card{border-radius:var(--t-radius);border:var(--t-stroke) solid hsl(var(--t-border));background:hsl(var(--t-surface));box-shadow:4px 4px 0 hsl(var(--t-info))}
.side-card p{color:hsl(var(--t-muted))}
.side-dot,.mode i{background:hsl(var(--t-info))}

/* Topbar with 4-band stripe underneath */
.topbar{border-bottom:0;position:relative}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--t-stripes);border-radius:3px}
.topbar .eyebrow,.page-title .eyebrow,.surface-head .eyebrow,.welcome .eyebrow,.eyebrow{display:inline-block;background:hsl(var(--t-warn));color:hsl(var(--t-ink));border:2px solid hsl(var(--t-outline));padding:.15rem .5rem;transform:rotate(-2deg);box-shadow:2px 2px 0 hsl(var(--t-accent))}
.today{color:hsl(var(--t-muted))}
.mode{border:2px solid hsl(var(--t-outline));border-radius:999px;color:hsl(var(--t-info));font-family:var(--t-font-mono);background:hsl(var(--t-surface))}

/* Buttons: pills that press */
.outline,.ghost,.mini,.light-btn,.text-button,.primary,.close,.add-item,.category,.qty button{font-family:var(--t-font-display);font-weight:400;text-transform:uppercase;letter-spacing:.06em;position:relative;transition:transform .12s,box-shadow .12s,background .15s,color .15s}
.outline,.ghost,.mini,.light-btn,.primary,.close,.add-item,.category,.qty button{border-radius:999px;border:var(--t-stroke) solid hsl(var(--t-outline));box-shadow:5px 5px 0 hsl(var(--t-accent))}
.outline,.ghost{background:hsl(var(--t-surface));color:hsl(var(--t-fg))}
.primary,.light-btn,.add-item{background:hsl(var(--t-primary));color:hsl(var(--t-ink))}
.mini,.category,.qty button{background:hsl(var(--t-surface));color:hsl(var(--t-fg));box-shadow:3px 3px 0 hsl(var(--t-info))}
.close{background:hsl(var(--t-accent));color:hsl(var(--t-ink))}
.outline:hover,.ghost:hover,.mini:hover,.light-btn:hover,.primary:hover,.close:hover,.add-item:hover,.category:hover,.qty button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 hsl(var(--t-accent));animation:crt-pop .3s ease-out}
.primary:hover,.light-btn:hover,.add-item:hover{background:hsl(var(--t-warn));color:hsl(var(--t-ink))}
.outline:hover,.ghost:hover,.mini:hover,.category:hover,.qty button:hover{background:hsl(var(--t-surface));border-color:hsl(var(--t-primary));color:hsl(var(--t-primary))}
.close:hover{background:hsl(var(--t-warn))}
.outline:active,.ghost:active,.mini:active,.light-btn:active,.primary:active,.close:active,.add-item:active,.category:active,.qty button:active{transform:translate(5px,5px);box-shadow:0 0 0 hsl(var(--t-accent))}
.primary:disabled,.light-btn:disabled,.add-item:disabled{background:hsl(var(--t-surface));color:hsl(var(--t-muted));border-color:hsl(var(--t-border))}
.category.active{background:hsl(var(--t-primary));color:hsl(var(--t-ink));box-shadow:3px 3px 0 hsl(var(--t-accent))}
.add-item{font-family:inherit;border-radius:50%;box-shadow:3px 3px 0 hsl(var(--t-accent))}
.text-button{color:hsl(var(--t-primary));background:none;border:0;box-shadow:none}
.text-button:hover{color:hsl(var(--t-accent));text-decoration:none;text-shadow:2px 0 hsl(var(--t-accent) / .9),-2px 0 hsl(var(--t-info) / .9)}
.outline::after,.ghost::after,.mini::after,.light-btn::after,.primary::after,.category::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s;background:repeating-linear-gradient(0deg,hsl(var(--t-shade) / .34) 0 1px,transparent 1px 3px),linear-gradient(180deg,transparent,hsl(var(--t-fg) / .13) 50%,transparent) 0 -100%/100% 38% no-repeat;box-shadow:inset 0 0 38px hsl(var(--t-primary) / .38)}
.outline:hover::after,.ghost:hover::after,.mini:hover::after,.light-btn:hover::after,.primary:hover::after,.category:hover::after{opacity:1;animation:crt-sweep 1.3s linear infinite}

.notice{background:hsl(var(--t-warn) / .1);border:var(--t-stroke) solid hsl(var(--t-warn));border-radius:var(--t-radius);color:hsl(var(--t-fg));box-shadow:4px 4px 0 hsl(var(--t-warn) / .5)}
.notice strong{color:hsl(var(--t-warn))}

/* Titles */
.page-title h1,.intro h1,.welcome h2,.surface-head h2,.section-bar h2,.room-card h2,.menu-item h3,.dialog-head h2,.stat-card strong{font-family:var(--t-font-display);font-weight:400}
.page-title h1,.intro h1,.welcome h2{text-transform:uppercase;letter-spacing:.01em;text-shadow:3px 3px 0 hsl(var(--t-accent));overflow-wrap:anywhere}
.surface-head h2,.section-bar h2,.dialog-head h2{text-shadow:2px 2px 0 hsl(var(--t-accent))}
.page-title p,.intro p{color:hsl(var(--t-muted))}

/* Welcome / brief */
.welcome{background:hsl(var(--t-surface));background-image:radial-gradient(hsl(var(--t-primary) / .16) 1.3px,transparent 1.7px);background-size:14px 14px;border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:var(--t-radius);color:hsl(var(--t-fg));box-shadow:var(--t-offset) var(--t-offset) 0 hsl(var(--t-primary))}
.welcome p{color:hsl(var(--t-fg))}
.welcome-symbol{border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:55% 15% 55% 15%;background:hsl(var(--t-accent));opacity:1}
.welcome-symbol span{color:hsl(var(--t-ink));font-family:var(--t-font-display)}
.welcome-symbol small{font-family:var(--t-font-mono);font-weight:700;color:hsl(var(--t-ink))}
.brief{background:hsl(var(--t-info) / .1);border:var(--t-stroke) solid hsl(var(--t-info));border-radius:var(--t-radius);box-shadow:4px 4px 0 hsl(var(--t-info) / .5)}
.brief strong{font-family:var(--t-font-mono);color:hsl(var(--t-info))}

/* Cards: outline + hard shadow, colour rotates across siblings; CRT screen on hover */
.stat-card,.surface,.room-card,.menu-item{--sh:var(--t-info);position:relative;border-radius:var(--t-radius);border:var(--t-stroke) solid hsl(var(--t-border));background:hsl(var(--t-surface));box-shadow:var(--t-offset) var(--t-offset) 0 hsl(var(--sh));transition:transform .2s,border-color .2s,box-shadow .2s}
.stat-card:nth-child(4n+2),.room-card:nth-child(4n+2),.menu-item:nth-child(4n+2){--sh:var(--t-primary)}
.stat-card:nth-child(4n+3),.room-card:nth-child(4n+3),.menu-item:nth-child(4n+3){--sh:var(--t-warn)}
.stat-card:nth-child(4n),.room-card:nth-child(4n),.menu-item:nth-child(4n){--sh:var(--t-accent)}
.dashboard-grid>.surface:nth-child(2),.pos-grid>.surface:nth-child(2){--sh:var(--t-accent)}
.surface{background-image:radial-gradient(hsl(var(--t-primary) / .07) 1.3px,transparent 1.7px);background-size:14px 14px}
.stat-card:hover,.room-card:hover,.menu-item:hover{transform:translate(-3px,-3px);border-color:hsl(var(--t-outline));box-shadow:calc(var(--t-offset) + 3px) calc(var(--t-offset) + 3px) 0 hsl(var(--sh));animation:crt-pop .3s ease-out}
.stat-card::after,.room-card::after,.menu-item::after,.reservation::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s;background:repeating-linear-gradient(0deg,hsl(var(--t-shade) / .34) 0 1px,transparent 1px 3px),linear-gradient(180deg,transparent,hsl(var(--t-fg) / .13) 50%,transparent) 0 -100%/100% 38% no-repeat;box-shadow:inset 0 0 38px hsl(var(--t-primary) / .38),inset 0 0 0 2px hsl(var(--t-primary) / .45)}
.stat-card:hover::after,.room-card:hover::after,.menu-item:hover::after,.reservation:hover::after{opacity:1;animation:crt-sweep 1.3s linear infinite}
.reservation{position:relative}
.stat-card:hover strong,.room-card:hover h2,.menu-item:hover h3,.reservation:hover strong{text-shadow:2px 0 hsl(var(--t-accent) / .9),-2px 0 hsl(var(--t-info) / .9)}
.stat-top{color:hsl(var(--t-muted));font-family:var(--t-font-mono);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.stat-top span:last-child{color:hsl(var(--t-primary))}
.stat-card strong{color:hsl(var(--t-warn))}
.stat-card small,.reservation small,.ticket-short small,.ticket small,.cart-line small,.hint,.empty,.cart-empty,.cart-footer p,.room-card p,.menu-item p,footer,.muted{color:hsl(var(--t-muted))}
.reservation,.ticket-short,.ticket,.cart-line,.cart-footer,.room-card-bottom,footer{border-color:hsl(var(--t-border))}
.about-demo{border-top:0;position:relative;color:hsl(var(--t-muted))}
.about-demo::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--t-stripes);border-radius:3px}
.about-demo{padding-top:1.6rem}
.about-demo h2{font-family:var(--t-font-display);font-weight:400;text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--t-fg));text-shadow:2px 2px 0 hsl(var(--t-accent))}
.avatar{background:hsl(var(--t-accent));color:hsl(var(--t-ink));border:2px solid hsl(var(--t-outline));border-radius:50%;font-family:var(--t-font-display);font-weight:400}
.section-bar span,.count-pill{background:hsl(var(--t-warn));color:hsl(var(--t-ink));border:2px solid hsl(var(--t-outline));border-radius:999px;font-family:var(--t-font-mono);font-weight:700;box-shadow:2px 2px 0 hsl(var(--t-accent))}

/* Status: success teal, error danger, warning mustard, selected primary */
.badge,.room-status{border-radius:999px;font-family:var(--t-font-mono);font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:2px solid transparent}
.badge.reserved,.room-status.upcoming{background:hsl(var(--t-warn));color:hsl(var(--t-ink));border-color:hsl(var(--t-outline))}
.badge.checked-in,.badge.served,.room-status.ready{background:hsl(var(--t-info));color:hsl(var(--t-ink));border-color:hsl(var(--t-outline))}
.badge.checked-out{background:hsl(var(--t-surface));color:hsl(var(--t-muted));border-color:hsl(var(--t-border))}
.badge.preparing{background:hsl(var(--t-primary));color:hsl(var(--t-ink));border-color:hsl(var(--t-outline))}
.room-status.occupied{background:hsl(var(--t-primary));color:hsl(var(--t-ink));border-color:hsl(var(--t-outline))}
.room-status.housekeeping{background:hsl(var(--t-danger));color:hsl(var(--t-ink));border-color:hsl(var(--t-outline))}
.legend{color:hsl(var(--t-muted));font-family:var(--t-font-mono);font-size:.78rem}
.legend i{border:2px solid hsl(var(--t-outline))}
.legend i.ready{background:hsl(var(--t-info))}
.legend i.occupied{background:hsl(var(--t-primary))}
.legend i.upcoming{background:hsl(var(--t-warn))}
.legend i.housekeeping{background:hsl(var(--t-danger))}
.room-card-top>span:first-child{font-family:var(--t-font-mono);font-weight:700}
.room-icon{color:hsl(var(--t-primary))}
.room-card-bottom strong,.cart-footer strong,.menu-item>div:last-child strong{color:hsl(var(--t-warn))}
.dish-symbol{background:hsl(var(--t-primary));color:hsl(var(--t-ink));border:2px solid hsl(var(--t-outline));border-radius:50%}
.dish-group{color:hsl(var(--t-accent));font-family:var(--t-font-mono);font-weight:700}
.cart-empty span{color:hsl(var(--t-accent))}
.qty button{box-shadow:2px 2px 0 hsl(var(--t-info))}

/* Forms (no CRT overlay on inputs) */
.pos-cart select,dialog select,dialog input,input,select{background:hsl(var(--t-bg));color:hsl(var(--t-fg));border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:12px;font-family:var(--t-font-mono);color-scheme:dark}
.pos-cart select:hover,dialog select:hover,dialog input:hover{border-color:hsl(var(--t-primary))}
input::placeholder{color:hsl(var(--t-muted))}
select option{background:hsl(var(--t-bg));color:hsl(var(--t-fg))}
.pos-cart label,dialog label,.dialog-head~p+label{font-family:var(--t-font-mono);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;color:hsl(var(--t-fg))}
.form-error{color:hsl(var(--t-danger));font-weight:700}

/* Dialog, toast */
dialog{background:hsl(var(--t-surface));color:hsl(var(--t-fg));border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:var(--t-radius);box-shadow:var(--t-offset) var(--t-offset) 0 hsl(var(--t-primary))}
dialog::backdrop{background:hsl(var(--t-shade) / .85)}
dialog p{color:hsl(var(--t-muted))}
#toast{background:hsl(var(--t-warn));color:hsl(var(--t-ink));border:var(--t-stroke) solid hsl(var(--t-outline));border-radius:var(--t-radius);font-family:var(--t-font-mono);font-weight:700;font-size:.85rem;box-shadow:5px 5px 0 hsl(var(--t-accent))}

@media(max-width:760px){.sidebar{border-right:0;border-bottom:var(--t-stroke) solid hsl(var(--t-outline));box-shadow:0 var(--t-offset) 0 hsl(var(--t-accent))}}
@media(max-width:520px){.page-title h1{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
