/* Restaurant suite screens (suite.js). Same tokens and components as admin.css. */
.view--wide { max-width: 1440px; }
.tabs button { padding: 0 .8rem; }
@media (max-width: 1280px) {
  .tabs { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
  .tabs button { flex: none; }
}
.muted { color: var(--muted); font-size: .92rem; }
.right { margin-left: auto; }
.sub { display: block; color: var(--muted); font: 400 .8rem/1.3 var(--sans); }
.act--sm { min-height: 36px; padding: 0 .7rem; font-size: .66rem; }
.bar--section { margin-top: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.inline { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.inline input, .inline select { min-height: 44px; padding: 0 .9rem; background: var(--bg-2); color: var(--cream); border: 1px solid var(--line); border-radius: 999px; font: 400 1rem/1 var(--sans); color-scheme: dark; }
.panel { padding: 1rem 1.15rem; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: .75rem; align-content: start; min-width: 0; }
.cols { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.is-bad { color: var(--danger); }
.is-good { color: #8fd3aa; }
.table tr.is-low td:first-child { color: var(--danger); }
.table tr.is-off { opacity: .55; }
.table td.rowacts { white-space: nowrap; text-align: right; }
.table td.rowacts .act { margin-left: .25rem; }

/* KPI cards */
.kpis { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.kpi { padding: .85rem 1rem; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: .3rem; align-content: start; min-width: 0; }
.kpi small { font: 500 .64rem/1.2 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.kpi b { font: 400 2rem/1 var(--serif); font-variant-numeric: tabular-nums; }
.kpi__sub { font-size: .85rem; color: var(--muted); overflow-wrap: anywhere; }
.kpi--bad { border-color: var(--danger); }
.kpi--bad b { color: var(--danger); }
.kpi--warn { border-color: var(--gold); }
.delta { font: 500 .78rem/1 var(--sans); color: var(--muted); }
.delta--good { color: #8fd3aa; }
.delta--bad { color: var(--danger); }

.chart { width: 100%; height: auto; display: block; }
.chart__bar { fill: var(--gold); opacity: .85; }
.chart__dot { fill: var(--cream); }
.chart__label { fill: var(--muted); font: 500 13px var(--sans); text-anchor: middle; text-transform: capitalize; }
.chart__value { fill: var(--cream); font: 400 12px var(--sans); text-anchor: middle; }
.insights { display: grid; gap: .5rem; }
.insights li { padding: .6rem .8rem; border-left: 3px solid var(--line); background: rgba(var(--cream-rgb), .03); font-size: .95rem; }
.insights li.is-good { border-left-color: #6fbf8f; }
.insights li.is-bad { border-left-color: var(--danger); }
.mini { width: 100%; border-collapse: collapse; font-size: .92rem; }
.mini th { text-align: left; padding: .4rem .5rem; font: 500 .62rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.mini td { padding: .5rem; border-top: 1px solid var(--line); }
.mini .num { text-align: right; font-variant-numeric: tabular-nums; }

/* Pedidos: tables board */
.tgrid { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.tcard {
  min-height: 108px; padding: .8rem .9rem; display: grid; gap: .25rem; align-content: start; text-align: left; cursor: pointer;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; color: var(--cream); font: inherit;
}
.tcard b { font: 400 1.5rem/1 var(--serif); }
.tcard small { color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.tcard--seated { border-color: #6fbf8f; }
.tcard--order { border-color: var(--gold); background: rgba(var(--gold-rgb), .08); }
.tcard__total { font: 400 1.15rem/1 var(--serif); color: var(--gold-soft); }
.tcard__tags { display: flex; flex-wrap: wrap; gap: .25rem; }
.pulse { animation: pulse 1.4s ease-in-out infinite; }
@keyframes pulse { 50% { background: rgba(var(--gold-rgb), .25); } }
@media (prefers-reduced-motion: reduce) { .pulse { animation: none; } }
.party { display: flex; flex-wrap: wrap; gap: .5rem; }
.party .act { min-width: 56px; min-height: 52px; font-size: .9rem; }

/* Pedidos: the floor map with orders */
.room--orders .fx { pointer-events: none; }
.tbl[data-state="seated"] { border-color: #6fbf8f; background: #17261e; }
.tbl[data-state="seated"] .tbl__n { color: #8fd3aa; }
.tbl[data-state="order"] { background: #3a2a14; border-color: var(--gold); }
.tbl[data-state="order"] .tbl__n { color: var(--gold-soft); }
.tbl[data-drafts] { border-color: var(--danger); border-style: dashed; }
.tbl[data-ready] { animation: ready 1.4s ease-in-out infinite; }
@keyframes ready { 50% { box-shadow: 0 0 0 calc(1 * var(--u)) rgba(var(--gold-rgb), .6); } }
@media (prefers-reduced-motion: reduce) { .tbl[data-ready] { animation: none; box-shadow: 0 0 0 calc(.8 * var(--u)) rgba(var(--gold-rgb), .6); } }
.tbl__flag { font: 600 max(.55rem, calc(.95 * var(--u)))/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; padding: calc(.25 * var(--u)) calc(.5 * var(--u)); border-radius: 999px; }
.tbl__flag.is-ready { background: var(--gold); color: var(--bg); }
.tbl__flag.is-draft { color: var(--danger); }

/* Pedidos: menu sections as photo tiles */
.catgrid { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.cattile {
  position: relative; aspect-ratio: 3 / 2; padding: .6rem .7rem; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: .15rem;
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden; cursor: pointer; text-align: left; color: #fff;
  background: var(--bg-2) center / cover no-repeat; font: inherit;
}
.cattile::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(var(--bg-rgb), .88) 8%, rgba(var(--bg-rgb), .1) 65%); }
/* line drawings (.svg, e.g. Elaine's) sit whole on a cream card instead of filling the tile like a photo */
.cattile[style*=".svg"] { background-color: var(--cream); background-size: auto 62%; background-position: 50% 22%; background-repeat: no-repeat; }
.cattile[style*=".svg"]::before { background: linear-gradient(to top, rgba(var(--bg-rgb), .92) 30%, rgba(var(--bg-rgb), 0) 58%); }
.cattile > * { position: relative; }
.cattile b { font: 400 1.2rem/1.1 var(--serif); }
.cattile small { font: 500 .66rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--gold-soft); }
.cattile--plain { background: linear-gradient(150deg, var(--bg-2), var(--bg)); }
.cattile--plain::before { display: none; }
.cattile:active { transform: scale(.98); }
.cattile:hover { border-color: var(--gold); }
.catbar { display: flex; align-items: center; gap: .75rem; }
.catbar h3 { margin: 0; font: 400 1.6rem/1.1 var(--serif); letter-spacing: 0; text-transform: none; color: var(--cream); }
.catback { width: 48px; height: 48px; flex: none; border-radius: 50%; border: 1px solid var(--line); background: none; color: var(--cream); font-size: 1.5rem; cursor: pointer; }
.catback:hover { border-color: var(--gold); }

/* Pedidos: one order */
.order__title { font: 400 1.9rem/1 var(--serif); margin-inline: .5rem; }
.porder { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); align-items: start; }
@media (max-width: 900px) { .porder { grid-template-columns: 1fr; } .ppad { position: static; } }
.pmenu { display: grid; gap: .75rem; min-width: 0; }
.cats { display: flex; gap: .35rem; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.cats .chip { flex: none; }
.chip[aria-pressed="true"] { background: var(--gold); color: var(--bg); border-color: var(--gold); }
.pitems { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); }
.pitem {
  min-height: 76px; padding: .65rem .75rem; display: grid; gap: .3rem; align-content: space-between; text-align: left; cursor: pointer;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; color: var(--cream); font: 400 .95rem/1.25 var(--sans);
}
.pitem:hover { border-color: var(--gold); }
.pitem:active { transform: scale(.98); }
.pitem small { color: var(--gold-soft); font-size: .8rem; }
.offmenu { justify-self: start; color: var(--gold-soft); background: none; border: 0; cursor: pointer; font: inherit; padding: .5rem 0; }
.ppad { position: sticky; top: 76px; padding: 1rem; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: .6rem; max-height: calc(100svh - 96px); overflow-y: auto; }
.ppad__empty { padding: 1.5rem 0; text-align: center; }
.plines { display: grid; gap: .35rem; }
.pline { display: grid; grid-template-columns: 1fr auto; gap: .35rem .75rem; padding: .55rem .6rem; border: 1px solid var(--line); border-radius: 6px; }
.pline--draft { border-style: dashed; border-color: var(--gold); }
.pline--ready { background: rgba(var(--gold-rgb), .1); }
.pline--served { opacity: .6; }
.pline__main { display: grid; gap: .15rem; min-width: 0; }
.pline__main b { font-weight: 500; }
.pline__choice { color: var(--gold-soft); font-size: .88rem; }
.pline__note { color: var(--muted); font-size: .85rem; }
.pline__mods { color: var(--danger); font-size: .88rem; font-weight: 500; }
.pitem__wrap { position: relative; display: grid; }
.pitem__mod {
  position: absolute; right: .4rem; bottom: .4rem; padding: .25rem .55rem; border-radius: 999px; border: 1px solid var(--line);
  background: var(--bg); color: var(--muted); font: 500 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer;
}
.pitem__mod:hover { color: var(--cream); border-color: var(--cream); }
.mods .act { min-width: 0; min-height: 46px; font-size: .78rem; letter-spacing: .06em; text-transform: none; }
.mods .act[aria-pressed="true"] { background: var(--gold); color: var(--bg); border-color: var(--gold); }
.mods .mod--out[aria-pressed="true"] { background: var(--danger); border-color: var(--danger); color: var(--bg); }
.ticket__mods { display: block; color: var(--danger); font-size: .95rem; text-transform: uppercase; letter-spacing: .02em; }
.pline__note::before { content: "› "; }
.pline__price { grid-row: 1; grid-column: 2; font-variant-numeric: tabular-nums; }
.pline__ctl { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.pline__ctl select.act { max-width: 9rem; }
.ppad__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: .6rem; border-top: 1px solid var(--line); }
.ppad__total b { font: 400 2rem/1 var(--serif); }
.ppad__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.ppad__actions .btn { flex: 1 1 100%; }
.allergy { padding: .55rem .8rem; border-radius: 6px; background: rgba(240, 144, 122, .15); border: 1px solid var(--danger); color: var(--danger); font-weight: 500; font-size: .92rem; }
.paytotal { font: 300 3.5rem/1 var(--serif); }
.receipt { margin: 0; padding: 1rem; background: #f6f2ea; color: #1b1b1b; font: 12.5px/1.35 "Courier New", ui-monospace, monospace; white-space: pre; overflow-x: auto; border-radius: 4px; }

/* Cocina: a card per table, the courses stacked as attached blocks */
.kcards { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); align-items: start; }
.kcard { display: grid; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.kcard__head { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; padding: .75rem .9rem; }
.kcard__head b { font: 400 1.7rem/1 var(--serif); }
.kcard__head span { color: var(--muted); font-size: .85rem; }
.kcard .allergy { margin: 0 .9rem .6rem; }
.kblock { border-top: 1px solid var(--line); padding: .7rem .9rem; display: grid; gap: .45rem; }
.kblock header { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.kblock header > span:first-child { font: 600 .72rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.kblock ul { display: grid; gap: .1rem; }
.kblock li { padding: .4rem .1rem; border-bottom: 1px solid var(--line); font-size: 1.1rem; line-height: 1.3; cursor: pointer; }
.kblock li:last-child { border-bottom: 0; }
.kblock li b { color: var(--gold-soft); margin-right: .15rem; }
.kblock li em { color: var(--gold-soft); font-style: normal; }
.kblock li small { display: block; color: var(--muted); font-size: .9rem; }
.kblock li.is-struck { text-decoration: line-through; opacity: .45; }
.kblock--active { border-left: 5px solid #6fbf8f; background: rgba(111, 191, 143, .06); }
.kblock--active.is-close { border-left-color: var(--gold); background: rgba(var(--gold-rgb), .08); }
.kblock--active.is-late { border-left-color: var(--danger); background: rgba(240, 144, 122, .12); }
.kblock--active.is-late .kblock__timer b { color: var(--danger); }
.kblock__timer b { font: 400 1.6rem/1 var(--serif); font-variant-numeric: tabular-nums; }
.kblock__timer small { color: var(--muted); font-size: .85rem; }
.kblock--waiting { opacity: .5; border-left: 5px dashed var(--line); }
.kblock--waiting header small { font: 500 .7rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.kblock--waiting li { cursor: default; }
.kblock--done { padding-block: .45rem; color: #8fd3aa; }
.kblock--done header span:first-child { color: #8fd3aa; }
.kblock--done small { color: var(--muted); }
.kblock__ready { width: 100%; }

/* Cocina */
.tickets { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); align-items: start; }
.ticket { padding: .9rem; background: var(--bg-2); border: 1px solid var(--line); border-top: 5px solid #6fbf8f; border-radius: 8px; display: grid; gap: .5rem; }
.ticket--warn { border-top-color: var(--gold); }
.ticket--bad { border-top-color: var(--danger); }
.ticket--fire { border-top-color: var(--cream); background: rgba(var(--cream-rgb), .06); }
.ticket header { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.ticket header b { font: 400 1.6rem/1 var(--serif); }
.ticket header span { color: var(--muted); font-size: .85rem; }
.ticket h4 { font: 500 .66rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-top: .3rem; }
.ticket h4.is-held { color: var(--muted); }
.ticket ul { display: grid; gap: .15rem; }
.ticket li { padding: .4rem .2rem; border-bottom: 1px solid var(--line); font-size: 1.1rem; line-height: 1.3; cursor: pointer; }
.ticket li b { color: var(--gold-soft); margin-right: .15rem; }
.ticket li em { color: var(--gold-soft); font-style: normal; }
.ticket li small { display: block; color: var(--muted); font-size: .9rem; }
.ticket li.is-struck { text-decoration: line-through; opacity: .45; }
.ticket__fire { font: 400 1.8rem/1.1 var(--serif); text-align: center; padding: .6rem 0; }
.donebar { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.printers code { font-size: .78rem; color: var(--gold-soft); overflow-wrap: anywhere; }
.plist { display: grid; gap: .5rem; }
.plist li { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; padding: .6rem 0; border-top: 1px solid var(--line); }
.receipts { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); align-items: start; }
.receipt-card { margin: 0; display: grid; gap: .3rem; }
.receipt-card figcaption { color: var(--muted); font-size: .8rem; }

/* Carta */
.carta-cat { padding: 0; }
.carta-cat__head { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .7rem 1rem; background: var(--bg-2); }
.carta-cat__head h3 { margin: 0 auto 0 0; }
.carta-cat .table td:first-child { font-size: 1.05rem; }
.recipe select, .recipe input { min-height: 40px; padding: 0 .6rem; background: var(--bg); color: var(--cream); border: 1px solid var(--line); border-radius: 6px; font: inherit; color-scheme: dark; max-width: 100%; }
.recipe .qty { width: 6rem; margin-right: .35rem; }
.check { display: flex; gap: .5rem; align-items: center; }
.link { background: none; border: 0; cursor: pointer; color: var(--gold-soft); font: inherit; padding: .3rem 0; justify-self: start; }

/* Stock */
.moves li { gap: .3rem .9rem; }
.shop { display: grid; gap: .4rem; }
.shop ul { display: grid; gap: .25rem; }
.shop li { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; padding: .35rem 0; border-top: 1px solid var(--line); }

/* Albaranes and prices */
.pdelta { display: block; font: 500 .72rem/1.2 var(--sans); }
.pdelta.is-up { color: var(--danger); }
.pdelta.is-down { color: #8fd3aa; }
.alb { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.alb__pick { position: relative; overflow: hidden; cursor: pointer; }
.alb__pick input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.alb__preview img { max-width: 100%; max-height: 260px; border-radius: 6px; border: 1px solid var(--line); }
.alb__lines td { vertical-align: top; }
.alb__lines .ing { width: 100%; max-width: 15rem; }
.alb__lines .newname { margin-top: .3rem; width: 100%; }
.alb__lines .unit { margin-top: .3rem; width: 5rem; }
.alb__lines .qty, .alb__lines .price { width: 6.5rem; }
.alb__lines .was { display: block; margin-top: .2rem; }
.pricehist .history { max-height: 220px; }

/* Briefing */
.features { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.feature { position: relative; min-height: 230px; border-radius: 12px; overflow: hidden; border: 1px solid var(--gold); background: var(--bg-2) center / cover no-repeat; display: flex; align-items: flex-end; }
.feature::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(var(--bg-rgb), .95) 25%, rgba(var(--bg-rgb), .15)); }
.feature[style*=".svg"] { background-color: var(--cream); background-size: auto 46%; background-position: 92% 18%; }
.feature--plain::before { display: none; }
.feature__body { position: relative; padding: 1.1rem 1.2rem; display: grid; gap: .25rem; }
.feature__body small { font: 500 .66rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.feature__body b { font: 400 1.9rem/1.1 var(--serif); }
.feature__price { color: var(--gold-soft); }
.feature__body p { color: var(--cream); font-size: .98rem; max-width: 52ch; }
.feature__sold { font-size: .82rem; color: var(--muted); }
.feature .brief__x { position: absolute; top: .5rem; right: .75rem; }
.brief__x { font-size: 1.3rem; line-height: 1; padding: .2rem .4rem; margin-left: auto; }
.brief__msgs { border-color: var(--gold); }
.brief__msgs ul { display: grid; gap: .5rem; }
.brief__msgs li { display: flex; gap: .5rem; align-items: flex-start; font-size: 1.05rem; }
.brief__list { display: grid; gap: .1rem; }
.brief__list li { display: flex; gap: .75rem; align-items: center; padding: .55rem 0; border-top: 1px solid var(--line); }
.brief__list li > div { flex: 1; min-width: 0; }
.brief__list p { font-size: .9rem; margin-top: .15rem; }
.pitem--dia { border-color: var(--gold); }
.pitem--sugerir { border-color: #6fbf8f; }
.pitem__tag { font: 600 .6rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; font-style: normal; color: var(--gold); }
.pitem--sugerir .pitem__tag { color: #8fd3aa; }
.paytotal--sm { font-size: 2rem; }

/* Where a clock-in was made */
.place { display: block; }
.place--fuera { color: var(--bad, #e08a7a) !important; }
.place--wifi, .place--local, .place--zona { color: var(--muted); }
.place--ok { color: var(--gold-soft) !important; }
td.acts { white-space: nowrap; }

/* Tables owned by a waiter */
.tcard--locked { opacity: .45; border-style: dashed; cursor: not-allowed; }
.tcard__who { color: var(--gold-soft) !important; }
.tbl[data-locked] { opacity: .45; border-style: dashed; }
.personal { font-size: .9rem; color: var(--muted); }

/* QR at the table */
.pline__qr { color: var(--gold); font-size: .82rem; font-weight: 600; }
.qrsheet { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.qrcard { margin: 0; padding: .8rem; background: #fff; color: #111; border-radius: 8px; display: grid; justify-items: center; gap: .4rem; text-align: center; }
.qrcard b { font: 400 1.4rem/1 var(--serif); }
.qrcard small { font-size: .72rem; color: #444; }
.qrcard--review figcaption { display: grid; gap: .3rem; }
.qrcard--review small:last-child { letter-spacing: .2em; color: #777; }
@media print { body * { visibility: hidden; } .qrsheet, .qrsheet * { visibility: visible; } .qrsheet { position: absolute; left: 0; top: 0; width: 100%; } .qrcard { break-inside: avoid; border: 1px solid #ccc; } }

/* APPCC */
.aplist { display: grid; }
.aprow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1rem; align-items: center; padding: .7rem 0; border-top: 1px solid var(--line); }
.aprow:first-child { border-top: 0; }
.aprow.is-done b { color: #8fd3aa; }
.aprow.is-done b::before { content: "✓ "; }
.aplogs { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .3rem; }
.apin { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; justify-content: flex-end; }
.apval { width: 5.5rem; min-height: 40px; padding: 0 .6rem; background: var(--bg); color: var(--cream); border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.apval.is-bad { border-color: var(--danger); color: var(--danger); }
.apnote { flex: 1 1 100%; min-height: 40px; padding: 0 .6rem; background: var(--bg); color: var(--cream); border: 1px solid var(--danger); border-radius: 6px; font: inherit; }
@media (max-width: 600px) { .aprow { grid-template-columns: 1fr; } .apin { justify-content: flex-start; } }

/* Supplier orders */
.orders li { align-items: flex-start; }
.orderlines { display: flex; flex-wrap: wrap; gap: .2rem .7rem; font-size: .85rem; color: var(--muted); flex: 1 1 100%; }
.orderlines .is-bad { color: var(--danger); }
.orderlines .is-warn { color: var(--gold); }
.shop .bar { gap: .5rem; }

/* Rota score and swaps */
.scorehead { display: flex; gap: 1rem; align-items: center; }
.score { display: inline-grid; place-items: center; min-width: 3.2rem; height: 3.2rem; padding: 0 .4rem; border-radius: 50%; font: 400 1.5rem/1 var(--serif); border: 2px solid; }
.score--good { color: #8fd3aa; border-color: #6fbf8f; }
.score--warn { color: var(--gold); border-color: var(--gold); }
.score--bad { color: var(--danger); border-color: var(--danger); }
.insights li.is-warn { border-left-color: var(--gold); }
td.is-warn { color: var(--gold); }
.myshift { display: inline-flex; gap: .4rem; align-items: center; }

/* Equipo: today's timeline, requests, generator */
.tl { gap: .4rem; }
.tl__hours { position: relative; height: 1.2rem; margin-left: 11rem; }
.tl__hours span { position: absolute; transform: translateX(-50%); font-size: .72rem; color: var(--muted); }
.tl__row { display: grid; grid-template-columns: 11rem 1fr; align-items: center; gap: 0; min-height: 40px; border-top: 1px solid var(--line); }
.tl__name { font-size: .95rem; padding-right: .5rem; }
.tl__track { position: relative; height: 30px; background: repeating-linear-gradient(90deg, rgba(var(--cream-rgb), .05) 0 1px, transparent 1px 12.5%); }
.tl__shift { position: absolute; top: 2px; height: 20px; border-radius: 5px; background: rgba(var(--gold-rgb), .3); border: 1px solid var(--gold); font: 500 .7rem/18px var(--sans); color: var(--cream); padding: 0 .35rem; overflow: hidden; white-space: nowrap; }
.tl__clock { position: absolute; bottom: 1px; height: 4px; border-radius: 2px; background: #6fbf8f; }
@media (max-width: 700px) { .tl__row { grid-template-columns: 6.5rem 1fr; } .tl__hours { margin-left: 6.5rem; } }
.rota td.is-off { background: repeating-linear-gradient(135deg, rgba(var(--cream-rgb), .04) 0 6px, transparent 6px 12px); }
.offtag { display: block; font: 500 .66rem/1.3 var(--sans) !important; letter-spacing: .06em; text-transform: uppercase; color: var(--muted) !important; }
.offtag--aprobada { color: #8fd3aa !important; }
.offtag--pendiente { color: var(--gold) !important; }
.requests li.req--pendiente { border-left: 3px solid var(--gold); padding-left: .6rem; }
.genout { display: grid; gap: .6rem; }
.rota--preview { min-width: 760px; }
.rota--preview .shift { cursor: default; }
textarea { width: 100%; padding: .7rem .8rem; background: var(--bg); color: var(--cream); border: 1px solid var(--line); border-radius: 6px; font: inherit; resize: vertical; }

/* Allergens */
.pitem__al { font: 500 .62rem/1.2 var(--sans); letter-spacing: .06em; color: var(--muted); }
.pitem__al.is-clash { color: var(--danger); font-weight: 700; }
.pitem:has(.is-clash) { border-color: var(--danger); }
.pline__clash { color: var(--danger); font-weight: 600; font-size: .86rem; }
.alchips { display: flex; flex-wrap: wrap; gap: 3px; }
.alchip { display: inline-block; padding: 1px 6px; border-radius: 999px; font: 600 .62rem/1.5 var(--sans); letter-spacing: .04em; border: 1px solid; }
.alchip.is-free { color: #8fd3aa; border-color: #6fbf8f; }
.alchip.is-fixed { color: var(--danger); border-color: var(--danger); }
.alinfo { display: grid; gap: .3rem; font-size: .92rem; }
.freetag { color: #8fd3aa; font-size: .72rem; text-transform: none; letter-spacing: 0; }
.altd { font: 500 .72rem/1.4 var(--sans) !important; letter-spacing: .04em; white-space: nowrap; }

/* Offline */
.pending { padding: .6rem .8rem; border: 1px dashed var(--gold); border-radius: 6px; display: grid; gap: .3rem; background: rgba(var(--gold-rgb), .08); }
.pending b { color: var(--gold); font-size: .9rem; }
.pending ul { display: grid; gap: .15rem; font-size: .92rem; }

/* Paying and the till */
.paysum { display: flex; flex-wrap: wrap; gap: .6rem; }
.paysum > div { flex: 1 1 8rem; padding: .7rem .9rem; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: .2rem; }
.paysum > div.is-key { border-color: var(--gold); }
.paysum small { font: 500 .62rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.paysum b { font: 400 1.8rem/1 var(--serif); }
.paychange { font: 400 1.4rem/1.2 var(--serif); color: #8fd3aa; min-height: 1.2em; }
.paychange.is-bad { color: var(--danger); }
.qrbox { display: flex; justify-content: center; padding: .6rem; background: #fff; border-radius: 6px; width: fit-content; margin-inline: auto; }

/* Roles */
.top__who { color: var(--muted); font-size: .85rem; white-space: nowrap; }
.brief__out { border-color: var(--danger); }
.brief__out h3 { color: var(--danger); }
.pitem--out { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.pitem--out .pitem__tag { color: var(--danger); text-decoration: none; }
.soldbtn { margin-left: .6rem; min-height: 28px; padding: 0 .55rem; font-size: .6rem; }
.brief__list li.is-today b { color: var(--gold); }

/* Equipo */
.rota { min-width: 900px; }
.rota th small, .rota td small { display: block; color: var(--muted); font: 400 .75rem/1.3 var(--sans); letter-spacing: 0; text-transform: none; }
.rota th.is-today { color: var(--gold); }
.rota tbody tr { cursor: default; }
.rota td.rota__cell { cursor: pointer; vertical-align: top; min-width: 96px; font: inherit; }
.rota td.rota__cell:hover { background: rgba(var(--cream-rgb), .04); }
.shift { display: block; width: 100%; margin-bottom: .25rem; padding: .35rem .4rem; border: 1px solid var(--gold); border-radius: 6px; background: rgba(var(--gold-rgb), .12); color: var(--cream); font: 500 .8rem/1.2 var(--sans); cursor: pointer; text-align: left; }
.worked { color: #8fd3aa !important; }
.rota tfoot td { padding: .7rem 1rem; border-top: 1px solid var(--line); font-size: .9rem; color: var(--muted); }
.pin { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); align-items: start; }
@media (max-width: 760px) { .pin { grid-template-columns: 1fr; } }
.pin__pad { display: grid; gap: .9rem; justify-items: center; text-align: center; padding: 1.5rem; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; }
.pin__shown { font: 400 2.6rem/1 var(--serif); letter-spacing: .4em; min-height: 2.6rem; color: var(--gold-soft); }
.pin__keys { display: grid; grid-template-columns: repeat(3, 84px); gap: .6rem; }
.pin__key { height: 72px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); color: var(--cream); font: 400 1.8rem/1 var(--serif); cursor: pointer; }
.pin__key:active { background: var(--gold); color: var(--bg); }
.pin__key.is-ok { background: var(--gold); color: var(--bg); font: 500 1rem/1 var(--sans); letter-spacing: .14em; }
.pin__msg { min-height: 1.5rem; font-size: 1.05rem; }
.pin__msg.is-ok { color: #8fd3aa; }
.pin__msg.is-bad { color: var(--danger); }

@media print {
  .top, .bar .bar__end, .view .datenav button, .chip, .toast, .offline { display: none !important; }
  body, .adm { background: #fff; color: #000; }
  .table th, .table td, .rota tfoot td { color: #000; background: #fff; border-color: #999; }
  .shift { border-color: #000; background: #fff; color: #000; }
}

/* the floor map stays tappable on a phone: it scrolls sideways at a usable size */
.room--orders { overflow-x: auto; }
.room--orders .room__floor { min-width: 620px; }
/* Sala's table dialog: long button labels wrap instead of spilling out */
.floor-form .btn { white-space: normal; line-height: 1.25; text-align: center; height: auto; min-height: 52px; padding-block: .6rem; }

.mini td.num { white-space: nowrap; }

/* ---------------------------------------------------------------- the Club (club.js) */
.stampdots { display: inline-flex; gap: 4px; vertical-align: middle; }
.stampdots i { width: 13px; height: 13px; border-radius: 50%; border: 1.5px dashed rgba(var(--cream-rgb), .35); }
.stampdots i.on { border: 0; background: radial-gradient(circle at 35% 30%, #F3C774, var(--gold) 55%, #B8701F); }
.clubcard { display: grid; gap: .5rem; padding: 1rem 1.1rem; border: 1px solid var(--gold); border-radius: 10px; background: var(--bg-2); }
.clubcard .stampdots i { width: 22px; height: 22px; }
.clubfind { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.clubfind > input { flex: 1 1 14rem; min-height: 48px; }
.clubnote { color: var(--gold-soft); font-weight: 500; }
.clubnote.is-bad { color: var(--danger); }
.clubtable tbody tr { cursor: pointer; }
.clubtable tbody tr:hover { background: rgba(var(--cream-rgb), .04); }
.scanvideo { width: 100%; max-height: 46vh; border-radius: 10px; background: #000; object-fit: cover; }

/* ---------------------------------------------------------------- briefing: one block per section */
.brief__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); align-items: start; }
.brief__sec[data-kind="mensaje"], .brief__sec[data-kind="plato"], .brief__sec[data-kind="bebida"] { grid-column: 1 / -1; }
.brief__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.brief__head h3 { margin: 0; }
.brief__add { border-color: var(--gold); color: var(--gold); }
.brief__sec.is-empty { border-style: dashed; background: transparent; }
.brief__sec.is-empty h3 { color: var(--muted); }
.brief__hidden { font: 500 .7rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.brief__count { font: 400 1.35rem/1.2 var(--serif); }
.brief__days summary { cursor: pointer; color: var(--muted); font-size: .9rem; }
.brief__days[open] summary { margin-bottom: .6rem; }
