.header{background:linear-gradient(180deg, var(--bg-panel) 0%, var(--bg) 100%);padding:24px 36px 0;position:relative}.header-inner{justify-content:space-between;align-items:flex-start;display:flex}.header-inner.centered{text-align:center;justify-content:center}.brand-name{letter-spacing:3px;font-size:38px;font-weight:900}.brand-sub{letter-spacing:4px;text-transform:uppercase;color:var(--text-muted);margin-top:4px;font-size:12px}.clock{letter-spacing:2px;color:#f0f0f5;text-align:right;font-family:monospace;font-size:40px;font-weight:200}.hours{text-align:right;color:var(--text-sec);margin-top:4px;font-size:13px}.hours span{color:var(--primary);font-weight:600}.drip{width:100%;display:block}.header--brand{border-bottom:3px solid var(--accent)}.brand-name--primary{color:var(--primary);text-shadow:0 0 20px color-mix(in srgb, var(--primary) 25%, transparent), 0 0 40px color-mix(in srgb, var(--primary) 25%, transparent)}.brand-name--accent{color:var(--accent);text-shadow:0 0 20px color-mix(in srgb, var(--accent) 21%, transparent), 0 0 40px color-mix(in srgb, var(--accent) 21%, transparent)}.header--brand .drip path{fill:var(--primary)}.header--category.header--odd{border-bottom:3px solid var(--primary)}.header--category.header--even{border-bottom:3px solid var(--accent)}.header--category.header--odd .brand-name{color:var(--primary);text-shadow:0 0 20px color-mix(in srgb, var(--primary) 25%, transparent), 0 0 40px color-mix(in srgb, var(--primary) 25%, transparent)}.header--category.header--even .brand-name{color:var(--accent);text-shadow:0 0 20px color-mix(in srgb, var(--accent) 25%, transparent), 0 0 40px color-mix(in srgb, var(--accent) 25%, transparent)}.header--category.header--odd .drip path{fill:var(--primary)}.header--category.header--even .drip path{fill:var(--accent)}body.portrait .brand-name{letter-spacing:4px;font-size:52px}body.portrait .brand-sub{letter-spacing:5px;font-size:16px}body.portrait .clock{font-size:52px}body.portrait .hours{font-size:16px}.footer{background:var(--bg-panel);color:var(--text-muted);border-top:2px solid color-mix(in srgb, var(--accent) 25%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 36px;font-size:12px;display:flex}.footer-brand{color:var(--primary);font-weight:700}body.portrait .footer{padding:16px 36px;font-size:15px}.simple-row{background:var(--bg-row);border-radius:10px;flex:1 1 0;align-items:center;gap:24px;min-height:80px;margin-bottom:8px;padding:22px 32px;display:flex;container-type:size}.simple-row--alt{background:var(--bg-row-alt)}.simple-row--out{opacity:.3}.strain-sativa{--strain:#22c55e}.strain-indica{--strain:#a855f7}.strain-hybrid{--strain:#e0e0e0}.strain-cbd{--strain:#34d399}.strain-thc{--strain:#22c55e}.strain-other{--strain:#555570}.simple-row .s-indicator{background:var(--strain,#555570);border-radius:4px;flex-shrink:0;align-self:stretch;width:8px}.simple-row .s-body{flex:1;min-width:0}.simple-row .s-top-line{white-space:nowrap;align-items:baseline;gap:16px;display:flex}.simple-row .s-name{letter-spacing:.5px;text-overflow:ellipsis;min-width:0;color:var(--text-primary);flex-shrink:1;font-size:clamp(28px,22cqh,56px);font-weight:800;overflow:hidden}.simple-row .s-bottom-line{letter-spacing:3px;text-transform:uppercase;color:var(--text-sec);align-items:center;gap:10px;margin-top:6px;font-size:clamp(14px,10cqh,24px);font-weight:700;display:flex}.simple-row .s-unit{font-weight:700}.simple-row .s-divider{opacity:.4}.simple-row .s-dominance{color:var(--strain,#555570)}.simple-row .s-right{text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;gap:2px;display:flex}.simple-row .s-brand{letter-spacing:2px;text-transform:uppercase;color:var(--brand-color,var(--text-sec));flex-shrink:0;font-size:13px;font-weight:700;line-height:1}.simple-row .s-price{letter-spacing:1px;color:var(--text-primary);flex-shrink:0;font-size:clamp(36px,30cqh,72px);font-weight:900}body.portrait .simple-row{gap:28px;min-height:110px;padding:28px 36px}body.portrait .simple-row .s-indicator{width:10px}body.portrait .simple-row .s-name{font-size:clamp(36px,28cqh,72px)}body.portrait .simple-row .s-price{font-size:clamp(48px,36cqh,96px)}body.portrait .simple-row .s-bottom-line{letter-spacing:4px;margin-top:8px;font-size:clamp(18px,10cqh,28px)}.col-header{letter-spacing:1.5px;text-transform:uppercase;background:var(--bg-panel);border-bottom:1px solid color-mix(in srgb, var(--accent) 19%, transparent);color:var(--text-muted);flex:none;align-items:center;padding:10px 24px;font-size:11px;font-weight:700;display:flex}.row{background:var(--bg-row);border-bottom:1px solid var(--border);border-left:3px solid #0000;border-radius:6px;flex:1 1 0;align-items:center;min-height:72px;margin-bottom:4px;padding:20px 24px;display:flex;container-type:size}.row--alt{background:var(--bg-row-alt)}.row--out{opacity:.35;border-left-color:#ef444430}.cell{flex-shrink:0;padding:0 10px}.cell-img{flex-shrink:0;width:60px;padding:0 12px 0 0}.cell-img img{object-fit:cover;border-radius:6px;width:48px;height:48px;display:block}.cell-img .img-placeholder{background:var(--border);border-radius:6px;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;display:flex}.cell-name{flex:1;min-width:0;padding-right:16px}.cell-type{width:9%;min-width:80px}.cell-thc{width:7%;min-width:65px}.cell-cbd{width:5%;min-width:50px}.cell-price{width:12%;min-width:90px}.cell-price-wide{width:20%;min-width:160px}.cell-status{text-align:right;width:8%;min-width:75px}.cell-name .name{letter-spacing:.3px;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:clamp(18px,18cqh,36px);font-weight:700;overflow:hidden}.cell-name .desc{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-muted);font-size:clamp(12px,10cqh,22px);line-height:1.5;overflow:hidden}.cell-name .dv-brand{color:var(--text-muted);margin-right:4px;font-size:14px;font-weight:600}.cell-name .dv-unit{color:var(--text-sec);margin-left:6px;font-size:10px;font-weight:600}.cell-name .dv-pack{letter-spacing:.5px;color:var(--text-muted);background:#ffffff14;border-radius:6px;margin-left:6px;padding:2px 6px;font-size:9px;font-weight:700}.cell-name .dv-count{color:var(--text-muted);font-size:11px;font-weight:400}.pill{--type:var(--text-sec);letter-spacing:.8px;text-transform:uppercase;white-space:nowrap;color:var(--type);background:color-mix(in srgb, var(--type) 9%, transparent);border:1px solid color-mix(in srgb, var(--type) 19%, transparent);border-radius:14px;padding:5px 14px;font-size:clamp(11px,9cqh,18px);font-weight:700;display:inline-block}.pill--sativa{--type:#22c55e}.pill--indica{--type:#a855f7}.pill--hybrid{--type:#e0e0e0}.pill--cbd{--type:#34d399}.pill--thc{--type:#22c55e}.pill--concentrate{--type:var(--accent)}.cell-thc.thc{color:var(--gold);font-size:clamp(18px,16cqh,32px);font-weight:700}.cell-cbd.cbd{color:var(--text-muted);font-size:clamp(14px,12cqh,24px)}.price{color:var(--text-primary);white-space:nowrap;font-size:clamp(24px,22cqh,50px);font-weight:800}.price-range{color:var(--text-sec);margin-left:3px;font-size:13px;font-weight:400}.unit{color:var(--text-muted);margin-left:2px;font-size:13px}.tier-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tier{background:var(--bg-panel);border:1px solid var(--border);white-space:nowrap;border-radius:5px;padding:5px 10px;font-size:13px}.tier--out{opacity:.35}.tier-unit{color:var(--text-muted);font-size:11px;font-weight:600}.tier-price{color:var(--text-primary);font-size:15px;font-weight:800}.stock{--stk:var(--primary);letter-spacing:1.2px;text-transform:uppercase;text-align:right;white-space:nowrap;color:var(--stk);background:color-mix(in srgb, var(--stk) 8%, transparent);border:1px solid color-mix(in srgb, var(--stk) 21%, transparent);border-radius:4px;padding:6px 14px;font-size:clamp(10px,8cqh,16px);font-weight:800;display:inline-block}.stock--out{--stk:#ef4444}.stock--low{--stk:var(--gold)}.stock--ok{--stk:var(--primary)}.menu--multi .row{flex:none}body.portrait .col-header{font-size:14px}body.portrait .cell-img img,body.portrait .cell-img .img-placeholder{width:64px;height:64px}.menu{flex-direction:column;flex:auto;min-height:0;padding:16px 36px 28px;display:flex;overflow:hidden}.menu-category{flex-direction:column;flex:auto;min-height:0;margin-bottom:28px;display:flex}.menu-category>.cat-header,.menu-category>.subcat-header{flex:none}.cat-header{border-bottom:2px solid var(--accent);justify-content:center;align-items:center;gap:12px;padding:16px 24px 10px;display:flex}.cat-header .icon{font-size:24px}.cat-header .name{letter-spacing:2px;text-transform:uppercase;color:var(--primary);font-size:18px;font-weight:800}.subcat-header{text-align:center;letter-spacing:2px;text-transform:uppercase;color:var(--accent);padding:12px 24px 6px;font-size:14px;font-weight:700}.menu-empty{color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;flex:1;justify-content:center;align-items:center;font-size:18px;display:flex}.menu--multi{justify-content:flex-start;overflow-y:auto}.menu--multi .menu-category{flex:none;margin-bottom:20px}.menu--multi .simple-row{flex:none}body.portrait .menu{padding:20px 36px 32px}body.portrait .cat-header .icon{font-size:32px}body.portrait .cat-header .name{letter-spacing:3px;font-size:24px}body.portrait .subcat-header{padding:16px 24px 8px;font-size:18px}.col-header{color:var(--text-primary);font-size:18px}.text-screen{text-align:center;background:var(--ts-bg,var(--bg));flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 60px;display:flex}.text-screen .ts-title{letter-spacing:4px;text-transform:uppercase;color:var(--ts-title-color,var(--primary));font-weight:900;line-height:1.2;font-size:var(--ts-title-size,64px);margin-bottom:24px}.text-screen .ts-body{white-space:pre-line;max-width:80%;color:var(--text-primary);font-size:28px;font-weight:400;line-height:1.6}body.portrait .text-screen .ts-body{font-size:36px}.image-screen{background:var(--bg);flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.image-screen img{object-fit:var(--img-fit,cover);width:100%;height:100%}.menu-spotlight-screen{background:var(--bg);color:var(--text-primary);flex:1;grid-template-columns:36% 64%;display:grid;overflow:hidden}.menu-spotlight-screen .ms-empty{color:var(--text-sec);letter-spacing:2px;grid-column:1/-1;justify-content:center;align-items:center;font-size:18px;display:flex}.ms-list{border-right:1px solid var(--border);background:#0000002e;flex-direction:column;min-height:0;padding:36px 24px;display:flex;overflow:hidden}.ms-title{letter-spacing:4px;text-transform:uppercase;opacity:.55;margin-bottom:20px;padding-left:4px;font-size:13px;font-weight:800}.ms-rows{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden}.ms-row{opacity:.55;border-left:3px solid #0000;border-radius:8px;flex:1 1 0;align-items:center;gap:14px;min-height:0;padding:10px 14px;transition:background .4s,transform .4s,box-shadow .4s,opacity .4s;display:flex;container-type:size}.ms-row .ms-img{aspect-ratio:1;background:#ffffff0a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:auto;height:78%;max-height:88px;display:flex;position:relative;overflow:hidden}.ms-row .ms-img img{object-fit:cover;width:100%;height:100%;display:block}.ms-row .ms-img--empty{background:linear-gradient(135deg, var(--accent) 0%, transparent 70%), #ffffff0d}.ms-row .ms-img--empty .ms-img-mono{letter-spacing:-.5px;color:#ffffffd9;text-shadow:0 1px 2px #00000059;font-size:clamp(16px,6cqh,28px);font-weight:900}.ms-row .ms-text{flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:0;display:flex}.ms-row .ms-name{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.1px;font-size:clamp(14px,5cqh,22px);font-weight:700;line-height:1.15;overflow:hidden}.ms-row .ms-sub{opacity:.55;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(10px,3.4cqh,14px);font-weight:600;line-height:1.2;overflow:hidden}.ms-row .ms-price{letter-spacing:-.3px;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:clamp(14px,5cqh,24px);font-weight:800}.ms-row--active{border-left-color:var(--accent);box-shadow:0 8px 28px -10px var(--accent);opacity:1;background:linear-gradient(90deg,#ffffff1a,#ffffff0a);transform:translate(6px)}.ms-row--active .ms-img{box-shadow:0 0 0 2px var(--accent), 0 8px 18px -6px #0006}.ms-detail{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, transparent) 0%, transparent 60%);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:0;padding:56px 56px 48px;display:grid;position:relative;overflow:hidden}.ms-detail .sp-well{flex-direction:column;gap:14px;min-width:0;padding-right:48px;display:flex;overflow:hidden}.ms-detail .sp-overline{letter-spacing:.5px;color:var(--accent);opacity:.95;font-family:Georgia,Times New Roman,serif;font-size:clamp(14px,1.05vw,20px);font-style:italic;font-weight:400}.ms-detail .sp-name{letter-spacing:-1.5px;word-break:break-word;overflow-wrap:break-word;margin:4px 0 2px;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,5.6vw,108px);font-weight:400;line-height:.95}.ms-detail .sp-caption{letter-spacing:4px;text-transform:uppercase;opacity:.55;margin-top:6px;font-size:clamp(11px,.85vw,15px);font-weight:500}.ms-detail .sp-desc{opacity:.88;white-space:pre-wrap;flex:auto;min-height:0;margin-top:14px;font-size:clamp(18px,1.5vw,28px);font-weight:400;line-height:1.65;position:relative;overflow:hidden}.ms-detail .sp-desc:after{content:"";background:linear-gradient(to bottom, transparent, var(--bg));pointer-events:none;height:56px;position:absolute;bottom:0;left:0;right:0}.ms-detail .sp-rail{border-left:1px solid color-mix(in srgb, var(--accent) 35%, transparent);flex-direction:column;justify-content:space-between;min-width:0;padding-left:36px;display:flex}.ms-detail .sp-picture{flex:auto;justify-content:center;align-items:center;width:100%;min-height:0;padding:8px 0 24px;display:flex;overflow:hidden}.ms-detail .sp-picture img{object-fit:contain;background:#ffffff06;border-radius:14px;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.ms-detail .sp-picture--empty{background:linear-gradient(135deg, #ffffff0a 0%, #ffffff05 50%, var(--accent) 280%);border-radius:14px;padding:20px}.ms-detail .sp-picture-icon{opacity:.55;filter:drop-shadow(0 6px 18px #00000059);font-size:clamp(72px,7vw,140px);line-height:1}.ms-detail .sp-rail-foot{flex-direction:column;gap:18px;margin-top:auto;display:flex}.ms-detail .sp-price{letter-spacing:-2px;color:var(--accent);font-variant-numeric:tabular-nums;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,4.6vw,88px);font-weight:400;line-height:.85}.ms-detail .sp-qr{flex-direction:row;align-items:center;gap:14px;display:flex}.ms-detail .sp-qr img{background:#fff;border-radius:6px;width:clamp(96px,8vw,140px);height:clamp(96px,8vw,140px);padding:8px;display:block}.ms-detail .sp-qr-label{letter-spacing:2px;text-transform:uppercase;opacity:.7;max-width:120px;font-size:clamp(10px,.75vw,13px);font-weight:500;line-height:1.5}@media (aspect-ratio<=1){.menu-spotlight-screen{grid-template-rows:35% 65%;grid-template-columns:1fr}.ms-list{border-right:none;border-bottom:1px solid var(--border)}.ms-detail{grid-template-columns:1fr;gap:24px;padding:40px 40px 32px}.ms-detail .sp-well{padding-right:0}.ms-detail .sp-rail{border-left:none;border-top:1px solid color-mix(in srgb, var(--accent) 35%, transparent);padding-top:24px;padding-left:0}}.unconfigured-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:40px;display:flex}.unconfigured-screen .big{letter-spacing:3px;color:var(--primary);font-size:48px;font-weight:900}.unconfigured-screen .sub{color:var(--text-sec);font-size:16px;line-height:1.6}.props-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 20px;padding:14px 16px;display:grid}.props-field{flex-direction:column;gap:5px;font-size:13px;display:flex}.props-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-sec);font-size:11px;font-weight:700}.props-field input[type=text],.props-field input[type=number],.props-field select,.props-field textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:6px;outline:none;padding:8px 10px;font-size:14px}.props-field textarea{resize:vertical;min-height:60px;line-height:1.4}.props-field input[type=text]:focus,.props-field input[type=number]:focus,.props-field select:focus,.props-field textarea:focus{border-color:var(--primary)}.props-field input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary);align-self:flex-start}.props-help{color:var(--text-muted);font-size:11px;line-height:1.4}.props-empty{color:var(--text-muted);padding:14px 16px;font-size:13px;font-style:italic}.admin{background:var(--bg);width:100%;height:100%;color:var(--text-primary);flex-direction:column;font-size:14px;display:flex;overflow:hidden}.admin-loading{color:var(--text-muted);flex:1;justify-content:center;align-items:center;display:flex}.admin-top{border-bottom:2px solid var(--border);background:linear-gradient(180deg, var(--bg-panel) 0%, var(--bg) 100%);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.admin-title{letter-spacing:1px;color:var(--primary);font-size:18px;font-weight:800}.admin-tenant{color:var(--text-sec);font-weight:600}.admin-actions{align-items:center;gap:14px;display:flex}.admin-status{font-size:12px;font-weight:600}.admin-status.is-ok{color:#34d399}.admin-status.is-err{color:#ef4444}.admin-status.is-dirty{color:var(--gold)}.admin-save{font:inherit;letter-spacing:.5px;cursor:pointer;background:var(--primary);color:var(--bg);border:none;border-radius:6px;padding:9px 18px;font-size:13px;font-weight:700;transition:filter .15s}.admin-save:hover:not(:disabled){filter:brightness(1.12)}.admin-save:disabled{opacity:.4;cursor:default}.admin-body{flex:auto;min-height:0;display:flex}.admin-pages{border-right:1px solid var(--border);flex-direction:column;flex:0 0 220px;gap:6px;padding:16px 12px;display:flex;overflow-y:auto}.admin-section-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin:4px 4px 8px;font-size:11px;font-weight:700}.admin-hint{letter-spacing:.5px;text-transform:none;color:var(--text-muted);font-weight:400}.admin-page-tab{background:var(--bg-panel);color:var(--text-primary);cursor:pointer;text-align:left;font:inherit;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;display:flex}.admin-page-tab:hover{border-color:var(--border)}.admin-page-tab.is-active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--bg-panel))}.admin-page-tab .ap-num{background:var(--bg);width:24px;height:24px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.admin-page-tab .ap-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.admin-add-page,.admin-add-comp{font:inherit;border:1px dashed var(--border);color:var(--text-sec);cursor:pointer;background:0 0;border-radius:6px;margin-top:6px;padding:9px 12px;font-size:13px;font-weight:600}.admin-add-page:hover,.admin-add-comp:hover{border-color:var(--primary);color:var(--primary)}.admin-editor{flex:auto;padding:20px 24px 60px;overflow-y:auto}.admin-empty{color:var(--text-muted);text-align:center;padding:40px 0}.admin-page-head{flex-wrap:wrap;align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.admin-field{flex-direction:column;gap:5px;display:flex}.admin-field>span{letter-spacing:1px;text-transform:uppercase;color:var(--text-sec);font-size:11px;font-weight:700}.admin-field input,.admin-field select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-primary);border-radius:6px;outline:none;min-width:180px;padding:8px 10px;font-size:14px}.admin-field input:focus,.admin-field select:focus{border-color:var(--primary)}.admin-component{border:1px solid var(--border);background:var(--bg-panel);border-radius:8px;margin-bottom:14px;overflow:hidden}.ac-head{border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:flex-end;gap:16px;padding:12px 16px;display:flex}.ac-type{font:inherit;border:1px solid var(--border);background:var(--bg-panel);color:var(--primary);border-radius:6px;outline:none;padding:8px 10px;font-size:14px;font-weight:700}.ac-duration{flex-direction:column;gap:5px;display:flex}.ac-duration span{letter-spacing:1px;text-transform:uppercase;color:var(--text-sec);font-size:11px;font-weight:700}.ac-duration input{font:inherit;border:1px solid var(--border);background:var(--bg-panel);width:90px;color:var(--text-primary);border-radius:6px;outline:none;padding:7px 10px}.ac-buttons{gap:6px;margin-left:auto;display:flex}.ac-buttons button,.admin-delete-screen{font:inherit;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:7px 11px;font-size:13px}.ac-buttons button:hover:not(:disabled){border-color:var(--primary)}.ac-buttons button:disabled{opacity:.35;cursor:default}.admin-danger{color:#ef4444}.admin-danger:hover:not(:disabled){border-color:#ef4444!important}.admin-delete-screen{color:#fff;background-color:#ef4444}.kiosk-app{background:var(--bg);width:100%;height:100%;color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}.kiosk-error{color:#ef4444;letter-spacing:1px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;font-size:20px;font-weight:700;display:flex}.kiosk-error .sub{color:var(--text-muted);letter-spacing:0;font-size:13px;font-weight:400}
