/* Melagodo 1.1 · styles for the new pieces, using the same tokens as the rest of the app (index.html :root) */

/* happy hour */
.hhband{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;border-radius:18px;background:var(--ink);color:var(--ground)}
.hhband div{display:flex;flex-direction:column;gap:2px;min-width:0}
.hhband b{font-family:var(--display);font-weight:800;font-size:19px;color:var(--sun)}
.hhband span{font-size:13px;color:#E2DCE0}
.hhband .hhleft{flex:none;font-weight:700;font-size:15px;color:var(--ground);background:rgba(246,244,241,.12);border-radius:10px;padding:6px 10px}
.hhtag{align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.04em;color:#9F2D25;background:#FBE1DC;border-radius:6px;padding:2px 7px}
.dish .pr .was,.recap s{font-size:12px;font-weight:600;color:#9A8473;margin-right:2px}
.dish .pr .hot{color:#7A2D60}

/* formules */
.combo{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px;border-radius:20px;background:var(--grad);text-align:left;margin-bottom:12px;box-shadow:0 8px 20px rgba(91,33,72,.22);color:#fff}
.combo .cb-l{display:flex;flex-direction:column;gap:3px;min-width:0}
.combo .cb-l b{font-family:var(--display);font-weight:800;font-size:20px;line-height:1.1}
.combo .cb-l span{font-size:13px;color:var(--soft)}
.combo .cb-r{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}
.combo .cb-r b{font-size:20px}
.combo .cb-r small{font-size:12px;font-weight:800}
.cb-steps{display:flex;flex-direction:column;gap:8px}
.cb-step{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:1.5px dashed var(--line-2);background:var(--card);text-align:left}
.cb-step i{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--line);font:700 13px var(--mono);font-style:normal;flex:none}
.cb-step span{flex:1;display:flex;flex-direction:column;min-width:0}
.cb-step small{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cb-step em{font-style:normal;font-size:12px;font-weight:700;color:var(--muted)}
.cb-step.now{border:2px solid var(--orange)}
.cb-step.now i{background:var(--grad);color:#fff}
.cb-step.ok{border:1.5px solid var(--ok-soft);background:#F1F8F2}
.cb-step.ok i{background:var(--ok);color:#fff}
.cb-step:disabled{opacity:.5}
.cb-pick{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cb-pick .sp .tiny{font-size:12px;color:var(--muted);flex:none}

/* call the waiter */
.callfab{position:fixed;right:16px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:22;display:flex;align-items:center;gap:8px;height:48px;padding:0 16px 0 12px;border-radius:999px;background:var(--card);border:1.5px solid var(--ink);box-shadow:0 10px 24px rgba(23,20,26,.18);font-weight:800;font-size:14px;color:var(--ink)}
body:not(.has-nav) .callfab{bottom:calc(20px + env(safe-area-inset-bottom,0px))}
body:has(#cartbar) .callfab{bottom:calc(166px + env(safe-area-inset-bottom,0px))}
body:not(.has-nav):has(#cartbar) .callfab{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.callfab.live{background:var(--ink);color:var(--sun);animation:glow 1.8s infinite}
.callfab.going{background:var(--ok);border-color:var(--ok);color:#fff;animation:none}
.callgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.callopt{min-height:96px;border-radius:20px;border:1.5px solid var(--line-2);background:var(--card);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:12px 14px;text-align:left}
.callopt span{font-size:26px;line-height:1}
.callopt b{font-size:15px}
.callopt:active{transform:scale(.97)}
.callstate{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;background:var(--butter)}
.callstate.going{background:#E3F2E6}
.callstate > span:first-child{display:grid;place-items:center;width:40px;height:40px;border-radius:999px;flex:none;color:var(--ok);font-weight:800}
.callstate div{display:flex;flex-direction:column;gap:2px}
.callstate small{color:var(--soft);font-size:13px}

/* welcome: book / gift */
.moredoors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.door{display:flex;gap:10px;align-items:flex-start;padding:14px;border-radius:18px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.door span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.door b{font-size:14px;line-height:1.2}
.door small{font-size:12px;color:var(--muted)}
.dico{font-size:22px;line-height:1;flex:none}
@media (max-width:360px){.moredoors{grid-template-columns:1fr}}

/* booking */
.slotgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.slot{height:44px;border-radius:12px;border:1px solid var(--line-2);background:var(--card);font:700 14px var(--mono)}
.slot[aria-pressed="true"]{background:var(--ink);color:var(--sun);border-color:var(--ink)}
.slot:disabled{background:#EFEBED;color:#A8927F;text-decoration:line-through;border-color:#EFEBED}
.dayrow{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:0 18px 2px}
.dayrow::-webkit-scrollbar{display:none}
.chipday{flex:none;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);font-weight:700;font-size:14px;white-space:nowrap}
.chipday[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}

/* gift cards */
.giftcard{aspect-ratio:1.6;max-width:100%;border-radius:22px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;color:#F6F4F1;background:linear-gradient(135deg,#7A2D60 0%,#5B2148 55%,#8E3B70 100%);box-shadow:0 14px 30px rgba(194,65,12,.28)}
.giftcard .gc-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.giftcard .gc-amt{font-size:42px;letter-spacing:-.02em}
.giftcard .gc-to{font-size:14px;font-weight:600}
.giftcard .gc-code{align-self:flex-start;font-size:15px;background:rgba(23,20,26,.25);border-radius:8px;padding:4px 10px}
.giftbox{border-radius:18px;background:var(--card);border:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:10px}
.gb-h{display:flex;gap:10px;align-items:flex-start}
.gb-h span:last-child{display:flex;flex-direction:column;gap:2px}
.gb-h small{font-size:13px;color:var(--soft)}
.gb-row{display:flex;gap:8px}
.gb-row input{flex:1;min-width:0;font-family:var(--mono);text-transform:uppercase}
.gb-row .btn{width:auto;height:48px;padding:0 16px;font-size:14px}
.gb-used{display:flex;justify-content:space-between;font-size:14px;color:var(--ok-ink);font-weight:700}

/* customer space */
.favrow{display:flex;flex-direction:column;gap:8px}
.fav{display:flex;gap:12px;align-items:center}
.fav span{display:flex;flex-direction:column}
.fav small{font-size:12px;color:var(--muted)}
.bdaybox{border:1.5px dashed #F2A2B1}

/* floor: calls, bookings, my planning */
.callcard{background:#7A2D60;color:#fff;border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:10px;animation:glow 1.8s infinite}
.callcard .sv-t{color:#fff}
.callcard small{color:#FFE3D6}
.callcard .cc-what{font-size:17px}
.callcard .kt-acts button{background:#fff;color:#7A2D60;border-color:#fff}
.callcard .kt-acts button.go{background:#17141A;color:#E9A9C6;border-color:#17141A}
.callcard.going{background:var(--card);color:var(--ink);border:2px solid var(--ok);animation:none}
.callcard.going .sv-t{color:var(--ink)}
.callcard.going small{color:var(--muted)}
.callcard.going .kt-acts button{background:var(--card);color:var(--ink);border-color:var(--line-2)}
.callcard.going .kt-acts button.go{background:var(--ok);color:#fff;border-color:var(--ok)}
.bkrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.bkrow:first-of-type{border-top:0}
.bkrow .bk-n{flex:1;min-width:0;display:flex;flex-direction:column}
.bkrow .bk-n small{font-size:12px;color:var(--muted)}
.bkrow .bk-n a{color:var(--ink)}
.bkrow .bk-a{display:flex;gap:6px;flex:none}
.bkrow .bk-a button{height:36px;padding:0 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--card);font-weight:700;font-size:12px}
.bkrow .bk-a button.go{background:var(--ok);color:#fff;border-color:var(--ok)}
.bkrow .bk-s{font-size:12px;font-weight:800;color:var(--muted)}
.bkrow.seated .bk-s{color:var(--ok-ink)}
.bkrow.noshow{opacity:.55}
.plrow{display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:10px;font-size:14px;background:var(--butter-2)}
.plrow.off{background:transparent;color:#A8927F}
.plrow.today{background:var(--ink);color:var(--sun)}

/* kitchen timing */
.kcue{display:inline-block;min-width:74px;text-align:center;margin-right:8px;font:700 11px var(--mono);border-radius:7px;padding:2px 6px;vertical-align:1px}
.kcue.wait{background:var(--line);color:var(--soft)}
.kcue.fire{background:var(--sun);color:var(--ink);animation:glow 1.4s infinite}
.kcue.on{background:#DDF0E1;color:var(--ok-ink)}
.kcue.due{background:var(--ink);color:var(--sun)}
.ktime{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted)}
.kage{font-size:15px;font-weight:700}
.kage.ok{color:var(--ok-ink)}.kage.mid{color:#B45309}.kage.late{color:var(--warn)}
.kbar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.kbar i{display:block;height:100%;border-radius:999px;transition:width .9s linear}
.kbar i.ok{background:#9CCBA8}.kbar i.mid{background:var(--sun)}.kbar i.late{background:#FF6B5B}

/* owner dashboard */
.owner{display:flex;flex-direction:column;gap:14px;padding-top:calc(16px + env(safe-area-inset-top,0px));padding-bottom:60px}
.owner .ow-v{font:700 12px var(--mono);color:var(--muted)}
.ow-hello{display:flex;flex-direction:column;gap:2px}
.ow-hello h1{font-family:var(--display);font-weight:800;font-size:30px;line-height:1.05}
.ow-hello span{font-size:13px;color:var(--muted);text-transform:capitalize}
.ow-nav{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:8px 16px;background:var(--ground)}
.ow-nav::-webkit-scrollbar{display:none}
.ow-nav button{flex:none;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);font-weight:700;font-size:13px}
.ow-h{font-family:var(--display);font-weight:800;font-size:26px;margin-top:8px;scroll-margin-top:60px}
.owner section{scroll-margin-top:60px}
.ow-hero{background:var(--ink);color:var(--ground);border-radius:26px;padding:18px;display:flex;flex-direction:column;gap:14px}
.oh-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.oh-top span:first-child{display:flex;flex-direction:column;gap:2px}
.oh-top small{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#E2DCE0}
.oh-top b{font-size:40px;letter-spacing:-.03em;line-height:1.05}
.oh-bars{display:flex;align-items:flex-end;gap:5px;height:76px}
.oh-bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}
.oh-bars i{display:block;width:100%;border-radius:5px 5px 2px 2px;background:var(--orange)}
.oh-bars i.now{background:var(--sun)}
.oh-bars i.later{background:rgba(142,59,112,.3)}
.oh-bars span{font:600 9px var(--mono);color:#B3AAB1}
.oh-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.oh-tiles div{background:rgba(246,244,241,.08);border-radius:14px;padding:10px;display:flex;flex-direction:column;min-width:0}
.oh-tiles b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oh-tiles span{font-size:11px;color:#E2DCE0}
.oh-tiles.light div{background:var(--butter-2)}
.oh-tiles.light span{color:var(--muted)}
.oh-tiles.light div.dark{background:var(--ink)}
.oh-tiles.light div.dark b{color:var(--sun)}
.oh-tiles.light div.dark span{color:#E2DCE0}
.ow-alerts{display:flex;flex-direction:column;gap:8px}
.oal{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 12px;font-size:14px}
.oal span{flex:1;min-width:0;font-weight:600}
.oal small{font:600 11px var(--mono);color:var(--muted);flex:none}
.oal i{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;font-style:normal;font-weight:800;flex:none}
.oal i.warn{background:#FBEDEA;color:#9F2D25}.oal i.mid{background:var(--butter);color:#5B2148}.oal i.ok{background:#DDF0E1;color:var(--ok-ink)}
.otabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.otab{height:48px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 14px var(--mono);line-height:1.1;border:1.5px dashed var(--line-2);color:#8C7462}
.otab small{font:800 9px var(--body);text-transform:uppercase}
.otab.open{background:var(--butter);border:0;color:var(--ink)}
.otab.ready{background:#DDF0E1;border:2px solid var(--ok);color:var(--ok-ink)}
.otab.call{background:#7A2D60;border:0;color:#fff;animation:glow 1.8s infinite}
.otab.paid{background:#DDF0E1;border:0;color:var(--ok-ink)}
.ow-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.ow-legend span{display:inline-flex;align-items:center;gap:5px}
.ow-legend i{width:11px;height:11px;border-radius:3px}
.ow-legend i.open{background:var(--butter)}.ow-legend i.ready{background:#DDF0E1;border:2px solid var(--ok)}.ow-legend i.call{background:#7A2D60}.ow-legend i.paid{background:#DDF0E1}.ow-legend i.free{border:1.5px dashed var(--line-2)}
.ow-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.otile{background:var(--butter-2);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column}
.otile small{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5B2148}
.otile b{font-size:18px}
.otile span{font-size:12px;color:var(--muted)}
.obar{display:grid;grid-template-columns:104px minmax(0,1fr) 72px;gap:10px;align-items:center;font-size:13px}
.obar span:first-child{font-weight:600}
.obar .tr,.ow-share .tr{height:10px;border-radius:999px;background:var(--butter-2);overflow:hidden}
.obar .tr i,.ow-share .tr i{display:block;height:100%;border-radius:999px}
.obar b{text-align:right}
.ow-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ow-row > span{display:flex;flex-direction:column;min-width:0}
.ow-row small{font-size:12px;color:var(--muted)}
.ow-row label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}
.ow-row input,.ow-row select,.ow-form input,.ow-form select{height:46px;border-radius:12px;padding:0 10px;font-size:15px;min-width:0}
.ow-row input[type=time]{width:112px}
.ow-row select{flex:1}
.ow-form{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;background:var(--butter-2)}
.ow-form .ow-row{flex-wrap:nowrap}
.ow-form .ow-row input{flex:1}
.sw11{width:52px;height:30px;border-radius:999px;background:var(--line-2);position:relative;flex:none}
.sw11 i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .2s}
.sw11[aria-checked="true"]{background:var(--ok)}
.sw11[aria-checked="true"] i{left:25px}
.ow-best{display:flex;align-items:center;gap:10px;font-size:14px}
.ow-best i{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--ink);color:var(--sun);font:700 12px var(--mono);font-style:normal;flex:none}
.ow-best span{flex:1;font-weight:600}
.ow-wk{display:flex;align-items:center;gap:8px}
.ow-wk button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line-2);background:var(--card);font-weight:800;font-size:18px}
.ow-wk b{font:700 13px var(--mono)}
.pl-day{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;align-items:start}
.pl-day.today b{color:#7A2D60}
.pl-day > div{display:flex;flex-wrap:wrap;gap:6px}
.pl-sh{display:inline-flex;align-items:center;gap:6px;background:var(--butter-2);border-radius:8px;padding:3px 4px 3px 8px;font-weight:600}
.pl-sh button{width:22px;height:22px;border-radius:6px;font-weight:800;color:var(--muted)}
.heat11{display:grid;grid-template-columns:34px repeat(7,minmax(0,1fr));gap:4px;font:600 10px var(--mono);color:var(--muted);align-items:center;text-align:center}
.heat11 i{display:block;height:22px;border-radius:5px}
.panel.strong{border:1.5px solid var(--ink)}
.okchip{font-size:11px;font-weight:800;background:#DDF0E1;color:var(--ok-ink);border-radius:8px;padding:3px 8px}
.ow-share{display:grid;grid-template-columns:76px minmax(0,1fr) 76px;gap:10px;align-items:center;font-size:13px}
.ow-share span:first-child{display:flex;flex-direction:column}
.ow-share small{color:var(--muted)}
.ow-share .tr i{background:var(--orange)}
.ow-share b{text-align:right}
.lawbox{border-radius:14px;background:#DDF0E1;padding:10px 12px;font-size:12.5px;color:#2E5236;line-height:1.45}
.ow-stars{flex-direction:row!important;align-items:baseline;gap:6px}
.ow-stars b{font-size:34px}
.ow-stars span{color:#8E3B70;font-size:22px}
.privbox{border-radius:14px;background:#FBEDEA;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--soft)}
.privbox b{color:#9F2D25}
.panel.later{flex-direction:row;align-items:center;gap:12px;background:transparent;border:1.5px dashed var(--line-2)}
.panel.later span:last-child{display:flex;flex-direction:column;gap:2px}
.panel.later small{font-size:12px;color:var(--muted)}
@media (min-width:700px){.owner{max-width:520px}}
@media (prefers-reduced-motion:reduce){.callfab.live,.callcard,.otab.call,.kcue.fire{animation:none}}
.kcue.bar{background:#DCEFF5;color:#2A6F8A}
.ow-row > .ow-wk{flex-direction:row}
.ow-form .ow-row label{flex:1;min-width:0}
.ow-form .ow-row label input{flex:1;width:auto}
.ow-link{font-size:13px;font-weight:700;color:var(--ink);text-decoration:underline;align-self:flex-start;padding:4px 0}
.ow-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.ow-days button{height:40px;border-radius:10px;border:1px solid var(--line-2);background:var(--card);font-weight:800}
.ow-days button[aria-pressed="true"]{background:#FBEDEA;color:var(--warn);border-color:#E7B2AA;text-decoration:line-through}
