/* Temperatures and goods-in (real features). Same look as the rest: cards, category colour edges, calm tints.
   Results: green = in range, amber = close to the limit, red = out of range (the whole line filled red). */
:root { --res-amber-bg: #FBF0D2; --res-amber-edge: #C08A1E; --res-amber-ink: #6E4E0E; --res-red: #B00000; --res-red-edge: #7A0000; }
.tp-date { font-size: 14.5px; color: var(--mute); margin: 4px 0 10px; }
.tp-sum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 6px 0 4px; }
.tp-sum > div { background: var(--card); border: 1px solid var(--rule); border-radius: var(--r); padding: 10px 12px; }
.tp-sum b { display: block; font-family: var(--serif); font-size: 30px; line-height: 1; color: var(--brand); }
.tp-sum span { font-size: 13px; color: var(--mute); }
.tp-sum .warn { background: var(--res-amber-bg); border-color: var(--res-amber-edge); } .tp-sum .warn b { color: var(--res-amber-ink); }
.tp-sum .ok b { color: var(--ok); }
.tp-sum .bad { background: var(--res-red); border-color: var(--res-red-edge); } .tp-sum .bad b, .tp-sum .bad span { color: #fff; }
.tu-list { list-style: none; margin: 0; padding: 0; }
.tu-list li + li { margin-top: 7px; }
.tu { width: 100%; display: flex; gap: 10px; align-items: center; text-align: left; font: inherit; color: var(--ink); cursor: pointer;
  padding: 11px 12px; background: var(--card); border: 1px solid var(--rule); border-left: 5px solid var(--cat, var(--rule)); border-radius: 8px; min-height: 64px; }
.tu .grow { flex: 1; min-width: 0; display: block; }
.tu-name { display: block; font-weight: 600; line-height: 1.25; }
.tu-range { display: block; font-size: 13px; color: var(--mute); }
.tu-slots { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.slot-chip { font-size: 11.5px; font-weight: 600; padding: 1px 8px; border-radius: 99px; border: 1px solid var(--rule); color: var(--mute); background: var(--field); }
.slot-chip.done { color: var(--ok); border-color: var(--ok); background: var(--ok-wash); }
.slot-chip.due { color: var(--res-amber-ink); border-color: var(--res-amber-edge); background: var(--res-amber-bg); }
.slot-chip.missed { color: var(--warn); border-color: var(--warn); background: var(--warn-wash); }
.tu-last { text-align: right; flex: none; }
.tu-last b { display: block; font-size: 20px; line-height: 1.1; }
.tu-last small { font-size: 12.5px; color: var(--mute); }
.tu-log { display: inline-flex; gap: 5px; align-items: center; font-size: 14px; font-weight: 600; color: var(--brand); padding: 6px 10px; border: 1px solid var(--brand-rule); border-radius: 99px; background: var(--field); }
.tu-log .i { width: 17px; height: 17px; }
.tu.res-green .tu-last b { color: var(--ok); }
.tu.res-amber { background: var(--res-amber-bg); border-color: var(--res-amber-edge); border-left-color: var(--res-amber-edge); }
.tu.res-amber .tu-last b, .tu.res-amber .tu-range { color: var(--res-amber-ink); }
.tu.res-red { background: var(--res-red); border-color: var(--res-red-edge); border-left-color: var(--res-red-edge); color: #fff; }
.tu.res-red .tu-range, .tu.res-red .tu-last small, .tu.res-red .tu-last b { color: #fff; }
.tu.res-red .slot-chip { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.5); }
.tu.res-red .tu-log { background: #fff; color: var(--res-red); border-color: #fff; }
.tp-actions { margin-top: 22px; }
.tp-foot { margin-top: 14px; }
.tp-block { margin-top: 22px; }
.tp-block .section-head { margin-bottom: 8px; }
.tp-tools { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.tp-tools button, .tp-tools a { min-height: 64px; border-radius: var(--r); border: 1px solid var(--brand-rule); background: var(--card); color: var(--brand); font-weight: 600; font-size: 14.5px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-decoration: none; padding: 6px; text-align: center; }

/* number pad */
.pad-sheet .sheet-body { padding-bottom: 6px; }
.pad-display { margin: 12px 0 10px; border-radius: 12px; border: 1.5px solid var(--brand-rule); background: var(--field); padding: 10px 14px; text-align: center; transition: background .15s; }
.pad-val { display: block; font-family: var(--serif); font-weight: 600; font-size: 54px; line-height: 1.05; color: var(--ink); font-variant-numeric: tabular-nums; }
.pad-word { display: block; font-size: 14px; color: var(--mute); min-height: 20px; }
.pad-display.res-green { border-color: var(--ok); background: var(--ok-wash); } .pad-display.res-green .pad-val, .pad-display.res-green .pad-word { color: var(--ok); }
.pad-display.res-amber { border-color: var(--res-amber-edge); background: var(--res-amber-bg); } .pad-display.res-amber .pad-val, .pad-display.res-amber .pad-word { color: var(--res-amber-ink); }
.pad-display.res-red { border-color: var(--res-red-edge); background: var(--res-red); } .pad-display.res-red .pad-val, .pad-display.res-red .pad-word { color: #fff; }
.pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pad button { min-height: 58px; border-radius: 12px; border: 1px solid var(--rule); background: var(--card); font-size: 26px; font-weight: 600; color: var(--ink); }
.pad button:active { background: var(--brand-wash); }
.pad button.wide { grid-column: 1 / -1; min-height: 48px; display: flex; gap: 6px; align-items: center; justify-content: center; font-size: 16px; color: var(--brand); }
.pad-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; font-size: 14px; color: var(--ink-2); }
.pad-meta label { display: flex; align-items: center; gap: 8px; }
.pad-meta .input { width: 132px; min-height: 40px; padding: 6px 10px; font-size: 16px; }
.pad-extra .field:first-child { margin-top: 4px; }

/* fix-it */
.fix-sheet .fix-head { border-top: 6px solid var(--res-red); border-radius: 18px 18px 0 0; }
.fix-steps { margin: 0; padding-left: 22px; } .fix-steps li { margin: 4px 0; }
.tp-photo { cursor: pointer; } .tp-photo.has-photo { border-style: solid; border-color: var(--ok); color: var(--ok); }
.tp-thumb { max-height: 160px; width: auto; border-radius: 8px; margin: 4px 0 8px; border: 1px solid var(--rule); }

@media (min-width: 900px) { .sheet-wrap { align-items: center; } .sheet { border-radius: 18px; max-width: 520px; } }
.linkish { background: none; border: 0; padding: 6px 0; color: var(--brand); text-decoration: underline; text-underline-offset: 3px; font: inherit; cursor: pointer; }
.btn.danger-text { color: var(--danger); border-color: var(--danger); }
.unit-sheet .seg { grid-template-columns: repeat(3, 1fr); }

/* goods-in */
a.tu { text-decoration: none; }
.tu.gi-miss { background: var(--warn-wash); border-color: var(--warn); border-left-color: var(--warn); }
.tu.gi-miss .tu-range { color: var(--warn-ink); }
.gi-flag { display: inline-flex; align-items: center; gap: 5px; margin-top: 5px; font-size: 12.5px; font-weight: 700; color: var(--warn); }
.gi-flag .i { width: 15px; height: 15px; }
.gi-miss-block { cursor: default; }
.gi-new { margin: 12px 0 4px; }
.gi-who { margin: 0; min-height: 48px; display: flex; align-items: center; font-weight: 600; }
.gi-item { background: var(--card); border: 1px solid var(--rule); border-radius: 10px; padding: 10px; margin-bottom: 8px; }
.gi-item.res-red { border-color: var(--res-red); box-shadow: inset 4px 0 0 var(--res-red); }
.gi-item-top { display: flex; gap: 6px; align-items: center; }
.gi-item-row { display: flex; gap: 8px; align-items: center; margin-top: 8px; }
.gi-kind { flex: 1; } .gi-kind button { min-height: 44px; font-size: 14px; }
.gi-temp { width: 104px; flex: none; position: relative; display: block; }
.gi-temp .input { text-align: center; font-size: 18px; font-weight: 600; }
.gi-res { display: block; font-size: 11.5px; font-weight: 700; text-align: center; margin-top: 2px; min-height: 14px; }
.gi-res.res-green { color: var(--ok); } .gi-res.res-amber { color: var(--res-amber-ink); } .gi-res.res-red { color: var(--res-red); }
.small-btn { min-height: 44px; font-size: 15px; }
.gi-check { display: flex; align-items: center; gap: 10px; justify-content: space-between; padding: 8px 0; border-bottom: 1px dashed var(--rule); }
.gi-check > span { flex: 1; font-size: 15px; }
.gi-yn { grid-template-columns: 1fr 1fr; width: 132px; flex: none; } .gi-yn button { min-height: 44px; }
.gi-yn.no button[aria-pressed="true"] { background: var(--res-red); color: #fff; }
.gi-out { grid-template-columns: repeat(3, 1fr); }
.gi-out button[data-v="reject"][aria-pressed="true"] { background: var(--res-red); }
.gi-warn { display: flex; gap: 10px; margin-top: 14px; padding: 10px 12px; border-radius: 10px; background: var(--res-red); color: #fff; font-size: 14.5px; }
.gi-warn .i { flex: none; }
.gi-outcome { margin: 10px 0 12px; padding: 12px 14px; border-radius: 10px; font-weight: 600; border: 1px solid var(--rule); border-left: 5px solid var(--ok); background: var(--card); }
.gi-outcome.notes { border-left-color: var(--res-amber-edge); background: var(--res-amber-bg); }
.gi-outcome.reject { background: var(--res-red); color: #fff; border-color: var(--res-red-edge); }
.gi-outcome p { margin: 6px 0 0; font-weight: 400; }
.gi-checks { list-style: none; padding: 0; margin: 12px 0; }
.gi-checks li { display: flex; gap: 8px; align-items: center; padding: 5px 0; }
.gi-checks li.yes .i { color: var(--ok); } .gi-checks li.no { color: var(--res-red); font-weight: 600; }
.gi-photo { width: 100%; max-width: 520px; border-radius: 10px; border: 1px solid var(--rule); }
.tp-tbl tr.r-red td { background: var(--res-red); color: #fff; }
.tp-tbl tr.r-amber td { background: var(--res-amber-bg); }

/* history: easy to show an inspector, prints clean */
.hist-days { display: flex; gap: 6px; overflow-x: auto; padding: 12px 0 4px; margin: 0 -2px; -webkit-overflow-scrolling: touch; }
.hist-day { flex: none; min-width: 84px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--rule); background: var(--card); text-decoration: none; color: var(--ink); }
.hist-day b { display: block; font-size: 14px; } .hist-day span { font-size: 12px; color: var(--mute); }
.hist-day.on { border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
.hist-day.has-red { border-left: 4px solid var(--res-red); }
.print-head { margin: 18px 0 6px; padding: 12px 14px; border: 1px solid var(--rule); border-radius: 10px; background: var(--card); }
.print-head h1 { font-size: 22px; margin: 2px 0 4px; }
.print-head p { margin: 0; }
.hist-dept h2 { font-size: 24px; margin: 22px 0 4px; }
.hist-dept h3 { font-family: var(--sans); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); margin: 16px 0 6px; }
.hist-tbl { width: 100%; font-size: 13.5px; display: block; overflow-x: auto; }
.hist-tbl td.num { white-space: nowrap; font-weight: 600; }
.hist-tbl td.res { white-space: nowrap; }
.hist-tbl a { color: inherit; }
.hist-miss { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--warn-ink); background: var(--warn-wash); border: 1px solid var(--warn); border-radius: 8px; padding: 8px 10px; }
.hist-miss .i { flex: none; color: var(--warn); }
@media (min-width: 900px) { .hist-tbl { display: table; } }
@media print {
  .pv-banner, .hist-filters, .tp-actions, .toast, .sheet-wrap, .sw-update { display: none !important; }
  .view, main { margin: 0 !important; padding: 0 !important; max-width: none !important; }
  body { background: #fff !important; color: #000; }
  .print-head { border: 0; padding: 0; margin: 0 0 8px; background: none; }
  .hist-tbl { display: table; font-size: 10.5pt; border-collapse: collapse; }
  .hist-tbl th, .hist-tbl td { border: 1px solid #999; padding: 3px 5px; }
  .tp-tbl tr.r-red td { background: #fff !important; color: #000 !important; font-weight: 700; }
  .tp-tbl tr.r-amber td { background: #fff !important; }
  .hist-dept { break-inside: auto; } .hist-dept h2 { margin-top: 14px; }
  .hist-miss { background: none; border: 1px solid #999; color: #000; }
}

/* live cards (Home, department check areas) */
.live-card { margin-bottom: 14px; padding: 14px; }
.live-head h3 { display: flex; align-items: center; gap: 8px; font-size: 20px; margin: 0 0 10px; }
.live-head .i { color: var(--brand); }
.live-card .tu-list { margin-bottom: 10px; }
.live-card .tu { min-height: 52px; }
.live-rows { border-top: 1px solid var(--rule); }
.live-row { display: grid; grid-template-columns: 1fr auto auto 20px; gap: 10px; align-items: center; padding: 10px 2px; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); font-size: 15px; }
.live-row span { font-size: 13.5px; color: var(--mute); } .live-row span.warn { color: var(--res-amber-ink); font-weight: 700; } .live-row span.ok { color: var(--ok); font-weight: 700; }
.live-row .chev { width: 18px; height: 18px; color: var(--mute); }
.live-card .btn-row { margin-top: 12px; }

/* numbered units and sections */
.tu.res-red .num-list .tu { min-height: 58px; }
.tu.num-empty { background: transparent; border-style: dashed; border-left-width: 1px; }
.tu.num-empty .tu.num-empty .tu-name { color: var(--mute); font-weight: 600; }
.tu.num-empty .tu-last { color: var(--brand); }
.tu[disabled] { cursor: default; opacity: 1; }
.sec-label { display: inline-block; padding: 3px 10px; border-radius: 6px; background: var(--cat, var(--ink-2)); color: #fff; font-family: var(--sans); font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.temp-group.sec h4 { margin-bottom: 8px; }
.temp-group.sec .tu-list { border-left: 3px solid var(--cat, var(--rule)); padding-left: 8px; }
.sec-tag { display: inline-block; margin-top: 4px; font-size: 11.5px; font-weight: 700; color: var(--cat, var(--mute)); text-transform: uppercase; letter-spacing: .06em; }
.sec-link { margin: 8px 0 12px; }
.sec-list { list-style: none; padding: 0; margin: 10px 0 0; }
.sec-list li + li { margin-top: 8px; }
.sec-card { width: 100%; display: grid; grid-template-columns: 1fr 22px; gap: 6px 10px; align-items: center; text-align: left; font: inherit; color: var(--ink); cursor: pointer; padding: 12px; background: var(--card); border: 1px solid var(--rule); border-left: 6px solid var(--cat, var(--rule)); border-radius: 10px; }
.sec-card .sec-label { justify-self: start; } .sec-card .sec-nums { grid-column: 1; font-size: 14px; color: var(--ink-2); } .sec-card .i { grid-row: 1 / span 2; grid-column: 2; color: var(--brand); }
.colour-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.colour-opt { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 8px; border: 1px solid var(--rule); border-radius: 10px; background: var(--card); font-size: 13px; color: var(--ink); text-align: left; }
.colour-opt span { flex: none; width: 20px; height: 20px; border-radius: 6px; background: var(--cat); }
.colour-opt[aria-pressed="true"] { border-color: var(--cat); box-shadow: inset 0 0 0 2px var(--cat); font-weight: 700; }
.pick-search { margin: 10px 0 8px; }
.pick-fam { margin-top: 12px; } .pick-fam .eyebrow { margin: 0 0 6px; }
.pick-row { width: 100%; display: flex; align-items: center; gap: 10px; text-align: left; font: inherit; color: var(--ink); cursor: pointer; padding: 10px 12px; margin-bottom: 6px; background: var(--card); border: 1px solid var(--rule); border-left: 5px solid var(--cat, var(--rule)); border-radius: 8px; min-height: 52px; }
.pick-row .grow { flex: 1; min-width: 0; } .pick-row b { display: block; font-weight: 600; } .pick-row small { display: block; font-size: 12.5px; color: var(--mute); }
.pick-row .pick-cat { flex: none; font-size: 11.5px; font-weight: 700; color: var(--cat); text-transform: uppercase; letter-spacing: .05em; }
.pick-row.on { box-shadow: inset 0 0 0 2px var(--brand); }
.pick-row[hidden], .pick-fam[hidden] { display: none; }
.pick-own { border: 1.5px dashed var(--brand); border-left-width: 1.5px; color: var(--brand); } .pick-own .i { flex: none; }
.seg.seg4 { grid-template-columns: repeat(4, 1fr); } .seg4 button { font-size: 13.5px; }
.chip.cat-chip { border-left: 4px solid var(--cat); }
.chip.cat-chip[aria-pressed="true"] { background: var(--cat); border-color: var(--cat); color: #fff; }
.chip small { font-weight: 400; opacity: .8; }
/* Service: table plan and 86 list (t655u) */
.sv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 720px) { .sv-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sv-table { border: 1px solid var(--rule); border-radius: 12px; padding: 10px; background: #fff; display: flex; flex-direction: column; gap: 2px; min-height: 64px; }
.sv-table.on { border-color: var(--navy, #1E3A5F); }
.sv-table b { display: flex; align-items: center; gap: 6px; }
.sv-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #c0392b; }
.sv-al { color: #6b4a1f; font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
.sv-al svg { width: 14px; height: 14px; }
.sv-occ { font-size: 12px; background: #f6efe0; border-radius: 8px; padding: 1px 6px; }
.sv-add { display: flex; gap: 8px; margin-top: 8px; } .sv-add .input { flex: 1; }
/* Desktop timeline (t656u): wide screens only; phones keep the list and table plan */
.sv-desk { display: none; }
@media (min-width: 900px) { .sv-desk { display: block; } .sv-mob { display: none; } }
.sv-legend { display: flex; gap: 8px; margin: 0 0 8px; font-size: 12px; } .sv-legend span { padding: 2px 8px; border-radius: 8px; }
.sv-tl { --lab: 92px; overflow-x: auto; border: 1px solid var(--rule); border-radius: 12px; background: #fff; }
.sv-tl-in { position: relative; width: calc(var(--lab) + var(--n) * var(--sw)); }
.sv-r { display: flex; height: 34px; border-bottom: 1px solid #eee; position: relative; }
.sv-lab { flex: 0 0 var(--lab); width: var(--lab); padding: 0 10px; display: flex; align-items: center; font-weight: 600; font-size: 13px; position: sticky; left: 0; background: #fff; z-index: 2; border-right: 1px solid var(--rule); }
.sv-lane { position: relative; flex: 1; background-image: repeating-linear-gradient(90deg, transparent 0 calc(var(--sw) - 1px), #f1ece2 calc(var(--sw) - 1px) var(--sw)); }
.sv-top { height: 42px; background: #faf7f1; } .sv-c { flex: 0 0 var(--sw); display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 11px; border-left: 1px solid transparent; } .sv-c.hr { border-left-color: var(--rule); } .sv-c i { font-style: normal; color: #6b6b6b; height: 14px; } .sv-c b { color: var(--navy, #1E3A5F); }
.sv-sec { height: 26px; background: #f6f1e7; } .sv-sec .sv-lab { background: #f6f1e7; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #555; flex-basis: 100%; position: static; border: 0; }
.sv-bk { position: absolute; top: 4px; height: 26px; border-radius: 8px; padding: 0 8px; display: flex; align-items: center; gap: 5px; font-size: 12px; white-space: nowrap; overflow: hidden; cursor: pointer; touch-action: none; user-select: none; }
.sv-bk.drag { opacity: .85; box-shadow: 0 4px 12px rgba(0,0,0,.2); z-index: 5; }
.sv-st-booked { background: #dfe7f3; color: #1E3A5F; } .sv-st-seated { background: #d7efdf; color: #1d5a33; } .sv-st-finished { background: #ececec; color: #666; } .sv-st-noshow { background: #f8dcdc; color: #8a2323; text-decoration: line-through; }
.sv-now { position: absolute; top: 0; bottom: 0; width: 2px; background: #c0392b; z-index: 4; pointer-events: none; }
/* allergy traffic light (t659u) */
.sv-lt { display: inline-block; width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; margin-right: 5px; vertical-align: middle; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.sv-lt-green { background: #2e9e5b; } .sv-lt-yellow { background: #e0a800; } .sv-lt-red { background: #c0392b; }
.sv-al .sv-lt { margin-right: 4px; }
/* FOH menus (t661u) */
.sv-gac { margin: 0 0 14px; } .sv-pitch { display: flex; gap: 5px; align-items: center; font-size: 13px; color: #6b4a1f; margin-top: 4px; font-style: italic; } .sv-pitch svg { width: 14px; height: 14px; flex: 0 0 auto; }
/* bookings overview and slots (t662u) */
.sv-over { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--rule); border-radius: 14px; padding: 12px; margin-bottom: 10px; }
.sv-big { display: flex; flex-direction: column; align-items: center; min-width: 54px; } .sv-big b { font-size: 26px; line-height: 1; color: var(--navy, #1E3A5F); } .sv-big small { font-size: 11px; color: #777; }
.sv-ov-r { flex: 1; min-width: 0; } .sv-sizes, .sv-tally { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 6px; font-size: 12px; }
.sv-sizes span { background: #f1ece2; border-radius: 8px; padding: 2px 7px; } .sv-tally > span { display: inline-flex; align-items: center; }
.sv-slot { margin: 0 0 8px; }
.sv-slothd { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 10px; margin-top: 8px; border-radius: 10px; background: #f1ece2; font-size: 13px; }
.sv-slothd.p-amber { background: #fbecc8; color: #7a5300; } .sv-slothd.p-red { background: #f8d6d2; color: #8a2323; }
.sv-slot { max-width: 240px; } .sv-slot button { min-height: 0; padding: 5px 0; font-size: 13px; }
/* live status (t663u): one calm blue-to-green ramp, the row greys as the meal goes on */
.sv-row { transition: transform .15s, opacity .2s; align-items: center; gap: 8px; }
.sv-g2 { opacity: .92; } .sv-g3 { opacity: .85; } .sv-g4 { opacity: .78; } .sv-g5 { opacity: .7; } .sv-g6 { opacity: .55; }
.sv-pill { border: 0; border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 600; white-space: nowrap; cursor: pointer; user-select: none; -webkit-user-select: none; touch-action: manipulation; }
span.sv-pill { cursor: default; }
.sv-s-booked, .sv-st-booked { background: #dfe7f3; color: #1E3A5F; }
.sv-s-seated, .sv-st-seated { background: #d6e9f0; color: #154b5e; }
.sv-s-starters, .sv-st-starters { background: #d7ece4; color: #1d5a45; }
.sv-s-mains, .sv-st-mains { background: #d7efdf; color: #1d5a33; }
.sv-s-desserts, .sv-st-desserts { background: #e6efd5; color: #4a5a1d; }
.sv-s-bill, .sv-st-bill { background: #f3ecd9; color: #6b5313; }
.sv-s-paid, .sv-st-paid { background: #ececec; color: #666; }
.sv-s-noshow { background: #f8dcdc; color: #8a2323; }
.sv-acts { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.sv-sh1 { display: flex; justify-content: space-between; align-items: baseline; width: 100%; }
.sv-slothd { flex-direction: column; align-items: stretch; }
.sv-stally { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; margin-top: 3px; opacity: .9; } .sv-stally > span { display: inline-flex; align-items: center; }
.sv-done { margin-top: 10px; } .sv-done summary { cursor: pointer; padding: 8px 10px; border-radius: 10px; background: #ececec; color: #555; font-size: 13px; font-weight: 600; } .sv-done .xrow { opacity: .55; }
.sv-tpick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 10px; }
.sv-tp { border: 1px solid var(--rule); border-radius: 10px; padding: 8px 2px; background: #fff; font-weight: 600; font-size: 13px; }
.sv-tp.free { background: #e4f3e9; border-color: #b9dcc5; } .sv-tp.busy { background: #f6f1e7; color: #999; } .sv-tp.on { outline: 2px solid var(--navy, #1E3A5F); outline-offset: 1px; color: inherit; }
.sv-warn { display: flex; gap: 6px; color: #7a5300; background: #fbecc8; border-radius: 10px; padding: 8px 10px; font-size: 13px; } .sv-warn svg { width: 16px; flex: 0 0 auto; }
.sv-stpick { display: flex; flex-direction: column; gap: 6px; }
.useg.sv-slot { max-width: 220px; } .useg.sv-slot > button { min-height: 0 !important; height: 32px; padding: 0 !important; font-size: 13px; }
/* team brief and guests (t664u) */
.sv-links { margin: 0 0 12px; }
.sv-guest { display: flex; gap: 5px; align-items: center; font-size: 12px; color: #4b5a73; margin-top: 3px; } .sv-guest svg { width: 14px; height: 14px; flex: 0 0 auto; }
.sv-gsug { display: flex; flex-direction: column; gap: 6px; margin: -4px 0 10px; } .sv-gpick { display: flex; gap: 6px; align-items: center; text-align: left; border: 1px solid var(--rule); background: #f4f7fb; border-radius: 10px; padding: 8px 10px; font-size: 13px; } .sv-gpick svg { width: 15px; }
.sv-brief h3 { margin: 16px 0 6px; font-size: 18px; } .sv-blist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; } .sv-blist li { background: #fff; border: 1px solid var(--rule); border-radius: 10px; padding: 8px 10px; font-size: 14px; }
.sv-bnote { display: flex; gap: 8px; background: #fbf3df; border-radius: 12px; padding: 10px 12px; } .sv-bnote p { margin: 0; } .sv-bnote svg { width: 18px; flex: 0 0 auto; }
.sv-bread { margin-top: 18px; }
/* table ordering and kitchen tickets (t666u) */
.to-sec { margin: 14px 0 6px; font-size: 16px; } .to-tables { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.to-tab { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--rule); border-radius: 12px; padding: 10px; background: #fff; color: inherit; text-decoration: none; min-height: 64px; } .to-tab.on { border-color: var(--navy, #1E3A5F); } .to-tab b { display: flex; align-items: center; gap: 4px; } .to-tab small { font-size: 12px; color: #666; } .to-tab i { font-size: 11px; color: #1d5a33; font-style: normal; }
.to-head { display: flex; gap: 10px; align-items: flex-start; background: #fff; border: 1px solid var(--rule); border-radius: 14px; padding: 12px; margin-bottom: 12px; } .to-head h2 { margin: 2px 0; display: flex; align-items: center; } .to-al { color: #8a2323; font-weight: 600; margin: 2px 0; font-size: 14px; }
.to-course { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #777; margin: 12px 0 4px; }
.to-line { background: #fff; border: 1px solid var(--rule); border-radius: 12px; padding: 8px 10px; margin-bottom: 6px; } .to-l1 { display: flex; justify-content: space-between; align-items: center; } .to-l1 span { display: flex; gap: 6px; }
.to-q { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--rule); background: #f6f1e7; font-size: 18px; }
.to-l2 { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 4px 0 4px 18px; font-size: 14px; color: #333; } .to-l2.al, .tk-l2.al { color: #b0261c; font-weight: 600; }
.to-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } @media (min-width: 700px) { .to-menu { grid-template-columns: repeat(3, minmax(0, 1fr)); } .to-tables { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.to-dish { text-align: left; border: 1px solid var(--rule); border-radius: 12px; background: #fff; padding: 10px; display: flex; flex-direction: column; gap: 4px; min-height: 70px; font-size: 14px; } .to-dish:active { background: #eef3fa; } .to-dish small { color: #777; font-size: 11px; }
.to-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; } .to-req { color: #8a2323; font-size: 11px; text-transform: none; letter-spacing: 0; }
.to-fl.c-no { border-color: #e2a39c; } .to-fl.c-may { border-color: #e7c66d; }
.to-warn { display: flex; gap: 6px; border-radius: 10px; padding: 8px 10px; font-size: 13px; margin: 0 0 8px; } .to-warn svg { width: 16px; flex: 0 0 auto; } .to-warn.r { background: #f8d6d2; color: #8a2323; } .to-warn.y { background: #fbecc8; color: #7a5300; }
/* kitchen tickets, readable across the pass (t667u) */
.tk-grid { display: grid; grid-template-columns: 1fr; gap: 12px; } @media (min-width: 760px) { .tk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 1200px) { .tk-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tk-card { background: #fff; border: 2px solid #1E3A5F; border-top-width: 8px; border-radius: 12px; padding: 12px 14px; color: #111; }
.tk-card.tk-started { border-color: #c98a00; } .tk-card.tk-done { opacity: .55; border-color: #2e9e5b; }
.tk-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; border-bottom: 2px solid #111; padding-bottom: 8px; margin-bottom: 8px; }
.tk-t { font-size: 30px; line-height: 1; letter-spacing: .02em; } .tk-meta { font-size: 14px; text-align: right; color: #333; font-weight: 600; }
.tk-state { margin: 0 0 6px; font-weight: 800; color: #8a5a00; letter-spacing: .08em; }
.tk-al { display: flex; gap: 8px; align-items: flex-start; background: #b0261c; color: #fff; font-weight: 800; font-size: 18px; line-height: 1.3; border-radius: 8px; padding: 8px 10px; margin: 0 0 8px; } .tk-al svg { width: 22px; height: 22px; flex: 0 0 auto; margin-top: 2px; }
.tk-c { display: flex; justify-content: space-between; align-items: center; font-size: 15px; font-weight: 800; letter-spacing: .06em; margin: 12px 0 4px; padding: 4px 8px; border-radius: 6px; }
.tk-c.away { background: #d7efdf; color: #14502b; } .tk-c.hold { background: #fbecc8; color: #6b4800; } .tk-f { font-size: 13px; }
.tk-l1 { font-weight: 800; font-size: 24px; line-height: 1.2; margin-top: 6px; } .tk-l1 .tk-n { display: inline-block; min-width: 1.8em; }
.tk-l2 { padding-left: 1.8em; font-size: 19px; line-height: 1.35; display: flex; gap: 6px; align-items: baseline; } .tk-l2 .tk-n { font-weight: 800; min-width: 1em; }
.tk-l2.al { color: #b0261c; font-weight: 800; } .tk-l2 svg { width: 18px; height: 18px; flex: 0 0 auto; align-self: center; }
.tk-card .btn-row { margin-top: 12px; } .tk-card .btn { font-size: 16px; min-height: 48px; flex: 1; }
.tk-t { white-space: nowrap; }
/* table allergy check while ordering (t668u) */
.to-alk { display: flex; gap: 6px; align-items: center; background: #f8d6d2; color: #8a2323; font-weight: 700; border-radius: 10px; padding: 8px 10px; font-size: 13px; } .to-alk svg { width: 16px; flex: 0 0 auto; }
.to-dish.to-red { border: 2px solid #b0261c; background: #fdf0ee; } .to-dish.to-amb { border: 2px solid #e0a800; background: #fff8e6; }
.to-cf { display: flex; gap: 4px; align-items: center; font-size: 11px; font-weight: 700; color: #8a2323; } .to-amb .to-cf { color: #7a5300; } .to-cf svg { width: 13px; flex: 0 0 auto; }
.tk-cf { display: block; font-size: 14px; letter-spacing: .02em; }
.tk-l2 { flex-wrap: wrap; } .tk-cf { flex-basis: 100%; padding-left: 1.6em; }
/* the pass hub (t668u pass): allergy border, touch controls, pass mode, section screens, FOH progress */
.tk-card.tk-allergy { border: 6px solid #b0261c; border-top-width: 10px; }
.tk-card.tk-pin { box-shadow: 0 0 0 3px #1E3A5F inset; } .tk-t svg { width: 22px; height: 22px; margin-right: 4px; vertical-align: -2px; }
.tk-c { gap: 8px; } .tk-c .tk-f { flex: 1; text-align: right; }
.tk-bump, .tk-b { min-height: 44px; min-width: 44px; padding: 0 14px; border-radius: 10px; border: 2px solid #1E3A5F; background: #fff; color: #1E3A5F; font-weight: 800; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.tk-b.on { background: #1E3A5F; color: #fff; }
.tk-ctl { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
button.tk-l2 { width: 100%; background: none; border: 0; text-align: left; cursor: pointer; border-radius: 8px; min-height: 44px; color: inherit; font-family: inherit; }
button.tk-l2:active { background: #f1ece2; }
.tk-l2.plated { text-decoration: line-through; color: #888; } .tk-l2.plated.al { color: #c7837c; }
.tk-pl { flex-basis: 100%; padding-left: 1.6em; font-size: 13px; font-weight: 800; color: #1d5a33; text-decoration: none; display: inline-flex; gap: 4px; align-items: center; } .tk-pl svg { width: 14px; }
.tk-sec { margin-left: 8px; font-size: 12px; font-weight: 700; color: #555; background: #f1ece2; border-radius: 6px; padding: 1px 6px; vertical-align: middle; }
.tk-firemsg { display: flex; gap: 8px; align-items: center; background: #1E3A5F; color: #fff; font-weight: 800; font-size: 18px; border-radius: 8px; padding: 8px 10px; margin: 0 0 8px; } .tk-firemsg svg { width: 20px; }
.tk-replies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; } .tk-replies .btn { min-height: 52px; font-size: 17px; font-weight: 800; }
.tk-reps { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; } .tk-rep { border-radius: 8px; padding: 4px 8px; font-size: 14px; font-weight: 800; background: #dfe7f3; color: #1E3A5F; }
.tk-rep.r-ready { background: #d7efdf; color: #14502b; } .tk-rep.r-needhelp { background: #b0261c; color: #fff; } .tk-rep.r-5min { background: #fbecc8; color: #6b4800; }
.tk-bar { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; } .tk-bar .tk-tools { margin-left: auto; } .tk-clock { font-size: 28px; }
.tk-secs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 6px; } .tk-chip { white-space: nowrap; border: 2px solid var(--rule); border-radius: 999px; padding: 8px 14px; font-weight: 700; color: inherit; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; } .tk-chip.on { background: #1E3A5F; color: #fff; border-color: #1E3A5F; }
.tk-sync { display: flex; gap: 6px; align-items: center; } .tk-sync svg { width: 14px; flex: 0 0 auto; }
body.tk-passmode .topbar, body.tk-passmode .bottomnav, body.tk-passmode .sidebar, body.tk-passmode .side-nav, body.tk-passmode .preview-bar { display: none !important; }
body.tk-passmode .view { padding: 12px !important; max-width: none !important; margin: 0 !important; }
body.tk-passmode { background: #e9e4da; }
.tk-grid.tk-pass { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); align-items: start; }
.tk-prog { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 4px; font-size: 11px; } .tk-prog svg { width: 13px; color: #777; }
.tk-pg { border-radius: 6px; padding: 1px 6px; font-weight: 700; } .tk-pg.h { background: #fbecc8; color: #6b4800; } .tk-pg.f { background: #d7efdf; color: #14502b; } .tk-pg.d { background: #ececec; color: #666; } .tk-pg.r { background: #dfe7f3; color: #1E3A5F; }
body.tk-passmode .view > * { max-width: none !important; }
.tk-l2 { flex-wrap: wrap; } .tk-l2 .tk-d { flex: 1; min-width: 0; }
/* t681u tickets v2: course clock tints, dark red allergy border, guest line, nudge, counts strip, drag, chimes */
.tk-card.tk-allergy { border: 8px solid #7a0f0a; border-top-width: 12px; }
.tk-cb { border-radius: 8px; padding: 2px 6px 6px; margin: 8px -6px 0; transition: background-color .4s; }
.tk-cb.t-g { background: #e6f5ea; } .tk-cb.t-a { background: #fdf0d2; } .tk-cb.t-r { background: #fadcd7; } .tk-cb.t-out { opacity: .6; }
.tk-cb .tk-c { margin-top: 4px; } .tk-cb.t-g .tk-c.away, .tk-cb.t-a .tk-c.away, .tk-cb.t-r .tk-c.away { background: rgba(255,255,255,.65); }
.tk-clk { font-size: 17px; font-variant-numeric: tabular-nums; white-space: nowrap; padding: 2px 8px; border-radius: 6px; background: #fff; color: #14502b; }
.t-a .tk-clk { color: #6b4800; } .t-r .tk-clk { color: #8a1a12; background: #fff; box-shadow: 0 0 0 2px #c0392b inset; }
.tk-guest { display: flex; gap: 6px; align-items: center; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: #1E3A5F; white-space: nowrap; overflow: hidden; } .tk-guest span { overflow: hidden; text-overflow: ellipsis; } .tk-guest svg { width: 16px; height: 16px; flex: 0 0 auto; }
.tk-nudge { display: flex; gap: 6px; align-items: center; margin: 4px 0 0; padding: 4px 8px; border-radius: 6px; background: #dfe7f3; color: #1E3A5F; font-weight: 800; font-size: 15px; } .tk-nudge svg { width: 16px; height: 16px; } .tk-nudge.now { background: #1E3A5F; color: #fff; }
.tk-strip { display: flex; flex-direction: column; gap: 4px; margin: 0 0 10px; }
.tk-sr { display: flex; gap: 10px; align-items: center; overflow-x: auto; white-space: nowrap; background: #fff; border: 1px solid var(--rule, #ddd); border-radius: 8px; padding: 4px 10px; font-size: 15px; }
.tk-sr b { min-width: 6em; } .tk-sr i { font-style: normal; font-weight: 800; background: #1E3A5F; color: #fff; border-radius: 6px; padding: 0 6px; }
.tk-gh { margin: 14px 0 6px; font-size: 16px; letter-spacing: .04em; }
.tk-grip { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: -6px 4px -6px -6px; font-size: 24px; color: #1E3A5F; cursor: grab; touch-action: none; user-select: none; border-radius: 8px; }
.tk-h { align-items: center; } .tk-h .tk-t { flex: 1; }
.tk-card.tk-dragging { position: relative; z-index: 50; box-shadow: 0 12px 30px rgba(0,0,0,.3); cursor: grabbing; }
.tk-card.tk-drop-b { box-shadow: 0 -6px 0 #1E3A5F; } .tk-card.tk-drop-a { box-shadow: 0 6px 0 #1E3A5F; }
.tk-card.tk-flash { animation: tkflash .6s ease-in-out 3; } .tk-card.tk-flash-a { animation-name: tkflasha; }
@keyframes tkflash { 50% { box-shadow: 0 0 0 6px #1E3A5F; } } @keyframes tkflasha { 50% { box-shadow: 0 0 0 8px #e0b400; } }
body.tk-flashbg .view { animation: tkbg .6s; } @keyframes tkbg { 30% { background: #fff6c8; } }
.tk-setg { display: grid; grid-template-columns: 1fr 5em 5em; gap: 6px 10px; align-items: center; margin: 8px 0 14px; } .tk-setg.two { grid-template-columns: 1fr 5em; }
@media (max-width: 520px) { .tk-t { font-size: 24px; } .tk-l1 { font-size: 20px; } .tk-l2 { font-size: 17px; } .tk-c { flex-wrap: wrap; } .tk-bar { flex-wrap: wrap; } .tk-bar .tk-tools { margin-left: 0; display: flex; flex-wrap: wrap; gap: 6px; } }
.tk-tools { display: inline-flex; flex-wrap: wrap; gap: 6px; }
/* t683u kitchen display: bottom dock */
.tk-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; justify-content: center; gap: 4px; padding: 4px 8px calc(4px + env(safe-area-inset-bottom)); background: #1E3A5F; }
.tk-di { flex: 0 1 96px; min-height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; background: none; border: 0; border-radius: 8px; color: #dfe7f3; font: inherit; font-size: 12px; font-weight: 700; text-decoration: none; cursor: pointer; }
.tk-di svg { width: 22px; height: 22px; } .tk-di.on { background: rgba(255,255,255,.18); color: #fff; } .tk-di.tk-exit { margin-left: 16px; color: #fff; }
body.tk-passmode .view { padding-bottom: 72px !important; }


/* t686u ticket rework */
.tk-card .tk-t { font-size: 34px; font-weight: 800; line-height: 1.05; flex: 0 1 auto; }
.tk-cov { font-size: 14px; font-weight: 700; color: #555; white-space: nowrap; }
.tk-vip { color: #b8860b; font-size: 26px; line-height: 1; } .tk-nat { font-size: 22px; }
.tk-hb { margin-left: auto; display: flex; gap: 6px; }
.tk-ib { min-width: 44px; min-height: 44px; border-radius: 50%; border: 2px solid #1E3A5F; background: #fff; color: #1E3A5F; font: 800 20px/1 Georgia, serif; cursor: pointer; }
.tk-mt { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: #555; } .tk-mt span { color: #1E3A5F; }
.tk-prio { display: block; width: 100%; text-align: left; border: 0; border-radius: 8px; padding: 8px 10px; margin: 0 0 8px; font: inherit; font-size: 20px; font-weight: 900; letter-spacing: .04em; cursor: pointer; }
.tk-prio small { display: block; font-size: 11px; font-weight: 700; letter-spacing: 0; opacity: .8; }
.tk-prio.p-stop { background: #c0392b; color: #fff; } .tk-prio.p-push { background: #1E3A5F; color: #fff; }
.tk-card.tk-stop { background: #f6c9c3; } .tk-card.tk-stop .tk-cb { opacity: .85; }
.tk-card.tk-push { box-shadow: 0 0 0 4px #1E3A5F; }
.tk-c.tap { cursor: pointer; } .tk-c.tap:active { filter: brightness(.92); }
.tk-c.hold.tap { border: 2px dashed #c98a00; }
.tk-dcs { display: inline-flex; gap: 4px; margin-left: 4px; }
.tk-dc { width: 40px; height: 40px; border-radius: 8px; border: 2px solid #999; background: #fff; color: #777; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.tk-dc svg { width: 20px; height: 20px; }
.tk-dc.s-1 { background: #f39c12; border-color: #c97c00; color: #fff; } .tk-dc.s-2 { background: #d7efdf; border-color: #2e9e5b; color: #14502b; } .tk-dc.s-all { background: #2e9e5b; border-color: #1d6e3e; color: #fff; }
.tk-ctl .tk-done { margin-left: auto; background: #1E3A5F; color: #fff; gap: 6px; } .tk-ctl .tk-done svg { width: 18px; }
.tk-mini .btn { margin-bottom: 8px; min-height: 52px; font-size: 17px; }
.tk-gp { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 10px 0; } .tk-gp dt { font-weight: 800; color: #555; } .tk-gp dd { margin: 0; }
.tk-pb-stop { background: #c0392b !important; border-color: #c0392b !important; }
.tk-chk { display: flex; gap: 8px; align-items: center; margin-top: 6px; }
.to-extra { display: grid; grid-template-columns: 1fr 2fr; gap: 8px; } @media (max-width: 520px) { .to-extra { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .tk-card .tk-t { font-size: 28px; } .tk-dc { width: 36px; height: 36px; } }
@media (max-width: 520px) { .tk-h { flex-wrap: wrap; gap: 6px; } .tk-card .tk-t { white-space: normal; } .tk-c { flex-wrap: wrap; } .tk-ctl .tk-done { margin-left: 0; } }
.tk-h { flex-wrap: wrap; gap: 6px; } .tk-ib { min-width: 40px; min-height: 40px; width: 40px; height: 40px; }
/* t689u */
.tk-coll { margin: 2px 0 0; padding: 0 6px; font-size: 15px; font-weight: 700; color: #6b4800; } .tk-coll b { color: #b0261c; }
.tk-sn { display: flex; gap: 6px; align-items: center; margin: 0 0 6px; font-size: 15px; font-weight: 800; color: #1E3A5F; background: #eef2f8; border-radius: 6px; padding: 4px 8px; } .tk-sn svg { width: 16px; height: 16px; flex: 0 0 auto; }
.tk-acc { margin-left: 6px; font-size: 16px; } .tk-wide { font-style: italic; }
.tk-mt { overflow-wrap: anywhere; }
/* t690u away fold, parking, guest line */
.tk-cb.t-out { opacity: 1; background: #ececec; color: #777; } .tk-cb.t-out .tk-c { background: #dcdcdc !important; color: #666; } .tk-cb.t-out .tk-l1, .tk-cb.t-out .tk-l2 { color: #888; }
.tk-tuck { display: flex; flex-direction: column; gap: 4px; margin: 6px 0 0; }
.tk-awy { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 36px; padding: 4px 10px; border: 0; border-radius: 6px; background: #ececec; color: #777; font: inherit; font-size: 13px; font-weight: 700; letter-spacing: .04em; cursor: pointer; text-align: left; }
.tk-awy.open { margin-top: 8px; }
.tk-parked { position: sticky; bottom: 0; z-index: 30; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 12px; padding: 6px 10px; background: #d9d4ca; border-radius: 10px; }
body.tk-passmode .tk-parked { bottom: 64px; }
.tk-pk-l { font-size: 12px; font-weight: 800; letter-spacing: .08em; color: #555; text-transform: uppercase; }
.tk-pk { min-height: 40px; padding: 0 14px; border-radius: 8px; border: 2px solid #999; background: #f4f2ee; color: #444; font: inherit; font-weight: 800; cursor: pointer; }
.tk-guest { flex-wrap: nowrap; } .tk-guest span { flex: 1; min-width: 0; white-space: nowrap; }
.tk-more { flex: 0 0 auto; border: 0; background: none; color: #1E3A5F; text-decoration: underline; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; padding: 4px; min-height: 32px; }
button.tk-sn { width: 100%; border: 0; text-align: left; font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; } .tk-chk2 { background: #fbecc8 !important; color: #6b4800 !important; }
.gx-chk { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 8px 0; } .gx-chk label { display: flex; gap: 6px; align-items: center; min-height: 40px; }
/* t691u: one-line dish titles, header on one line */
.tk-l1 { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; } .tk-l1 .tk-dn { overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; } .tk-l1 .tk-sec { flex: 0 0 auto; margin-left: auto; }
.tk-h { flex-wrap: nowrap; } .tk-card .tk-t { white-space: nowrap; font-size: 30px; } .tk-cov { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; } .tk-hb { flex: 0 0 auto; } .tk-grip { margin-right: 0; min-width: 36px; }
@media (max-width: 520px) { .tk-h { flex-wrap: nowrap; } .tk-card .tk-t { font-size: 26px; } }
/* t692u dish lines */
.tk-l1 { font-size: 26px; font-weight: 900; line-height: 1.15; margin-top: 8px; cursor: pointer; } .tk-l1 .tk-n { min-width: 1.2em; } .tk-l1.plated .tk-dn { text-decoration: line-through; color: #888; }
.tk-l2, button.tk-l2 { font-size: 16px; font-weight: 400; line-height: 1.25; padding-top: 0; padding-bottom: 0; min-height: 30px; margin: 0; padding-left: 1.6em; }
.tk-l2 .tk-n { font-weight: 700; } .tk-l2.al { font-weight: 700; } .tk-cf { font-size: 13px; line-height: 1.2; }
.tk-seats { margin-left: 8px; font-size: 12px; font-weight: 400; color: #888; white-space: nowrap; } .tk-seats::before { content: '· '; }
@media (max-width: 520px) { .tk-l1 { font-size: 22px; } .tk-l2, button.tk-l2 { font-size: 15px; } }
/* t693u needs */
.gx-needs { margin: 8px 0; } .gx-nbtn { display: flex; width: 100%; gap: 10px; align-items: center; min-height: 48px; padding: 0 12px; border: 1px solid var(--rule, #ccc); border-radius: 10px; background: #fff; font: inherit; font-weight: 700; cursor: pointer; text-align: left; }
.gx-nsum { flex: 1; font-weight: 400; font-size: 18px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .gx-nbtn.open { border-color: #1E3A5F; }
.gx-nlist { max-height: 300px; overflow-y: auto; border: 1px solid var(--rule, #ccc); border-top: 0; border-radius: 0 0 10px 10px; background: #fff; }
.gx-nrow { display: flex; gap: 10px; align-items: center; min-height: 46px; padding: 0 12px; border-bottom: 1px solid #eee; cursor: pointer; } .gx-ns { font-size: 20px; width: 28px; text-align: center; }
.tk-needs { display: inline-flex; gap: 2px; margin-left: 6px; white-space: nowrap; font-size: 16px; vertical-align: middle; } .tk-needs b { font-size: 12px; color: #555; margin-left: 2px; }
.tk-alw { font-weight: 800; letter-spacing: .02em; } .tk-l2.al .tk-d { font-weight: 400; }
/* t695u: ⚠ level with the capitals; can't-make */
.tk-l2 > svg { align-self: flex-start; width: 15px; height: 15px; margin-top: 2px; }
@media (max-width: 520px) { .tk-l2 > svg { width: 14px; height: 14px; margin-top: 2px; } }
.tk-card.tk-cant { border-color: #e00000; box-shadow: 0 0 0 4px #e00000; }
.tk-cantb { display: flex; gap: 8px; align-items: flex-start; background: #e00000; color: #fff; font-weight: 900; font-size: 17px; line-height: 1.25; letter-spacing: .02em; border-radius: 8px; padding: 8px 10px; margin: 0 0 8px; }
.tk-cant-l { display: block; flex-basis: 100%; padding-left: 1.6em; color: #c00000; font-weight: 900; font-size: 15px; letter-spacing: .02em; }
.tk-ovr { display: block; flex-basis: 100%; padding-left: 1.6em; font-size: 12px; color: #8a1a12; font-style: italic; }
.to-stop { display: flex; gap: 8px; align-items: flex-start; } .to-stop svg { flex: 0 0 auto; margin-top: 3px; }
.tk-cant-l.in { display: inline; padding: 0; }
/* t696u: soup/cheese statuses */
.sv-s-soup, .sv-st-soup { background: #dcebe8; color: #1d5a4f; } .sv-s-cheese, .sv-st-cheese { background: #ece6d2; color: #5a4a1d; }
.sv-g7 { opacity: .62; } .sv-g8 { opacity: .55; } .sv-g6 { opacity: .7; }
/* t697u: added courses */
[class*="sv-s-c-"], [class*="sv-st-c-"] { background: #e3ebf0; color: #1d3f5a; }
.to-cbar { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin: 6px 0; } .to-cur { display: flex; flex-direction: column; font-size: 12px; } .to-cur .input { min-width: 180px; }
button.tk-coll { display: block; width: 100%; text-align: left; background: none; border: 0; cursor: pointer; font-family: inherit; } .tk-coll span { color: #8a6a2a; font-weight: 600; font-size: 13px; } .tk-coll.open { font-size: 13px; color: #8a6a2a; }
/* t698u */
.tk-glance { align-items: flex-start; } .tk-glance > div { font-weight: 600; } .tk-glance b { font-weight: 900; } .tk-gs { font-size: 11px; color: #f3c9c4; font-weight: 600; letter-spacing: .02em; } .tk-gdot { opacity: .7; }
.tk-link { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; font-size: 12px; font-weight: 700; color: #1d3f5a; background: #e3ebf0; border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
.tk-card.tk-linked { border-style: solid; outline: 2px dashed #6f8fa8; outline-offset: 2px; }
.tk-one { color: #8a5a00; background: #fff3d6; border-radius: 4px; padding: 0 4px; font-weight: 700; }
.to-one { font-size: 13px; color: #8a5a00; margin: 4px 0; } .to-onef { border: 1px dashed #e0a800; border-radius: 10px; padding: 8px 10px; margin: 6px 0; } .to-oneb { border-style: dashed; }
.to-noswap { margin: 6px 0 0; }
.kt-todos .kt-row .btn { flex: 0 0 auto; }
.tk-undo { position: fixed; left: 50%; bottom: 76px; transform: translateX(-50%); z-index: 9999; background: #1f2a33; color: #fff; border-radius: 12px; padding: 10px 12px 12px 16px; display: flex; gap: 14px; align-items: center; font-weight: 600; box-shadow: 0 6px 24px rgba(0,0,0,.25); overflow: hidden; }
.tk-undo[hidden] { display: none; } .tk-undo button { background: #ffd34d; color: #1f2a33; border: 0; border-radius: 8px; font-weight: 800; padding: 8px 14px; font-size: 15px; }
.tk-undo i { position: absolute; left: 0; bottom: 0; height: 3px; background: #ffd34d; width: 100%; } .tk-undo.run i { animation: tkundo 8s linear forwards; } @keyframes tkundo { to { width: 0; } }
.rb-print { margin-left: 10px; font-size: 13px; font-weight: 600; }
#print-area { display: none; }
@media print {
  html.printing body > *:not(#print-area) { display: none !important; } html.printing #print-area { display: block; } html.printing body { background: #fff !important; padding: 0 !important; margin: 0 !important; }
  #print-area.pr-t80 { page: t80; width: 72mm; font: 11pt/1.3 Arial, sans-serif; color: #000; }
  #print-area.pr-a4 { page: a4; font: 11pt/1.45 Georgia, serif; color: #000; }
  .rp, .rp-cover { break-after: page; } .pt-cut { break-after: page; }
}
@page t80 { size: 80mm 297mm; margin: 3mm 4mm; } @page a4 { size: A4; margin: 15mm; }
#print-area.show { display: block; background: #fff; }
.pt { width: 72mm; font: 11pt/1.3 Arial, sans-serif; color: #000; } .pt p { margin: 0 0 2px; } .pt-h { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 2px solid #000; padding-bottom: 2px; margin-bottom: 3px; } .pt-h b { font-size: 20pt; } .pt-m { font-size: 9pt; }
.pt-x { font-weight: 900; border: 2px solid #000; padding: 2px 4px; margin: 4px 0 !important; } .pt-a { font-weight: 800; text-transform: uppercase; border-top: 1px dashed #000; border-bottom: 1px dashed #000; padding: 2px 0; margin: 3px 0 !important; }
.pt-c { font-weight: 900; margin-top: 6px !important; border-bottom: 1px solid #000; } .pt-d { font-size: 13pt; font-weight: 800; } .pt-l { padding-left: 4mm; font-size: 10pt; } .pt-f { font-size: 8pt; margin-top: 6px !important; text-align: center; } .pt-cut { border-top: 1px dashed #999; margin: 6mm 0; }
.rp h1 { font-size: 22pt; margin: 0 0 4px; } .rp h2 { font-size: 13pt; margin: 14px 0 4px; border-bottom: 1px solid #000; } .rp-m, .rp-f { font-size: 10pt; color: #333; } .rp-al { border: 1.5px solid #000; padding: 4px 8px; } .rp-t { width: 100%; border-collapse: collapse; } .rp-t td { border-bottom: 1px solid #ccc; padding: 3px 4px; } .rp-t td + td { text-align: right; white-space: nowrap; width: 30%; } .rp-cover h1 { font-size: 26pt; }
/* t699u: held courses in full, dashed, no tint; dish lines don't fire */
.tk-cb.t-held { background: transparent; border: 2px dashed #d9a93a; padding-top: 0; } .tk-cb.t-held .tk-c.hold.tap { border: 0; } .tk-cb.t-held .tk-l1, .tk-cb.t-held .tk-l2 { color: #4a3a1a; }
/* t700u: drinks and cutlery identical: light yellow (doing), light green (done), solid dark green only for the whole meal */
.tk-dc.s-1 { background: rgba(255, 210, 40, .35); border-color: #d9a93a; color: #6b4800; }
.tk-dc.s-2 { background: rgba(46, 158, 91, .22); border-color: #57b07c; color: #14502b; }
.tk-dc.s-all { background: #17603a; border-color: #0f4529; color: #fff; }
/* t701u: FOH steps on the table squares, drinks order */
.to-tab { min-height: 104px; justify-content: space-between; } .to-tlink { display: flex; flex-direction: column; gap: 2px; color: inherit; text-decoration: none; }
.to-steps { display: flex; gap: 5px; margin-top: 6px; } .to-st { width: 38px; height: 38px; position: relative; } .to-st svg { width: 18px; height: 18px; }
.to-st em { position: absolute; right: -5px; top: -7px; font-style: normal; font-size: 9px; font-weight: 800; background: #fff; border: 1px solid #d9a93a; color: #6b4800; border-radius: 6px; padding: 0 3px; line-height: 13px; }
.to-head .to-steps { margin: 0; align-self: flex-start; }
.to-mode { margin: 0 0 10px; } .to-mode a { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 6px; border-radius: 12px; border: 1.5px solid var(--rule); background: #fff; font-weight: 700; color: var(--ink); text-decoration: none; } .to-mode a.on { background: var(--brand, #1f2f4d); border-color: var(--brand, #1f2f4d); color: #fff; } .to-mode a svg { width: 18px; height: 18px; }
.dr-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--rule); } .dr-q { display: inline-flex; align-items: center; gap: 10px; } .dr-q b { min-width: 22px; text-align: center; font-size: 17px; }
.bar-card .tk-h { display: flex; justify-content: space-between; align-items: baseline; } .bar-w { font-weight: 700; display: flex; gap: 6px; align-items: center; margin: 6px 0; } .bar-w svg { width: 18px; height: 18px; }
/* t702u: water box (fixed spot under the menu line) */
.tk-water { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin: 2px 0 6px; padding: 4px 8px; border: 1.5px solid #9cc3dc; background: #eef6fb; color: #17435f; border-radius: 8px; font-size: 14px; line-height: 1.2; }
.tk-water b { font-size: 12px; letter-spacing: .06em; margin-right: 4px; } .tk-water svg { width: 18px; height: 18px; flex: 0 0 auto; } .tk-water .tk-wi0 { opacity: .55; }
.tk-wg { display: inline-flex; align-items: center; gap: 3px; font-weight: 700; } .tk-wg small { font-size: 12px; color: #4b6b80; font-weight: 700; }
.tk-water { gap: 4px 12px; } .tk-wl { font-size: 11px; font-weight: 800; letter-spacing: .08em; color: #4b6b80; } .tk-wg b { font-size: 15px; } .tk-wg small { margin-left: 2px; }
.dr-seats summary { cursor: pointer; padding: 6px 0; }
/* t705u: Move / Edit as small pills */
.sv-acts { flex-direction: row; gap: 6px; align-items: center; flex: 0 0 auto; }
.btn.sv-pb { min-height: 32px; height: 32px; padding: 0 12px; font-size: 13px; border-radius: 999px; width: auto; }
@media (max-width: 520px) { .sv-acts { flex-direction: column; gap: 4px; } .btn.sv-pb { min-width: 64px; } }
/* t706u standalone bar */
.bs-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bs-chips small { opacity: .7; margin-left: 2px; }
.bs-tot { text-align: right; margin: 6px 0; }
.bs-to { margin: 8px 0; }
.bs-tab { padding: 10px 12px; margin-bottom: 8px; }
.bs-th { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; margin-bottom: 4px; }
.bs-p { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.bs-void > span:first-child { text-decoration: line-through; opacity: .6; }
.bs-void em { text-decoration: none; }
.bs-void .bs-p { opacity: .5; text-decoration: line-through; }
/* t711u: a selected chip is always clearly filled (navy, white text), everywhere the chip is used */
.al-chip[aria-pressed="true"], .al-chip.on, .al-chip[aria-pressed="true"]:hover, .al-chip[aria-pressed="true"]:focus,
.to-chips .al-chip[aria-pressed="true"], .al-chip.to-fl[aria-pressed="true"] { background: var(--brand) !important; border-color: var(--brand) !important; color: #fff !important; }
.al-chip[aria-pressed="true"] * { color: #fff !important; }
.al-chip { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.chip[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
/* t712u: merged add-ons */
.tk-l1.tk-added { background: #fff3c4; box-shadow: inset 3px 0 0 #e0a800; border-radius: 4px; }
.tk-l1.tk-added { flex-wrap: wrap; }
.tk-l1 .tk-addm { order: 9; flex: 0 0 auto; margin: 2px 0 2px 26px; padding: 1px 8px; border-radius: 999px; border: 0; background: #e0a800; color: #1d1d1d; font-family: inherit; font-size: 11.5px; font-weight: 700; line-height: 1.5; letter-spacing: .02em; cursor: pointer; white-space: nowrap; }
.tk-l1.tk-added + .tk-l1, .tk-l1.tk-added { margin-top: 2px; }
.to-bill { margin: 8px 0; }
/* t714u split bill */
.to-bill { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 10px 0; }
.sp-tots { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; margin: 10px 0; }
.sp-t { display: flex; flex-direction: column; padding: 6px 10px; border-radius: 10px; background: var(--field); border: 2px solid var(--rule); font-size: 15px; }
.sp-t b { font-size: 12px; }
.sp-items { display: flex; flex-direction: column; gap: 6px; }
.sp-it { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; min-height: 52px; padding: 8px 12px; border-radius: 12px; border: 2px solid var(--rule); background: #fff; font: inherit; font-size: 16px; text-align: left; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.sp-it small { color: var(--ink-2); }
.sp-w { font-weight: 700; font-size: 13px; padding: 3px 8px; border-radius: 999px; background: var(--field); }
.sp-p { font-weight: 700; min-width: 54px; text-align: right; }
.sp-it.share { border-style: dashed; border-color: var(--brand); }
.sp-c1 { --pc: #1e3a5f; } .sp-c2 { --pc: #2e7d4f; } .sp-c3 { --pc: #b25b00; } .sp-c4 { --pc: #7b3fa0; } .sp-c5 { --pc: #b0306b; } .sp-c0 { --pc: #2a7a8c; }
.sp-it[class*="sp-c"] { border-color: var(--pc); } .sp-it[class*="sp-c"] .sp-w { background: var(--pc); color: #fff; }
.sp-t[class*="sp-c"] { border-color: var(--pc); }
/* t715u prices and bill */
.to-price { display: block; font-weight: 700; font-size: 13px; color: var(--brand); margin-top: 2px; }
.bl-row { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px solid var(--rule); font-size: 15px; }
.bl-tot { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; margin: 10px 0 4px; font-size: 15px; }
.bl-tot b { text-align: right; } .bl-big { font-size: 18px; font-weight: 800; }
.sp-t small { display: block; font-size: 11.5px; color: var(--ink-2); }
.sp-t .sp-room { margin-top: 4px; min-height: 34px; font-size: 13px; padding: 4px 6px; }
.sp-t .btn { margin-top: 4px; min-height: 34px; font-size: 13px; }
.sp-paid { color: var(--ok) !important; font-weight: 700; }
.mn-price { font-weight: 700; color: var(--brand); margin: 0 6px 0 8px; white-space: nowrap; }
/* t718u bills, payments, tips */
.bl-disc { font-style: normal; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-2); background: var(--field); padding: 1px 6px; border-radius: 999px; }
.py-big { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 6px 0 12px; }
.py-b { min-height: 64px; border-radius: 14px; border: 2px solid var(--rule); background: #fff; font: inherit; font-size: 18px; font-weight: 700; display: flex; flex-direction: column; align-items: center; justify-content: center; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.py-b small { font-size: 13px; font-weight: 600; opacity: .8; }
.py-b[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
.py-q { font-size: 20px; font-weight: 700; text-align: center; margin: 4px 0; }
.py-amtbig { font-size: 30px; font-weight: 800; text-align: center; margin: 0 0 8px; } .py-amtbig small { display: block; font-size: 12px; font-weight: 500; color: var(--ink-2); }
.py-total { text-align: center; font-size: 18px; } .py-total b { font-size: 24px; }
.py-guest .sheet-head .eyebrow, .py-guest [data-close] { visibility: hidden; }
.py-guest .py-b { min-height: 84px; font-size: 22px; }
.tp-law { margin-bottom: 14px; font-size: 14px; }
.tp-inl { display: inline-flex; align-items: center; gap: 6px; margin: 6px 8px 6px 0; font-size: 14px; } .tp-inl .input { width: 74px; min-height: 36px; }
.tp-tab { width: 100%; border-collapse: collapse; font-size: 13px; } .tp-tab th, .tp-tab td { text-align: right; padding: 5px 4px; border-bottom: 1px solid var(--rule); } .tp-tab th:first-child, .tp-tab td:first-child { text-align: left; } .tp-tab tr.on td { background: var(--brand-wash); }
.tp-h { display: inline-flex; align-items: center; gap: 6px; } .tp-h .input { width: 64px; min-height: 34px; } .tp-h b { min-width: 64px; text-align: right; }
/* t719u order list (like the menu list) */
.to-list { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.to-row { width: 100%; display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 12px 8px 14px; border-radius: 12px; border: 1px solid var(--rule); border-left: 5px solid var(--rule); background: #fff; font: inherit; text-align: left; color: var(--ink); touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.to-row:active { background: var(--brand-wash); }
.to-row .grow { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }
.to-rn { font-weight: 700; font-size: 15.5px; line-height: 1.3; width: 100%; }
.to-ral, .to-ropt { font-size: 12px; color: var(--ink-2); }
.to-rp { font-weight: 800; color: var(--brand); white-space: nowrap; font-size: 15.5px; } .to-rp small { font-weight: 600; font-size: 11px; color: var(--ink-2); }
.to-row.to-red { border-left-color: var(--res-red); } .to-row.to-amb { border-left-color: #e0a800; }
.to-rtag { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: var(--res-red); width: 100%; }
.to-rtag svg { width: 13px; height: 13px; } .to-row.to-amb .to-rtag { color: #8a6400; }
@media (min-width: 900px) { .to-list { display: grid; grid-template-columns: 1fr 1fr; } }
.to-chips:has(.tp-inl) { align-items: center; } .to-chips .tp-inl { margin: 0 0 0 4px; }
.to-row[class*="cat-"] { border-left-color: var(--cat); }
/* t723u notification indicator */
.np-bar { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; padding: 6px 10px; border-radius: 10px; background: var(--field); color: var(--ink-2); font-size: 13px; }
.np-bar svg { width: 15px; height: 15px; flex: 0 0 auto; } .np-bar span { flex: 1; } .np-bar.off { background: #fff3c4; color: #6b5200; }
/* t729u tip */
.py-tipf { display: flex; align-items: center; gap: 10px; margin: 8px 0; font-size: 18px; font-weight: 700; flex-wrap: wrap; justify-content: center; }
.py-tipin { display: inline-flex; align-items: center; gap: 4px; font-size: 26px; font-weight: 800; }
.py-tipin .input { width: 120px; min-height: 56px; font-size: 26px; font-weight: 800; text-align: center; }
.py-pcts { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; margin: 4px 0 10px; }
/* t729u timeline: pace tally row, greying as courses go */
.sv-pace { background: #faf8f3; }
.sv-pc { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 34px; font-size: 11px; line-height: 1.15; border-right: 1px solid var(--rule); color: var(--ink-2); white-space: nowrap; overflow: hidden; }
.sv-pc b { color: var(--ink); } .sv-pc small { font-size: 10px; color: var(--mute); }
.sv-pc.p-amber { background: #fff3c4; } .sv-pc.p-red { background: #f8d4cf; color: #8a1c12; }
.sv-bk { background-image: linear-gradient(90deg, rgba(110,110,110,.38) var(--pg, 0%), transparent var(--pg, 0%)); }
.sv-bk.sv-gone { filter: grayscale(1); opacity: .45; }
.sv-pc { flex: 0 0 auto; box-sizing: border-box; } .sv-pace .sv-lab { font-size: 11px; background: #faf8f3; }
/* t730u desktop pass: use the width, no stretched phone layouts */
.to-row .grow { flex: 1 1 auto; }
@media (min-width: 1100px) {
  .to-wide { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 22px; align-items: start; }
  .to-wide > .to-side { order: 2; position: sticky; top: 64px; max-height: calc(100vh - 80px); overflow: auto; background: #fff; border: 1px solid var(--rule); border-radius: 14px; padding: 4px 14px 10px; }
  .to-wide > .to-main { order: 1; min-width: 0; }
  .to-side .bl-card { margin-top: 6px; }
  .to-tables { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important; }
  .tp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; align-items: start; }
  .tp-grid > .section:nth-child(2) { grid-column: 1 / -1; order: 3; }
  .sheet { max-width: 640px !important; }
}
@media (min-width: 1280px) {
  body.biz .view > * { max-width: 1280px; }
  .sq-grid > .sq-tile, .sq-grid > .gh-dept { flex-basis: calc(33.333% - 7px); }
  .sv-guests, .view .section > .xrows { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .view .section > .xrows > li { margin: 0; }
}
@media (min-width: 1100px) {
  .sbox-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; align-items: start; }
  .sbox-cols > .sbox { margin-top: 0; min-width: 0; }
  body.biz .sq-grid > .sq-tile, body.biz .sq-grid > .gh-dept { flex-basis: calc(33.333% - 7px); }
  body.biz .sq-grid.sq-odd > :first-child { flex-basis: 100%; }
}
@media (min-width: 1500px) { body.biz .sq-grid:not(.sq-odd) > .sq-tile { flex-basis: calc(25% - 8px); } }
@media (min-width: 1100px) { .view ul.tu-list:has(> li > .mn-row) { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; } .view ul.tu-list:has(> li > .mn-row) > li { margin: 0; } }
/* t737u bar office */
.bo-gp { font-weight: 700; font-size: 13px; padding: 2px 9px; border-radius: 999px; background: #eee; color: #555; margin-left: 8px; white-space: nowrap; }
.bo-gp.ok, .bo-sum b.ok { background: #dcefdc; color: #1e6b2a; } .bo-gp.amb, .bo-sum b.amb { background: #fbedc6; color: #7a5a00; } .bo-gp.red, .bo-sum b.red { background: #f6d2cf; color: #9b1c12; }
.bo-row { display: flex; align-items: center; gap: 6px; } .bo-row.bo-off { opacity: .55; }
.bo-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; text-align: center; }
.bo-sum small { display: block; font-size: 11.5px; color: var(--muted, #777); } .bo-sum b { display: inline-block; font-size: 22px; padding: 2px 10px; border-radius: 10px; margin: 4px 0; }
.bo-pr { max-width: 220px; } .bo-tiles .sq-tile { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 4px; padding: 14px; }
.bo-tiles .sq-tile h3 { margin: 6px 0 0; }
.bo-tiles .sq-tile { background: #fffdf8; border: 1px solid rgba(0,0,0,.09); border-radius: 14px; min-height: 110px; }
.bo-me { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .bo-q { margin: 0; padding: 10px 12px; } .bo-q b { display: block; } .bo-q p { margin: 4px 0 0; }
@media (min-width: 900px) { .bo-me { grid-template-columns: repeat(4, 1fr); } }
.bo-slip { border-left: 4px solid #c99a2e; display: flex; flex-direction: column; gap: 4px; margin-top: 10px; }
/* t743u rota */
.rt-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 0 10px; }
.rt-tools { align-items: center; flex-wrap: wrap; } .rt-pub { color: #2e7d4f; font-weight: 600; display: inline-flex; gap: 4px; align-items: center; } .rt-pub svg { width: 16px; height: 16px; } .rt-draft { color: #9a6b12; font-weight: 600; }
.rt-list .tu { gap: 12px; } .rt-day { display: flex; flex-direction: column; width: 34px; } .rt-day small { color: var(--muted, #777); } .rt-today { box-shadow: inset 4px 0 0 var(--navy, #1f2d4d); }
.rt-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rt-grid { border-collapse: separate; border-spacing: 4px; width: 100%; min-width: 760px; font-size: 13px; }
.rt-grid th { font-weight: 600; text-align: left; white-space: nowrap; } .rt-grid thead th { font-size: 12px; color: var(--muted, #666); }
.rt-who small { display: block; font-weight: 400; color: var(--muted, #777); font-size: 11px; }
.rt-cell { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; width: 100%; min-height: 46px; padding: 6px 8px; border-radius: 8px; border: 1px dashed rgba(0,0,0,.15); background: transparent; font: inherit; text-align: left; color: inherit; }
button.rt-cell { cursor: pointer; } .rt-cell.on { background: rgba(31,45,77,.08); border: 1px solid rgba(31,45,77,.18); } .rt-cell small { color: var(--muted, #666); font-size: 11px; line-height: 1.2; }
.rt-off { color: var(--muted, #777); } .rt-off.hol { color: #2e6da4; font-weight: 600; } .rt-add { color: rgba(0,0,0,.25); font-size: 18px; }
.rt-h { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rt-cost { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } .rt-cost small { display: block; color: var(--muted, #777); font-size: 12px; } .rt-cost b { font-size: 20px; }
@media (min-width: 900px) { .rt-cost { grid-template-columns: repeat(4, 1fr); } }
.rt-ok { color: #2e7d4f; } .rt-amb { color: #b07800; } .rt-red { color: #b3261e; }
.rt-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* t745u rota month, requests */
.rt-tabs { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; } .rt-tabs a.al-chip { text-decoration: none; } .rt-ppl { margin-left: auto; }
.rt-zoom { display: flex; gap: 6px; justify-content: flex-end; align-items: center; margin: -4px 0 6px; }
.rt-month { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.rt-mh { font-size: 11px; color: var(--muted, #777); text-align: center; } .rt-mh span { display: none; }
.rt-md { min-height: 52px; background: #fff; border-radius: 6px; padding: 3px; display: flex; flex-direction: column; gap: 2px; overflow: hidden; border: 1px solid rgba(0,0,0,.06); }
.rt-md.empty { background: transparent; border: 0; } .rt-md.today { box-shadow: inset 0 0 0 2px var(--navy, #1f2d4d); }
.rt-dn { font-size: 11px; font-weight: 600; } .rt-sqs { display: flex; gap: 2px; flex-wrap: wrap; }
.rt-sq { display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px; border-radius: 3px; vertical-align: middle; font-style: normal; }
.rt-sq b { display: none; font-size: 9px; font-weight: 700; color: #fff; }
.rt-sq.on { background: #1f2d4d; } .rt-sq.on.pm { background: #4a6fa5; } .rt-sq.off { background: #c9c3b6; } .rt-sq.hol { background: #2e9e6b; }
.rt-hols { display: flex; flex-direction: column; } .rt-hols em { font-style: normal; font-size: 9px; line-height: 1.2; color: #1f6e4b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-hols em::before { content: '☀ '; }
.rt-z0 .rt-md { min-height: 34px; } .rt-z0 .rt-hols { display: none; }
.rt-z2 .rt-md { min-height: 86px; padding: 5px; } .rt-z2 .rt-sq { width: 26px; height: 16px; } .rt-z2 .rt-sq b { display: inline; } .rt-z2 .rt-hols em { font-size: 11px; } .rt-z2 .rt-dn { font-size: 13px; }
@media (min-width: 900px) { .rt-md { min-height: 90px; padding: 6px; } .rt-mh span { display: inline; } .rt-sq { width: 28px; height: 16px; } .rt-sq b { display: inline; } .rt-hols em { font-size: 12px; } .rt-dn { font-size: 13px; } .rt-z0 .rt-md { min-height: 56px; } .rt-z2 .rt-md { min-height: 130px; } }
.rt-key .rt-sq { margin: 0 2px 0 8px; }
.rt-rq { align-items: flex-start; } .rt-rqb { display: flex; gap: 6px; flex-wrap: wrap; }
.rt-clash { display: flex; gap: 4px; align-items: center; color: #9a6b12; font-size: 12px; } .rt-clash svg { width: 14px; height: 14px; }
.rt-st { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 99px; background: rgba(0,0,0,.06); } .rt-st.ok { background: rgba(46,158,107,.15); color: #1f6e4b; } .rt-st.no { background: rgba(179,38,30,.1); color: #b3261e; } .rt-st.pending { background: rgba(255,193,7,.2); color: #8a5a00; }
.rt-news { display: flex; gap: 8px; align-items: center; border-left: 4px solid #2e9e6b; } .rt-news.no { border-left-color: #b3261e; } .rt-news svg { width: 18px; height: 18px; flex: none; }
/* t746u budgets, swaps, rota messages */
.rt-buds { display: flex; flex-direction: column; gap: 4px; margin: 6px 0 2px; } .rt-buds .linkish { align-self: flex-end; font-size: 13px; }
.rt-bud { display: grid; grid-template-columns: 120px 1fr auto; gap: 10px; align-items: center; font-size: 13px; }
.rt-bbar { height: 8px; border-radius: 99px; background: rgba(0,0,0,.07); overflow: hidden; } .rt-bbar i { display: block; height: 100%; background: #2e9e6b; }
.rt-bud.amb .rt-bbar i { background: #e0a100; } .rt-bud.red .rt-bbar i { background: #b3261e; } .rt-bud.red .rt-bn { color: #b3261e; font-weight: 600; } .rt-bud.amb .rt-bn { color: #8a5a00; }
.rt-bn { white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .rt-bud { grid-template-columns: 1fr auto; } .rt-bbar { grid-column: 1 / -1; order: 3; } }
.rt-swb { margin-left: 6px; } .rt-overm { font-weight: 600; color: #b3261e; } .rt-ovb { display: flex; gap: 8px; flex-wrap: wrap; } .rt-ovb .btn { flex: 1; }
.rt-msgs { margin-top: 14px; } .rt-mt { display: flex; gap: 6px; align-items: center; font-size: 18px; } .rt-mt svg { width: 18px; height: 18px; }
.rt-unread { box-shadow: inset 4px 0 0 #1f2d4d; } .rt-unread .tu-name { font-weight: 700; }
/* t748u dishwasher log, Planday bits, messenger */
.dw-card { display: flex; flex-direction: column; gap: 6px; } .dw-h { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; align-items: center; } .dw-h b { display: inline-flex; gap: 6px; align-items: center; } .dw-h svg { width: 18px; height: 18px; }
.dw-in { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: end; } .dw-in .field { margin: 0; }
.dw-list { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; } .dw-list li { padding: 6px 8px; border-radius: 8px; }
.dw-ok { background: rgba(46,158,107,.1); } .dw-low { background: rgba(179,38,30,.1); color: #8a1c15; } .dw-low strong { text-transform: uppercase; }
.rt-clk { margin-left: 6px; } .rt-clkd { font-size: 12px; color: #2e7d4f; font-weight: 600; margin-left: 6px; white-space: nowrap; }
.rt-unav { font-size: 11px; color: #9a6b12; background: repeating-linear-gradient(45deg, rgba(224,161,0,.12) 0 6px, transparent 6px 12px); border-radius: 6px; padding: 2px 4px; }
.rt-holbal { display: flex; gap: 6px; align-items: center; margin: 8px 0 0; } .rt-holbal svg { width: 16px; height: 16px; }
.rt-ts td { font-size: 12px; white-space: nowrap; }
.ms-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ms-row { display: flex; gap: 12px; align-items: center; padding: 10px 8px; border-radius: 12px; text-decoration: none; color: inherit; background: #fff; border: 1px solid rgba(0,0,0,.05); }
.ms-row.unread .ms-n { font-weight: 700; } .ms-av { flex: none; width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #e6e9f0; color: #1f2d4d; font-weight: 700; font-size: 17px; }
.ms-av svg { width: 20px; height: 20px; } .ms-company { background: #1f2d4d; color: #fff; } .ms-sys { background: #f1e7cf; color: #8a5a00; } .ms-dept { background: #dfeee6; color: #1f6e4b; }
.ms-n { display: block; } .ms-last { display: block; font-size: 13px; color: var(--muted, #666); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 62vw; }
.ms-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; } .ms-meta small { color: var(--muted, #777); font-size: 11px; }
.ms-badge, .ms-tabn { background: #2e9e6b; color: #fff; border-radius: 99px; font-size: 11px; min-width: 18px; padding: 1px 6px; text-align: center; } .ms-tabn { position: absolute; top: 2px; margin-left: 14px; }
.ms-pin { font-size: 11px; }
.ms-chat { display: flex; flex-direction: column; gap: 8px; } .ms-top { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; } .ms-top small { flex: 1 1 100%; order: 3; } .ms-top .btn { margin-left: auto; }
.ms-thread { display: flex; flex-direction: column; gap: 6px; padding: 10px; border-radius: 14px; background: #efe9dd; min-height: 300px; }
.ms-day { text-align: center; font-size: 11px; color: var(--muted, #777); margin: 6px 0; }
.ms-b { max-width: 78%; background: #fff; padding: 6px 10px 4px; border-radius: 12px 12px 12px 4px; align-self: flex-start; display: flex; flex-direction: column; box-shadow: 0 1px 1px rgba(0,0,0,.06); }
.ms-b.me { align-self: flex-end; background: #dcefe3; border-radius: 12px 12px 4px 12px; } .ms-from { font-size: 12px; color: #1f6e4b; }
.ms-t { align-self: flex-end; font-size: 10px; color: var(--muted, #777); } .ms-tick { margin-left: 2px; color: #888; letter-spacing: -3px; } .ms-tick.all { color: #2a7fd4; }
.ms-img { max-width: 240px; width: 100%; border-radius: 8px; margin: 2px 0 4px; } .ms-img.sm { width: 48px; vertical-align: middle; margin-right: 6px; }
.ms-compose { display: flex; gap: 8px; align-items: flex-end; position: sticky; bottom: 70px; background: var(--bg, #f5f0e6); padding: 6px 0; } .ms-compose textarea { flex: 1; resize: none; min-height: 42px; }
.ms-cam { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #e6e9f0; cursor: pointer; } .ms-cam svg { width: 20px; height: 20px; }
@media (min-width: 900px) { .ms-last { max-width: 640px; } .ms-compose { bottom: 0; } .ms-thread { min-height: 420px; } }
/* t748u month colours: the app's green / amber / red, see-through */
.rt-md.st-own { background: rgba(46,158,107,.22); } .rt-md.st-some { background: rgba(224,161,0,.22); } .rt-md.st-full { background: rgba(179,38,30,.18); } .rt-md.st-closed { background: rgba(31,45,77,.12); }
.rt-md.tap { cursor: pointer; } .rt-md .rt-sq.on { width: 10px; height: 10px; } .rt-z2 .rt-md .rt-sq.on, .rt-md .rt-sq.on b { } .rt-sq b { display: none !important; }
.rt-cl { font-size: 10px; font-weight: 600; color: #1f2d4d; line-height: 1.2; } .rt-cl.own { color: #1f6e4b; }
.rt-key { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 8px 0 2px; } .rt-key span { display: inline-flex; align-items: center; gap: 4px; }
.rt-kt { display: inline-block; width: 14px; height: 14px; border-radius: 3px; border: 1px solid rgba(0,0,0,.08); } .rt-kt.own { background: rgba(46,158,107,.3); } .rt-kt.some { background: rgba(224,161,0,.3); } .rt-kt.full { background: rgba(179,38,30,.25); } .rt-kt.closed { background: rgba(31,45,77,.15); }
.rt-lims { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; }
@media (min-width: 900px) { .rt-md .rt-sq.on { width: 14px; height: 14px; } .rt-cl { font-size: 12px; } }
.rt-wf { display: inline-block; margin-left: 4px; font-size: 10px; font-weight: 700; color: #fff; background: #b3261e; border-radius: 4px; padding: 0 4px; cursor: help; }
.rt-ctrow { margin-top: -4px; border-top: 0; font-size: 13px; background: rgba(31,45,77,.03); } .rt-ctrow svg { width: 16px; height: 16px; }
.rt-wf.amb { background: #b26a00; }
.rt-law { padding-left: 0; list-style: none; } .rt-law li { padding: 6px 0; font-weight: 600; }
.rt-flog { font-size: 12px; padding-left: 16px; color: var(--muted, #666); }
/* t753u calendar chips, rest score, smart templates */
.cd-chip { display: inline-block; font-size: 10px; line-height: 1.3; padding: 1px 5px; margin: 1px 2px 0 0; border-radius: 999px; background: rgba(31,45,77,.08); color: #1f2d4d; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.cd-bank { background: rgba(178,106,0,.16); color: #7a4800; font-weight: 700; } .cd-peak { background: rgba(179,38,30,.12); color: #8a1c16; } .cd-local { background: rgba(46,125,50,.14); color: #1f5e23; } .cd-season { background: rgba(31,45,77,.06); }
.cd-banner { margin: 8px 0 12px; padding: 8px 10px; border-radius: 10px; background: rgba(178,106,0,.08); } .cd-banner .cd-chip { font-size: 12px; } .cd-nudge { display: block; font-size: 13px; margin-top: 4px; }
.rt-cds { display: block; font-weight: 400; } .rt-md .rt-cds { line-height: 1; } .rt-md .cd-chip { font-size: 9px; padding: 0 3px; }
th.rt-busy { background: rgba(178,106,0,.08); }
.rt-rest { display: inline-block; margin-left: 4px; font-size: 10px; font-weight: 700; border-radius: 4px; padding: 0 4px; color: #fff; } .rt-rest.ok { background: #2e7d32; } .rt-rest.amb { background: #b26a00; } .rt-rest.red { background: #b3261e; }
.rt-pat { display: inline-flex; gap: 2px; margin-left: 6px; vertical-align: middle; } .rt-pc { font-style: normal; font-size: 9px; width: 16px; height: 16px; display: inline-grid; place-items: center; border-radius: 3px; color: #fff; }
.rt-pc.D { background: #1f2d4d; } .rt-pc.L, .rt-pc.E { background: #6b7a99; } .rt-pc.O { background: transparent; color: #999; border: 1px dashed #bbb; }
.rt-smt[aria-pressed="true"] { outline: 2px solid #1f2d4d; }
.sc-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; flex-wrap: wrap; } .sc-row .sec-label { min-width: 140px; }
.sc-pal { display: inline-flex; gap: 4px; flex-wrap: wrap; } .sc-sw { width: 24px; height: 24px; border-radius: 6px; border: 2px solid transparent; background: var(--cat); cursor: pointer; } .sc-sw[aria-pressed="true"] { border-color: #111; box-shadow: 0 0 0 2px #fff inset; }
.pp-sc { margin: 4px 0 8px; font-size: 13px; }
/* t757u: desktop My week strip, department tabs */
.rt-dtabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 10px; }
.rt-strip { display: none; }
@media (min-width: 900px) {
  .rt-mine .rt-list { display: none; }
  .rt-mine { margin-bottom: 6px; } .rt-mine .section-head { margin-bottom: 4px; }
  .rt-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
  .rt-sc { background: var(--card, #fff); border: 1px solid var(--rule, #ddd); border-radius: 8px; padding: 5px 8px; font-size: 12.5px; line-height: 1.3; display: flex; flex-direction: column; min-width: 0; }
  .rt-sc b { font-size: 12px; } .rt-sc span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .rt-sc.off { opacity: .6; } .rt-sc.rt-today { border-color: var(--brand, #1f2d4d); box-shadow: inset 3px 0 0 var(--brand, #1f2d4d); }
  .rt-sc .rt-swb { align-self: flex-start; font-size: 11.5px; padding: 0; }
}
.sv-kn { margin: -4px 0 10px; padding: 8px 10px; border-radius: 8px; background: rgba(178,106,0,.1); font-size: 13.5px; } .sv-kn svg { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.so-card { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; margin: 0 0 12px; font-size: 14px; } .so-card small { display: block; font-size: 11.5px; color: var(--mute, #666); margin-top: 2px; }
.so-card.draft { background: rgba(178,106,0,.1); border-left: 4px solid #b26a00; } .so-card.ok { background: rgba(46,125,50,.08); border-left: 4px solid #2e7d32; } .so-card > svg { width: 20px; height: 20px; flex: none; }
.sv-cons { font-size: 13px; margin: -4px 0 4px; }
.rt-rights { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 6px 0 10px; }
.sv-remind { font-size: 13px; background: rgba(46,125,50,.08); padding: 6px 8px; border-radius: 8px; margin: 4px 0; } .sv-remind svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 4px; }
.sv-gyrs { margin: 0 0 10px; } .sv-gyrs select { display: inline-block; width: auto; padding: 2px 6px; }
.data-note { font-size: 12px; color: var(--mute, #666); margin: 6px 0 10px; } .data-note svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 4px; }
/* t764u safeguards */
.dl-foot { display: block !important; visibility: visible !important; text-align: center; font-size: 11px; color: var(--muted, #778); margin: 28px 0 8px; padding: 0 8px; opacity: .85 !important; }
@media print { .dl-foot { color: #000; border-top: 1px solid #999; padding-top: 4px; margin-top: 12px; } }
.esc-bar { display: flex; gap: 10px; align-items: flex-start; background: #b3261e; color: #fff; padding: 10px 12px; border-radius: 10px; margin: 0 0 10px; animation: escp 1.2s ease-in-out infinite alternate; } .esc-bar a { display: block; color: #fff; text-decoration: underline; font-size: 13.5px; } .esc-bar svg { width: 22px; height: 22px; flex: none; }
@keyframes escp { from { box-shadow: 0 0 0 0 rgba(179,38,30,.6); } to { box-shadow: 0 0 0 6px rgba(179,38,30,0); } }
.sg-wm { position: fixed; inset: 0; display: grid; place-items: center; pointer-events: none; z-index: 5; font-size: 54px; font-weight: 800; color: rgba(179,38,30,.10); transform: rotate(-24deg); text-transform: uppercase; letter-spacing: .05em; }
@media print { .sg-wm { color: rgba(179,38,30,.25); } }
.so-card.red { background: rgba(179,38,30,.1); border-left: 4px solid #b3261e; }
.sg-badge { display: inline-block; font-size: 11px; font-weight: 700; color: #7a4800; background: rgba(178,106,0,.16); border-radius: 999px; padding: 1px 8px; }
.sg-confirm { margin-top: 14px; padding: 10px; border-radius: 10px; background: rgba(31,45,77,.05); }
.sg-dot { width: 12px; height: 12px; border-radius: 50%; flex: none; } .sg-dot.green { background: #2e7d32; } .sg-dot.amber { background: #b26a00; } .sg-dot.red { background: #b3261e; }
.sg-tc { font-style: normal; font-size: 10px; font-weight: 700; color: #7a4800; background: rgba(178,106,0,.16); border-radius: 4px; padding: 0 4px; margin-left: 4px; }
/* t767u online booking (public page uses the client's branding variables) */
body.ob-pub .topbar, body.ob-pub .bottomnav, body.ob-pub .pv-banner, body.ob-pub .esc-bar, body.ob-pub .notif-bar { display: none !important; }
body.ob-pub .view { margin: 0 auto !important; padding: 16px 14px 40px !important; max-width: 560px; }
body.ob-pub.ob-embed { background: transparent; }
.ob-brand { text-align: center; margin: 4px 0 14px; } .ob-brand img { width: 56px; height: 56px; } .ob-brand h1 { font-family: var(--serif, Cormorant, serif); margin: 6px 0 0; font-size: 30px; color: var(--brand, #1f2d4d); } .ob-brand p { margin: 0; color: var(--muted, #667); }
.ob-card { background: var(--card, #fff); border-radius: 16px; padding: 16px; margin: 0 0 12px; box-shadow: 0 1px 3px rgba(0,0,0,.08); } .ob-card h2 { margin: 0 0 8px; font-size: 22px; }
.ob-f { display: block; margin: 0 0 12px; } .ob-f > span { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; }
.ob-party, .ob-times { display: flex; flex-wrap: wrap; gap: 6px; } .ob-party button, .ob-times button { min-width: 44px; height: 42px; border-radius: 10px; border: 1px solid #c9cfdb; background: #fff; font: inherit; font-weight: 600; padding: 0 10px; color: var(--ink, #1f2d4d); }
.ob-party button[aria-pressed="true"], .ob-times button[aria-pressed="true"] { background: var(--brand, #1f2d4d); color: #fff; border-color: var(--brand, #1f2d4d); } .ob-times button:disabled { opacity: .35; text-decoration: line-through; }
.ob-more { align-self: center; font-size: 13px; margin-left: 4px; } .ob-closed { color: #8a4b00; margin: 0; }
.ob-tick { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; margin: 0 0 12px; line-height: 1.35; } .ob-tick input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.ob-dep { background: rgba(178,106,0,.1); border-radius: 10px; padding: 10px 12px; margin: 0 0 12px; } .ob-dep p { margin: 4px 0 0; font-size: 14px; }
.ob-small { font-size: 12px; color: var(--muted, #667); } .ob-big { font-size: 20px; font-weight: 700; line-height: 1.3; } .ob-ok { border-top: 4px solid #2e7d32; }
.ob-mail { white-space: pre-wrap; font: 13px/1.45 ui-monospace, monospace; background: rgba(31,45,77,.05); padding: 10px; border-radius: 8px; overflow-x: auto; }
.ob-back { display: block; text-align: center; margin-top: 10px; } .ob-chg { font-weight: 700; color: #8a4b00; margin: 0 0 10px; }
.ob-tag { font-size: 10.5px; font-weight: 700; background: rgba(31,45,77,.1); color: var(--brand, #1f2d4d); border-radius: 999px; padding: 1px 7px; vertical-align: 1px; } .ob-tag.dep { background: rgba(178,106,0,.16); color: #7a4800; }
.ob-notab { color: #8a4b00; font-weight: 600; }
@media (min-width: 900px) { body.ob-pub .view { max-width: 620px; padding-top: 32px !important; } }
.ob-unas { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; padding: 8px 10px; border-radius: 10px; background: rgba(178,106,0,.1); } .ob-unas > b { font-size: 13px; color: #7a4800; margin-right: 4px; }
.ob-uchip { display: inline-flex; gap: 5px; align-items: center; border: 1px solid #d9c49a; background: #fff; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: 13px; cursor: pointer; }
/* t770u record books */
.rc-row.rc-amber { border-left-color: #b26a00 !important; } .rc-row.rc-red { border-left-color: #b3261e !important; background: rgba(179,38,30,.05); }
.rc-w { color: #b3261e; font-weight: 600; display: flex; gap: 4px; align-items: center; } .rc-w svg { width: 14px; height: 14px; }
.rc-ph { display: block; max-width: 160px; border-radius: 8px; margin-top: 6px; } .rc-note { display: flex; gap: 8px; align-items: flex-start; }

.dl-foot { display: none !important; }
.risk-line { font-size: 11.5px; color: var(--muted, #778); margin: -4px 0 10px; }

/* terms v2 */
.tm-doc { max-width: 760px; } .tm-sec { background: var(--card, #fff); border-radius: 14px; padding: 16px 18px; margin: 0 0 12px; box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.tm-sec h2 { display: flex; align-items: center; gap: 10px; font-size: 21px; margin: 0 0 8px; } .tm-n { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--brand, #1f2d4d); color: #fff; font: 700 14px/1 sans-serif; }
.tm-sec p, .tm-sec li { line-height: 1.6; font-size: 15.5px; } .tm-sec p { margin: 0 0 8px; } .tm-sec p:last-child { margin-bottom: 0; } .tm-sec ul { margin: 4px 0 8px; padding-left: 20px; } .tm-sec li { margin: 0 0 6px; }
.tm-tbc { color: var(--muted, #889); font-size: 13.5px; } .tm-ver { margin-top: 8px; }
.ack-list { padding-left: 18px; margin: 0 0 10px; } .ack-list li { margin: 0 0 7px; line-height: 1.45; font-size: 14.5px; }
.ca-bar{display:block;margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#fff4dc;border:1px solid #e8c879;color:#5a4210;font-size:.92rem;text-decoration:none}
.ca-tog{display:flex;gap:10px;align-items:flex-start;margin:10px 0}.ca-text{background:#fffdf8;border:1px solid #e6dccb;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.ca-ok{color:#2c6b3f}.ca-note{background:#f3efe7;border-radius:10px;padding:8px 12px}.ca-lock{margin-top:15vh}

/* 15 Oct: Bookings square, full screen on desktop, bar thickness setting */
body.bk-full .topbar, body.bk-full .bottomnav, body.bk-full .sidebar, body.bk-full .side-nav, body.bk-full .preview-bar { display: none !important; }
body.bk-full .view { padding: 10px 16px !important; max-width: none !important; margin: 0 !important; }
body.bk-full .view > * { max-width: none !important; }
.bk-fhead { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; } .bk-fhead b { flex: 1; font-size: 1.05rem; }
.bk-setrow { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; } .bk-bars { display: inline-flex; width: auto; } .bk-bars button { padding: 4px 10px; font-size: 12px; }
.bk-wrap .sv-desk { display: block; } .bk-wrap .sv-desk .section-head { margin-bottom: 4px; }
.bk-wrap .ov-card, .bk-wrap .sv-over { margin-bottom: 6px; }
.bk-compact .sv-r { height: 20px; } .bk-compact .sv-bk { top: 2px; height: 16px; border-radius: 5px; font-size: 11px; padding: 0 5px; } .bk-compact .sv-lab { font-size: 12px; } .bk-compact .sv-sec { height: 18px; } .bk-compact .sv-top { height: 30px; } .bk-compact .sv-lt { width: 8px; height: 8px; }
.bk-comfortable .sv-r { height: 28px; } .bk-comfortable .sv-bk { top: 3px; height: 22px; border-radius: 7px; } .bk-comfortable .sv-sec { height: 22px; }
.bk-large .sv-r { height: 38px; } .bk-large .sv-bk { top: 4px; height: 30px; font-size: 13px; }
.bk-wrap .sv-sec, .bk-wrap .sv-top { } .sv-glist li { margin-bottom: 4px; }
.rs-order { margin: 0 0 14px; }
.bk-compact .sv-pace, .bk-comfortable .sv-pace { height: 32px; }
/* ---- the guide (manual.js) ---- */
.mg-roles { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 12px; }
.mg-tools { display: flex; gap: 8px; margin: 0 0 14px; } .mg-tools .input { flex: 1; }
.mg-chlist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; } .mg-chlist .card { display: flex; gap: 12px; align-items: center; }
.mg-num { flex: 0 0 34px; height: 34px; border-radius: 50%; background: var(--brand, #1E3A5F); color: #fff; display: grid; place-items: center; font-weight: 600; }
.mg-wrap { max-width: 760px; margin: 0 auto; } .mg-chh h2 { font-family: "Cormorant Garamond", serif; font-size: 2rem; margin: 2px 0 6px; } .mg-intro { color: var(--ink-2); font-size: 1.05rem; }
.mg-sec { background: var(--card, #FDFBF6); border: 1px solid var(--rule); border-radius: 14px; padding: 14px 18px; margin: 12px 0; line-height: 1.55; }
.mg-sec h3 { margin: 0 0 8px; font-family: "Cormorant Garamond", serif; font-size: 1.35rem; } .mg-n { color: var(--accent, #9A5A14); font-size: .85em; margin-right: 8px; }
.mg-steps { padding-left: 1.4em; } .mg-steps li { margin: 6px 0; padding-left: 4px; } .mg-list li { margin: 4px 0; }
.mg-tip { background: var(--accent-wash, #F6EAD8); border-radius: 10px; padding: 8px 12px; display: flex; gap: 8px; align-items: flex-start; }
.mg-math { border-left: 4px solid var(--brand, #1E3A5F); background: var(--brand-wash, #E4E8EE); border-radius: 0 10px 10px 0; padding: 8px 14px; margin: 10px 0; font-variant-numeric: tabular-nums; } .mg-math p { margin: 3px 0; } .mg-mt { font-weight: 600; }
.mg-shot { margin: 10px 0; } .mg-shot img { width: 100%; max-width: 420px; border: 1px solid var(--rule); border-radius: 10px; display: block; } .mg-shot figcaption { font-size: .85rem; color: var(--mute); margin-top: 4px; }
.mg-pn { display: flex; justify-content: space-between; gap: 8px; margin: 16px 0 30px; }
.mg-pr { width: 100%; border-collapse: collapse; margin: 8px 0; } .mg-pr td, .mg-pr th { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--rule); vertical-align: top; } .mg-pr td:last-child, .mg-pr th:last-child { text-align: right; white-space: nowrap; } .mg-pr small { display: block; color: var(--mute); font-size: .8rem; } .mg-pr tfoot td { font-weight: 700; border-top: 2px solid var(--brand); }
.mg-mods { columns: 2 260px; }
.mg-print { display: none; }
@media print {
  body.mg-printing > *:not(.app), .topbar, .bottomnav, .sidebar, .side-nav, .preview-bar, .ca-bar { display: none !important; }
  .view > *:not(.mg-print) { display: none !important; } .mg-print { display: block !important; }
  .mg-cover { height: 250mm; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; break-after: page; border-top: 8px solid var(--brand, #1E3A5F); }
  .mg-cover img { height: 26mm; margin-bottom: 14mm; } .mg-cover h1 { font-family: "Cormorant Garamond", serif; font-size: 40pt; letter-spacing: .12em; text-transform: uppercase; color: var(--brand); margin: 0; } .mg-cv-sub { font-style: italic; font-size: 14pt; } .mg-cv-meta { color: #777; font-size: 10pt; letter-spacing: .1em; text-transform: uppercase; }
  .mg-toc { break-after: page; } .mg-toc h2, .mg-ch h2 { font-family: "Cormorant Garamond", serif; color: var(--brand); } .mg-toc li { margin: 6px 0; } .mg-toc span { display: block; font-size: 9pt; color: #777; }
  .mg-ch { break-before: page; } .mg-sec { break-inside: avoid; border: 0; border-bottom: 1px solid #ddd; border-radius: 0; padding: 6px 0; background: none; } .mg-shot img { max-width: 70mm; }
}
@media print { .sheet, .sheet-wrap, .sheet-backdrop, .toast { display: none !important; } }
/* guest flags, regular star, VIP (15 Oct) */
.gf-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin: 0 3px; vertical-align: middle; } .gf-green { background: #4f9a63; } .gf-amber { background: #e0a020; } .gf-red { background: #ef8f8f; border: 1px solid #c55; }
.gf-star { color: #b8860b; margin: 0 2px; } .gf-vip { display: inline-block; background: #5b2a6e; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .05em; border-radius: 4px; padding: 0 4px; margin: 0 3px; line-height: 15px; vertical-align: middle; }
.tk-vip { background: #5b2a6e; color: #fff; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 1px 5px; }
.gl-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); } .gl-row { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 0 10px; width: 100%; padding: 7px 4px; border-bottom: 1px solid var(--rule); } .gl-row:hover { background: var(--wash); }
.gl-n { font-weight: 600; } .gl-m { color: var(--mute); font-size: .85rem; } .gl-s { grid-column: 1 / -1; color: var(--ink-2); font-size: .85rem; } .gl-regn { width: 64px; display: inline-block; padding: 2px 6px; }
.gl-b { cursor: pointer; } .gl-b:hover .gl-nm { text-decoration: underline; }
.gc-row { display: grid; grid-template-columns: 130px 1fr; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--rule); } .gc-row span { color: var(--mute); font-size: .88rem; } .gc-row b { font-weight: 500; }
.gc-green b { color: #2c6b3f; } .gc-amber { background: #fff4dc; } .gc-red { background: #fde7e7; } .gc-vip b { color: #5b2a6e; font-weight: 700; } .gc-al b { color: #8b3a3a; }
.gf-vipbox { border-top: 1px dashed var(--rule); margin-top: 10px; padding-top: 6px; }
/* diary navigation, fit to screen (15 Oct) */
.bk-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 8px; } .bk-nb { padding: 4px 10px; min-height: 0; font-size: 13px; } .bk-nb.on { background: var(--brand); color: #fff; }
.bk-date { width: auto; padding: 3px 6px; font-size: 13px; min-height: 0; } .bk-dl { font-size: 1rem; margin: 0 6px; } .bk-vw, .bk-sv { display: inline-flex; width: auto; } .bk-vw a, .bk-sv a { padding: 4px 10px; font-size: 12px; text-decoration: none; }
.bk-tot { margin-left: auto; font-size: 13px; } .bk-tot b { font-size: 1.05rem; }
body.bk-full .view { padding: 4px 12px !important; } .bk-fhead { gap: 8px; margin-bottom: 4px; flex-wrap: nowrap; } .bk-fhead .bk-nav { flex: 1; margin: 0; flex-wrap: nowrap; } .bk-fhead b { flex: none; }
.bk-back { border: 1px solid var(--rule); background: var(--card); border-radius: 8px; width: 30px; height: 28px; font-size: 18px; line-height: 1; cursor: pointer; }
body.bk-full .bk-wrap .section-head { margin: 0 0 2px; } body.bk-full .bk-wrap .section-head h2 { font-size: 1.1rem; margin: 0; } body.bk-full .sv-over { padding: 4px 10px; margin-bottom: 4px; } body.bk-full .sv-legend { margin: 0 0 4px; } body.bk-full .ob-unas { margin-bottom: 4px; padding: 4px 8px; }
.bk-fit .sv-r:not(.sv-top):not(.sv-pace) { height: var(--rh); } .bk-fit .sv-bk { height: calc(var(--rh) - 3px); top: 1px; font-size: min(11px, calc(var(--rh) - 4px)); } .bk-fit .sv-lab { font-size: min(12px, calc(var(--rh) - 2px)); } .bk-fit .sv-sec .sv-lab { font-size: min(10px, calc(var(--rh) - 3px)); }
.bk-tight .sv-over .sv-big b { font-size: 1.1rem; } .bk-tight .sv-top { height: 24px; } .bk-tight .sv-pace { height: 24px !important; }
.bk-wt { width: 100%; border-collapse: collapse; } .bk-wt th, .bk-wt td { padding: 8px; border-bottom: 1px solid var(--rule); text-align: right; } .bk-wt th:first-child { text-align: left; } .bk-wt a { text-decoration: none; color: inherit; } .bk-wt td a { display: inline-block; min-width: 40px; } .bk-today { background: var(--brand-wash); }
.bk-vw a.on, .bk-sv a.on { background: var(--brand); color: #fff; border-radius: 6px; } .bk-vw, .bk-sv { border: 1px solid var(--rule); border-radius: 8px; padding: 2px; gap: 2px; }
/* booking dashboards */
.bd-card { display: block; text-decoration: none; color: inherit; margin: 0 0 14px; } .bd-top { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .bd-big { margin: 2px 0; font-size: 1.05rem; } .bd-big b { font-size: 1.8rem; font-family: "Cormorant Garamond", serif; }
.bd-cmp p { margin: 0; font-size: .85rem; text-align: right; } .bd-d { font-size: .78rem; font-weight: 600; } .bd-d.up { color: #2c6b3f; } .bd-d.dn { color: #8b3a3a; }
.bd-mini { display: flex; align-items: flex-end; gap: 4px; height: 70px; margin: 8px 0 18px; } .bd-mini span { flex: 1; background: var(--brand-wash); border-radius: 4px 4px 0 0; position: relative; min-width: 14px; } .bd-mini span.pk { background: var(--brand); } .bd-mini i { position: absolute; top: -15px; left: 0; right: 0; text-align: center; font-style: normal; font-size: 10px; } .bd-mini small { position: absolute; bottom: -15px; left: 0; right: 0; text-align: center; font-size: 9px; color: var(--mute); }
.bd-tags { display: flex; gap: 12px; flex-wrap: wrap; font-size: .85rem; align-items: center; } .bd-open { margin-left: auto; color: var(--brand); font-weight: 600; }
.bd-kt { width: 100%; border-collapse: collapse; } .bd-kt th, .bd-kt td { text-align: left; padding: 4px 6px; } .bd-kt td b { font-size: 1.3rem; } .bd-kt small { display: block; font-size: .7rem; color: var(--mute); }
.bd-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 0 0 14px; } .bd-kpis > div { background: var(--card); border: 1px solid var(--rule); border-radius: 12px; padding: 10px 12px; } .bd-kpis small { display: block; color: var(--mute); } .bd-kpis b { font-size: 1.7rem; font-family: "Cormorant Garamond", serif; display: block; } .bd-kpis span { font-size: .8rem; }
.bd-bars { display: flex; align-items: flex-end; gap: 6px; height: 160px; padding-top: 16px; } .bd-bars.many { gap: 2px; } .bd-bars a { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; text-decoration: none; color: inherit; } .bd-bars span { display: block; background: var(--brand-2, #2F527D); border-radius: 4px 4px 0 0; position: relative; } .bd-bars span.td { background: var(--accent); } .bd-bars i { position: absolute; top: -14px; left: 0; right: 0; text-align: center; font-size: 10px; font-style: normal; } .bd-bars small { text-align: center; font-size: 10px; color: var(--mute); margin-top: 3px; } .bd-bars.many i { display: none; }
.bd-cmprow { display: flex; gap: 18px; font-size: .9rem; margin-top: 8px; }
.bd-mini span { max-width: 34px; } .bd-mini { justify-content: flex-start; }
.sp-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; } .sp-form label { display: flex; flex-direction: column; font-size: .8rem; gap: 3px; } .sp-form .w { grid-column: span 2; } .sp-form input, .sp-form select { padding: 7px; border: 1px solid var(--rule); border-radius: 8px; font: inherit; }
.sp-t { width: 100%; border-collapse: collapse; font-size: .9rem; } .sp-t th, .sp-t td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--rule); } .sp-t th small { display: block; color: var(--mute); font-weight: 400; } .sp-t tr.sp-red { background: #f8e3e1; } .sp-t tr.sp-amb { background: #fbf0d9; }
.sp-warn { border: 2px solid #a33; background: #fdf3f2; } .sp-warn h3 { color: #8b2a2a; margin-top: 0; } .sp-note { background: #fbf0d9; } .sp-acts, .sp-alts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; } .sp-log { font-size: .85rem; }
.sp-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 10px; } .sp-tabs a { padding: 6px 12px; border: 1px solid var(--rule); border-radius: 18px; text-decoration: none; color: inherit; font-size: .85rem; } .sp-tabs a.on { background: var(--brand); color: #fff; }
.sp-days { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 12px; } .sp-days > div { background: var(--card); border: 1px solid var(--rule); border-radius: 12px; padding: 10px; } .sp-days small, .sp-days span, .sp-days em { display: block; font-size: .78rem; color: var(--mute); } .sp-days b { font-size: 1.5rem; margin-right: 4px; }
.sp-t { display: table; table-layout: auto; } .sp-t td, .sp-t th { white-space: nowrap; } .sp-t th:first-child { white-space: normal; }
.gf-star { color: #2F527D; font-size: 1.05em; } .gf-gold { color: #c9971c; margin: 0 2px; font-size: 1.1em; text-shadow: 0 0 1px #8a6510; }
.bs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; } .bs-grid label { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; } .bs-grid input { width: 90px; padding: 6px; border: 1px solid var(--rule); border-radius: 8px; font: inherit; }
/* 15 Oct: compact text-height chips on the bookings bar, and a visible exit on every full screen */
.bk-nav { gap: 4px; } .bk-nav .btn, .bk-nb, .bk-vw a, .bk-sv a, .bk-setrow .btn, .bk-setrow button, .bk-setrow a { padding: 1px 7px !important; min-height: 0 !important; height: 22px; line-height: 20px; font-size: 12px !important; border-radius: 6px; }
.bk-date { height: 22px; padding: 0 4px; font-size: 12px; } .bk-vw, .bk-sv { padding: 1px; } .bk-dl { font-size: .9rem; } .bk-tot { font-size: 12px; } .bk-tot b { font-size: .95rem; }
.bk-exit, .fs-exit { flex: none; border: 1px solid #8b2a2a; background: #fff; color: #8b2a2a; border-radius: 6px; font-size: 12px; font-weight: 600; padding: 2px 9px; height: 24px; cursor: pointer; white-space: nowrap; }
.fs-exit { position: fixed; top: 8px; right: 10px; z-index: 60; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.bk-bars button { padding: 1px 7px !important; min-height: 0 !important; height: 20px; font-size: 12px !important; } .bk-bars { width: auto; display: inline-flex; }

/* t812u chart card */
.bd-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; } .bd-chip { font: inherit; font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--line, #ccd); background: transparent; color: inherit; cursor: pointer; } .bd-chip.on { background: var(--brand); color: #fff; border-color: var(--brand); }
.bd-split { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; } .bd-chart { flex: 1 1 260px; min-width: 0; } .bd-side { flex: 0 1 200px; font-size: 13px; } .bd-side p { margin: 4px 0 2px; }
.bd-ld { display: flex; gap: 12px; } .bd-ldbar { height: 6px; background: var(--brand-wash); border-radius: 3px; margin: 4px 0 6px; overflow: hidden; } .bd-ldbar i { display: block; height: 100%; background: var(--brand); }
.bd-alg { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; } .bd-wk span { max-width: 48px; }
.bd-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; font-size: 11px; margin: 6px 0 10px; } .bd-cal b { text-align: center; color: var(--mute); font-weight: 600; } .bd-cal span { background: var(--brand-wash); border-radius: 4px; padding: 2px 4px; text-align: right; font-weight: 600; } .bd-cal span small { float: left; font-weight: 400; color: var(--mute); } .bd-cal span.md { background: color-mix(in srgb, var(--brand) 40%, var(--brand-wash)); } .bd-cal span.hi { background: var(--brand); color: #fff; } .bd-cal span.hi small { color: #fff; } .bd-cal span.td { outline: 2px solid var(--accent); }
.bd-kline { margin: -8px 0 14px; } a.bd-open { text-decoration: none; }

.bd-main { flex: 1 1 300px; min-width: 0; text-decoration: none; color: inherit; } .bd-prep { display: block; text-decoration: none; color: inherit; margin-bottom: 6px; }
.bd-pr { display: grid; grid-template-columns: 70px 1fr 34px; gap: 6px; align-items: center; font-size: 12px; } .bd-prb { height: 6px; background: var(--brand-wash); border-radius: 3px; overflow: hidden; } .bd-prb i { display: block; height: 100%; background: var(--accent); } .bd-prb i.ok { background: var(--brand); } .bd-pr b { text-align: right; }

/* t814u check rails */
.tk-grid.tk-rails, .tk-grid.tk-rails.tk-pass { display: block; }
.tk-rail { margin: 0 0 14px; } .tk-rail-bar { height: 10px; border-radius: 5px; background: linear-gradient(#d9dde3, #8c96a3 60%, #5f6976); box-shadow: 0 2px 3px rgba(0,0,0,.25); margin: 0 -4px 0; position: relative; z-index: 1; }
.tk-rail-row { display: flex; gap: 8px; align-items: flex-start; flex-wrap: nowrap; margin-top: -3px; }
.tk-rl { font-size: 13px; margin: 6px 0 4px; text-transform: uppercase; letter-spacing: .04em; color: #1E3A5F; }
.tk-rails .tk-card { font-size: 12px; padding: 6px 8px; border-width: 2px; border-top-width: 5px; border-radius: 0 0 8px 8px; }
.tk-rails .tk-mini { width: 164px; flex: 0 0 164px; cursor: pointer; } .tk-rails .tk-full { width: 336px; flex: 0 0 336px; }
.tk-card.tk-allergy { border-color: #c0261c !important; } .tk-mini.tk-allergy { box-shadow: 0 0 0 1px #c0261c; }
.tkm-h { display: flex; align-items: center; gap: 4px; } .tkm-h b { font-size: 13px; flex: 1; } .tkm-age { font-size: 11px; color: #555; } .tkm-age.late { color: #c0261c; font-weight: 700; }
.tkm-s { margin: 1px 0 3px; font-size: 10.5px; color: #555; } .tkm-al { margin: 0 0 3px; font-size: 10.5px; font-weight: 700; color: #c0261c; }
.tkm-l { list-style: none; margin: 0; padding: 0; } .tkm-l li { line-height: 1.35; } .tkm-l li.held { color: #888; } .tkm-l u { text-decoration-thickness: 2px; text-underline-offset: 2px; }
.tk-rails .tk-vip { font-size: 9px; padding: 0 4px; }

.tk-conf { background: #fff3cd; border: 2px dashed #b45309; color: #7c2d12; font-weight: 800; font-size: 11px; padding: 3px 5px; margin: 3px 0; border-radius: 4px; } .tk-conf span, .tk-swap span { display: block; font-weight: 600; font-size: 10.5px; }
.tk-swap { background: #e0ecff; border-left: 4px solid #2F527D; color: #1E3A5F; font-weight: 800; font-size: 11px; padding: 3px 5px; margin: 3px 0; }
.tk-card.tk-cf { border-color: #b45309; border-style: dashed; }

/* t816u month view: small square tiles */
.bd-cal { grid-template-columns: repeat(7, 34px); gap: 3px; justify-content: start; } .bd-cal span, .bd-cal em { width: 34px; height: 34px; aspect-ratio: 1; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; padding: 2px 3px; font-size: 11px; } .bd-cal span small { float: none; font-size: 8.5px; line-height: 1; }
.sp-made { width: 64px; } .sp-t tr.sp-ok td, .sp-t tr.sp-ok th { color: #2d6a3e; }

.cal-tools { display: flex; gap: 14px; align-items: center; margin: 10px 0; flex-wrap: wrap; } .cal-row { cursor: pointer; } .cal-miss { color: #b45309; font-weight: 600; } .cal-lines { width: 100%; font-size: 12px; } .cal-lines td { padding: 2px 6px; } .mt-kcal { font-size: .75em; font-weight: 400; opacity: .75; }
@media print { .cal-tools, .note-callout { display: none; } }

/* t818u phones: Bookings and tickets greyed */
a.phone-off { opacity: .45; filter: grayscale(1); cursor: not-allowed; position: relative; } .phone-note { display: block; font-size: 11px; font-weight: 600; color: #555; margin-top: 4px; }
/* t818u rails: full ticket, narrower, smaller text; upper rails compact; tap opens as an overlay */
.tk-rails .tk-slot { width: 232px; flex: 0 0 232px; position: relative; }
.tk-rails .tk-card, .tk-rails .tk-full { width: auto; flex: none; font-size: 11.5px; padding: 6px 7px; border-top-width: 5px; border-radius: 0 0 8px 8px; cursor: pointer; }
.tk-rails .tk-card .tk-t { font-size: 15px; } .tk-rails .tk-card .tk-ib { width: 24px; height: 24px; font-size: 12px; } .tk-rails .tk-card .tk-dn { font-size: 13px; } .tk-rails .tk-card .tk-n { font-size: 13px; }
.tk-rails .tk-card button, .tk-rails .tk-card .btn { font-size: 11px; }
.tk-upper .tk-slot:not(.open) .tk-card .tk-l2:not(.al), .tk-upper .tk-slot:not(.open) .tk-card .tk-sn, .tk-upper .tk-slot:not(.open) .tk-card .tk-guest, .tk-upper .tk-slot:not(.open) .tk-card .tk-mt, .tk-upper .tk-slot:not(.open) .tk-card .tk-nudge, .tk-upper .tk-slot:not(.open) .tk-card .tk-seats, .tk-upper .tk-slot:not(.open) .tk-card .tk-conf span, .tk-upper .tk-slot:not(.open) .tk-card .tk-swap span { display: none !important; }
.tk-upper .tk-slot:not(.open) .tk-card { padding-top: 4px; padding-bottom: 4px; } .tk-upper .tk-slot:not(.open) .tk-card * { margin-top: 0; margin-bottom: 0; }
.tk-slot.open { z-index: 30; } .tk-slot.open > .tk-card { position: absolute; top: 0; left: 0; right: 0; z-index: 30; box-shadow: 0 10px 30px rgba(0,0,0,.35); }

.tk-rails .tk-slot { width: 220px; flex: 0 0 220px; } .tk-rails .tk-rail:not(.tk-upper) .tk-rail-row { overflow-x: auto; padding-bottom: 6px; } .tk-more-r { font-size: 11px; margin: 2px 0; color: #1E3A5F; font-weight: 600; }
.tk-slot.open > .tk-card { max-height: 80vh; overflow: auto; }

.tk-rails .tk-card { overflow: hidden; } .tk-rails .tk-card .tk-sec, .tk-rails .tk-card [class*="tk-fire"] { flex-wrap: wrap; } .tk-rails .tk-card button.tk-ib, .tk-rails .tk-card .tk-cbtn { min-width: 0; }
.tk-rails .tk-card .tk-sec > * , .tk-rails .tk-card .tk-sr > * { min-width: 0; }

/* t821u ticket scale at 220px */
.tk-rails .tk-card .tk-dc, .tk-rails .tk-card .tk-ib { width: 22px; height: 22px; min-width: 22px; padding: 0; font-size: 11px; } .tk-rails .tk-card .tk-dc svg, .tk-rails .tk-card .tk-ib svg { width: 13px; height: 13px; }
.tk-rails .tk-card .tk-dcs { gap: 3px; flex-shrink: 0; } .tk-rails .tk-card .tk-c { flex-wrap: wrap; gap: 3px; } .tk-rails .tk-card .tk-f { font-size: 10px; } .tk-rails .tk-card .tk-clk { font-size: 12px; padding: 1px 4px; }
.tk-rails .tk-card .tk-cantb, .tk-rails .tk-card .tk-al, .tk-rails .tk-card .tk-cant-l, .tk-rails .tk-card .tk-alw, .tk-rails .tk-card .tk-prio { font-size: 11px !important; line-height: 1.25; padding: 3px 5px; } .tk-rails .tk-card .tk-cantb svg, .tk-rails .tk-card .tk-al svg { width: 14px; height: 14px; }
.tk-rails .tk-card .tk-done { font-size: 11px; padding: 4px 9px; min-height: 0; } .tk-rails .tk-card .tk-ctl { justify-content: flex-end; }
.tk-rails .tk-card .tk-water { font-size: 10.5px; } .tk-awyw { display: flex; align-items: center; gap: 4px; } .tk-awyw .tk-awy { flex: 1; min-width: 0; }
.tk-grip { cursor: grab; touch-action: none; user-select: none; } .tk-card.tk-dragging { opacity: .85; box-shadow: 0 12px 30px rgba(0,0,0,.35); cursor: grabbing; } .tk-card.tk-drop-s { outline: 3px dashed #2F527D; outline-offset: 2px; }

/* t823u: snackbars sit in the blue dock (left of the buttons) on the tickets screen, short-lived */
.tk-wnone { border-style: dashed; background: #f6f9fb; } .tk-wn { font-size: 13px; color: #4b6b80; font-style: italic; }
.run i { animation-duration: 2s !important; }
body:has(.tk-dock) .tk-undo, body:has(.tk-dock) #toast { left: 10px; right: auto; bottom: 6px; top: auto; transform: none; max-width: 280px; min-height: 0; height: 44px; padding: 4px 6px 4px 12px; font-size: 13px; border-radius: 10px; box-sizing: border-box; z-index: 10000; display: flex; align-items: center; gap: 8px; background: #0f2440; color: #fff; overflow: hidden; white-space: nowrap; }
body:has(.tk-dock) .tk-undo span, body:has(.tk-dock) #toast { text-overflow: ellipsis; overflow: hidden; }
body:has(.tk-dock) .tk-undo button { padding: 6px 10px; font-size: 13px; }
body:has(.tk-dock) .tk-undo[hidden], body:has(.tk-dock) #toast[hidden] { display: none; }

/* t824u: All day box, compact; live clock band; fixed course row */
.tk-allday { padding: 4px 10px; gap: 2px; display: flex; flex-direction: column; }
.tk-allday .tk-adh { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #1e3a5f; }
.tk-allday .tk-sr { display: flex; gap: 8px; align-items: baseline; font-size: 13px; line-height: 1.3; padding: 0; min-height: 0; }
.tk-allday .tk-sr > b { flex: 0 0 74px; font-size: 12px; color: #4b5b6b; }
.tk-allday .tk-adl span { white-space: nowrap; } .tk-allday em { font-style: normal; font-weight: 800; color: #c0392b; }
.tk-clkrow { display: flex; justify-content: center; margin: 2px 0 4px; height: 26px; }
.tk-clk2 { font-variant-numeric: tabular-nums; font-size: 16px; padding: 2px 12px; border-radius: 999px; color: #fff; letter-spacing: .03em; }
.tk-clk2.c-g { background: #1e7b45; } .tk-clk2.c-a { background: #d68910; } .tk-clk2.c-r { background: #c0392b; }
.tk-rails .tk-card .tk-c, .tk-card .tk-c { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(44px, auto) auto; align-items: center; gap: 4px; flex-wrap: nowrap; }
.tk-card .tk-c > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-card .tk-c .tk-f { text-align: center; white-space: nowrap; }
.tk-card .tk-c .tk-dcs { justify-self: end; }
.tk-card .tk-cb:not(.t-held) { border: 2px solid transparent; }

/* t825u: order mode toggle + insertion marker */
.tk-mode { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 2px 0 4px; font-size: 13px; }
.tk-mdl { font-weight: 800; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #4b5b6b; }
.tk-seg { display: inline-flex; border: 1.5px solid #1e3a5f; border-radius: 999px; overflow: hidden; }
.tk-sg { border: 0; background: #fff; color: #1e3a5f; font-weight: 700; padding: 5px 14px; font-size: 13px; min-height: 32px; } .tk-sg.on { background: #1e3a5f; color: #fff; }
.tk-mdg { color: #4b5b6b; }
.tk-card.tk-drop-s { outline: none !important; box-shadow: -9px 0 0 0 #f39c12, 0 0 0 2px #f39c12 !important; }
.tk-ghost { opacity: .92; display: block !important; padding: 0 !important; transform: rotate(1.5deg); cursor: grabbing; } .tk-ghost .tk-card { box-shadow: 0 14px 34px rgba(0,0,0,.35); } .tk-card.tk-src { opacity: .35; }

/* t831u */
.tk-bar .tk-seg { margin-left: 8px; } .tk-bar .tk-sg { min-height: 30px; padding: 4px 12px; }
.tsc-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid #e3e6ea; } .tsc-row > .input { max-width: 220px; } .tsc-secs { display: flex; flex-wrap: wrap; gap: 4px 12px; flex: 1; }

/* t832: hotel side: front desk, room board, folio */
.ht-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 10px 0; }
.ht-kpis > div { background: #fff; border: 1px solid #e3e6ea; border-radius: 12px; padding: 10px 12px; } .ht-kpis small { display: block; color: #5b6770; font-size: 12px; } .ht-kpis b { font-size: 26px; display: block; line-height: 1.1; } .ht-kpis span { font-size: 12px; color: #5b6770; }
.ht-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; } @media (max-width: 900px) { .ht-cols { grid-template-columns: 1fr; } }
.ht-srow .btn { flex: 0 0 auto; } .ht-done { font-size: 13px; font-weight: 700; color: #1e7b45; }
.ht-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 8px; }
.ht-room { position: relative; text-align: left; border: 2px solid #d5dbe0; border-radius: 12px; background: #fff; padding: 8px 10px; min-height: 92px; display: flex; flex-direction: column; gap: 1px; font: inherit; color: #1f2a33; cursor: pointer; }
.ht-room b { font-size: 20px; } .ht-room small { font-size: 11px; color: #5b6770; } .ht-st { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; } .ht-g { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ht-hk { font-size: 11px; color: #33424f; display: flex; gap: 3px; align-items: center; } .ht-hk svg { width: 13px; height: 13px; }
.ht-tag { position: absolute; top: 6px; right: 6px; font-style: normal; font-size: 10px; font-weight: 800; padding: 2px 6px; border-radius: 999px; } .ht-tag.in { background: #1e3a5f; color: #fff; } .ht-tag.out { background: #f39c12; color: #1f2a33; }
.st-clean.ht-room, .ht-stb.st-clean { border-color: #1e7b45; background: #eaf6ee; } .st-clean .ht-st { color: #1e7b45; }
.st-dirty.ht-room, .ht-stb.st-dirty { border-color: #d68910; background: #fdf3e2; } .st-dirty .ht-st { color: #9a5d00; }
.st-occupied.ht-room, .ht-stb.st-occupied { border-color: #1e3a5f; background: #eaf0f7; } .st-occupied .ht-st { color: #1e3a5f; }
.st-ooo.ht-room, .ht-stb.st-ooo { border-color: #8a1a12; background: repeating-linear-gradient(45deg, #fbecea, #fbecea 8px, #fff 8px, #fff 16px); } .st-ooo .ht-st { color: #8a1a12; }
.ht-key { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; margin: 0 0 8px; } .ht-key i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; border: 2px solid currentColor; }
.ht-key .st-clean { color: #1e7b45; } .ht-key .st-dirty { color: #d68910; } .ht-key .st-occupied { color: #1e3a5f; } .ht-key .st-ooo { color: #8a1a12; }
.ht-kpis > .st-clean { border-left: 5px solid #1e7b45; } .ht-kpis > .st-dirty { border-left: 5px solid #d68910; } .ht-kpis > .st-occupied { border-left: 5px solid #1e3a5f; } .ht-kpis > .st-ooo { border-left: 5px solid #8a1a12; }
.ht-stpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 6px; margin-bottom: 10px; } .ht-stb { border: 2px solid; border-radius: 10px; padding: 8px; text-align: left; display: flex; flex-direction: column; font: inherit; } .ht-stb.on { box-shadow: 0 0 0 3px #1f2a33; } .ht-stb small { font-size: 11px; color: #5b6770; }
.ht-hkb { border: 1.5px solid #1e3a5f; border-radius: 999px; padding: 8px 14px; background: #fff; font: inherit; font-weight: 700; color: #1e3a5f; } .ht-hkb.on { background: #1e3a5f; color: #fff; }
.ht-chk { display: flex; flex-direction: column; gap: 4px; } .ht-ck { display: flex; gap: 10px; align-items: center; text-align: left; border: 1px solid #e3e6ea; border-radius: 10px; background: #fff; padding: 10px; font: inherit; min-height: 44px; } .ht-ck i { width: 20px; height: 20px; border: 2px solid #9aa5ae; border-radius: 5px; flex: 0 0 auto; } .ht-ck svg { width: 20px; height: 20px; color: #1e7b45; flex: 0 0 auto; } .ht-ck.on { background: #eaf6ee; border-color: #1e7b45; }
.ht-folio { width: 100%; border-collapse: collapse; font-size: 14px; margin: 6px 0; } .ht-folio td { padding: 6px 4px; border-bottom: 1px solid #eef0f2; vertical-align: top; } .ht-folio td:first-child { white-space: nowrap; color: #5b6770; font-size: 12px; } .ht-folio td:last-child { text-align: right; white-space: nowrap; } .ht-folio small { color: #8a959d; } .ht-folio tfoot td { border: 0; font-size: 16px; }
.ht-paid { color: #1e7b45; font-weight: 700; display: flex; gap: 6px; align-items: center; } .ht-post { margin-top: 10px; } .ht-post summary { cursor: pointer; font-weight: 700; color: #1e3a5f; padding: 6px 0; }
.ht-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
/* t832 room service */
.rsv { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; } @media (max-width: 900px) { .rsv { grid-template-columns: 1fr; } }
.rsv-sum { position: sticky; top: 70px; } .rsv-sum h3 { margin-top: 0; } .rsv-lines { list-style: none; padding: 0; margin: 0 0 8px; } .rsv-lines li { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; border-bottom: 1px solid #eef0f2; font-size: 14px; }
.rsv-rooms { display: flex; flex-wrap: wrap; gap: 6px; } .rsv-rm { border: 2px solid #1e3a5f; border-radius: 10px; background: #fff; padding: 6px 12px; min-width: 76px; text-align: left; display: flex; flex-direction: column; font: inherit; color: #1e3a5f; } .rsv-rm b { font-size: 18px; } .rsv-rm small { font-size: 11px; } .rsv-rm.on { background: #1e3a5f; color: #fff; }
.rsv-dishes { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px; margin-bottom: 8px; } .rsv-d { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #e3e6ea; border-radius: 10px; padding: 8px 10px; } .rsv-d.on { border-color: #1e3a5f; box-shadow: 0 0 0 1px #1e3a5f; } .rsv-d .grow b { display: block; font-size: 14px; } .rsv-d small { color: #5b6770; }
.rsv-q { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid #1e3a5f; background: #fff; font-size: 20px; font-weight: 800; color: #1e3a5f; } .rsv-q:disabled { opacity: .3; } .rsv-n { min-width: 18px; text-align: center; font-weight: 800; }
.rsv-fl { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; } .rsv-fl .al-chip.on { background: #c0392b; color: #fff; border-color: #c0392b; }
.rsv-tot { display: flex; align-items: baseline; gap: 8px; font-size: 16px; } .rsv-tot b { font-size: 22px; } .rsv-tot small { color: #5b6770; font-size: 12px; }
.rsv-st { font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: #eaf0f7; color: #1e3a5f; white-space: nowrap; } .rsv-st.s-started { background: #fdf3e2; color: #9a5d00; } .rsv-st.s-done { background: #eaf6ee; color: #1e7b45; }
/* t832 function sheets */
.fs-card { margin-bottom: 10px; } .fs-top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; } .fs-top h3 { margin: 2px 0; }
.fs-dep { text-align: right; font-size: 13px; padding: 6px 10px; border-radius: 10px; background: #f2f4f6; white-space: nowrap; } .fs-dep b { display: block; font-size: 15px; } .fs-dep.ok { background: #eaf6ee; color: #1e7b45; } .fs-dep.due { background: #fdecea; color: #8a1a12; }
.fs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; } @media (max-width: 700px) { .fs-grid { grid-template-columns: 1fr; } }
.fs-h { font-weight: 800; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #4b5b6b; margin: 6px 0 2px; } .fs-c ul, .fs-tm { margin: 0 0 6px; padding-left: 18px; font-size: 14px; } .fs-al { color: #8a1a12; } .fs-alg { color: #8a1a12; font-weight: 600; }
.fs-pick { border: 1px solid #e3e6ea; border-radius: 10px; padding: 6px 10px; margin-bottom: 6px; } .fs-pick summary { cursor: pointer; font-weight: 700; } .fs-pick small { color: #5b6770; font-weight: 400; }
.fs-svc { border-left: 4px solid #1e3a5f; padding: 4px 10px; margin: 6px 0; background: #fff; border-radius: 6px; } .fs-svc p { margin: 2px 0; } .fs-svcm { display: flex; flex-wrap: wrap; gap: 0 16px; font-size: 13px; } .fs-svcm .eyebrow { margin: 2px 0 0; }
/* occupancy by night on the chart card */
.bd-occ span i{font-size:10px}
.bd-occm span i{display:none}
.bd-occm span small{font-size:9px}
@media (max-width:600px){.bd-occ span small{font-size:8px;white-space:nowrap;letter-spacing:-.02em}.bd-occ span i{font-size:8px}}
/* room bookings calendar */
.ht-calbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 14px}.ht-calbar b{font-size:14px}.ht-calbar [data-htnew]{margin-left:auto}
.ht-calwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line,#e5ddd0);border-radius:12px;background:#fff;max-width:100%}
.ht-cal,.ht-av{border-collapse:collapse;width:100%;min-width:720px;font-size:12px}
.ht-cal th,.ht-cal td,.ht-av th,.ht-av td{border-bottom:1px solid #efe8dc;border-right:1px solid #f4efe6;padding:0;height:34px;text-align:center}
.ht-cal thead th,.ht-av thead th{font-weight:500;color:#776;padding:4px 2px;font-size:11px}.ht-cal thead th b{display:block;font-size:13px;color:#223}.ht-cal thead th.on{background:#eef1f7}
.ht-cal tbody th,.ht-av tbody th{text-align:left;padding:0 8px;white-space:nowrap;position:sticky;left:0;background:#fff;z-index:1;font-weight:600}.ht-cal tbody th small,.ht-av tbody th small{font-weight:400;color:#887}
.ht-free{width:100%;height:33px;border:0;background:transparent;cursor:pointer}.ht-free:hover{background:#eef4ec}
.ht-bk{display:block;width:calc(100% - 4px);margin:2px;height:28px;border:0;border-radius:7px;background:#dfe9da;color:#24401f;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px;cursor:pointer;text-align:left}
.ht-bk.s-in{background:#1f3a5f;color:#fff}.ht-ooo{color:#9a3b2b;background:repeating-linear-gradient(45deg,#fbf1ee,#fbf1ee 6px,#fff 6px,#fff 12px);font-size:12px}
.ht-av td{font-weight:600}.ht-av td.low{background:#fdf3dd;color:#8a5a00}.ht-av td.full{background:#fbe5e1;color:#9a3b2b}.ht-avtot td,.ht-avtot th{color:#556;font-weight:500}
.ht-bad{color:#9a3b2b;font-weight:600}.ht-ok{color:#2e6b34}
.ht-cal,.ht-av{table-layout:fixed}.ht-cal thead th:first-child,.ht-av thead th:first-child{width:104px}
/* inspection, extras, my rooms */
.st-inspect.ht-room, .ht-stb.st-inspect { border-color:#7d5ba6; background:#f3eefa; } .st-inspect .ht-st { color:#5d3f86; }
.ht-key .st-inspect { color:#7d5ba6; } .ht-kpis > .st-inspect { border-left:5px solid #7d5ba6; }
.ht-insp{border:1px solid #d9cdea;background:#f8f5fc;border-radius:12px;padding:10px 12px;margin:10px 0}
.ht-mb{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 12px;margin:6px 0}
.ht-post .linkish{display:inline-block;margin-left:12px}
.ht-xlinks{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.ht-xlinks a{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border:1px solid #e5ddd0;border-radius:999px;background:#fff;font-size:13px;color:inherit;text-decoration:none}.ht-xlinks svg{width:16px;height:16px}
.ht-me{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.ht-mr{padding:12px 14px;margin-bottom:12px;border-left:6px solid #ccc}.ht-mr.st-dirty{border-left-color:#d68910}.ht-mr.st-clean{border-left-color:#1e7b45}.ht-mr.st-occupied{border-left-color:#1e3a5f}.ht-mr.st-inspect{border-left-color:#7d5ba6}
.ht-mrh{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.ht-mrh b{font-size:18px}.ht-mr .ht-ck{min-height:46px}
/* bill: VAT, balance, split */
.ht-folio .ht-vat td{color:#776;font-size:12px}.ht-folio .ht-bal td{border-top:2px solid #223;padding-top:6px}
.ht-split{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.ht-ways{display:inline-flex;gap:6px;align-items:center;font-size:13px}.ht-ways input{width:64px}
.ht-part{display:grid;grid-template-columns:1fr auto 120px;gap:10px;align-items:center;margin-bottom:6px}.ht-part span{font-size:13px}
/* room service: options, trays */
.rsv-lines li{display:flex;gap:8px;align-items:center}.rsv-lines li span{flex:1}.rsv-x{border:0;background:none;padding:2px;cursor:pointer;color:#887}.rsv-x svg{width:14px;height:14px}
.rsv-trays{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 14px;margin-bottom:14px;border-left:5px solid #d68910}.rsv-trays span{font-size:13px}.rsv-trays .late{color:#9a3b2b;font-weight:600}
.rsv-st.s-del{background:#e7eefa;color:#1e3a5f}.rsv-st.s-tray{background:#e8f4ec;color:#1e7b45}
/* function sheet counts */
.fs-prow{display:flex;gap:10px;align-items:center;justify-content:space-between}.fs-prow .fs-cnt{width:96px;flex:none;padding:6px 8px}
.fs-off{color:#9a3b2b;font-weight:700}.fs-okc{color:#1e7b45;font-weight:700}
.rsv-st.s-held{background:#f3eefa;color:#5d3f86}
.fs-pl{list-style:none;margin:0 0 8px;padding:0}.fs-pl li{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid #f0e9de;font-size:13px}.fs-pl li span{flex:1}.fs-pl li em{font-style:normal;font-size:11px;color:#998}.fs-pl li.on em{color:#1e7b45;font-weight:600}.fs-pl li.set em{color:#9a5d00}
.to-swapf{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;margin-bottom:8px}.to-swapf [data-toswo]{grid-column:1/3}.to-swap{font-size:13px;margin:4px 0}.to-swap.bad{color:#9a3b2b}
@media(max-width:600px){.to-swapf{grid-template-columns:1fr 1fr}.to-swapf .btn{grid-column:1/3}}
.ht-reg{border:1px solid #eee5d8;border-radius:12px;padding:8px 12px;margin:8px 0;background:#fff}.ht-ovs{border-left:3px solid #d68910;padding-left:10px}
.kr-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}.kr-tabs a{text-decoration:none}.kr-card{padding:14px 16px;margin-bottom:12px}.kr-card ul{margin:6px 0 0 18px;padding:0}.kr-card li{margin:4px 0;line-height:1.45}
.ht-demo{background:#fdf3dd;color:#8a5a00;border-radius:4px;padding:0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.ht-idnote{margin:4px 0 8px}
