:root{--ink:#102015;--muted:#66736a;--cream:#f4f1e8;--paper:#fffef9;--green:#1e4429;--lime:#bad83b;--red:#b93c2f;--line:#d9ddd1;--shadow:0 14px 40px rgba(15,32,21,.13)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}button,input,select,textarea{font:inherit}button{cursor:pointer}.kiosk-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,28vw)}.shopping-panel{display:flex;flex-direction:column;min-width:0;padding:24px 26px 18px;background:radial-gradient(circle at 15% 15%,#fff 0,#f6f4eb 42%,#e9ede2 100%)}.search-header{position:relative}.search-header label,.customer-box label{display:block;margin:0 0 7px;font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:var(--green)}.search-line{height:68px;display:flex;background:#fff;border:3px solid var(--green);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.search-line input{flex:1;border:0;outline:0;padding:0 22px;font-size:24px;font-weight:700;color:var(--ink);min-width:0}.search-line button{width:64px;border:0;background:#eff2e9;color:var(--green);font-size:31px}.search-results{position:absolute;z-index:15;left:0;right:0;top:92px;max-height:330px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.result-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;border:0;border-bottom:1px solid #edf0e8;padding:14px 18px;text-align:left;background:#fff}.result-row:hover{background:#f2f7e5}.result-row span{display:block}.result-row small{color:var(--muted)}.result-row b{white-space:nowrap}.specials-heading{display:flex;justify-content:space-between;align-items:end;margin:24px 0 13px}.specials-heading span,.admin-title span{font-size:11px;letter-spacing:.16em;font-weight:900;color:#668124}.specials-heading h1,.admin-title h1{font-size:27px;margin:2px 0 0}.specials-heading a{color:var(--green);font-weight:800}.special-grid{display:grid;grid-template-columns:repeat(5,minmax(105px,1fr));gap:12px;flex:1;align-content:start}.special-button{aspect-ratio:1/1;border:0;border-radius:17px;padding:13px;color:#fff;box-shadow:0 7px 17px rgba(15,32,21,.16);display:flex;flex-direction:column;text-align:left;justify-content:space-between;transition:transform .12s}.special-button:active{transform:scale(.96)}.special-button.empty{background:#e2e5dc!important;color:#8d968f;box-shadow:none;border:2px dashed #c9cec2;cursor:default}.special-button small{font-size:10px;font-weight:900;letter-spacing:.1em;opacity:.8}.special-button strong{font-size:14px;line-height:1.18}.special-button b{font-size:18px}.sample-note{margin:11px 0 0;padding:8px 11px;border-radius:8px;background:#fff8dc;color:#6b5a13;font-size:12px}.keyboard{margin-top:13px;padding:12px;border-radius:16px;background:#24372a;display:grid;gap:7px}.key-row{display:flex;justify-content:center;gap:6px}.key{min-width:42px;height:42px;border:0;border-radius:8px;background:#fff;color:#15241a;font-weight:800;box-shadow:0 2px 0 #aeb8ae}.key.wide{min-width:82px}.key.space{flex:1;max-width:330px}.order-panel{height:100vh;position:sticky;top:0;display:flex;flex-direction:column;padding:22px;background:#102c1b;color:#fff;box-shadow:-12px 0 35px rgba(15,32,21,.18);overflow:auto}.brand{display:flex;align-items:center;gap:12px}.logo-placeholder{width:58px;height:58px;display:grid;place-items:center;border:2px solid var(--lime);border-radius:16px;background:linear-gradient(145deg,#2d6239,#173921);color:var(--lime);font-weight:950;letter-spacing:-.06em;font-size:22px}.brand strong,.brand span{display:block}.brand strong{font-size:20px}.brand span{font-size:11px;letter-spacing:.22em;color:var(--lime);font-weight:900}.customer-box{margin-top:20px;padding:14px;border-radius:14px;background:rgba(255,255,255,.08)}.customer-box label{color:#d7e6ae}.customer-box>div{display:flex}.customer-box input{width:100%;min-width:0;border:0;border-radius:9px 0 0 9px;padding:11px}.customer-box button{border:0;border-radius:0 9px 9px 0;padding:0 13px;background:var(--lime);font-weight:900;color:#1b2b1d}.customer-box small{display:block;margin-top:8px;color:#b6c2b8}.cart-wrap{flex:1;min-height:150px;margin-top:19px;overflow:auto}.cart-title{display:flex;align-items:center;justify-content:space-between}.cart-title h2{margin:0;font-size:18px}.cart-title button{border:0;background:none;color:#b9c7bd}.cart{margin-top:8px}.empty-cart{text-align:center;padding:30px 8px;color:#c5cfc8}.cart-item{display:grid;grid-template-columns:1fr auto;gap:6px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.12)}.cart-item strong{font-size:13px}.cart-item small{display:block;color:#aebbb1;margin-top:3px}.cart-actions{display:flex;align-items:center;gap:6px}.cart-actions button{width:28px;height:28px;border:0;border-radius:7px;background:rgba(255,255,255,.12);color:#fff;font-weight:900}.totals{border-top:1px solid rgba(255,255,255,.2);padding-top:10px}.totals div{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.totals .grand{margin-top:7px;padding-top:12px;border-top:1px solid rgba(255,255,255,.25);font-size:22px}.checkout{margin-top:14px;min-height:64px;border:0;border-radius:14px;background:var(--lime);color:#142018;font-size:18px;font-weight:950}.checkout span{font-size:10px;padding:3px 5px;border-radius:4px;background:#26452d;color:#fff;vertical-align:middle}.checkout:disabled{opacity:.35}.modal-layer{display:none;position:fixed;z-index:50;inset:0;background:rgba(6,17,10,.8);place-items:center;padding:20px}.modal-layer.open{display:grid}.terminal{width:min(490px,100%);background:#fff;color:var(--ink);border-radius:25px;padding:30px;text-align:center;box-shadow:0 30px 90px #0008}.terminal-badge{display:inline-flex;padding:7px 11px;border-radius:99px;background:#eaf3d0;color:#36511e;font-size:11px;font-weight:900;letter-spacing:.13em}.terminal h2{margin:15px 0 5px;font-size:29px}.terminal p{color:var(--muted)}.countdown{--progress:0%;width:154px;height:154px;margin:22px auto;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--lime) var(--progress),#e5eadf 0);position:relative}.countdown:before{content:"";position:absolute;inset:13px;background:#fff;border-radius:50%}.countdown strong{z-index:1;font-size:62px}.terminal-status{min-height:24px;font-weight:800;color:var(--green)}.terminal button{margin-top:18px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 20px}.approved-mark{font-size:70px;color:#668b25}.toast{display:none;position:fixed;z-index:80;left:50%;bottom:24px;transform:translateX(-50%);background:#102c1b;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow)}.toast.show{display:block}.admin-body{background:#f1f3ed}.admin-header{min-height:86px;display:flex;justify-content:space-between;align-items:center;padding:14px 28px;background:#102c1b;color:#fff}.admin-header nav{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.admin-header nav button,.admin-header nav a{border:0;border-radius:8px;background:rgba(255,255,255,.1);color:#fff;text-decoration:none;padding:10px 13px;font-weight:800}.admin-header nav button.active{background:var(--lime);color:#172418}.admin-main{padding:26px;max-width:1500px;margin:auto}.admin-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.admin-title button,.inline-form>button{border:0;border-radius:9px;background:var(--green);color:#fff;padding:12px 16px;font-weight:900}.admin-panel{background:#fff;border-radius:17px;box-shadow:var(--shadow);padding:17px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e9ede5;vertical-align:top;font-size:13px}th{font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}td small{display:block;color:var(--muted)}.table-actions button,.matrix-card button{border:0;background:#edf1e8;color:var(--green);border-radius:7px;padding:6px 9px;margin:2px;font-weight:800}.pill{display:inline-block;border-radius:99px;padding:4px 7px;background:#e8efd8;color:#38511e;font-size:10px;font-weight:900}.pill.off{background:#ececec;color:#777}.inline-form{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-bottom:1px solid var(--line);padding-bottom:17px}.inline-form h2{grid-column:1/-1;margin:0}.inline-form input,.inline-form select,.editor-form input,.editor-form select,.editor-form textarea,.attribute-card input,.special-editor input,.special-editor select{width:100%;padding:10px;border:1px solid #cfd6c9;border-radius:8px}.inline-form #flexInputs{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.matrix-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px;margin-top:17px}.matrix-card{border:1px solid var(--line);border-radius:12px;padding:13px}.matrix-card h3{margin:0 0 6px}.matrix-card p{margin:3px 0;color:var(--muted);font-size:13px}.attribute-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.attribute-card,.special-editor{border:1px solid var(--line);border-radius:12px;padding:13px}.attribute-card h3,.special-editor h3{margin:0 0 9px}.attribute-card button,.special-editor button{margin-top:8px;border:0;border-radius:7px;background:var(--green);color:#fff;padding:8px 10px;font-weight:800}.special-admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.editor{width:min(900px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:18px;padding:22px}.editor-head{display:flex;justify-content:space-between;align-items:center}.editor-head h2{margin:0}.editor-head button{border:0;background:none;font-size:27px}.editor-form{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:18px}.editor-form label{font-size:11px;font-weight:800;color:var(--muted)}.editor-form label span{display:block;margin-bottom:4px}.editor-form .wide{grid-column:1/-1}.editor-form textarea{min-height:100px}.editor-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.editor-actions button{border:0;border-radius:8px;padding:11px 16px;font-weight:900}.editor-actions button[type=submit]{background:var(--green);color:#fff}
@media(max-width:1100px){.kiosk-shell{grid-template-columns:1fr 340px}.special-grid{grid-template-columns:repeat(4,1fr)}.special-admin-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:780px){.kiosk-shell{display:block}.shopping-panel{min-height:100vh;padding:15px}.order-panel{position:relative;height:auto;min-height:75vh}.special-grid{grid-template-columns:repeat(2,1fr)}.special-button{aspect-ratio:auto;min-height:120px}.keyboard{position:relative}.admin-header{align-items:flex-start;gap:15px;flex-direction:column}.admin-main{padding:14px}.inline-form,.editor-form{grid-template-columns:1fr}.inline-form #flexInputs,.attribute-grid,.special-admin-grid{grid-template-columns:1fr}.editor-form .wide{grid-column:auto}.admin-title{align-items:flex-start;gap:12px}.admin-title h1{font-size:23px}}

/* Portrait kiosk target: 1080 × 1920, while retaining fluid browser behavior. */
@media (orientation:portrait) and (min-width:781px){
  html,body{height:100%;overflow:hidden}
  .kiosk-shell{height:100dvh;min-height:0;grid-template-columns:minmax(0,72fr) minmax(300px,28fr);overflow:hidden}
  .shopping-panel{height:100dvh;min-height:0;overflow-y:auto;padding:clamp(20px,2.4vw,32px)}
  .search-line{height:clamp(68px,6.8vw,78px)}
  .search-line input{font-size:clamp(20px,2.25vw,27px)}
  .specials-heading{margin:clamp(18px,2.2vh,30px) 0 clamp(12px,1.4vh,18px)}
  .special-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.4vw,18px);flex:1 1 0;align-content:start}
  .special-button{width:100%;aspect-ratio:1/1;padding:clamp(11px,1.25vw,16px)}
  .special-button strong{font-size:clamp(13px,1.35vw,17px)}
  .special-button b{font-size:clamp(17px,1.8vw,22px)}
  .sample-note{font-size:clamp(11px,1.05vw,13px)}
  .keyboard{width:100%;flex:0 0 auto;padding:clamp(14px,1.6vw,20px);gap:clamp(8px,1vw,12px)}
  .key-row{width:100%;gap:clamp(7px,.85vw,10px)}
  .key{min-width:0;flex:1;height:clamp(56px,6.2vw,68px);font-size:clamp(16px,1.9vw,22px);border-radius:clamp(8px,1vw,12px)}
  .key.wide{min-width:clamp(88px,10vw,112px);flex:0 1 auto}
  .key.space{max-width:48%}
  .order-panel{position:relative;width:auto;height:100dvh;min-height:0;padding:clamp(16px,2vw,24px);overflow-y:auto}
  .order-panel .brand strong{font-size:clamp(17px,1.85vw,21px)}
  .customer-box{margin-top:clamp(15px,1.8vh,24px)}
  .cart-wrap{min-height:0;overflow-y:auto}
  .checkout{min-height:clamp(62px,6.3vw,72px)}
}

@media (min-width:1101px) and (orientation:landscape){
  .special-grid{grid-template-columns:repeat(4,minmax(105px,1fr))}
}

/* Keep kiosk controls anchored; only product buttons and cart lines scroll. */
body:not(.admin-body) .kiosk-shell{height:100dvh;min-height:0;overflow:hidden}
body:not(.admin-body) .shopping-panel{height:100dvh;min-height:0;overflow:hidden}
body:not(.admin-body) .special-grid{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}
body:not(.admin-body) .keyboard{position:relative;z-index:5;width:100%;flex:0 0 auto}
body:not(.admin-body) .order-panel{height:100dvh;min-height:0;overflow:hidden}
body:not(.admin-body) .cart-wrap{min-height:0;overflow-y:auto;overscroll-behavior:contain}
body:not(.admin-body) .totals,body:not(.admin-body) .checkout{flex:0 0 auto}

@media(max-width:780px){
  body:not(.admin-body) .kiosk-shell{height:auto;min-height:100dvh;overflow:visible}
  body:not(.admin-body) .shopping-panel{height:100dvh;min-height:0;overflow:hidden}
  body:not(.admin-body) .order-panel{height:100dvh;min-height:0;overflow:hidden}
}
