/* Lura Ops — lifted from the prototype so the built app reads the same as the
   thing that was signed off. Light and dark both, following the device. */

:root {
  --bg: #f6f7f9; --fg: #16181d; --card: #fff; --line: #e3e5ea; --muted: #767c88;
  --field: #fbfbfc; --field-line: #d3d7de; --soft: #f0f1f4;
  --exp-bg: #fffaf9; --exp-line: #e8b4ad;
  --note-bg: #fffdf5; --note-line: #e8d9a8; --note-fg: #6b5a1f; --note-b: #4a3f10;
  --purple: #6b28b8; --purple-bg: #f3e8fd;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f1114; --fg: #e8eaee; --card: #181b20; --line: #2a2f37; --muted: #8b93a1;
    --field: #12151a; --field-line: #333944; --soft: #242931;
    --exp-bg: #211614; --exp-line: #5c2a24;
    --note-bg: #1d1a12; --note-line: #4a3f10; --note-fg: #d8c98f; --note-b: #f0e4b8;
    --purple: #c9a6f5; --purple-bg: #2a1b3d;
  }
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: var(--bg); color: var(--fg);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }

.top { background: #16181d; color: #fff; padding: 14px 20px; display: flex; align-items: center; gap: 14px; }
.top h1 { margin: 0; font-size: 16px; font-weight: 600; }
.top a { text-decoration: none; }
/* Quiet on purpose. It is for the one moment you need it, not a badge. */
.ver { font-size: 11px; color: #8b93a1; letter-spacing: .04em; font-variant-numeric: tabular-nums;
       border: 1px solid #2a2f37; border-radius: 5px; padding: 2px 6px; }
.sp { flex: 1; }
.whoami { background: #2a2f37; color: #fff; border-radius: 7px; padding: 6px 10px; font-size: 13px; display: flex; align-items: center; gap: 8px; }
.whoami form { display: flex; }
.signout { background: none; border: 0; color: #8b93a1; font: inherit; font-size: 12px; cursor: pointer; padding: 0; text-decoration: underline; }
.signout:hover { color: #fff; }

nav { background: var(--card); border-bottom: 1px solid var(--line); padding: 0 16px; display: flex; gap: 2px; overflow-x: auto; }
nav a { padding: 13px; font-size: 14px; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; font-weight: 500; }
nav a.on { color: var(--fg); border-bottom-color: var(--fg); font-weight: 600; }
nav a .pip { display: inline-block; background: #d1483a; color: #fff; border-radius: 9px; font-size: 11px; padding: 0 6px; margin-left: 5px; font-weight: 700; vertical-align: 1px; }

main { max-width: 780px; margin: 0 auto; padding: 20px 14px 70px; }
h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 4px; }
h3 { font-size: 15px; margin: 26px 0 8px; }
.lead { margin: 0 0 16px; font-size: 13px; color: var(--muted); }

.pcard, .card, .row { background: var(--card); border: 1px solid var(--line); border-radius: 10px; }
.pcard { padding: 14px; margin-bottom: 10px; display: block; text-decoration: none; color: inherit; }
.pcard:hover { border-color: var(--muted); }
.ph { display: flex; align-items: center; margin-bottom: 9px; }
.ph b { font-size: 15px; }
.ph .jt { font-size: 12px; color: var(--muted); margin-left: 8px; }
.cnt { margin-left: auto; font-size: 12px; color: var(--muted); }

.bars { display: flex; height: 7px; border-radius: 4px; overflow: hidden; gap: 2px; margin-bottom: 9px; background: var(--soft); }
.bars span { display: block; }
.s-new { background: #c9ced7; } .s-on { background: #4a86e8; }
.s-blk { background: #e8a33d; } .s-exp { background: #d1483a; }
.leg { display: flex; gap: 12px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); }
.leg i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px; }

.card { padding: 14px; margin-bottom: 10px; }
.src { font-size: 11.5px; color: var(--muted); margin-bottom: 7px; font-family: ui-monospace, monospace; }
.src.sp { color: var(--purple); font-family: inherit; font-weight: 600; }
.purple { color: var(--purple); font-weight: 600; }

textarea.item { width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 9px; font: inherit; font-size: 14.5px; resize: vertical; min-height: 50px; background: var(--field); color: var(--fg); }

.ctl { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0; align-items: flex-end; }
.ctl label { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 5px; }
.ctl select, .ctl input, .ctl textarea { border: 1px solid var(--field-line); border-radius: 6px; padding: 6px 8px; font: inherit; font-size: 13px; background: var(--card); color: var(--fg); }
.ctl input { width: 150px; }

.btns { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.btns button { border: 0; border-radius: 7px; padding: 8px 15px; font-size: 13.5px; font-weight: 600; cursor: pointer; font-family: inherit; }
.ok { background: var(--fg); color: var(--bg); }
.no { background: var(--soft); color: var(--muted); }
button:disabled { opacity: .5; cursor: default; }
form.inline { display: inline-flex; align-items: center; margin: 0; }

.row { padding: 12px 14px; margin-bottom: 8px; display: flex; gap: 12px; align-items: flex-start; }
.row.r-done { opacity: .5; }
.row.r-exp { border-color: var(--exp-line); background: var(--exp-bg); }
.tw { flex: 1; min-width: 0; }
.row p { margin: 0 0 6px; font-size: 14.5px; }
.meta { display: flex; gap: 7px; flex-wrap: wrap; font-size: 12px; align-items: center; }
.badge { border-radius: 5px; padding: 1px 7px; font-weight: 600; }
.b-new { background: #eef0f3; color: #5a616e; }
.b-on { background: #e6eefc; color: #1c4fa1; }
.b-blk { background: #fdf0d9; color: #8a5a00; }
.b-done { background: #dff2e5; color: #186b38; }
.b-exp { background: #fde5e2; color: #a3251a; }
.b-adm { background: var(--purple-bg); color: var(--purple); }
.b-urgent { background: #a3251a; color: #fff; }
.b-chill  { background: #eef0f3; color: #8b93a1; font-weight: 500; }
.due { color: var(--muted); }
.due.od { color: #a3251a; font-weight: 600; }
.tagd { background: var(--purple-bg); color: var(--purple); border-radius: 5px; padding: 1px 7px; font-weight: 600; }
.nt { margin-top: 7px; font-size: 12.5px; color: var(--muted); border-left: 2px solid var(--line); padding-left: 8px; }
.ra { display: flex; gap: 5px; flex-shrink: 0; flex-wrap: wrap; }
.mini { border: 1px solid var(--field-line); background: var(--card); border-radius: 6px; padding: 4px 9px; font-size: 12px; color: var(--fg); cursor: pointer; font-weight: 600; font-family: inherit; text-decoration: none; display: inline-block; }
.mini:hover { background: var(--soft); }
.mini.on { background: var(--fg); color: var(--bg); border-color: var(--fg); }
select.tiny { border: 1px solid var(--field-line); border-radius: 6px; padding: 2px 6px; font: inherit; font-size: 12px; background: var(--card); color: var(--fg); margin-left: 4px; }

.note { background: var(--note-bg); border: 1px dashed var(--note-line); border-radius: 8px; padding: 11px 13px; margin: 0 0 16px; font-size: 13.5px; color: var(--note-fg); }
.note b { color: var(--note-b); }
.note code { font-family: ui-monospace, monospace; font-size: 12.5px; }
.err { background: #fde5e2; border: 1px solid #e8b4ad; color: #a3251a; border-radius: 8px; padding: 10px 13px; margin: 0 0 14px; font-size: 13.5px; }
.good { background: #dff2e5; border: 1px solid #a9d9bd; color: #186b38; border-radius: 8px; padding: 10px 13px; margin: 0 0 14px; font-size: 13.5px; }
.empty { color: var(--muted); font-size: 13.5px; padding: 18px 0; text-align: center; }

dialog { border: 0; border-radius: 12px; padding: 0; max-width: 440px; width: calc(100% - 32px); background: var(--card); color: var(--fg); }
dialog::backdrop { background: rgba(12, 14, 18, .55); }
.mbox { padding: 18px; position: relative; }
.mbox h3 { margin: 0 0 4px; font-size: 16px; }
/* The way out, where thumbs expect it — top right, always visible, no
   scrolling down past the history to find Close. */
.mclose { position: absolute; top: 8px; right: 8px; width: 34px; height: 34px;
  border: 1px solid var(--line); border-radius: 8px; background: var(--card);
  color: var(--muted); font-size: 20px; line-height: 1; cursor: pointer; }
.mbox .lead { margin-bottom: 14px; }
.mbox label { display: block; font-size: 12px; color: var(--muted); margin: 0 0 4px; }
.mbox textarea, .mbox input[type=text], .mbox select { width: 100%; border: 1px solid var(--field-line); border-radius: 7px; padding: 9px; font: inherit; font-size: 14px; margin-bottom: 12px; background: var(--card); color: var(--fg); }
.mbox .pair { display: flex; gap: 8px; }
.req { color: #a3251a; }
label.check { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--fg); margin: 4px 0 14px; }
label.check input { width: 17px; height: 17px; margin: 0; }
label.check.small { font-size: 12.5px; color: var(--muted); margin: 0; }

.gridwrap { overflow-x: auto; background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 14px; }
table.grid { border-collapse: collapse; font-size: 13px; }
table.grid th, table.grid td { padding: 7px 10px; text-align: center; border-bottom: 1px solid var(--line); }
table.grid th.rowh, table.grid td.rowh { text-align: left; font-weight: 600; white-space: nowrap; }
table.grid th { font-weight: 600; color: var(--muted); font-size: 12px; }
table.grid td.self { color: var(--muted); }
table.grid input[type=checkbox] { width: 17px; height: 17px; cursor: pointer; accent-color: #4a86e8; }

.login { max-width: 380px; margin: 14vh auto; padding: 0 20px; text-align: center; }
.login h1 { font-size: 22px; margin: 0 0 6px; }
.slackbtn { display: inline-flex; align-items: center; gap: 9px; background: #4a154b; color: #fff; border-radius: 9px; padding: 12px 20px; text-decoration: none; font-weight: 600; font-size: 15px; margin-top: 18px; }

/* setup wizard */
.setup { max-width: 560px; margin: 6vh auto; padding: 0 20px 60px; }
.setup h1 { font-size: 22px; margin: 0 0 4px; }
.setup .card label { display: block; font-size: 12px; color: var(--muted); margin: 0 0 4px; }
.setup .card input[type=text], .setup .card input[type=password] { width: 100%; border: 1px solid var(--field-line); border-radius: 7px; padding: 9px; font: inherit; font-size: 14px; margin-bottom: 12px; background: var(--card); color: var(--fg); }
.setup ol { padding-left: 20px; font-size: 13.5px; color: var(--muted); }
.setup ol li { margin-bottom: 6px; }
table.counts { width: 100%; border-collapse: collapse; font-size: 13.5px; }
table.counts td { padding: 5px 8px; border-bottom: 1px solid var(--line); }
table.counts td:last-child { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.chk { font-size: 13px; padding: 3px 0; display: flex; gap: 8px; }
.chk .m { color: var(--muted); flex: 1; }
.chk .v { font-variant-numeric: tabular-nums; }
.pass { color: #186b38; font-weight: 700; }
.fail { color: #a3251a; font-weight: 700; }

@media (max-width: 620px) {
  .row { flex-direction: column; }
  .ra { width: 100%; }
  .ra .mini, .ra form.inline { flex: 1; }
  .ra form.inline .mini { width: 100%; text-align: center; }
}

/* ── v3: bottom tab bar, pickers, streaks, logbook ───────────────────────── */
nav.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:780px;
  background:var(--card);border-top:1px solid var(--line);border-bottom:0;display:flex;
  padding:0 0 env(safe-area-inset-bottom,0px);z-index:6;overflow:visible}
nav.tabs a{flex:1;padding:8px 2px 7px;font-size:10.5px;text-align:center;border-bottom:0;
  display:flex;flex-direction:column;align-items:center;gap:3px;position:relative}
nav.tabs a.on{border-bottom:0;color:var(--fg)}
/* The extra tabs a monitor has room for. A phone keeps its five. */
nav.tabs a.wideonly{display:none}
nav.tabs .ic{font-size:17px;line-height:1}
nav.tabs .pip{position:absolute;top:2px;right:calc(50% - 22px);margin:0}
main.withtabs{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}

label.fl{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin:14px 0 6px}
.tiny{font-size:11.5px;color:var(--muted);margin:6px 0 0}
.who{display:flex;gap:7px;flex-wrap:wrap}
.whobtn{border:1.5px solid var(--field-line);background:var(--card);border-radius:20px;
  padding:8px 13px;font-size:13px;font-weight:600;color:var(--fg);cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;user-select:none}
.whobtn input{position:absolute;opacity:0;width:0;height:0}
.whobtn.on,.whobtn:has(input:checked){background:#e6eefc;border-color:#1c4fa1;color:#1c4fa1}
.whobtn:has(input:checked):before{content:"✓";font-weight:700}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.chip{border:1px solid var(--field-line);background:var(--card);border-radius:20px;padding:8px 14px;
  font-size:12.5px;font-weight:600;color:var(--fg);cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;gap:5px;user-select:none}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip.on,.chip:has(input:checked){background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chip.sm{padding:6px 11px;font-size:12px}
.whendate{margin-top:8px}
/* A label inside .ctl is display:flex, and that beats the browser's own
   [hidden]{display:none} on specificity — so anything the script hid stayed
   on screen anyway. This is the reason the Date box appeared under "Today".
   One reset, applied everywhere, so no future display rule can undo hiding. */
[hidden]{display:none !important}

.tdesc{
  font-size:13px; line-height:1.5; color:var(--muted);
  margin:2px 0 6px; white-space:normal;
  padding-left:10px; border-left:2px solid var(--line);
}
.whenwhen{margin-top:8px}
.whenwhen .tiny{margin:2px 0 0}

.rep{background:#e6eefc;color:#1c4fa1;border-radius:5px;padding:1px 7px;font-weight:600;font-size:12px}
.streak{background:#fdf0d9;color:#8a5a00;border-radius:5px;padding:1px 7px;font-weight:700;font-size:12px}
.streak.hot{background:#fde5e2;color:#a3251a}
.nt.warn{border-color:#8a5a00;color:#8a5a00}
@media(prefers-color-scheme:dark){
  .rep{background:#16243d;color:#8db4f0}
  .streak{background:#2b2110;color:#e8bd6d}
  .streak.hot{background:#2a1614;color:#ff9c8f}
  .nt.warn{border-color:#e8bd6d;color:#e8bd6d}
  .whobtn.on,.whobtn:has(input:checked){background:#16243d;border-color:#8db4f0;color:#8db4f0}
}

/* approvals, collapsed */
.qrow{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden}
.qhead{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;text-decoration:none;color:inherit}
.qhead .txt{flex:1;min-width:0}
.qhead p{margin:0 0 5px;font-size:14.5px;line-height:1.4}
.qhead .caret{color:var(--muted);font-size:13px;padding-top:2px}
.qbody{padding:0 14px 4px;border-top:1px solid var(--line);padding-top:12px}
.qfoot{padding:12px 14px}
.qbody textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px;font:inherit;
  font-size:14.5px;background:var(--field);color:var(--fg);min-height:52px}
.qbody select,.qbody input[type=date],.qbody input[type=time]{width:100%;border:1px solid var(--field-line);
  border-radius:8px;padding:9px;font:inherit;font-size:14px;background:var(--card);color:var(--fg)}

/* logbook */
.issue{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px;
  margin-bottom:8px;display:block;text-decoration:none;color:inherit}
.issue.hot{border-color:#e8b4ad}
.issue p{margin:0 0 6px;font-size:14.5px;line-height:1.4}
.count{background:var(--soft);color:var(--fg);border-radius:20px;padding:3px 10px;font-weight:700;font-size:12px}
.count.warm{background:#fdf0d9;color:#8a5a00}
.count.hot{background:#fde5e2;color:#a3251a}
.spark{display:flex;gap:3px;align-items:flex-end;height:20px;margin-top:8px}
.spark i{flex:1;background:var(--field-line);border-radius:2px;min-height:2px;display:block}
.spark i.h{background:#8a5a00}
.inst{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.inst p{margin:0 0 6px;font-size:14px;line-height:1.45}
.inst img{width:100%;max-height:220px;object-fit:cover;border-radius:9px;margin:4px 0 8px;display:block}
.back{display:inline-block;color:var(--muted);font-size:13px;font-weight:600;text-decoration:none;margin-bottom:10px}
.ok.wide{width:100%;border-radius:9px;padding:13px;border:0;font:inherit;font-size:14px;font-weight:700;cursor:pointer}

/* Something to copy: monospace, unwrapped words broken, obviously a value. */
.keybox { padding: 11px 13px; background: var(--bg); border: 1px solid var(--line);
          border-radius: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
          font-size: 12.5px; word-break: break-all; user-select: all; }

/* ── beds ─────────────────────────────────────────────────────────────────
   Built for a phone held in one hand by somebody who is also holding a mop.
   Big targets, one button per bed, colour doing the reading. The stack on
   screen is drawn the way the bunk is built: top mattress at the top. */
.bedbar { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; -webkit-overflow-scrolling: touch; }
.bchip { flex: 0 0 auto; text-decoration: none; font-size: 13px; padding: 8px 13px;
         border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--fg); }
.bchip b { margin-left: 4px; }
.bchip.on { background: var(--fg); color: var(--bg); border-color: var(--fg); }

.roomcard { background: var(--card); border: 1px solid var(--line); border-radius: 12px;
            padding: 14px; margin: 0 0 14px; }
.roomhead { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; margin-bottom: 12px; }
.roomhead h3 { margin: 0; font-size: 17px; }
.rtag { font-size: 11px; color: var(--muted); border: 1px solid var(--line);
        border-radius: 5px; padding: 1px 6px; }
.rcount { margin-left: auto; font-size: 12px; color: var(--muted); }

.bunks { display: flex; flex-wrap: wrap; gap: 12px; }
.bunk { display: flex; flex-direction: column; gap: 5px; }
.bunk-no { font-size: 11px; color: var(--muted); text-align: center; padding-top: 2px; }

.bed { position: relative; width: 132px; border: 1px solid var(--line); border-radius: 10px;
       padding: 9px 9px 8px; background: var(--card); }
.bed-top { display: flex; align-items: baseline; gap: 6px; }
.bed-n { font-size: 21px; font-weight: 700; line-height: 1; }
.bed-pos { font-size: 11px; color: var(--muted); }
.bed-state { font-size: 12px; font-weight: 600; margin: 5px 0 0; }
.bed-guest { font-size: 11px; color: var(--muted); margin-top: 2px;
             white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bed-attn-note { font-size: 11px; margin-top: 4px; color: #8a2c1e; }
.bed-go { width: 100%; margin-top: 8px; padding: 11px 6px; font-size: 13px; font-weight: 700;
          border: 0; border-radius: 8px; background: var(--fg); color: var(--bg); cursor: pointer; }
.bed-done { margin-top: 8px; text-align: center; font-size: 18px; color: var(--muted); }
.bed-more { position: absolute; top: 4px; right: 4px; border: 0; background: none;
            color: var(--muted); font-size: 15px; padding: 4px 7px; cursor: pointer; line-height: 1; }

/* One colour per state, carrying the same meaning on every screen. Light and
   dark both, and every pairing checked for contrast against its own text. */
.bs-inuse    { background: #eef2f7; border-color: #b9c4d2; color:#3d4a5c; }
.bs-out      { background: #fde0d8; border-color: #e8836a; color:#8a2c14; }
.bs-stripped { background: #ffe9cc; border-color: #e09a30; color:#7a4a05; }
.bs-cleaned  { background: #fdf5c9; border-color: #ddc44a; color:#6d5a06; }
.bs-checked  { background: #e2f2d5; border-color: #93c46b; color:#3d5c1f; }
.bs-ready    { background: #cdeed6; border-color: #4fae72; color:#175f33; }
.bs-linen    { background: #ece1fb; border-color: #a883e0; color:#4b2c7a; }
.bs-check    { background: #dcebfa; border-color: #4f8fd1; color:#1d4a7a; }   /* v105 */

@media (prefers-color-scheme: dark) {
  .bs-inuse    { background: #1b2027; border-color: #46536a; color:#aebbcd; }
  .bs-out      { background: #40160c; border-color: #b4472a; color:#ffc0ad; }
  .bs-stripped { background: #3d2a08; border-color: #c47f18; color:#ffd79a; }
  .bs-cleaned  { background: #3a3308; border-color: #b8a020; color:#f5e58a; }
  .bs-checked  { background: #22350f; border-color: #6d9c42; color:#c7e8a5; }
  .bs-ready    { background: #0f3a20; border-color: #339159; color:#9ce8b8; }
  .bs-linen    { background: #2b1d45; border-color: #8158c4; color:#d7c2f7; }
  .bs-check    { background: #12283f; border-color: #4f8fd1; color:#b9d8f7; }
}
  .bed-attn-note { color: #e8a89b; }
}

/* Roomier on a tablet or laptop, where the whole house should fit. */
@media (min-width: 760px) {
  .bed { width: 150px; }
  .bunks { gap: 16px; }
}

/* ── the tile row: the chain, left to right ───────────────────────────────
   Reading it in order tells you where the house is without reading a word. */
/* Three across, always. Six tiles in an auto-fit grid orphaned two of them on
   most widths, which made the chain read as a broken row rather than a
   sequence. Two rows of three keeps the order legible at every size. */
.deck { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 18px; }
@media (min-width: 1180px) { .deck { grid-template-columns: repeat(6, 1fr); } }
.tile { display: flex; flex-direction: column; gap: 2px; padding: 12px 11px;
        border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--fg); }
.tile-n { font-size: 26px; font-weight: 700; line-height: 1.05; font-variant-numeric: tabular-nums; }
.tile-l { font-size: 11.5px; font-weight: 600; }

/* ── the whole house at a glance ─────────────────────────────────────────── */
.minimap { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
           gap: 10px; margin-bottom: 12px; }
.mm-room { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; }
.mm-head { font-size: 12.5px; font-weight: 700; margin-bottom: 7px; }
.mm-beds { display: flex; flex-wrap: wrap; gap: 4px; }
.mm-bed { width: 26px; height: 26px; border-radius: 6px; border: 1px solid var(--line);
          font-size: 11px; font-weight: 600; display: flex; align-items: center;
          justify-content: center; font-variant-numeric: tabular-nums; }

/* The pre-grid dashboard styles that used to sit here (.dash, .panel, .phead,
   .feed) styled a screen that was replaced by the .dashgrid board — nothing in
   any view has carried those classes for several releases. */

/* ── the Add box on the approvals screen ────────────────────────────────────
   Approve and Add share one tab, so Add has to be present without being in the
   way. Shut, it is one line the thumb can hit; open, it is the same form as the
   Add screen because it literally is the same form. */
.addbox {
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  margin: 0 0 16px; overflow: hidden;
}
.addbox > summary {
  list-style: none; cursor: pointer; padding: 14px 16px;
  display: flex; align-items: center; gap: 10px;
  font-weight: 600; font-size: 15px; user-select: none;
}
.addbox > summary::-webkit-details-marker { display: none; }
.addbox > summary .plus {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%;
  background: var(--fg); color: var(--bg); font-size: 15px; line-height: 1;
}
.addbox > summary::after { content: '▾'; margin-left: auto; color: var(--muted); }
.addbox[open] > summary::after { content: '▴'; }
.addbox[open] > summary { border-bottom: 1px solid var(--line); }
.addbox .addbody { padding: 16px; }
.addbox .addbody textarea { margin-top: 0; }

/* ── the Cloudbeds listing ──────────────────────────────────────────────────
   A plain table, because the whole job of this screen is to show exactly what
   came back without dressing it up. */
.cbtable{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:10px 0 18px;
  background:var(--card)}
.cbhead,.cbrow{display:grid;grid-template-columns:2fr 2fr 1.2fr 1.6fr;gap:10px;padding:9px 12px;
  align-items:center;font-size:13px}
.cbtable .cbhead{grid-template-columns:2fr 2fr 1.2fr 1.6fr}
.cbhead{background:var(--soft);color:var(--muted);font-size:11px;text-transform:uppercase;
  letter-spacing:.06em}
.cbrow{border-top:1px solid var(--line)}
.cbrow .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--muted)}
.cbtable .cbhead:has(span:nth-child(2):last-child),
.cbtable .cbhead:has(span:nth-child(2):last-child) ~ .cbrow{grid-template-columns:2fr 1fr}
@media (max-width:560px){
  .cbhead,.cbrow{grid-template-columns:1fr 1fr;gap:4px 10px}
  .cbhead span:nth-child(n+3),.cbrow span:nth-child(n+3){grid-column:span 1}
}
ol.steps{padding-left:20px;margin:10px 0 18px}
ol.steps li{margin-bottom:8px;font-size:14px}
ol.steps code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
  background:var(--soft);border-radius:4px;padding:1px 5px}

/* ── the common-report chips ────────────────────────────────────────────── */
.quickrow{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.qchip{border:1px solid var(--field-line);background:var(--field);color:var(--fg);
  border-radius:16px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.qchip:hover{background:var(--soft)}
.qchip:active{transform:translateY(1px)}

/* ═══════════════════════════════════════════════════════════════════════════
   v23 — the desktop
   ═══════════════════════════════════════════════════════════════════════════

   Everything above this was built phone-first and then left alone, so on a
   laptop the entire app was a 780px column with a thousand pixels of grey
   either side, and the navigation was a thumb-sized bar pinned to the bottom
   of a screen nobody touches.

   Two changes fix most of it:

     1. On a wide screen the tab bar stops being a phone tab bar. It is already
        the first thing inside the body, so simply letting it sit still puts it
        under the header where a menu belongs, and gives the page its bottom
        back.

     2. Screens that are LISTS stay narrow, because a line of text 1200px wide
        is harder to read, not easier. Screens that are MAPS or GRIDS — the
        dashboard, the beds, reception, the board, the team — get the width.
        That is what `main.wide` marks.                                       */

@media (min-width: 1000px) {
  nav.tabs {
    position: static; transform: none; max-width: none; width: auto;
    margin: 0 auto; padding: 0;
    border-top: 0; border-bottom: 1px solid var(--line);
    background: var(--card);
    justify-content: center; gap: 4px;
  }
  nav.tabs a {
    flex: 0 0 auto; min-width: 96px; padding: 11px 14px 10px;
    font-size: 13px; flex-direction: row; gap: 8px; border-radius: 0;
  }
  nav.tabs a.wideonly { display: flex; }
  nav.tabs a.on { box-shadow: inset 0 -2px 0 var(--fg); font-weight: 600; }
  nav.tabs .ic { font-size: 15px; }
  nav.tabs .pip { position: static; margin-left: 2px; }

  main.withtabs { padding-bottom: 40px; }
  main { padding-top: 24px; }

  /* v163 (Kurtis, 22 Oct: "we could be utilizing the space more"): the default column on a
     monitor is 1180px — a table of check-ins or a day of prices needs it. Only a page of
     reading or a single form (main.narrow) keeps the 780px column. */
  main { max-width: 1180px; padding-left: 24px; padding-right: 24px; }
  main.narrow { max-width: 820px; }

  /* The grid screens. */
  main.wide { max-width: 1320px; padding-left: 24px; padding-right: 24px; }

  /* The add-a-task screens. On a monitor the form splits in two: the words on
     the left at full height — they ARE the task — and everything that is a
     setting on the right. On a phone the grid collapses back to one column. */
  main.roomy { max-width: 1160px; }
  main.roomy input[type=text], main.roomy textarea, main.roomy select {
    font-size: 16px; padding: 12px 14px;
  }
  main.roomy .chip { font-size: 14px; padding: 9px 16px; }
  main.roomy .fl { font-size: 14px; margin-top: 18px; }
  main.roomy .ctl { display: flex; gap: 14px; }
  main.roomy .ctl label { flex: 1; }
  main.roomy .wfgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 34px;
    align-items: start; }
  main.roomy .wfmain textarea { min-height: 260px; }
}

/* The dashboard, rebuilt for a screen you sit in front of rather than hold.
   The house is the thing you look at, so it takes the left two thirds and
   everything that is a short list stacks down the right. */
@media (min-width: 1000px) {
  .dash { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
  .span2 { grid-column: span 2; }
  .panel { padding: 16px 18px; }
  .panel .row { padding: 7px 0; }

  /* Denser minimap: the whole house should be visible without scrolling. */
  .mm-bed { min-width: 26px; padding: 3px 0; font-size: 11px; }
  .mm-room { padding: 8px 10px; }
  .deck { gap: 8px; }
  .tile { padding: 10px 8px; }
  .tile-n { font-size: 22px; }
}

@media (min-width: 1500px) {
  main { max-width: 1320px; }
  main.narrow { max-width: 820px; }
  main.wide { max-width: 1460px; }
  .dash { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .span2 { grid-column: span 2; }
}

/* ── space, on both ─────────────────────────────────────────────────────────
   The notes are explanations, and an explanation you have read fifty times is
   furniture. They keep their words and lose their bulk. */
.note { padding: 10px 13px; margin: 12px 0; font-size: 13px; line-height: 1.5; }
.lead { margin-bottom: 14px; }
h2 { margin-bottom: 4px; }
h3 { margin: 20px 0 8px; }
main > h2:first-child { margin-top: 0; }

@media (max-width: 620px) {
  /* On a phone the tiles were three per row and unreadable at the edges. */
  .deck { gap: 6px; }
  .tile { padding: 9px 6px; }
  .tile-n { font-size: 19px; }
  .tile-l { font-size: 10.5px; line-height: 1.25; }
  main { padding-left: 12px; padding-right: 12px; }
  .roomcard { padding: 10px 10px 12px; }
  .note { padding: 9px 11px; font-size: 12.5px; }
}

/* ── a folded section: the repeat rules, the reminders ──────────────────────
   Both were tall blocks answering a question whose answer is usually the
   default. Folded, each is one line showing what it is set to. */
.foldbox{border:1px solid var(--line);border-radius:10px;background:var(--card);
  margin:14px 0;overflow:hidden}
.foldbox > summary{list-style:none;cursor:pointer;padding:11px 14px;display:flex;
  align-items:center;gap:10px;user-select:none;font-size:13.5px}
.foldbox > summary::-webkit-details-marker{display:none}
.foldbox > summary::after{content:'▾';margin-left:auto;color:var(--muted)}
.foldbox[open] > summary::after{content:'▴'}
.foldbox[open] > summary{border-bottom:1px solid var(--line)}
.foldbox .fold-l{color:var(--muted);font-weight:600}
.foldbox .fold-v{font-weight:600}
.foldbox .foldbody{padding:12px 14px}
.foldbox .foldbody .fl:first-child{margin-top:0}

/* ── the desktop board ─────────────────────────────────────────────────────
   A twelve-column grid that collapses to one column on a phone. The widths
   below are what the person chose; on a narrow screen they are all ignored,
   because a four-column panel on a phone is a joke rather than a layout. */
.dashbar{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;
  justify-content:space-between;flex-wrap:wrap;padding:8px 0 10px;background:var(--bg);
  border-bottom:1px solid var(--line);margin-bottom:14px}
.dashjump{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.dashtools{display:flex;gap:6px;align-items:center}
.dashgrid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
.dw{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;
  display:flex;flex-direction:column;scroll-margin-top:64px}
.dw-head{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:10px 14px;border-bottom:1px solid var(--line)}
.dw-head h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.dw-body{padding:12px 14px;overflow:auto;flex:1}
.dw-ctl{display:flex;gap:2px}
.dw-ctl button{border:1px solid var(--line);background:transparent;color:var(--muted);
  border-radius:6px;width:26px;height:24px;cursor:pointer;font-size:12px;line-height:1}
.dw-ctl button:hover{color:var(--fg);border-color:var(--muted)}
.dashgrid.editing .dw{outline:1px dashed var(--line)}
.dashgrid.editing .dw-head{cursor:grab}
.dw.dragging{opacity:.45}
.dw.dropzone{outline:2px solid var(--accent,#4a7dff)}

.dwnums{display:flex;flex-wrap:wrap;gap:10px}
.dwnum{flex:1 1 110px;text-align:center;padding:10px 6px;border:1px solid var(--line);
  border-radius:10px;text-decoration:none;color:inherit;background:var(--bg)}
.dwnum b{display:block;font-size:26px;line-height:1.1}
.dwnums.sm .dwnum b{font-size:20px}
.dwnum span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.dwline{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit}
.dwline:last-child{border-bottom:0}
.dwline small{color:var(--muted)}
/* The live feed reads bigger than the other panels — it is the one Kurtis
   glances at across a desk. */
.feedline{padding:10px 0;font-size:15px}
.feedmark{flex:0 0 26px;height:26px;border-radius:6px;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:700}
.fm-done{background:#dff2e5;color:#186b38}
/* The typing helper's hint: floats under the box, one name, Tab takes it. */
.namehint{position:absolute;z-index:200;background:var(--fg);color:var(--bg);
  border-radius:7px;padding:4px 10px;font-size:13px;font-weight:600;
  box-shadow:0 3px 10px rgba(0,0,0,.25);pointer-events:none}

/* A photo hanging off a logbook note — thumbnail inline, full size a tap away. */
.issphoto{display:block;max-width:130px;max-height:100px;border-radius:8px;
  border:1px solid var(--line);margin-top:6px}
.fm-bed{background:#e6eefc;color:#1c4fa1}
@media(prefers-color-scheme:dark){
  .fm-done{background:#173824;color:#7fd6a0}
  .fm-bed{background:#16263f;color:#8fb5f0}
}
.dwbig{font-size:20px;min-width:1.6em;text-align:right;color:var(--muted)}
.dwrooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.dwroom-h{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:4px}
.dwbeds{display:flex;flex-wrap:wrap;gap:4px}
.dwbed{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:11px;text-decoration:none;color:inherit;border:1px solid var(--line)}
.dashoff{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}

@media (min-width: 1000px) {
  .dashgrid{grid-template-columns:repeat(12,1fr)}
  .dw-w3{grid-column:span 3}  .dw-w4{grid-column:span 4}
  .dw-w5{grid-column:span 5}  .dw-w6{grid-column:span 6}
  .dw-w7{grid-column:span 7}  .dw-w8{grid-column:span 8}
  .dw-w9{grid-column:span 9}  .dw-w10{grid-column:span 10}
  .dw-w11{grid-column:span 11}.dw-w12{grid-column:span 12}
  .dw-h1 .dw-body{max-height:170px}   .dw-h2 .dw-body{max-height:280px}
  .dw-h3 .dw-body{max-height:400px}   .dw-h4 .dw-body{max-height:520px}
  .dw-h5 .dw-body{max-height:640px}   .dw-h6 .dw-body{max-height:820px}
}

/* A whole screen shown as a panel already has the panel's title on its head,
   so its own heading and standfirst are one repetition too many. Hidden here
   rather than removed from the view, because the same view is still a page of
   its own on a phone, where the heading is the only thing naming it. */
.dw-full .dw-body > h2:first-child,
.dw-full .dw-body > h2:first-child + .lead { display: none; }

/* Construction mode. Handles only appear while it is on, so the board is a
   board the rest of the time and not a workshop. */
.dw-grip{cursor:grab;color:var(--muted);letter-spacing:-3px;padding:0 4px;user-select:none}
.dashgrid.editing .dw{position:relative}
.dw-resize{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;
  background:linear-gradient(135deg,transparent 45%,var(--muted) 45%,var(--muted) 55%,transparent 55%);
  opacity:.6}
.dw-resize:hover{opacity:1}
.dw.sizing{outline:2px solid var(--muted);user-select:none}
.dw-size{position:absolute;right:22px;bottom:4px;font-size:11px;color:var(--muted);
  background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.dashgrid.editing .dw-head{cursor:default}

/* the logbook, read without going anywhere */
.issue{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:12px 14px;margin:0 0 10px}
.issue > p{margin:0 0 6px;font-weight:600}
.issue > p a{text-decoration:none;color:inherit}
.issue > p a:hover{text-decoration:underline}
.issnotes{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}
.issnotes summary{cursor:pointer;font-size:12px;color:var(--muted);list-style:none}
.issnotes summary::-webkit-details-marker{display:none}
.issnotes summary::before{content:'▸ ';}
.issnotes[open] summary::before{content:'▾ ';}
.issnote{padding:6px 0;border-bottom:1px solid var(--line)}
.issnote:last-of-type{border-bottom:0}
.issnote small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.mergebox .mergerow{display:flex;gap:10px;align-items:flex-start;padding:6px 0;cursor:pointer}
.mergebox .mergerow small{display:block;color:var(--muted)}

/* ── the bed squares ───────────────────────────────────────────────────────
   Red through orange and yellow to green, in the order the work happens, so a
   wall of them reads without anybody learning a key. Every square also carries
   a MARK — 1 2 3 4 ✓ — because colour alone is unreadable on a phone in
   daylight and invisible to one man in twelve. */
.dwbed{position:relative;width:34px;height:34px;border-radius:8px;display:flex;
  align-items:center;justify-content:center;font-size:12px;font-weight:600;
  text-decoration:none;border:1.5px solid var(--line);line-height:1}
.dwbed .bno{font-size:12px}
.dwbed .bmk{position:absolute;right:2px;bottom:1px;font-size:9px;opacity:.85;font-weight:700}
/* Sheets overdue: a dashed edge on top of whatever state it is in, so it never
   hides the state underneath it. */
.bs-linendue{border-style:dashed;border-width:2px}
/* Something wrong with the bed itself. A hard-red corner "!" — Kurtis asked
   for it to SHOUT, not whisper. It rides on top of whatever state the bed is
   in, because a fault can exist in any state and must not be confused with
   one. */
.bs-flagged::before{content:'!';position:absolute;top:-6px;left:-6px;width:16px;height:16px;
  border-radius:5px;background:#a3251a;color:#fff;font-size:12px;font-weight:800;
  display:flex;align-items:center;justify-content:center;line-height:1;
  border:1.5px solid var(--card);z-index:1}
.bed.bed-attn{border-color:#a3251a;border-width:2px}

.bedkey{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.bedkey span{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:2px 8px 2px 3px}
.bedkey i{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-style:normal;font-weight:700}

@media (max-width: 999px) {
  /* A phone. The 40px squares Kurtis asked for in v36 turned out to eat the
     screen — his words this time: smaller, still readable, and slide the row.
     32px keeps the number and the mark legible; the rows were already one
     swipeable line each. */
  .dwbed{width:32px;height:32px;font-size:12px;border-radius:7px}
  .dwbed .bmk{font-size:9px}
  .dwrooms{gap:6px}
  .dashjump{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    padding-bottom:4px;scrollbar-width:none}
  .dashjump::-webkit-scrollbar{display:none}
  .dashjump .chip{flex:0 0 auto}
  .dashbar{gap:6px}
  .dw-body{max-height:none !important}
  .dwrooms{grid-template-columns:1fr}
}
.bed-linen{font-size:11px;font-weight:600;color:#6b4ba8;margin-top:2px}
@media (prefers-color-scheme: dark){ .bed-linen{color:#c3a6f0} }
.dw-folded .dw-head{cursor:pointer}
.dw-folded .dw-head h3::after{content:' ▸';color:var(--muted)}

/* ── density ───────────────────────────────────────────────────────────────
   The first version of this board was built at the size of a page rather than
   the size of a panel, and it showed: half-empty boxes, a heading bar as tall
   as the two lines under it, and six tiles taking the height of a bed map. A
   dashboard is judged on how much true thing per inch it shows, so everything
   below is smaller, tighter, and sized to its contents. */
.dashgrid{gap:10px;grid-auto-rows:min-content}
.dw-head{padding:6px 12px}
.dw-head h3{font-size:11px}
.dw-body{padding:9px 12px}
/* The height a panel is given is a CEILING, not a floor. A panel with two
   lines in it is two lines tall, and the space that used to sit under it goes
   to the panel beside it. */
.dw{align-self:start}

.dwnums{gap:6px}
.dwnum{flex:1 1 84px;padding:6px 4px;border-radius:8px}
.dwnum b{font-size:20px}
.dwnums.sm .dwnum b{font-size:16px}
.dwnum span{font-size:10px;letter-spacing:.03em}
.dwline{padding:5px 0;gap:8px;font-size:13px;line-height:1.35}
.dwline small{font-size:11px}
.dwbig{font-size:16px;min-width:1.4em}
.dwrooms{gap:8px}
.dwroom-h{font-size:11px;margin-bottom:2px}
.dwbeds{gap:3px}
.bedkey{gap:4px;margin-bottom:7px}
.bedkey span{font-size:10px;padding:1px 7px 1px 2px}
.bedkey i{width:15px;height:15px;font-size:8px}
.dw .empty{padding:8px 0;font-size:12px}
.dw p.tiny{margin:6px 0 0}

@media (min-width: 1000px) {
  /* Squares, not buttons: the map is the densest thing on the board and the
     one most worth the room. */
  .dwbed{width:26px;height:26px;border-radius:6px;font-size:11px}
  .dw-h1 .dw-body{max-height:130px} .dw-h2 .dw-body{max-height:230px}
  .dw-h3 .dw-body{max-height:330px} .dw-h4 .dw-body{max-height:440px}
  .dw-h5 .dw-body{max-height:560px} .dw-h6 .dw-body{max-height:700px}
}

/* A name somebody said. Marked wherever it appears so it can be spotted
   without reading the sentence — never a judgement, just a highlight. */
.nm{background:rgba(255,196,61,.28);border-radius:4px;padding:0 3px;font-weight:600}
@media (prefers-color-scheme: dark){ .nm{background:rgba(255,196,61,.22);color:#ffdf95} }

/* ── the top of the screen stays where it is ───────────────────────────────
   On a desk the black bar and the tabs used to scroll away, so ten seconds
   into the page there was nothing on screen saying which app this was, who
   was signed in, or how to get anywhere. They are pinned now. The chip bar
   pins underneath them rather than over them, which is what it was doing
   before and why it looked like the header had vanished.

   The phone is untouched: its tabs live at the bottom, under the thumb, and
   that is right. */
@media (min-width: 1000px) {
  .top { position: sticky; top: 0; z-index: 60; }
  nav.tabs { position: sticky; top: var(--tophdr, 52px); z-index: 55; }
  .dashbar { top: calc(var(--tophdr, 52px) + var(--topnav, 44px)); z-index: 50; }
  .dw { scroll-margin-top: calc(var(--tophdr, 52px) + var(--topnav, 44px) + 52px); }
}

/* ── one line, and slide it ────────────────────────────────────────────────
   A room of twelve beds wrapped onto two and three rows, so a room was a
   block rather than a line and the map was three times taller than it needed
   to be. Each room is now one line you can push sideways. The fade on the
   right is the only thing telling you there is more, so it matters. */
.dwbeds{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;
  scroll-snap-type:x proximity}
.dwbeds::-webkit-scrollbar{display:none}
.dwbed{flex:0 0 auto;scroll-snap-align:start}
.dwroom{position:relative}
.dwroom.over::after{content:'';position:absolute;right:0;bottom:2px;width:26px;height:30px;
  pointer-events:none;background:linear-gradient(to right,transparent,var(--card))}
.dwroom-more{position:absolute;right:0;top:0;font-size:10px;color:var(--muted);
  background:transparent;border:0;cursor:pointer;padding:0 2px}
.dwroom-more:hover{color:var(--fg);text-decoration:underline}

/* Chips: one line that slides, on every width rather than only a phone. Three
   rows of chips above the board was more chrome than board. */
.dashjump{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.dashjump::-webkit-scrollbar{display:none}
.dashjump .chip{flex:0 0 auto}
.dashbar{flex-wrap:nowrap}
.dashtools{flex:0 0 auto}

/* A strip that slides has to LOOK like it slides, or a word cut in half reads
   as a bug. The mask fades the last few pixels instead of guillotining them. */
.dashjump{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);
  mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent)}
.dashjump.ends{-webkit-mask-image:none;mask-image:none}

/* ── the rota ──────────────────────────────────────────────────────────────
   People down the side, the week across the top, a shift as a small block in
   its cell. The states reuse the app's grammar: dashed = waiting on a person,
   dark = happening now, grey = finished. */
.shgrid{display:grid;grid-template-columns:110px repeat(7,1fr);gap:3px;font-size:12px}
.shcell{min-height:40px;border:1px dashed var(--line);border-radius:7px;padding:2px;
  display:flex;flex-direction:column;gap:2px}
.shcell.shhead{border:0;min-height:0;font-weight:700;text-align:center;color:var(--muted);
  display:block;padding:4px 2px}
.shcell.shtoday{color:var(--fg);background:var(--chipbg,#f2f3f6);border-radius:6px}
.shcell.shname{border:0;font-weight:600;justify-content:center}
.shblk{border:0;border-radius:6px;padding:4px 6px;font-size:11px;font-weight:700;line-height:1.2;
  cursor:pointer;font-family:inherit;text-align:left;width:100%}
span.shblk{cursor:default}
.shok{background:#dff2e5;color:#186b38}
.shp{background:#fdf0d9;color:#8a5a00;border:1px dashed #c99b3f}
.shin{background:var(--fg);color:var(--bg)}
.shd{background:#eef0f3;color:#6a7180}
@media(max-width:760px){
  .shgrid{grid-template-columns:78px repeat(7,1fr);font-size:10px}
  .shblk{font-size:9px;padding:3px 3px}
}
/* the desk's shift list on the reception screen */
.deskshift{display:flex;justify-content:space-between;align-items:center;gap:10px;
  border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:8px}
.deskshift b{font-size:14px}
.deskshift small{color:var(--muted);display:block}

/* ── v75: the check-in card on My tasks ─────────────────────────────────── */
.ckcard{background:var(--card);border:2px solid var(--fg);border-radius:14px;padding:16px;margin:0 0 20px}
.ckcard.ckin{border-color:#2f7a52}
.ckcard.cklate{border-color:#b07a16}
.cktop{display:flex;justify-content:space-between;align-items:baseline;gap:10px;color:var(--muted);font-size:13px}
.cktime{font-size:24px;color:var(--fg);font-variant-numeric:tabular-nums}
.ckstate{margin:6px 0 12px;font-size:15px}
.cklatew{color:#b07a16;font-weight:600}
.ckreasons{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.ckr{border:1px solid var(--field-line);border-radius:999px;padding:7px 12px;font-size:14px;cursor:pointer;background:var(--field)}
.ckr:has(input:checked){background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ckr input{margin:0 4px 0 0}
.ckform input[type=text]{width:100%;margin-bottom:10px}
.ckbtn{width:100%;border:0;border-radius:12px;padding:17px;font:inherit;font-size:19px;font-weight:700;cursor:pointer;background:#2f7a52;color:#fff}
.ckcard.cklate .ckbtn{background:#b07a16}
.ckcard.ckin .ckbtn{background:var(--fg);color:var(--bg)}
.ckbtn[disabled]{opacity:.6;cursor:wait}
.ckhow{margin:8px 0 0;color:var(--muted)}
.ckerr{color:#b3261e;font-size:13.5px;margin:8px 0 0}
/* the managers' screen */
.cktabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.cktabs a{border:1px solid var(--line);border-radius:999px;padding:7px 13px;text-decoration:none;font-size:14px}
.cktabs a.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cktable{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card);margin:0 0 16px}
.cktable table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}
.cktable th,.cktable td{text-align:left;padding:8px 11px;border-bottom:1px solid var(--line);white-space:nowrap}
.cktable th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cktable tr:last-child td{border-bottom:0}
.cktable td.n{text-align:right;font-variant-numeric:tabular-nums}
.ckpill{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--soft);color:var(--muted)}
.ckpill.ok{background:#e3f2e9;color:#2f7a52}.ckpill.watch{background:#fbf0d9;color:#8a5d0b}
.ckpill.bad{background:#fbe4e1;color:#b3261e}
@media (prefers-color-scheme: dark){.ckpill.ok{background:#173326;color:#7cc29a}.ckpill.watch{background:#352a12;color:#e3b04f}.ckpill.bad{background:#3a1a17;color:#ec8270}}
.ckdots{display:inline-flex;gap:3px;vertical-align:middle}
.ckdots i{width:10px;height:10px;border-radius:2px;display:inline-block;background:var(--line)}
.ckdots i.ok{background:#2f7a52}.ckdots i.l{background:#b07a16}.ckdots i.x{background:#b3261e}.ckdots i.w{background:#d9c27a}
.ckverdict{display:flex;gap:6px;flex-wrap:nowrap}
.ckverdict button{font:inherit;font-size:13px;border:1px solid var(--field-line);background:var(--field);color:var(--fg);border-radius:999px;padding:6px 10px;cursor:pointer}
.ckset{display:grid;gap:10px}

/* v76 */
.cktable td.wrap{white-space:normal;min-width:180px;max-width:320px}
.cklink{display:block;word-break:break-all;background:var(--soft);padding:8px 10px;border-radius:8px;font-size:13px;user-select:all}
.suareas{border:0;padding:0;margin:4px 0 6px;display:flex;flex-wrap:wrap;gap:6px}
.suareas legend{margin-bottom:6px}
.ckidle{border-color:var(--line)}

/* v77: arrival colours (Kurtis): 15+ early best, 5–15 ok, under 5 flag, from the start late */
.ckband{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px}
.ckband.b-best{background:#dff1e6;color:#1f6b40}.ckband.b-ok{background:#fbf3cf;color:#7a5d00}
.ckband.b-flag{background:#fde4cc;color:#9a4a00}.ckband.b-late{background:#fbe0dc;color:#a3271b}
@media (prefers-color-scheme: dark){.ckband.b-best{background:#173326;color:#7cc29a}.ckband.b-ok{background:#3a3212;color:#e8cf6a}.ckband.b-flag{background:#3d2614;color:#f0a35e}.ckband.b-late{background:#3a1a17;color:#ec8270}}
/* v77: the calendar, laid out like the Horario sheet */
.cal{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card);margin:0 0 18px}
.cal table{border-collapse:collapse;width:100%;min-width:900px;font-size:13px}
.cal th,.cal td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:6px 8px;vertical-align:top;text-align:left}
.cal thead th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--soft);position:sticky;top:0}
.cal th.slot{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600;color:var(--fg);width:110px}
.cal tr.area th{background:var(--fg);color:var(--bg);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.cal td.today,.cal th.today{background:color-mix(in srgb,#f0c64a 14%,transparent)}
.cal .nm{display:block;padding:2px 6px;border-radius:6px;margin:1px 0;background:var(--soft);white-space:nowrap}
.cal .nm.b-best{background:#dff1e6}.cal .nm.b-ok{background:#fbf3cf}.cal .nm.b-flag{background:#fde4cc}.cal .nm.b-late{background:#fbe0dc}
.cal .nm.miss{text-decoration:line-through;color:#a3271b}
@media (prefers-color-scheme: dark){.cal .nm.b-best{background:#173326}.cal .nm.b-ok{background:#3a3212}.cal .nm.b-flag{background:#3d2614}.cal .nm.b-late{background:#3a1a17}}
.calkey{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;font-size:12px}

/* ── v78: the boss's desktop dropdowns (House / Work / Setup) ───────────────
   A phone never shows them: its five buttons and More carry the same doors. */
nav.tabs .dd{display:none}
@media (min-width: 1000px) {
  nav.tabs a.phoneonly { display: none; }
  nav.tabs .dd { display: block; position: relative; }
  nav.tabs .dd > summary {
    list-style: none; cursor: pointer; padding: 11px 14px 10px; font-size: 13px;
    color: var(--muted); display: flex; align-items: center; gap: 6px; height: 100%; box-sizing: border-box;
  }
  nav.tabs .dd > summary::-webkit-details-marker { display: none; }
  nav.tabs .dd > summary::after { content: "▾"; font-size: 10px; }
  nav.tabs .dd.on > summary { color: var(--fg); font-weight: 600; box-shadow: inset 0 -2px 0 var(--fg); }
  nav.tabs .dd[open] > summary { color: var(--fg); background: var(--bg); }
  nav.tabs .ddm {
    position: absolute; top: 100%; left: 0; z-index: 70; min-width: 220px;
    background: var(--card); border: 1px solid var(--line); border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,.14); padding: 6px; display: grid;
  }
  nav.tabs .ddm a {
    flex: none; min-width: 0; display: block; text-align: left; padding: 8px 10px;
    font-size: 13.5px; border-radius: 6px; color: var(--fg); box-shadow: none;
  }
  nav.tabs .ddm a:hover { background: var(--bg); }
  nav.tabs .ddm a.on { font-weight: 600; background: var(--bg); box-shadow: none; }
}

/* v79 — Orders */
.orweek{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.orweek input[type=date]{border:1px solid var(--field-line);border-radius:6px;padding:5px 8px;font:inherit;background:var(--card);color:var(--fg)}
.ortrail{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 12px}
.ortrail span{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--muted)}
.ortrail span.done{background:#e3f2e9;color:#2f7a52}
.ortrail span.now{background:var(--fg);color:var(--bg)}
.orsup{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:0 0 12px;overflow:hidden}
.orsup>h3{margin:0;padding:9px 12px;font-size:14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.orsup>h3 small{font-weight:500;color:var(--muted);font-size:12px}
.orhead,.orrow{display:grid;grid-template-columns:minmax(0,1fr) 76px 132px;gap:8px;align-items:center;padding:7px 12px}
.orrow.orrow2{grid-template-columns:minmax(0,1fr) 96px}
.orhead{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-bottom:0}
.orrow{border-top:1px solid var(--line)}
.orhead+.orrow{border-top:0}
.orrow.low{background:#fdf1e3}
.orname{min-width:0}.orname b{display:block;font-weight:600;font-size:14px;overflow-wrap:anywhere}
.ormeta{font-size:12px;color:var(--muted)}
.orrow input,.orinv input{width:100%;height:36px;border:1px solid var(--field-line);border-radius:7px;background:var(--field);color:var(--fg);font:500 15px inherit;font-family:inherit;text-align:center;min-width:0}
.orinv input{width:100px;height:30px;font-size:13px}
.orinv input.bad{border-color:#b3261e}
.orq{display:flex;gap:4px;align-items:center}
.orsug{border:1px dashed currentColor;background:none;color:#2f7a52;border-radius:7px;height:36px;padding:0 7px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}
.orstock{text-align:center;font-variant-numeric:tabular-nums}
.orbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
.orsup .orbar{padding:0 12px 10px;margin:0}
.orbar button.ok,.orbar button.no{border:0;border-radius:7px;padding:9px 16px;font-weight:600;cursor:pointer;font-family:inherit}
.ormsg pre{white-space:pre-wrap;word-break:break-word;font:13.5px/1.5 inherit;font-family:inherit;background:var(--field);border:1px solid var(--line);border-radius:8px;padding:10px;margin:10px 12px}
.ormsg.sent{opacity:.65}
.ortiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 12px}
.ortiles>div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.ortiles span{display:block;font-size:12px;color:var(--muted)}
.ortiles b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.ortiles i{display:block;font-style:normal;font-size:11.5px;color:var(--muted)}
.orbarcell{width:40%}.orbarcell i{display:block;height:8px;border-radius:4px;background:var(--fg);opacity:.7}
.orset{padding-bottom:4px}.orset>p,.orset>form,.orset>details{margin:8px 12px}
.orwide{width:100%;border:1px solid var(--field-line);border-radius:6px;padding:7px 9px;font:inherit;background:var(--card);color:var(--fg)}
.orchecks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 12px;font-size:14px}
.orset select,.orset td input{border:1px solid var(--field-line);border-radius:6px;padding:4px 6px;font:inherit;font-size:13px;background:var(--card);color:var(--fg)}
.orcard{margin:0 0 14px}
@media (prefers-color-scheme: dark){.orrow.low{background:#33261a}.ortrail span.done{background:#1a2e21;color:#6cc784}.orsug{color:#6cc784}}
@media (max-width:480px){.orhead,.orrow{grid-template-columns:minmax(0,1fr) 62px 118px;padding-inline:9px}}

/* v80 — standing orders, supplier days, bonus tracker */
.orsched{margin:0;padding:5px 12px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);background:var(--soft)}
.orrow.orrow3{grid-template-columns:minmax(0,1fr) auto}
.orrow.orrow4{grid-template-columns:minmax(0,1fr) auto 80px}
.ordays{display:flex;gap:2px;flex-wrap:wrap}
.ordays label{display:inline-flex;align-items:center;gap:2px;font-size:12px;padding:2px 5px;border:1px solid var(--line);border-radius:6px}
.oradd{margin:6px 12px 10px}.oradd summary{cursor:pointer;font-size:13px;color:var(--muted)}
.oradd select,.oradd input{border:1px solid var(--field-line);border-radius:6px;padding:5px 7px;font:inherit;font-size:13px;background:var(--card);color:var(--fg);min-width:0}
.orbonus{border-color:#e8b4ad}
@media (max-width:480px){.orrow.orrow4{grid-template-columns:minmax(0,1fr) 70px}.orrow.orrow4 .ordays{grid-column:1/-1;order:3}}
.ordays{gap:3px}.ordays label{padding:1px 4px;font-size:11.5px;gap:1px}.ordays input{margin:0 2px 0 0;width:13px;height:13px}

/* v81 — caja chica front door */
.cjgo{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:0 0 14px}
.cjbtn{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--fg);text-decoration:none;min-width:0}
.cjbtn b{display:block;font-size:16px}
.cjbtn i{display:block;font-style:normal;font-size:12.5px;color:var(--muted)}
.cjbtn.cjmain{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cjbtn.cjmain i{color:var(--bg);opacity:.75}
.cjic{font-size:24px;line-height:1;flex:none}
.cjrules h3{margin:0 0 6px}.cjrules ul{margin:0;padding-left:18px}.cjrules li{margin:3px 0;font-size:14px}
.cjset summary{cursor:pointer;font-weight:600}.cjset .fl{display:block;margin-top:10px}

/* v82: links by area */
.lkareas{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}
.lkareas label{display:flex;align-items:center;gap:5px}
.lkgrp{margin:12px 0 4px;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;opacity:.75}
.lkrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid rgba(127,127,127,.2)}
.lkwho{min-width:0}
.lkcopy.lkok{opacity:.6}
.lkall{width:100%;box-sizing:border-box;font:12px/1.4 ui-monospace,monospace;margin-top:6px}

/* v85 */
.hsadd{margin:10px 0}
.lkpre{white-space:pre-wrap;font:12px/1.4 ui-monospace,monospace;margin:6px 0 0}
.ckrole select{font:inherit;padding:2px 4px}

/* v87: profile + remove */
.pfgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:10px 0 18px}
.pfgrid .card{margin:0;min-width:0}
.pfsum{display:flex;flex-wrap:wrap;gap:8px 14px}
.pfsum span{display:flex;flex-direction:column;font-size:.8rem;opacity:.85}
.pfsum b{font-size:1.25rem;font-variant-numeric:tabular-nums}
.pfsum .pfbad b{color:#c0392b}
tr.pflate td{background:rgba(192,57,43,.07)}
tr.pfmiss td{background:rgba(127,127,127,.08)}
.rmv{display:inline-block;margin-left:6px}
.rmv summary{cursor:pointer;list-style:none;display:inline-block}
.rmv form{margin-top:6px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.rmvgo{border-color:#c0392b;color:#c0392b}

/* v92: Plaud tasks screen */
.pt-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 14px}
.pt-flow span{background:var(--card,#fff);border:1px solid var(--line,#ddd);border-radius:999px;padding:4px 10px;font-size:13px}
.pt-flow i{font-style:normal;opacity:.5}
.pt-check table{width:100%;border-collapse:collapse}
.pt-check td{padding:7px 6px;border-bottom:1px solid var(--line,#e5e5e5);vertical-align:top;font-size:13.5px}
.pt-check tr:last-child td{border-bottom:0}
.pt-check td:first-child{font-weight:600;width:32%}
.pt-check td code{word-break:break-all;font-size:12px}
.pt-check td.pt-ok{color:#1a7f37;white-space:nowrap}
.pt-check td.pt-bad{color:#b42318}
@media (max-width:560px){.pt-check td{display:block;width:auto!important;border:0;padding:2px 0}.pt-check tr{display:block;padding:8px 0;border-bottom:1px solid var(--line,#e5e5e5)}}

/* v93: Google button, code box, required-email card */
.gbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg);font-weight:600;text-decoration:none}
.gbtn .g{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;color:#4285f4;font:700 15px/1 system-ui;border:1px solid #dadce0}
.orline{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;margin:12px 0}
.orline::before,.orline::after{content:"";flex:1;border-top:1px solid var(--line)}
.codein{width:100%;box-sizing:border-box;font:700 26px/1.2 ui-monospace,monospace;letter-spacing:8px;text-align:center;padding:10px}
details.later{margin-top:16px;font-size:13px;color:var(--muted)}
details.later summary{cursor:pointer}
.mailneed{border:2px solid #d97706;background:rgba(217,119,6,.08);border-radius:12px;padding:12px 14px;margin:0 0 14px}
.mailneed p{margin:4px 0 10px;font-size:14px}
.mailrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.mailrow .gbtn{width:auto;flex:0 0 auto}
.mailform{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1 1 260px}
.mailform input[type=email]{flex:1 1 180px;min-width:0}
.mailform .codein{width:150px;font-size:20px;letter-spacing:5px;padding:6px}
.login input[type=email],.login input[type=password],.login input[type=text],.mailform input[type=email]{padding:10px 12px;font-size:16px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg);box-sizing:border-box}
.login .btns{margin-top:10px}
.mailform button{padding:10px 14px;border-radius:8px;font-size:15px}

/* v97: INGUAT book photos */
.ing-today{border-radius:12px;padding:12px 14px;margin:6px 0 14px;background:var(--card);border:1px solid var(--line)}
.ing-today.ing-ok{border-color:#1a7f37}
.ing-today.ing-late{border:2px solid #b42318;background:rgba(180,35,24,.08)}
.ing-form select,.ing-form input[type=number]{width:100%;box-sizing:border-box;font-size:16px;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg)}
.ing-shoot{display:block;margin:14px 0 6px}
.ing-shoot input{position:absolute;opacity:0;width:1px;height:1px}
.ing-shoot span{display:block;text-align:center;padding:22px 12px;border:2px dashed var(--line);border-radius:14px;font-size:20px;font-weight:700;cursor:pointer}
.ing-prev{display:flex;flex-wrap:wrap;gap:6px}
.ing-prev img{width:72px;height:96px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.ing-day{margin:14px 0 6px}
.ing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.ing-tile{display:block;text-decoration:none;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ing-tile img{display:block;width:100%;height:170px;object-fit:cover;background:#ddd}
.ing-tile span{display:block;font-size:12px;padding:6px 8px}
.ing-pair .ing-pics{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.ing-pair .ing-pics:has(> :only-child){grid-template-columns:1fr}
.ing-pair .ing-pics img{height:130px}
.ing-pair .ci-noimg{display:flex;align-items:center;justify-content:center;height:130px;background:#fbe9e7;color:#b3261e;font-weight:700}
.devrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.devrow:last-child{border-bottom:0}
.devadd{padding:12px 0 2px;border-top:1px solid var(--line)}
.devadd .ctl{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.devadd select,.devadd input[type=text]{flex:1 1 160px;min-width:0}
.devrm summary{list-style:none;cursor:pointer}
.devjobs summary{list-style:none;cursor:pointer}
.devjobs form{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:6px}
.devx{color:var(--accent,inherit);font-weight:700}
.devrm form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}

/* v98: check-ins on the reception phone */
.ci-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.ci-slot{margin:0;border-radius:14px;background-size:cover;background-position:center;min-height:150px;position:relative}
.ci-slot span{height:100%;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:rgba(255,255,255,.0)}
.ci-slot.ci-done span{background:rgba(22,24,29,.55);color:#fff;border-color:#1a7f37}
.ci-ico{font-style:normal;font-size:34px}
.ci-state{font-size:12px;font-weight:400;opacity:.8}
.ci-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.ci-row{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px}
.ci-row.ci-miss{border:2px solid #b42318}
.ci-row img,.ci-noimg{width:54px;height:72px;object-fit:cover;border-radius:6px;display:grid;place-items:center;background:#eee;font-size:26px}
.ci-meta{flex:1;font-size:14px;min-width:0}
.ci-meta span{font-size:12.5px}
.ci-add input{position:absolute;opacity:0;width:1px;height:1px}
.ci-addbtn{cursor:pointer;white-space:nowrap}

/* v100: INGUAT book, one step at a time; the shift name */
.shiftname{margin:4px 0 8px;font-size:15px}
.bk-nums{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;margin-top:6px}
.bk-nums input{width:100%;font-size:22px;font-weight:700}
.bk-big{display:block;margin-top:12px}
.bk-big span{display:flex;align-items:center;justify-content:center;min-height:96px;font-size:19px;font-weight:700;text-align:center}
.bk-next span{background:#1a7f37;color:#fff;border-color:#1a7f37}
.bk-done{display:flex;gap:10px;align-items:center;margin-top:12px;padding:8px;border:1px solid #1a7f37;border-radius:12px;background:#eaf6ee}
.bk-done img{width:72px;height:96px;object-fit:cover;border-radius:6px;background:#ddd}
.bk-js .bk-plain{display:none}
.bk-js[data-step="1"] #bkstep2,.bk-js[data-step="2"] #bkstep1,.bk-js[data-step="3"] #bkstep1,.bk-js[data-step="3"] #bkright{display:none}
.bk-nojs .bk-done{display:none}
.bk-cover{margin:8px 0 4px;font-size:13px;line-height:1.7}
.bk-nums .fl{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin:14px 0 6px;white-space:nowrap}
/* v102: optional guest search on the check-in */
.ci-find{position:relative}
.ci-find input{width:100%;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg)}
.ci-find input.ci-picked{border-color:#1a7f37;background:#eaf6ee;color:#1b231e;font-weight:600}
.ci-hits{position:absolute;left:0;right:0;top:100%;z-index:5;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.12);padding:4px;display:flex;flex-direction:column;max-height:260px;overflow-y:auto}
.ci-hits[hidden]{display:none}
.ci-hit{all:unset;cursor:pointer;padding:10px;border-radius:8px;font-size:15px}
.ci-hit:hover,.ci-hit:focus-visible{background:var(--line)}
.ci-hit small{opacity:.7}
.ci-hits .tiny{margin:8px}
.bk-done{color:#1b231e}
.bk-done .mini{color:inherit}

/* v105 — the cleaning tablet (night guard → cleaners) and reception's "Camas hoy" */
.hk{--hk-strip:#c8402e;--hk-make:#d98a1c;--hk-check:#2f6fb0;--hk-made:#5f9e44;--hk-ready:#2c8a58;--hk-occ:#8a8f98;--hk-night:#23305a;--hk-here:#7b3fa0;--hk-tmr:#a87a08;display:grid;gap:12px}
.hk-band{border-radius:16px;padding:14px 16px;color:#fff;display:grid;gap:4px}
.hk-band b{font-size:24px;line-height:1.1}
.hk-band.night{background:var(--hk-night)}.hk-band.morning{background:var(--hk-ready)}.hk-band.new{background:var(--hk-strip)}
.hk-band.wait{background:var(--hk-occ)}.hk-band.ok{background:var(--hk-ready)}.hk-band.late{background:var(--hk-strip)}
.hk-chips{display:flex;flex-wrap:wrap;gap:6px}.hk-chips span{background:rgba(255,255,255,.22);border-radius:8px;padding:4px 8px;font-weight:700}
.hk-sec{font-size:20px;font-weight:800;margin:8px 0 0}
.hk-list{display:grid;gap:8px}
.hk-row{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hk-row .who{flex:1 1 200px;min-width:0}.hk-row .who b{font-size:20px;display:block}.hk-row .who span{opacity:.7}
.hk-row.empty{opacity:.75}
.hk-big{border:0;border-radius:14px;padding:16px 22px;font:inherit;font-size:19px;font-weight:800;cursor:pointer;color:#fff;background:var(--hk-here)}
.hk-big.star{background:transparent;color:var(--fg);border:2px solid var(--hk-tmr)}.hk-big.star.on{background:var(--hk-tmr);color:#fff}
.hk-pill{border-radius:999px;padding:5px 11px;font-size:14px;font-weight:700;color:#fff;background:var(--hk-occ)}
.hk-pill.here{background:var(--hk-here)}.hk-pill.ok{background:var(--hk-ready)}.hk-pill.star{background:var(--hk-tmr)}
.hk-key{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}.hk-key i{width:14px;height:14px;border-radius:4px;display:inline-block;vertical-align:-2px;margin-right:5px}
.hk-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:760px){.hk-rooms{grid-template-columns:1fr}}
.hk-room{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;display:grid;gap:10px;align-content:start;align-self:start;min-width:0}
.hk-room.hk-done{border-color:var(--hk-ready);box-shadow:inset 0 0 0 1px var(--hk-ready)}
.hk-rhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.hk-rhead b{font-size:24px}.hk-rhead span{font-size:13px;opacity:.7}
.hk-beds{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}
.hk-beds form{margin:0;display:contents}
.hk-bed{border:0;border-radius:10px;min-height:64px;padding:6px 7px;color:#fff;text-align:left;font:inherit;display:grid;align-content:space-between;width:100%;cursor:default}
.hk-bed .n{font-size:21px;font-weight:800;line-height:1}.hk-bed .t{font-size:12px;font-weight:700;line-height:1.1}
button.hk-bed{cursor:pointer}
.hk-bed.strip{background:var(--hk-strip)}.hk-bed.make{background:var(--hk-make)}.hk-bed.check{background:var(--hk-check)}
.hk-bed.made{background:var(--hk-made)}.hk-bed.ready{background:var(--hk-ready)}.hk-bed.occ{background:var(--hk-occ)}
.hk-ack{border:0;border-radius:12px;padding:12px;font:inherit;font-weight:800;font-size:16px;background:var(--hk-ready);color:#fff;cursor:pointer;width:100%}
.hk-acked{color:var(--hk-ready);font-weight:700}
.hk-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:640px){.hk-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hk-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:2px;min-width:0}
.hk-stat .k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.7}.hk-stat .v{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums}.hk-stat .s{font-size:13px;opacity:.7}
.hk-stat.fin .v{color:var(--hk-ready)}
.hk-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
@media (max-width:860px){.hk-cols{grid-template-columns:1fr}}
.hk-col{display:grid;gap:8px;min-width:0}
.hk-time{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;display:grid;gap:4px;font-size:14px}
.hk-time div{display:grid;grid-template-columns:56px 1fr;gap:8px}.hk-time time{opacity:.7;font-variant-numeric:tabular-nums}
.hk-read{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;opacity:.85}
/* v107: early check-outs at night */
.hk-big.go{background:var(--hk-ready)}
.hk-leave{display:flex;flex-direction:column;gap:8px}.hk-leave summary{list-style:none;display:inline-block}.hk-leave summary::-webkit-details-marker{display:none}
.hk-leave[open] summary{opacity:.55}.hk-leave form{display:flex;flex-direction:column;gap:8px;max-width:340px}.hk-leave form span{font-weight:700}
.hk-row.hk-gone{opacity:.8;border-style:dashed}
.hk-others>summary{cursor:pointer;list-style:none}.hk-others>summary::before{content:'▸ '}.hk-others[open]>summary::before{content:'▾ '}
.hk-help{margin:2px 0 6px;opacity:.75}
.hk-sec.hk-warn{color:var(--hk-tmr)}.hk-row.hk-ask{border:2px solid var(--hk-tmr)}
.hk-nobed{display:block;color:var(--hk-tmr);font-weight:700}
/* v110: beds available now, why occupied, cleaners' update button */
.hk-avail{background:var(--card);border:2px solid var(--hk-ready);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.hk-avail-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.hk-avail-h b{font-size:20px;color:var(--hk-ready)}.hk-avail-h span{opacity:.75}
.hk-avail-rooms{display:flex;flex-wrap:wrap;gap:8px}.hk-avail-room{display:flex;gap:4px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:4px 8px}
.hk-avail-room b{margin-right:4px}.hk-avail-room span{background:var(--hk-ready);color:#fff;border-radius:7px;padding:2px 7px;font-weight:700;font-size:14px}
.hk-why>summary{cursor:pointer}.hk-whyt{width:100%;border-collapse:collapse;font-size:13px;display:block;overflow-x:auto}.hk-whyt th,.hk-whyt td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.hk-whyt tr.bad td{background:color-mix(in srgb,var(--hk-strip) 14%,transparent)}
.hk-refresh{display:flex;justify-content:center;margin:6px 0}.hk-refresh.top{justify-content:flex-end;margin:0 0 -4px}
/* v110: work devices — switches per job, which tablet is it */
.devsw{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;padding:8px;border-radius:10px;background:color-mix(in srgb,var(--line) 35%,transparent)}
.devsw select{font:inherit;padding:4px 6px;border-radius:8px}
.devchip{display:inline-flex;cursor:pointer}.devchip input{position:absolute;opacity:0;width:1px;height:1px}
.devchip span{border:1.5px solid var(--line);border-radius:999px;padding:5px 11px;font-size:14px;font-weight:600;opacity:.7}
.devchip input:checked+span{background:#2c8a58;border-color:#2c8a58;color:#fff;opacity:1}
.devchip input:checked+span::before{content:'✓ '}.devchip input:focus-visible+span{outline:2px solid #2f6fb0}
.devsw .devsave{margin-left:auto}
.devua{opacity:.75}.devname{font-size:17px}
.devping-on{position:fixed;inset:0;z-index:1000;background:#23305a;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}
.devping-on div{display:flex;flex-direction:column;gap:14px;padding:24px}.devping-on small{font-size:64px}.devping-on b{font-size:clamp(40px,9vw,96px);line-height:1.05}.devping-on span{opacity:.75}
/* v110: laundry */
.lw{display:grid;gap:12px;--lw-a:#2f6fb0;--lw-b:#7b3fa0;--lw-c:#2c8a58}
.lw-tabs{display:flex;gap:6px;flex-wrap:wrap}.lw-tabs a{padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);text-decoration:none;color:inherit;font-weight:700}
.lw-tabs a.on{background:var(--fg,#222);color:var(--bg,#fff);border-color:transparent}
.lw-new{display:grid;gap:8px;max-width:720px}.lw-new input[type=text],.lw-new input[type=number],.lw-new select{font:inherit;padding:10px;border-radius:10px;border:1px solid var(--line);width:100%;box-sizing:border-box}
.lw-shoot{display:flex}.lw-prev{display:flex;gap:10px;align-items:center}.lw-prev img{max-height:160px;border-radius:10px}
.lw-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:520px){.lw-row2{grid-template-columns:1fr}}
.lw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:6px}
.lw-it{display:flex;flex-direction:column;gap:3px;font-size:14px}.lw-it input{text-align:center;font-size:18px!important}
.lw-board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:900px){.lw-board{grid-template-columns:1fr}}
.lw-col{display:flex;flex-direction:column;gap:8px;border-radius:14px;padding:10px;background:color-mix(in srgb,var(--line) 25%,transparent)}
.lw-colh{display:flex;justify-content:space-between;align-items:center;font-size:18px}.lw-n{background:var(--fg,#222);color:var(--bg,#fff);border-radius:999px;padding:1px 10px;font-weight:800}
.lw-received .lw-colh b{color:var(--lw-a)}.lw-washing .lw-colh b{color:var(--lw-b)}.lw-back .lw-colh b{color:var(--lw-c)}
.lw-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}
.lw-received .lw-card{border-left:5px solid var(--lw-a)}.lw-washing .lw-card{border-left:5px solid var(--lw-b)}.lw-back .lw-card{border-left:5px solid var(--lw-c)}
.lw-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.lw-h b{font-size:19px}.lw-h span{opacity:.7}
.lw-meta{font-size:14px}.lw-itemsw{font-weight:600}
.lw-thumb img{max-height:90px;border-radius:8px}
.lw-act{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.lw-act label{display:flex;flex-direction:column}.lw-act input,.lw-act select{font:inherit;padding:8px;border-radius:8px;border:1px solid var(--line);width:110px}
.lw-act select{width:auto}.lw-act .hk-big{padding:12px 16px;font-size:17px}
.lw-undo{align-self:flex-end}.lw-search{display:flex;gap:8px}.lw-search input{flex:1;font:inherit;padding:8px;border-radius:8px;border:1px solid var(--line)}
.lw-arch{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.lw-card.done{opacity:.9}
.lw-money{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}.lw-money th,.lw-money td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.lw-money th:first-child,.lw-money td:first-child{text-align:left}.lw-money tr.zero{opacity:.45}
.lw-price{display:flex;gap:8px;align-items:flex-end;max-width:360px}
.lw .hk-big{border:0;border-radius:14px;padding:16px 22px;font:inherit;font-size:19px;font-weight:800;cursor:pointer;color:#fff;background:#7b3fa0}.lw .hk-big.go{background:#2c8a58}
.lw .hk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}
/* v110: food menu */
.fm{display:grid;gap:12px}.fm-top{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.fm-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;position:sticky;top:0;z-index:5;background:var(--bg,#fff);padding:6px 0}
.fm-f{font:inherit;font-size:14px;font-weight:700;border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;background:transparent;color:inherit;cursor:pointer}
.fm-f[aria-pressed=true]{background:#2c8a58;border-color:#2c8a58;color:#fff}.fm-f[aria-pressed=true]::before{content:'✓ '}
.fm-q{flex:1 1 200px;font:inherit;padding:7px 10px;border-radius:999px;border:1px solid var(--line)}
.fm-sec h3{margin:6px 0}.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.fm-dish{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.fm-dish.conf{border-left:5px solid #d98a1c}.fm-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.fm-h b{font-size:19px}.fm-p{font-weight:800}
.fm-es{opacity:.75;margin-top:-4px}.fm-diet,.fm-has{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.fm-d{border-radius:999px;padding:3px 10px;font-size:13px;font-weight:800;color:#fff}.fm-d.d-vg{background:#1f7a3f}.fm-d.d-v{background:#5f9e44}.fm-d.d-gf{background:#a87a08}.fm-d.d-none{background:#8a8f98}
.fm-a{border:1.5px solid #c8402e;color:#c8402e;border-radius:8px;padding:1px 7px;font-size:13px;font-weight:700}.fm-a.none{border-color:var(--line);color:inherit;opacity:.7;font-weight:500}
.fm-n{margin:0}.fm-n2{margin:0;font-size:13px;opacity:.65}
.fm-staff ul{margin:6px 0 0;padding-left:18px;display:grid;gap:6px}.fm-edit .ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.devrn summary{list-style:none;cursor:pointer}.devrn form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}.devrn input{font:inherit;padding:5px 8px;border-radius:8px;border:1px solid var(--line)}
/* v111: occupied in Cloudbeds but the stay ended */
.hk-bed.occ.stale{background:repeating-linear-gradient(135deg,var(--hk-occ) 0 8px,#a87a08 8px 16px);outline:2px dashed #a87a08;outline-offset:-2px}
.hk-stalekey{display:inline-block;width:14px;height:14px;border-radius:4px;background:repeating-linear-gradient(135deg,#8a8f98 0 4px,#a87a08 4px 8px)}
/* v112: who is at reception */
.who-bar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:#e9f3ee;border:1.5px solid #2c8a58;border-radius:12px;padding:8px 12px;margin-bottom:12px;color:#18231f}
.who-bar.who-none{background:#fbefd9;border-color:#a87a08}
.who-now{font-size:17px}.who-swap{flex-basis:100%}.who-swap:not([open]){flex-basis:auto}
.who-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.who-names{display:flex;flex-wrap:wrap;gap:6px}
.who-name{font:inherit;font-weight:700;padding:9px 14px;border-radius:10px;border:1.5px solid #2c8a58;background:#fff;color:#18231f;cursor:pointer}
.who-form input[type=text]{font:inherit;padding:8px;border-radius:8px;border:1px solid #c9d3cd;min-width:180px}
/* v112: the book check sheet */
.ick{display:grid;gap:10px}.ick-top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.ick-days{display:flex;gap:8px;align-items:center}.ick-how{max-width:90ch}
.ick-sum{display:flex;flex-wrap:wrap;gap:8px}.ick-sum span{border-radius:999px;padding:4px 12px;border:1.5px solid var(--line);font-size:14px}
.ick-sum .s-err{border-color:#c8402e;color:#c8402e}.ick-sum .s-chk{border-color:#a87a08;color:#a87a08}.ick-sum .s-ok{border-color:#2c8a58;color:#2c8a58}.ick-sum .s-empty{opacity:.8}
.ick-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.ick-t{border-collapse:collapse;font-size:13px;min-width:1500px;font-variant-numeric:tabular-nums}
.ick-t th,.ick-t td{border:1px solid var(--line);padding:3px 4px;vertical-align:top;text-align:left}
.ick-t thead th{position:sticky;top:0;background:var(--card);z-index:1;font-size:12px;white-space:nowrap}
.ick-t tr.g th{text-align:center;font-weight:800}.ick-t .g-f{background:#eef3fb}.ick-t .g-b{background:#f6efe2}
.ick-t input{font:inherit;width:100%;min-width:3.2em;border:1px solid transparent;background:transparent;padding:3px;border-radius:4px;box-sizing:border-box}
.ick-t input:focus{border-color:#2f6fb0;background:#fff;outline:none}
.ick-t td.num input{text-align:right}.ick-t td.ctr{text-align:center}
.ick-t td.c-err{background:#fbe1dd}.ick-t td.c-empty{background:#f1f1ee}.ick-t td.c-chk{background:#fdf0d6}.ick-t td.c-note{background:#e7f0fb}
.ick-t td.c-live{box-shadow:inset 0 0 0 2px #c8402e}
.ick-t .should{display:block;font-size:11px;color:#c8402e;white-space:nowrap}
.ick-t tr.r-done td{background:#eaf5ee}.ick-t tr.r-done td.pr{border-left:4px solid #2c8a58}
.ick-t tr.r-err td.pr{border-left:4px solid #c8402e}.ick-t tr.r-check td.pr{border-left:4px solid #a87a08}
.ick-t td.ph{min-width:120px}.ick-open{display:flex;gap:4px;border:0;background:none;padding:0;cursor:zoom-in}
.ick-open img{height:52px;width:auto;border-radius:4px;border:1px solid var(--line)}
.nophoto{display:inline-flex;align-items:center;justify-content:center;height:52px;min-width:40px;border:1px dashed var(--line);border-radius:4px;font-size:12px;opacity:.7}
.nophoto.big{height:220px;width:100%}
.ick-t td.bk{min-width:150px}.ick-t td.pr{min-width:280px}
.ick-t td.pr ul{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.p-err{color:#b03a2e}.p-check{color:#8a5b00}.p-note{color:#2f6fb0}.p-empty{opacity:.7}
.ok-pill{display:inline-block;background:#2c8a58;color:#fff;border-radius:999px;padding:2px 8px;font-size:12px;margin-bottom:3px}
.ick-btns{display:flex;gap:6px;margin-top:4px}
.ick-dlg{max-width:min(1100px,96vw);width:96vw;border-radius:14px;border:1px solid var(--line);padding:14px}
.ick-dlg::backdrop{background:rgba(0,0,0,.55)}
.ick-dlg-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ick-pics{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:700px){.ick-pics{grid-template-columns:1fr}}
.ick-pics figure{margin:0;display:grid;gap:6px}.ick-pics img{width:100%;max-height:70vh;object-fit:contain;background:#111;border-radius:8px}
.ick-retake label{cursor:pointer;display:inline-block}.ick-relink{display:flex;gap:8px;align-items:flex-end;margin-top:10px;flex-wrap:wrap}
.ick-relink select{font:inherit;max-width:100%}
.ick{width:min(1900px,calc(100vw - 32px));position:relative;left:50%;transform:translateX(-50%)}
@media(max-width:700px){.ick{width:auto;left:auto;transform:none}}
/* v113: tidy — tabs with six entries, the who-bar in one line, the devices screen */
nav.tabs.many a{font-size:10px;padding:8px 1px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who-bar{padding:6px 12px;gap:6px 12px}.who-bar .who-now{font-size:15px}.who-bar.who-none .who-now{font-size:17px}
.dv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;margin-bottom:12px}
.dv-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:10px}
.dv-card.off{border-style:dashed}
.dv-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.dv-name{display:grid;gap:2px;min-width:0}.dv-name b{font-size:18px}
.dv-state{font-size:13px}.dv-state.ok{color:#2c8a58}.dv-state.no{color:#a87a08}.dv-ua{opacity:.7}
.dv-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.dv-btns form{margin:0}
.dv-more summary{list-style:none;cursor:pointer}.dv-more summary::-webkit-details-marker{display:none}
.dv-menu{position:absolute;right:0;z-index:5;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:8px;min-width:260px;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.dv-more{position:relative}.dv-rename{display:flex;gap:6px}.dv-rename input{flex:1;font:inherit;padding:5px 8px;border-radius:8px;border:1px solid var(--line);min-width:0}
.dv-remove{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dv-jobs{display:grid;gap:8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--line) 35%,transparent)}
.dv-opens{display:flex;gap:8px;align-items:center}.dv-opens select{font:inherit;padding:4px 6px;border-radius:8px}
.dv-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dv-link{display:grid;gap:6px}.dv-help ol{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dv-wrap{display:grid;gap:12px}.dv-wrap .devadd{border-top:1px solid var(--line);padding-top:12px}
/* v114: which device is this — and the owner looking as a device */
.devbadge{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:16px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;margin-left:10px;white-space:nowrap}
.top-dev.dk-reception,.top-dev.dk-desk{background:#23305a}.top-dev.dk-bar{background:#5a1f3a}.top-dev.dk-cafe{background:#4a2e14}.top-dev.dk-cleaning{background:#1f5a3a}.top-dev.dk-laundry{background:#3a2c6b}.top-dev.dk-food{background:#6b3a14}
.dv-ico{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;font-size:15px;color:#fff;background:#8a8f98;vertical-align:-6px}
.dv-ico.dk-reception,.dv-ico.dk-desk{background:#23305a}.dv-ico.dk-bar{background:#5a1f3a}.dv-ico.dk-cafe{background:#4a2e14}.dv-ico.dk-cleaning{background:#1f5a3a}.dv-ico.dk-laundry{background:#3a2c6b}.dv-ico.dk-food{background:#6b3a14}
.asbar{position:sticky;top:0;z-index:60;background:#f6c343;color:#1b1b1b;padding:8px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-weight:600}
.asbar .mini{background:#1b1b1b;color:#fff;border-color:#1b1b1b}
@media(max-width:520px){.devbadge{font-size:14px;padding:4px 9px;margin-left:6px;max-width:46vw;overflow:hidden;text-overflow:ellipsis}}
/* v117 — Beds today on the reception computer: numbers, the house as one table, free beds + Cloudbeds jobs */
.hk-desk{gap:14px}
.hkd-top{display:grid;gap:4px}.hkd-top h2{margin:0;font-size:26px}
.hkd-read{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;font-size:14px;color:var(--muted)}
.hkd-read form{margin:0}
.hkd-alert{margin:0;color:var(--hk-tmr);font-weight:700}
.hkd-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:640px){.hkd-nums{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hkd-num{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;align-items:baseline;gap:10px;min-width:0}
.hkd-num b{font-size:32px;line-height:1;font-variant-numeric:tabular-nums}
.hkd-num span{font-size:14px;color:var(--muted)}
.hkd-num.free b{color:var(--hk-ready)}.hkd-num.clean b{color:var(--hk-strip)}.hkd-num.occ b{color:var(--hk-occ)}
.hkd-num.todo.on{border:2px solid var(--hk-tmr)}.hkd-num.todo.on b{color:var(--hk-tmr)}
.hkd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
@media (min-width:1000px){.hkd-grid{grid-template-columns:minmax(0,1fr) 360px}}
.hkd-house{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:10px;min-width:0}
.hkd-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}
.hkd-legend i{display:inline-block;width:13px;height:13px;border-radius:4px;margin-right:6px;vertical-align:-2px}
.hkd-tw{overflow-x:auto}
.hkd-t{border-collapse:separate;border-spacing:4px;width:100%;font-variant-numeric:tabular-nums}
.hkd-t th{font-size:12px;font-weight:700;color:var(--muted);text-align:center;padding:2px 0}
.hkd-t th.rm{text-align:left;width:64px;padding-right:6px}
.hkd-t tbody th.rm b{display:block;font-size:20px;color:var(--fg)}.hkd-t tbody th.rm span{font-size:11px;color:var(--hk-ready)}
.hkd-t td{height:46px;min-width:46px;border-radius:7px;text-align:center;vertical-align:middle;padding:2px 3px;line-height:1.1}
.hkd-t td.none{background:transparent}
.hkd-t td .w{display:block;font-size:12px;font-weight:800;color:#fff}
.hkd-t td .g{display:block;font-size:11px;color:#fff;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:84px;margin:0 auto}
.c-free,.k-free{background:var(--hk-ready)}
.c-clean,.k-clean{background:var(--hk-strip)}
.c-look,.k-look{background:var(--hk-check)}
.c-occ,.k-occ{background:var(--hk-occ)}
.c-stale,.k-stale{background:repeating-linear-gradient(135deg,var(--hk-occ) 0 7px,var(--hk-tmr) 7px 14px)}
.hkd-t td.sum{background:transparent;font-size:18px;font-weight:800;color:var(--muted);min-width:40px}
.hkd-t td.sum.has{color:var(--fg)}
.hkd-t tr.done th.rm b::after{content:' ✓';color:var(--hk-ready);font-size:15px}
.hkd-side{display:grid;gap:12px;min-width:0}
.hkd-todo{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.hkd-todo h3{margin:0;font-size:18px}
.hkd-item{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.hkd-item.ask{border:2px solid var(--hk-tmr)}
.hkd-item .who{min-width:0;flex:1 1 180px}.hkd-item .who b{display:block}.hkd-item .who span{display:block;font-size:13px;color:var(--muted)}
.hkd-item .who em{display:block;font-style:normal;font-size:12px;font-weight:700;color:var(--hk-tmr)}
.hkd-item .acts{display:flex;gap:6px}.hkd-item form{margin:0}
@media (min-width:1000px){.hk-desk .hkd-t td{height:54px;min-width:58px}.hk-desk .hkd-t td .w{font-size:13px}.hk-desk .hkd-t td .g{font-size:12px}}
/* v117 — the INGUAT book, page by page: paper-coloured sheet, empty lines visible, hover hints on red cells */
.ick-v117{--paper:#fbf7ec;--paper-line:#d9cfb7;--ink-red:#c8402e}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ick-v117{--paper:#1e1c17;--paper-line:#3a352a}}
:root[data-theme="dark"] .ick-v117{--paper:#1e1c17;--paper-line:#3a352a}
.ick-modes{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ick-modes a.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ick-reps{position:relative}.ick-reps>div{position:absolute;right:0;top:110%;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px;display:grid;gap:2px;min-width:300px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.ick-reps>div a{padding:6px 8px;border-radius:6px;color:var(--fg);text-decoration:none;font-size:14px}.ick-reps>div a:hover{background:var(--bg)}
.ick-rephead{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ick-rephead b{font-size:18px}
.ick-un{display:grid;gap:6px;border:2px solid var(--hk-tmr,#a87a08);border-radius:12px;padding:10px 12px;background:var(--card)}
.ick-un h3{margin:0;font-size:17px;color:var(--hk-tmr,#a87a08)}
.ick-sheet{display:grid;gap:8px}
.ick-pagebar{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center}
@media(max-width:700px){.ick-pagebar{grid-template-columns:1fr 1fr}.ick-pagetitle{grid-column:1/-1;order:-1}}
.ick-pagetitle{display:flex;gap:10px;align-items:baseline;justify-content:center}
.ick-pagetitle span{font-size:14px;color:var(--muted)}.ick-pagetitle b{font-size:24px;font-family:Georgia,'Times New Roman',serif}.ick-pagetitle em{font-style:normal;font-size:13px;color:var(--muted)}
.ick-goto select{font:inherit;font-size:13px;max-width:100%}
.ick-book{background:var(--paper)}
.ick-v117 .ick-t th,.ick-v117 .ick-t td{border-color:var(--paper-line)}
.ick-v117 .ick-t thead th{background:var(--paper)}
.ick-v117 .ick-t .g-b{background:color-mix(in srgb,var(--paper) 70%,#c9a96b)}
.ick-v117 .ick-t .g-f{background:color-mix(in srgb,var(--card) 85%,#2f6fb0)}
.ick-v117 .ick-t td.fx,.ick-v117 .ick-t th.fx{background:color-mix(in srgb,var(--card) 92%,#2f6fb0)}
.ick-v117 .ick-t td.ln{width:46px;text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:15px;vertical-align:middle}
.ick-v117 .ick-t td.ln .place{display:flex;gap:2px}.ick-v117 .ick-t td.ln .place input{min-width:2.2em;border-color:var(--line);text-align:center}
.ick-v117 .ick-t tr.r-blank td{height:30px}.ick-v117 .ick-t tr.r-blank td.ln{color:var(--muted)}
.ick-v117 .ick-t tr.r-dup td{color:var(--ink-red);font-weight:700;background:color-mix(in srgb,var(--paper) 80%,var(--ink-red))}
.ick-v117 .ick-t td.c-err{background:color-mix(in srgb,var(--paper) 72%,var(--ink-red))}
.ick-v117 .ick-t td.c-chk{background:color-mix(in srgb,var(--paper) 75%,#e0a526)}
.ick-v117 .ick-t td.c-empty{background:color-mix(in srgb,var(--paper) 88%,var(--muted))}
.ick-v117 .ick-t td.c-note{background:color-mix(in srgb,var(--paper) 85%,#2f6fb0)}
.ick-v117 .ick-t input:focus{background:var(--card);color:var(--fg)}
.ick-v117 .ick-t td.pr{min-width:210px}
.ick-pd summary{cursor:pointer;font-weight:700;font-size:13px}.ick-pd ul{margin-top:4px}
.ick-v117 .ick-t td.ph{min-width:96px}.ick-v117 .ick-open img{height:40px}
/* the hover hint: one floating box (views/inguatcheck.php), outside the scrolling table */
.ick-t td[data-tip]{cursor:help}
.ick-tipbox{position:fixed;z-index:200;max-width:340px;background:#1d2230;color:#fff;font-size:13px;line-height:1.4;padding:9px 11px;border-radius:8px;
  box-shadow:0 10px 28px rgba(0,0,0,.28);white-space:pre-line;pointer-events:none}
.ick-v117 .ick-t td.gname{min-width:160px}.ick-v117 .ick-t td.gname .bk{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;cursor:help}
.ick-v117 .ick-t{min-width:0;width:100%}
.ick-v117 .ick-t input{min-width:2.6em}
.ick-v117 .ick-t input[name=check_in],.ick-v117 .ick-t input[name=check_out],.ick-v117 .ick-t input[name=factura_date]{min-width:4.4em}
.ick-v117 .ick-t td.num input{min-width:5.2em}
.ick-v117 .ick-t input[name=persons],.ick-v117 .ick-t input[name=breakfasts]{min-width:2.4em}
.ick-v117 .ick-t td.pr{min-width:120px;white-space:nowrap}
.ick-v117 .ick-t tr.r-blank td{height:24px;padding:0 4px}
.ick-v117 .ick-open img{height:34px}.ick-v117 .ick-t td.ph{min-width:84px}

/* v117b: the whole house fits the screen — fixed columns, occupied cells show only the guest */
.hkd-t{table-layout:fixed}
.hkd-t th.rm{width:52px}.hkd-t th.sum{width:44px}
.hkd-t td{min-width:0;height:44px;overflow:hidden}
.hkd-t td .g{font-size:12px;font-weight:700;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hkd-t td .w{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:1000px){.hkd-grid{grid-template-columns:minmax(0,1fr) 320px}.hk-desk .hkd-t td{min-width:0;height:50px}.hk-desk .hkd-t td .w{font-size:12px}.hk-desk .hkd-t td .g{font-size:12px}}
@media (max-width:700px){.hkd-t{table-layout:auto}.hkd-t td{min-width:44px}}
/* v117c: the whole book row fits a laptop screen */
.ick-v117 .ick-t td.num input{min-width:4.4em}
.ick-v117 .ick-t td.gname{min-width:130px}
.ick-v117 .ick-t td.ph{min-width:0;width:74px}.ick-v117 .ick-open img{height:28px}.ick-v117 .ick-open .nophoto{font-size:11px}
.ick-v117 .ick-t .ph-who{display:block;font-size:10px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:74px}
.ick-v117 .ick-t td.pr{min-width:0;width:96px}
.ick-v117 .ick-t td.pr .ick-btns{flex-wrap:wrap}
.ick-v117 .ick-t thead th{white-space:normal;line-height:1.15}
.ick-v117 .ick-t th,.ick-v117 .ick-t td{padding:3px 3px}
/* v117d — the INGUAT book on the reception phone: each line of the book is a card, red cells say why in words */
.ick-t .hint-m,.ick-t .ln-m{display:none}
@media (max-width:700px){
  .ick-v117{width:auto;left:auto;transform:none}
  .ick-v117 .ick-wrap{overflow:visible;border:0;background:transparent}
  .ick-v117 .ick-t,.ick-v117 .ick-t tbody{display:block;min-width:0;width:100%;background:transparent}
  .ick-v117 .ick-t thead{display:none}
  .ick-v117 .ick-t tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;background:var(--paper);border:1px solid var(--paper-line);border-radius:12px;padding:10px;margin-bottom:10px}
  .ick-v117 .ick-t tr.r-err{border:2px solid var(--ink-red)}
  .ick-v117 .ick-t tr.r-done{border:2px solid #2c8a58}
  .ick-v117 .ick-t td{display:block;border:0;padding:4px 6px;border-radius:8px;min-width:0;height:auto}
  .ick-v117 .ick-t td[data-label]::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
  .ick-v117 .ick-t td.pr::before,.ick-v117 .ick-t td.ln::before{content:none}
  .ick-v117 .ick-t td.ln{grid-column:1/-1;text-align:left;font-size:18px}
  .ick-v117 .ick-t td.gname,.ick-v117 .ick-t td.pr,.ick-v117 .ick-t td.ph{grid-column:1/-1;width:auto}
  .ick-v117 .ick-t td.pr{white-space:normal}
  .ick-v117 .ick-t td input{font-size:16px;border:1px solid var(--line);background:var(--card);min-width:0}
  .ick-v117 .ick-t td.ctr input{width:22px;height:22px}
  .ick-v117 .ick-t .ln-m{display:inline}
  .ick-v117 .ick-t .hint-m{display:block;font-size:12px;color:var(--ink-red);font-weight:600;margin-top:2px;white-space:normal}
  .ick-v117 .ick-t tr.r-blank{display:flex;padding:6px 10px;margin-bottom:4px;opacity:.6}
  .ick-v117 .ick-t tr.r-blank td{padding:0}.ick-v117 .ick-t tr.r-blank td[colspan]{display:none}
  .ick-v117 .ick-t tr.r-dup{display:block}
  .ick-v117 .ick-open img{height:64px}.ick-v117 .ick-t .ph-who{max-width:none}
  .ick-v117 .ick-t td.ln .place input{width:4em}
}
/* v118 — the INGUAT book as the open paper book: left page | spine | right page | ours. Edge to edge on a laptop. */
@media (min-width:1000px){main.wide.full{max-width:none;padding-left:14px;padding-right:14px}}
.ick-v118 .ick-t{font-size:12.5px;table-layout:auto}
.ick-v118 .ick-t thead th i{display:block;font-style:normal;font-weight:400;font-size:10px;color:var(--muted);line-height:1.1}
.ick-v118 .ick-t th.spine,.ick-v118 .ick-t td.spine{width:10px;min-width:10px;padding:0;background:linear-gradient(90deg,var(--paper-line),color-mix(in srgb,var(--paper) 40%,#6b5a36),var(--paper-line));border-color:transparent}
.ick-v118 .ick-t th.spine2,.ick-v118 .ick-t td.spine2{width:6px;min-width:6px;padding:0;background:var(--line);border-color:transparent}
.ick-v118 .ick-t td.dt{white-space:nowrap}
.ick-v118 .dboxes{display:inline-flex;gap:1px}
.ick-v118 .dboxes input{min-width:0;width:2.1em;text-align:center;padding:3px 1px;border:1px solid var(--paper-line);background:color-mix(in srgb,var(--paper) 60%,var(--card))}
.ick-v118 .dboxes input:nth-child(3){width:3.1em}
.ick-v118 .fxsub .dboxes input{width:1.9em}.ick-v118 .fxsub .dboxes input:nth-child(3){width:2.9em}
.ick-v118 .fxsub{display:flex;gap:3px;align-items:center;margin-top:2px;white-space:nowrap;font-size:11px}
.ick-v118 .fxsub input[name=breakfasts]{width:2em;min-width:0}
.ick-v118 .ick-t td.pp{white-space:nowrap;font-size:11px}
.ick-v118 .ick-t td.pp label{display:flex;gap:3px;align-items:center}
.ick-v118 .ick-t td.pp input,.ick-v118 .ick-t td.ctr input[type=checkbox]{width:auto;min-width:0;margin:0}
.ick-v118 .ick-t input[name=marital]{min-width:2.2em}
.ick-v118 .ick-t input[name=nationality],.ick-v118 .ick-t input[name=origin],.ick-v118 .ick-t input[name=emitted_in],.ick-v118 .ick-t input[name=profession]{min-width:4.6em}
.ick-v118 .ick-t input[name=room]{min-width:3.6em}
.ick-v118 .ick-t input[name=factura_no]{min-width:5.4em}
.ick-v118 .ick-t td.gname input{min-width:9em}
.ick-v118 .ick-t tr.r-photo td.ln .src{display:block;font-size:12px;line-height:1}
.ick-v118 .ick-t tr.r-photo td:not(.spine):not(.spine2){background-image:linear-gradient(color-mix(in srgb,#2f6fb0 5%,transparent),color-mix(in srgb,#2f6fb0 5%,transparent))}
.ick-v118 .ick-t tr.r-blank td{height:26px}
.ick-pagecheck{display:grid;gap:8px;border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--card)}
.ick-pagecheck.ok{border-color:#2c8a58}
.ick-photos summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ick-pp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.ick-pp figure{margin:0;display:grid;gap:4px;align-content:start}
.ick-pp figure>a{display:flex;align-items:center;justify-content:center;background:#111;border-radius:8px;overflow:hidden;height:min(62vh,640px)}
.ick-pp img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.ick-pp img.rot{transform:rotate(90deg);max-width:min(62vh,640px);max-height:none;width:auto;height:auto}
.ick-pp figcaption{font-size:13px;color:var(--muted)}
.ick-pp .nophoto.big{height:200px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:8px}
.ick-okbar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between}
.ok-pill{display:inline-block;border-radius:999px;padding:3px 10px;background:#e3f3e9;color:#1f6b43;font-weight:700;font-size:13px}
.warn-pill{display:inline-block;border-radius:999px;padding:3px 10px;background:#fdf0d6;color:#8a6205;font-weight:700;font-size:13px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ok-pill{background:#173826;color:#8fd8ae}:root:not([data-theme="light"]) .warn-pill{background:#3a2e10;color:#f0c867}}
:root[data-theme="dark"] .ok-pill{background:#173826;color:#8fd8ae}:root[data-theme="dark"] .warn-pill{background:#3a2e10;color:#f0c867}
.ick-pagetitle .pno{font-family:Georgia,'Times New Roman',serif;color:var(--ink-red,#c8402e)}
.ick-foot{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between}
.ick-zip{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:700px){
  .ick-pp{grid-template-columns:1fr}
  .ick-pp figure>a{height:auto;min-height:200px}
  .ick-pp img.rot{transform:none}
  .ick-v118 .ick-t td.spine,.ick-v118 .ick-t td.spine2{display:none}
  .ick-v118 .ick-t td.dt,.ick-v118 .ick-t td.fx{grid-column:1/-1}
  .ick-v118 .dboxes input{font-size:16px;width:2.6em}.ick-v118 .dboxes input:nth-child(3){width:3.8em}
  .ick-v118 .ick-t tr.r-photo{border-style:dashed}
}
/* v118b — the whole spread fits a 1366 px laptop: narrow book columns, the factura cell stacked */
.ick-v118 .ick-book{font-size:12px}
.ick-v118 .ick-t input{min-width:0!important;width:100%;padding:2px}
.ick-v118 .ick-t td.gname{min-width:0;width:150px;max-width:150px}
.ick-v118 .ick-t td.gname .bk{max-width:146px}
.ick-v118 .ick-t input[name=factura_no]{width:6.6em}
.ick-v118 .ick-t input[name=nationality],.ick-v118 .ick-t input[name=origin]{width:5.2em}
.ick-v118 .ick-t input[name=emitted_in],.ick-v118 .ick-t input[name=profession]{width:4.4em}
.ick-v118 .ick-t input[name=marital]{width:2.6em}
.ick-v118 .ick-t input[name=room]{width:4.6em}
.ick-v118 .ick-t input[name=persons]{width:2.2em}
.ick-v118 .ick-t td.num input{width:4.6em}
.ick-v118 .dboxes input,.ick-v118 .dboxes input:nth-child(3){width:1.9em!important;padding:2px 0}
.ick-v118 .ick-t td.pp label span{font-size:10px}
.ick-v118 .ick-t td.fx{width:96px}
.ick-v118 .fxsub{flex-wrap:wrap;white-space:normal}
.ick-v118 .fxsub input[name=breakfasts]{width:2em!important}
.ick-v118 .ick-t td.ph{width:58px}.ick-v118 .ick-open img{height:26px}
.ick-v118 .ick-t td.pr{width:84px}
.ick-v118 .ick-t thead th{font-size:11px;padding:3px 2px}
.ick-v118 .ick-t thead th i{font-size:9px}
@media (min-width:701px){.ick-v118 .ick-t td.pp label span{display:none}.ick-v118 .ick-t td.pp{width:30px}}
.ick-v118 .ick-t thead th{overflow-wrap:anywhere;hyphens:auto}
.ick-v118 .ick-t td{padding:2px 2px}
.ick-v118 .ick-t td.num .should{white-space:normal;font-size:10px}
@media (max-width:1499px){.ick-v118 .ick-t thead th i{display:none}}
.ick-v118 .ick-t thead th{overflow-wrap:normal;hyphens:manual}
.ick-v118 .sht{display:none}
@media (max-width:1499px){.ick-v118 .ick-t thead .lng,.ick-v118 .ick-t .ick-btns .lng{display:none}.ick-v118 .ick-t thead .sht{display:inline}}
.ick-v118 .ick-t .ick-btns{flex-wrap:nowrap;gap:3px}
.ick-v118 .ick-t td.pr .ick-pd summary{white-space:nowrap}
.ick-v118 .fxsub.fx-none{display:none}
.ick-v118 .ick-pp img.rot{transform:rotate(-90deg)}
.ick-v118 .ick-t td.pr .ick-btns{flex-wrap:nowrap;margin-top:2px}
.ick-v118 .ick-t td.pr .ick-btns .mini{padding:2px 7px;font-size:11px}
.ick-v118 .ick-t td.ln .place{display:flex;gap:1px}
.ick-v118 .ick-t td.ln .place input{width:2.1em!important;padding:2px 0}
.ick-v118 .ick-t td.ln:has(.place){width:76px}
.ick-v118 .ick-t td.gname{min-width:130px}
@media (max-width:700px){
  .ick-v118 .ick-t tr{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 6px;padding:8px}
  .ick-v118 .ick-t td{padding:3px 4px}
  .ick-v118 .ick-t td input:not([type=checkbox]){width:100%!important;font-size:16px}
  .ick-v118 .ick-t td.gname,.ick-v118 .ick-t td.dt,.ick-v118 .ick-t td.fx,.ick-v118 .ick-t td.pr,.ick-v118 .ick-t td.ln{grid-column:1/-1;width:auto;max-width:none}
  .ick-v118 .ick-t td.ph{grid-column:span 2}
  .ick-v118 .dboxes input{width:3.2em!important}
  .ick-v118 .ick-t tr td.ln .place input{width:3.4em!important;flex:0 0 3.4em}
  .ick-v118 .ick-t tr .fxsub input[name=breakfasts]{width:4em!important}
  .ick-v118 .ick-t td.gname .bk{max-width:none}
  .ick-v118 .ick-t td[data-label]::before{font-size:10px}
  .ick-v118 .ick-t td.pp label span{display:inline}
}
/* v120 — notes on beds (pink — no other state uses it) and Beds today with the Cloudbeds jobs under the house */
.hk{--hk-note:#d63384}
.c-note,.k-note{background:var(--hk-note)}
.hkd-t td.has-note{box-shadow:inset 0 0 0 3px var(--hk-note),0 0 0 2px var(--hk-note);position:relative}
.hkd-t td .nb{position:absolute;top:-6px;right:-5px;font-size:13px;line-height:1;background:var(--hk-note);border-radius:999px;padding:2px 3px}
.hk-bed.has-note{box-shadow:inset 0 0 0 4px var(--hk-note);position:relative}
.hk-bed .hk-nb{position:absolute;top:4px;right:6px;font-size:16px}
.hk-notes{background:var(--card);border:2px solid var(--hk-note);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.hk-notes-h{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.hk-notes-h b{font-size:18px;color:var(--hk-note)}
.hk-note{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-radius:10px;padding:8px 10px;background:color-mix(in srgb,var(--hk-note) 10%,var(--card))}
.hk-note .ic{font-size:22px}.hk-note .tx{display:grid;gap:2px}.hk-note .tx .bd{display:block}
.hk-note .acts{display:flex;gap:6px;flex-wrap:wrap}.hk-note .acts form{margin:0}
.hk-note-form{display:grid;gap:10px;margin-top:8px}
.hk-note-form select,.hk-note-form textarea{font:inherit;font-size:17px;padding:10px;border-radius:10px;border:1px solid var(--line);width:100%;box-sizing:border-box;background:var(--card);color:var(--fg)}
.hk-kinds{display:flex;flex-wrap:wrap;gap:8px}
.hk-kinds label{display:flex;gap:8px;align-items:center;border:2px solid var(--line);border-radius:12px;padding:10px 14px;font-size:17px;font-weight:700;cursor:pointer}
.hk-kinds label:has(input:checked){border-color:var(--hk-note);background:color-mix(in srgb,var(--hk-note) 14%,var(--card))}
.hk-note-form .hk-from{display:none}
.hk-note-form:has(input[value=moved]:checked) .hk-from{display:grid}
.hk-note-add summary{cursor:pointer;width:max-content}
.hkd-ok{margin:0;color:var(--hk-ready)}
.hkd-under{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
@media (min-width:1000px){.hkd-under{grid-template-columns:320px minmax(0,1fr)}}
.hkd-under>.hk-avail{display:grid;gap:10px}
.hkd-under .hk-avail .hk-notes{border-width:1px;padding:8px 10px}
.hkd-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.hkd-cards .hkd-item{margin:0}
/* v120 testing mode */
.asbar.testbar{background:repeating-linear-gradient(135deg,#ffe08a 0 14px,#ffd35c 14px 28px)}
.asbar.testbar a.mini{text-decoration:none;display:inline-block}
.tm{display:grid;gap:14px}
.tm-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:10px}
.tm-card h3{margin:0;font-size:17px}
.tm-devs{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.tm-dev{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:8px;align-content:start}
.tm-dev .h{display:flex;gap:8px;align-items:baseline}.tm-dev .h b{font-size:16px}.tm-dev .h span{font-size:12px;color:var(--muted)}
.tm-btns{display:flex;flex-wrap:wrap;gap:6px}.tm-btns form{margin:0}
.tm-people{display:grid;gap:10px}
.tm-group b{display:block;font-size:13px;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.tm-clock{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tm-on{border-color:#d9a400;box-shadow:inset 0 0 0 2px #f6c343}
.ick-v118 .satl{display:block;font-size:10px;font-weight:700;color:#2c8a58;white-space:nowrap}.ick-v118 .satl.bad{color:#c8402e}
.hk-set summary{cursor:pointer;width:max-content}
.ci-sync{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}
/* v121 — the INGUAT book as a reference for reception */
.ick-ref .ick-readonly td{padding:4px 5px;height:30px;vertical-align:middle;white-space:nowrap}
.ick-ref .ick-readonly td.gname{white-space:normal;min-width:140px}
.ick-ref .ick-readonly td.num{text-align:right}
.ick-ref .ick-readonly td.ed{width:34px;text-align:center}.ick-ref .ick-readonly td.ed form{margin:0}
.ick-ref .ick-readonly td.ed .mini{padding:2px 8px;text-decoration:none}
.ick-ref .ick-readonly tr.r-err td.ln{box-shadow:inset 4px 0 0 var(--ink-red)}
.ick-ref .ick-readonly tr.r-done td.ln{box-shadow:inset 4px 0 0 #2c8a58}
.ick-empty-page{background:var(--card);border:2px dashed var(--paper-line,#d9cfb7);border-radius:14px;padding:14px 18px;display:grid;gap:8px}
.ick-empty-page h3{margin:0}.ick-empty-page ol{margin:0;padding-left:20px;display:grid;gap:6px}
.ick-todaylist{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.ick-todaylist h3{margin:0}.ick-todaylist .bad-n{color:#c8402e}
.ick-tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.ick-tcard{display:grid;gap:2px;border:1px solid var(--line);border-left-width:5px;border-radius:10px;padding:8px 10px;color:var(--fg);text-decoration:none}
.ick-tcard .t{font-size:12px;color:var(--muted)}.ick-tcard .pl{font-size:13px}.ick-tcard .st{font-size:13px;font-weight:700}
.ick-tcard.s-done,.ick-tcard.s-ok,.ick-tcard.s-note{border-left-color:#2c8a58}.ick-tcard.s-done .st,.ick-tcard.s-ok .st,.ick-tcard.s-note .st{color:#2c8a58}
.ick-tcard.s-err,.ick-tcard.s-empty{border-left-color:#c8402e}.ick-tcard.s-err .st,.ick-tcard.s-empty .st{color:#c8402e}
.ick-tcard.s-check{border-left-color:#a87a08}.ick-tcard.s-check .st{color:#a87a08}
@media (max-width:700px){
  .ick-ref .ick-readonly td{height:auto;white-space:normal}
  .ick-ref .ick-readonly tr{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ick-ref .ick-readonly td.gname,.ick-ref .ick-readonly td.ln{grid-column:1/-1}
  .ick-ref .ick-readonly td.ed{grid-column:1/-1;width:auto;text-align:left}
  .ick-ref .ick-readonly td.spine{display:none}
  .ick-ref .ick-readonly thead{display:none}
}
@media (max-width:700px){
  .ick-ref .ick-readonly td.e{display:none}
  .ick-ref .ick-readonly tr.r-blank:not(.r-next){display:none}
  .ick-ref .ick-readonly tr.r-blank.r-next{display:flex;justify-content:space-between;align-items:center}
  .ick-ref .ick-readonly tr.r-blank.r-next td.ed{width:auto}
}
/* v122: check-in photos not matched to a line — a short list under the book */
.ick-join{border-width:1px}.ick-join>summary{cursor:pointer;display:grid;gap:4px}
.ick-jlist{display:grid;gap:6px;margin-top:8px}
.ick-jrow{display:grid;grid-template-columns:auto minmax(140px,220px) minmax(0,1fr) auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:6px}
.ick-jrow .ick-open img{height:42px}.ick-jrow .who{display:grid}.ick-jrow .who em{color:var(--muted)}
.ick-jform{display:flex;gap:6px;min-width:0}.ick-jform select{font:inherit;min-width:0;flex:1;max-width:520px}
@media (max-width:700px){.ick-jrow{grid-template-columns:auto 1fr auto}.ick-jform{grid-column:1/-1}}
/* v123: the page photos under the page, the right way up, with ⟲ ⟳ and new photos from here */
.ick-pp img.rot{transform:none}
.ick-pp figure>a{height:auto;max-height:70vh;aspect-ratio:4/3}
.ick-pp figcaption{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.ick-pp .turn{display:flex;gap:4px}.ick-pp .turn form{margin:0}.ick-pp .turn .mini{padding:2px 10px;font-size:16px}
.ick-newphotos summary{cursor:pointer;width:max-content}
.ick-npform{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:8px;align-items:stretch}
.ick-npform .ing-shoot{min-height:90px;background-size:cover;background-position:center}
.ick-npform button,.ick-npform p{grid-column:1/-1}
/* v124: the laundry slip read from its photo — yellow = read from the photo, check it; green = reception changed it */
.lw-readst{border-radius:10px;padding:10px 12px;margin:8px 0;font-size:14px;line-height:1.35;background:#eef3ff;border:1px solid #b9c8ee;color:#1d2c55}
.lw-readst.lw-rs-ok{background:#fff6c2;border-color:#e0c040;color:#3a2e00}.lw-readst.lw-rs-bad{background:#fdeceb;border-color:#e9b4ae;color:#7a1d14}
.lw-readst .spin{display:inline-block;width:14px;height:14px;border:2px solid #7a8fc4;border-top-color:transparent;border-radius:50%;animation:lwspin .8s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes lwspin{to{transform:rotate(360deg)}}
.lw-new input.lw-ai,.lw-new select.lw-ai{background:#fff6c2!important;border-color:#d9b400!important;box-shadow:0 0 0 2px #fff0a0}
.lw-new input.lw-fixed{background:#e9f7ee!important;border-color:#5aa877!important}
.lw-new .lw-unsure{outline:2px dashed #c0392b;outline-offset:1px}
.lw-gm{font-size:13px;margin:4px 0 0;font-weight:600}.lw-gm.lw-gm-ok{color:#186b38}.lw-gm.lw-gm-no{color:#a3251a}
.lw-maybe{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}.lw-maybe button{font-size:13px}
.lw-new .lw-it.lw-has span{font-weight:700}
/* v124: "🔧 Fixed" — reception says it is put right (purple), a manager confirms (green) or sends it back (red) */
.ick-fixes{margin:14px 0;padding:12px 14px;border:1px solid #d9cdf3;border-radius:12px;background:#faf7ff}
.ick-fixes h3{margin:0 0 4px;font-size:16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ick-fixes .fx-n{background:#6b3fb8;color:#fff;border-radius:999px;padding:1px 9px;font-size:12px}
.fx-row{border-top:1px solid #e6def7;padding:9px 0}.fx-row:first-of-type{border-top:0}
.fx-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between}
.fx-h a{color:inherit;text-decoration:none}
.fx-pill{font-size:13px;font-weight:600;border-radius:999px;padding:2px 10px;background:#fdeceb;color:#a3251a}
.fx-waiting .fx-pill{background:#ece3fb;color:#4b2a8a}.fx-confirmed .fx-pill{background:#e3f4e9;color:#186b38}
.fx-what{margin:4px 0 6px 18px;padding:0;font-size:13px;color:#7a1d14}.fx-confirmed .fx-what{color:#6b6b6b;text-decoration:line-through}
.fx-why{margin:2px 0 6px;font-size:13px;color:#a3251a;font-weight:600}.fx-note{margin:2px 0 6px;font-size:13px;color:#4b2a8a}
.fx-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fx-form input[type=text]{flex:1 1 220px;min-width:0}
.fx-mgr{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.fx-mgr details{flex:1 1 260px}.fx-mgr details .fx-form{margin-top:6px}
.ick-t tr.r-fixing td{background:#f3edfd}.ick-t tr.r-fixing td.c-err{background:#e6dbfa;box-shadow:inset 0 0 0 2px #8a63d2}
.ick-t tr.r-fixed td{background:#eef8f1}.ick-t tr.r-fixed td.c-err,.ick-t tr.r-fixed td.c-chk{background:#e3f4e9;box-shadow:none}
.ick-tcard.s-fixing{border-color:#8a63d2;background:#f6f1fe}.ick-tcard.s-fixed{border-color:#5aa877;background:#eef8f1}
.ick-fixwait{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#ece3fb;border:1px solid #c9b6ef;color:#2f1a5c}
.ick-fixwait ul{margin:6px 0 0 18px;padding:0;font-size:14px}.ick-fixwait a{color:#4b2a8a}
/* v124: what a line's amounts are checked against */
.ick-t .msrc{display:block;font-size:10px;margin-top:2px;border-radius:6px;padding:0 4px;width:max-content}
.ick-t .msrc-sat,.ick-t .msrc-factura{background:#e3f4e9;color:#186b38}.ick-t .msrc-book{background:#fff3d6;color:#7a5200}
.ick-why{max-width:150px;font-size:12px}
/* v124: the page's update at the top */
.ick-upbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 10px;padding:8px 12px;border-radius:10px;background:#fff3d6;border:1px solid #f0d58a;color:#5a3d00;font-size:14px}
.ick-upbar.ok{background:#e3f4e9;border-color:#a9d9b9;color:#186b38}.ick-upbar .up-st{flex:1 1 240px;font-weight:600}
.ick-upbar .up-go{font-weight:700}
.ick-misreads{margin:12px 0;padding:10px 14px;border:1px solid #d6dbe6;border-radius:12px;background:#f7f9fc}
.ick-mr{border-collapse:collapse;font-size:13px;margin:6px 0}.ick-mr td,.ick-mr th{border-bottom:1px solid #e3e7ef;padding:3px 10px;text-align:left}
/* v124: receipts of the page */
.ick-receipts{margin:12px 0;padding:10px 14px;border:1px solid #e3d9c4;border-radius:12px;background:#fffdf7}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:8px}
.rc{margin:0;border:1px solid #e6e1d6;border-radius:10px;overflow:hidden;background:#fff}.rc.rc-bad{border-color:#e9b4ae;box-shadow:0 0 0 2px #fdeceb}
.rc img{display:block;width:100%;height:170px;object-fit:cover;background:#eee}
.rc figcaption{padding:6px 8px;font-size:12px;display:flex;flex-direction:column;gap:2px}.rc figcaption a{color:inherit;text-decoration:none}
.rc-n{color:#555}.rc-why{color:#a3251a;font-weight:600}.rc-ok{color:#186b38;font-weight:600}
.fx-rc{display:inline-flex;align-items:center;gap:6px;font-size:13px;margin:4px 0}.fx-rc img{height:44px;border-radius:6px}
/* v124: hidden columns */
.ick-t col.c-hide{visibility:collapse}
.ick-cols{margin:0 0 8px}.ick-cols form{margin-top:6px;padding:10px 12px;border:1px solid #ddd;border-radius:10px;background:#fff;max-width:720px}
.cols-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;font-size:13px}
.cols-scope{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:8px;font-size:14px}
/* v124: are the two check-in photos in the right boxes? */
.ci-confirm{margin:10px 0;padding:12px;border:2px solid #e0a800;border-radius:12px;background:#fff8e1}
.ci-confirm .cc-t{display:block;margin-bottom:8px;font-size:15px}
.cc-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cc-two figure{margin:0}.cc-two figcaption{font-size:13px;font-weight:700;margin-bottom:4px}
.cc-two img{width:100%;max-height:260px;object-fit:contain;background:#222;border-radius:8px}
.ci-confirm .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/* v126: beds booked for today's arrivals; tonight like Cloudbeds */
@media (min-width:641px){.hkd-nums{grid-template-columns:repeat(5,minmax(0,1fr))}}
.hkd-num small{display:block;font-size:12px;color:#666;margin-top:2px;line-height:1.25}
.hkd-num.tonight b{color:#1d5f8a}
.hk-desk td.c-arr{background:#cfe9d6!important;color:#14502a;box-shadow:inset 0 0 0 3px #2f7d4a}
.hk-desk td.c-arr .g{color:#0f3d20!important}.hk-desk td.c-arr .arr{display:block;font-size:11px;font-weight:600;color:#2f5d3d}
.hkd-legend i.k-arr{background:#cfe9d6;box-shadow:inset 0 0 0 2px #2f7d4a}
/* v127: read the book again from its photos */
.ick-bookread{margin:0 0 8px}.ick-bookread .br-box{margin-top:6px;padding:10px 12px;border:1px solid #d6dbe6;border-radius:10px;background:#f7f9fc;max-width:980px;font-size:14px}
.br-btns{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}.br-log{font-size:13px;margin:6px 0 0 18px}.br-log li.ok{color:#186b38}.br-log li.bad{color:#a3251a}
.ick-rephead .rep-photos{display:block;margin-top:4px;font-size:13px;font-weight:600;color:#186b38}.ick-rephead .rep-photos.bad{color:#a3251a}
/* v132: covering somebody's shift, or checking in for an area by hand */
.ckcover,.ckmanual{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ckcover h3,.ckmanual h3{margin:0 0 4px;font-size:17px}
.ckcov{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}
.ckcov.mine{border:2px solid #2f7a52;background:#eef7f1}
.ckcov-t{display:flex;flex-direction:column;gap:2px;min-width:0}.ckcov-t span{font-size:14px;color:var(--muted)}
.ckcov button{flex:0 0 auto;white-space:nowrap}
@media (max-width:480px){.ckcov{flex-direction:column;align-items:stretch}.ckcov button{width:100%}}
.ckt2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ckmanual select,.ckmanual input[type=time]{width:100%;font-size:17px;padding:8px}
.ckmanual .ckbtn{margin-top:10px}
/* v132: Beds today — who leaves today, who has gone, and the arriving name only once the bed is ready */
.hk-desk td.c-leave{background:#ffe1c2!important;color:#7a3a00;box-shadow:inset 0 0 0 3px #d9771e}
.hk-desk td.c-leave .g{color:#6b3000!important;font-weight:700}.hk-desk td.c-leave .arr{display:block;font-size:11px;font-weight:600;color:#8a4a10}
.hkd-legend i.k-leave{background:#ffe1c2;box-shadow:inset 0 0 0 2px #d9771e}
a.hkd-num{text-decoration:none;color:inherit}
.hkd-num.leave.on{border:2px solid #d9771e}.hkd-num.leave.on b{color:#c2610f}
@media (min-width:1000px){.hkd-nums{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:641px) and (max-width:999px){.hkd-nums{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hkd-leave{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
@media (max-width:640px){.hkd-leave{grid-template-columns:1fr}}
.hkd-lv{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:0}
.hkd-lv.still{border:2px solid #d9771e;background:#fff6ec}
.hkd-lv h3{margin:0 0 6px;font-size:16px}
.hkd-chips{display:flex;flex-wrap:wrap;gap:6px}
.hkd-chip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:14px;background:#fff;color:#555}
.hkd-lv.still .hkd-chip{border-color:#d9771e}.hkd-lv.still .hkd-chip b{color:#7a3a00}
.hkd-lv.gone .hkd-chip s{color:#888}
.ckcovbtn{border:0;border-radius:10px;padding:12px 14px;font:inherit;font-size:15px;font-weight:700;cursor:pointer;background:#2f7a52;color:#fff}
.ckcov:not(.mine) .ckcovbtn{background:var(--fg);color:var(--bg)}
.ckcov-t .ckpill{font-size:12px;padding:1px 8px;vertical-align:middle}
/* v133: was the page read from its newest photos */
.ick-upbar .up-read{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:baseline}
.ick-upbar .up-read.bad{color:#a12b1f}
.ick-upbar .up-diff{display:inline}.ick-upbar .up-diff summary{cursor:pointer;color:#8a5a00}
.ick-upbar .up-diff ul{margin:4px 0 0 16px;padding:0}
/* v136: covering / by hand behind one button */
.ckother{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.ckother>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-weight:600;background:var(--card)}
.ckother>summary::-webkit-details-marker{display:none}
.ckother[open]>summary{margin-bottom:6px}
.ckmine{margin:4px 0}
/* v137: Spreadsheets */
.sheets-g h3{margin:0 0 8px}
.sheets-row{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0}
.sheets-row:first-of-type{border-top:0}
.sheets-a{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit;min-width:0;flex:1}
.sheets-a b{color:#1d5f8a}.sheets-a span{font-size:13px;color:var(--muted)}
.sheets-ed{flex:0 0 auto}.sheets-ed[open]{flex:1 1 100%}
.sheets-ed form{display:flex;gap:6px;margin-top:6px}
@media (max-width:640px){.sheets-row{flex-wrap:wrap}}
a.sheetlink{white-space:nowrap}

/* v139: Guests — the guest's link */
.gl-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.gl-tabs a{border:1px solid var(--line);border-radius:999px;padding:6px 14px;text-decoration:none;color:var(--fg);background:var(--card);font-weight:600}
.gl-tabs a.on{background:#1d6a54;border-color:#1d6a54;color:#fff}
.gl-row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0;flex-wrap:wrap}
.gl-row:first-of-type{border-top:0}
.gl-row .who{display:grid;gap:2px;min-width:0;flex:1 1 240px}
.gl-row .who span{font-size:13px;color:var(--muted)}
.gl-row .acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.gl-row .acts form{margin:0}
.glcs{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}
.glc{font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--soft);color:var(--muted)}
.glc.ok{background:#dff4e6;color:#137a3c}.glc.go{background:#e2efe9;color:#1d6a54}.glc.warn{background:#f8ecd7;color:#8a5a12}.glc.no{background:#f7e3df;color:#9b3324}
.btn-wa{display:inline-flex;align-items:center;gap:6px;background:#1fa855;color:#fff;border-radius:8px;padding:6px 12px;font-weight:700;text-decoration:none;font-size:14px}
.gl-star{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:8px;padding:6px 12px;font-weight:700;cursor:pointer}
.gl-star.on{background:#b9771a;border-color:#b9771a;color:#fff}
.gl-star[disabled]{opacity:.7;cursor:default}
.hkd-star{display:inline;margin:0 4px 0 0}.hkd-star .gl-star{padding:0 6px;font-size:13px;line-height:1.4}
.gl-banner{display:block;text-decoration:none;font-weight:700}
.gl-msg pre{white-space:pre-wrap;font:13px/1.45 inherit;background:var(--soft);border-radius:8px;padding:8px;margin:6px 0 0;max-width:60ch}
.gl-qr{text-align:center}
.gl-qrbox{width:min(280px,80vw);margin:8px auto;background:#fff;padding:8px;border-radius:10px}
.gl-qrbox svg{width:100%;height:auto;display:block}
.gl-code{font:800 26px/1 ui-monospace,monospace;letter-spacing:.12em;margin:6px 0}
.gl-qr .ctl{justify-content:center}
.gl-warn{color:#9b3324}
.gl-funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.gl-funnel div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid}
.gl-funnel b{font-size:22px;font-variant-numeric:tabular-nums}.gl-funnel span{font-size:12.5px;color:var(--muted)}
.gl-tw{overflow-x:auto}
.gl-t{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}
.gl-t th,.gl-t td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.gl-t tr.off td{opacity:.6}
.gl-form{display:grid;gap:8px;max-width:640px}
.gl-form textarea,.gl-form input[type=text],.gl-form input[type=url],.gl-form input[type=tel],.gl-form input[type=number]{width:100%}
.gl-dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13.5px}.gl-dl dd{margin:0;word-break:break-all}
.gl-mg{border-top:1px solid var(--line);padding:8px 0}
.gl-steps{display:grid;gap:12px;padding-left:20px}.gl-steps li{display:grid;gap:6px}.gl-trial{display:grid;gap:12px}
.glwa-paste{display:inline-flex;gap:6px;align-items:center;margin:0;flex-wrap:wrap}
.glwa-box{display:inline-flex;gap:6px}.glwa-box input{width:160px}
.hkd-chip .btn-wa{padding:2px 8px;font-size:12.5px}.hkd-chip .glwa-paste .mini{padding:1px 8px}

/* v146: their WhatsApp at the check-in; bed ready on Beds today */
.ci-wa{display:grid;gap:6px;margin:12px 0 4px}
.ci-wa input[type=tel]{font-size:20px;padding:10px 12px;letter-spacing:.02em}
.ci-wa.off input[type=tel]{opacity:.4}
.ci-wafrom{color:var(--mute,#666);min-height:1em}
.ci-nowa{display:flex;gap:8px;align-items:center;font-size:15px}
.ci-nowa input{width:20px;height:20px}
.gl-open{display:grid;gap:10px;text-align:center}.gl-open .btn-wa{justify-content:center;font-size:18px;padding:14px}
.hkd-lv.bedready{border:2px solid #1fa855;background:#eefaf2;margin:10px 0}
.hkd-lv.bedready .hkd-chip{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.hkd-chip.done{opacity:.45}
@media (prefers-color-scheme:dark){.hkd-lv.bedready{background:#12261a}}

/* v150: Review Rewards */
.rr-sec{display:grid;gap:10px}
.rr-rev{display:grid;gap:8px;padding:10px 0;border-top:1px solid var(--line)}
.rr-rev:first-of-type{border-top:0}
.rr-q{margin:0;padding:8px 12px;border-left:3px solid #b9771a;background:var(--card);font-size:15px;white-space:pre-wrap}
.rr-who{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rr-pick{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:4px 8px}
.rr-pick.rr-amb{border-color:#d9771e}
.rr-t td,.rr-t th{padding:6px 8px;text-align:left;vertical-align:middle}
.rr-use input{width:5em}
.rr-ann{width:100%;font-size:14px}
.rr-person{display:flex;flex-wrap:wrap;gap:6px}
.rr-person input[name=words]{flex:1;min-width:10em}
.rr-person.off{opacity:.5}

/* v153: end-of-shift sign-off */
.ick-so{display:grid;gap:8px;border-left:5px solid #2e8b57}
.ick-so.so-open{border-left-color:#c0392b}.ick-so.so-wait{border-left-color:#d9771e}
.ick-so-h{margin:0;font-size:16px}
.ick-so-w{margin:0;padding:8px 10px;border-radius:8px;background:#fff6ec;color:#7a3a00}
.ick-so-l{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}
.ick-so-l li.err{color:#a33}
.ick-so-f{display:grid;gap:8px}
@media (prefers-color-scheme:dark){.ick-so-w{background:#3a2a17;color:#f2c58a}}

/* v153: Guests → To send now */
.gl-send-card{border-left:5px solid #1fa855}
.gl-q{align-items:center}
.gl-q .who{display:grid;gap:2px;min-width:0}
.gl-kind{justify-self:start;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px;background:#eef3ef}
.gl-kind.k-bed{background:#dff4e6;color:#0f5c2e}.gl-kind.k-welcome{background:#e6eefb;color:#1d4a8a}.gl-kind.k-review{background:#f8ecd7;color:#7a4b0a}.gl-kind.k-follow{background:#f1e6f8;color:#5a2a7a}
.gl-prev{font-size:13px;color:var(--mute,#666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn-wa.gl-big{font-size:16px;padding:10px 18px}
.gl-q.done{opacity:.4}
.gl-more summary{list-style:none;cursor:pointer}
.gl-full{white-space:pre-wrap;font-size:13px;max-width:36em}
.gl-empty{margin:0;font-size:16px;color:#2e8b57}
.gl-fold>summary{list-style:none;cursor:pointer}.gl-fold>summary h3{display:inline}
@media (prefers-color-scheme:dark){.gl-kind{background:#24302a}.gl-kind.k-bed{background:#16351f;color:#9fe0b2}.gl-kind.k-welcome{background:#1b2a40;color:#a9c4f0}.gl-kind.k-review{background:#3a2d17;color:#f0c98a}.gl-kind.k-follow{background:#2e1f3a;color:#d6b1ef}}
.cbcalc{display:block;font-size:12px;color:var(--mute,#666);margin-top:2px}.cbcalc.ok{color:#2e7d4f}.cbcalc.check{color:#a35a00}
.gl-slot{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-top:10px;padding-top:8px;border-top:2px solid var(--line)}
.gl-slot b{font-size:15px}
.gl-later{opacity:.55}
/* v154: Beds today → Write in the INGUAT book */
.hkd-lv.ick-write{border:2px solid #1d6a54;margin:10px 0}
.ick-w{display:grid;gap:6px;padding:8px 0;border-top:1px solid var(--line)}
.ick-w:first-of-type{border-top:0}
.ick-wbook{border-collapse:collapse;font-size:13px;background:#fbf8ef;min-width:760px}
.ick-wbook th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#6b6657;padding:4px 6px;border:1px solid #c9c2ad;text-align:left}
.ick-wbook td{padding:6px;border:1px solid #c9c2ad;white-space:nowrap;font-family:ui-monospace,Menlo,monospace}
.ick-wbook td.hi{background:#dff4e6;color:#0f5c2e;font-weight:700}
.ick-w-in{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:14px}
.ick-w-in input{width:6em}
@media (prefers-color-scheme:dark){.ick-wbook{background:#23241d}.ick-wbook th,.ick-wbook td{border-color:#4a4636}.ick-wbook td.hi{background:#16351f;color:#9fe0b2}}
.ick-write .tw,.hkd-lv.ick-write{max-width:100%;min-width:0}.ick-write .tw{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* v155: Prices (the price desk, owner only) */
.pd{display:grid;gap:12px}
.pd-health{margin:0;font-size:13px;display:flex;flex-wrap:wrap;gap:6px}
.pd-health .hk{color:#2e7d4f}.pd-health .hb{color:#b23b2b;font-weight:700}.pd-health .hw{color:#a35a00}
.pd-stage{background:#e2f0ea;color:#1d6a54;border-radius:99px;padding:0 8px;font-weight:700}
.pd-tabs{display:flex;gap:6px;flex-wrap:wrap}.pd-tabs a{padding:6px 12px;border-radius:99px;border:1px solid var(--line);text-decoration:none;color:inherit;font-weight:600;font-size:14px}.pd-tabs a.on{background:#1d6a54;color:#fff;border-color:#1d6a54}
.pd-banner{margin:0;padding:10px 12px;border-radius:10px;font-weight:600}.pd-banner.warn{background:#fff6ec;color:#7a3a00}.pd-banner.bad{background:#f8e3df;color:#8a2b1e}
.pd-inline{display:inline}
.pd-sum{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.pd-big{display:grid}.pd-big b{font-size:26px;line-height:1.1}.pd-big span{font-size:13px;color:var(--mute,#666)}.pd-big small{display:block;font-size:12px}
.pd-filters{display:flex;gap:6px;flex-wrap:wrap}
.pd-copyall textarea{width:100%;font:13px ui-monospace,Menlo,monospace}
.pd-night{display:grid;gap:6px}
.pd-nh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.pd-nh b{font-size:17px}
.pd-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(220px,2fr);gap:4px 12px;padding:8px 0;border-top:1px solid var(--line)}
.pd-row .pd-chips,.pd-row .pd-act{grid-column:2}
.pd-row.none{opacity:.7}
.pd-row.st-changed_by_hand,.pd-row.st-skipped{opacity:.55}
.pd-rt{display:grid}
.pd-px{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pd-px .cur{color:var(--mute,#666);text-decoration:line-through}.pd-px .sug{font-size:18px}
.pd-px .chg.up{color:#2e7d4f;font-weight:700}.pd-px .chg.down{color:#b23b2b;font-weight:700}.pd-px .pre{font-size:13px}
.pd-chips{display:flex;flex-wrap:wrap;gap:4px}
.chip{font-size:12px;border-radius:99px;padding:1px 8px;background:#eef3ef;color:#33433b}.chip.warn{background:#fff0d8;color:#7a4b0a}.chip.ev{background:#e6eefb;color:#1d4a8a}.chip.ev.lock{background:#f8e3df;color:#8a2b1e}
.pd-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pd-act form{display:inline}
.pd-skip summary{list-style:none;cursor:pointer;display:inline-block}
.pd-rb{font-size:14px}.pd-rb.match{color:#2e7d4f}.pd-rb.different{color:#a35a00}.pd-rb.unchanged{color:#b23b2b}
.pd-empty{color:#2e7d4f;font-size:16px}
.pd{min-width:0;max-width:100%;display:grid;gap:12px}.pd>*{min-width:0}.pd .card{min-width:0;max-width:100%;overflow-wrap:anywhere}.pd-tw{overflow-x:auto;max-width:100%;min-width:0}.pd-t{border-collapse:collapse;font-size:13px}.pd-t th,.pd-t td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.pd-eng{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pd-set{display:grid;gap:8px}.pd-set label{display:block;font-size:14px}.pd-set input[type=number]{width:5em}
.pd-tool{padding:8px;border:2px dashed #a35a00;border-radius:8px}
.pd-stages{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pd-stages span{padding:4px 10px;border-radius:8px;font-size:13px}.pd-stages .on{background:#1d6a54;color:#fff}.pd-stages .off{background:#eee;color:#888}
@media (max-width:600px){.pd-row{grid-template-columns:1fr}.pd-row .pd-chips,.pd-row .pd-act{grid-column:1}}
@media (prefers-color-scheme:dark){.chip{background:#24302a;color:#cfe0d6}.pd-stages .off{background:#222;color:#777}.pd-banner.warn{background:#3a2a17;color:#f2c58a}.pd-banner.bad{background:#3a201b;color:#f0a796}.pd-stage{background:#17322a;color:#9fe0b2}}
/* v156: the book ready before arrival */
.ick-ready{border-color:#6a5a1d}
tr.ick-rrow{display:table-row;padding:0;border-top:0}
.ick-rbook{min-width:0;width:100%;font-size:12px}.ick-rbook td{padding:4px 5px}.ick-rbook td.ick-nm{white-space:normal;min-width:9em;font-family:inherit}.ick-rbook td:nth-child(4){white-space:normal;min-width:6em}
.ick-rbook .chip{font-size:10px;padding:0 6px}
.ick-rin{white-space:normal!important;font-family:inherit!important}.ick-rin input{width:4em}.ick-rin .tiny{display:block}
.ick-ready-day{margin:6px 0}.ick-ready-day summary{cursor:pointer;padding:4px 0}
/* v158 (Kurtis, 22 Oct: "clean up … compress"): Beds today tighter; the INGUAT book on its own page */
.hk-desk{gap:10px}
.hk-desk .hkd-num{padding:6px 10px;gap:8px}.hk-desk .hkd-num b{font-size:24px}.hk-desk .hkd-num span{font-size:13px}.hk-desk .hkd-num small{font-size:11px}
.hk-desk .hkd-legend{font-size:11px;gap:4px 10px}
.hkd-booklink{display:block;padding:8px 12px;border:2px solid #1d6a54;border-radius:10px;text-decoration:none;color:inherit;background:var(--card)}
.hkd-booklink b{color:#1d6a54}
.hkd-todo.hkd-leave{gap:6px;padding:10px 12px}
.hkd-todo.hkd-leave h3{font-size:16px}
.hkd-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px}
.hkd-rows .hkd-item{justify-content:flex-start;gap:6px;padding:3px 8px;border-radius:8px;border-color:#d9771e;font-size:14px;flex-wrap:nowrap;min-width:0}
.hkd-rows .hkd-item .tiny{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hkd-todo .hkd-lv.gone{padding:6px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.hkd-todo .hkd-lv.gone .hkd-chip{font-size:13px;padding:1px 8px}
.hkd-t td .hkd-star{position:absolute;top:-7px;left:-6px;margin:0;z-index:1}.hkd-t td.c-leave{position:relative;overflow:visible}
.hkd-t td .hkd-star .gl-star{padding:0 4px;font-size:12px;line-height:1.3;border-radius:999px}
.ickb{display:grid;gap:12px}
.ickb-top{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;justify-content:space-between}.ickb-top h2{margin:0}
.ickb-jump{display:flex;gap:6px;flex-wrap:wrap}.ickb-jump a{padding:4px 10px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:inherit;font-size:13px;font-weight:600}
.ickb-empty{padding:12px;border:1px dashed var(--line);border-radius:10px;color:#2e7d4f;font-weight:600}
.ickb-pl{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ickb-pl li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:4px 0;border-top:1px solid var(--line)}
.ickb-fix summary{display:inline-block;cursor:pointer}
.ickb-fixf{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px}.ickb-fixf input[type=number]{width:5em}
.ing-tile .ickb-fix{margin-top:4px}
.hk-desk .hk-avail-rooms{gap:4px}.hk-desk .hk-avail-room{padding:4px 6px;gap:3px}.hk-desk .hk-avail-room span{font-size:12px;padding:1px 5px}.hk-desk .hk-avail-h b{font-size:16px}
.hkd-todo.hkd-leave .still h3 .tiny{font-weight:400}
/* v159 (Kurtis, 22 Oct): Shifts — the whole week on one screen, easy to move around */
.shw-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.shw-jump{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.shw-jump a{padding:4px 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:inherit;font-size:13px;font-weight:600;background:var(--card)}
.shw-key summary{cursor:pointer}.shw-key .calkey{margin:6px 0 0}
.cal.shw{overflow:auto;max-height:calc(100vh - 210px)}
.cal.shw table{table-layout:fixed;min-width:760px;font-size:13px}
.cal.shw col.c-slot{width:84px}
.cal.shw th,.cal.shw td{padding:4px 5px}
.cal.shw thead th{z-index:3;font-size:11px;white-space:nowrap}
.cal.shw thead th.today{background:#f0c64a;color:#3a2a00}
.cal.shw tbody th.slot{position:sticky;left:0;z-index:2;background:var(--card);width:auto;font-size:12px}
.cal.shw thead th:first-child{position:sticky;left:0;z-index:4}
.cal.shw tr.area th{position:sticky;left:0;font-size:11px;padding:5px 8px;scroll-margin-top:40px}
.cal.shw .nm{padding:1px 6px;margin:2px 0;overflow:hidden;text-overflow:ellipsis;font-size:13px;line-height:1.35}
.cal.shw td.empty{background:transparent}
.cal.shw td.today{background:color-mix(in srgb,#f0c64a 18%,transparent)}
.cal.shw tr.none td,.cal.shw tr.none th{color:var(--muted)}
@media (max-width:700px){.cal.shw{max-height:none}.cal.shw .dn{display:block}}
.cal.shw tr.none th.slot{white-space:normal;line-height:1.2}
/* v162: Is it running? + Trends */
.hl{display:grid;gap:12px}.hl h2{margin:0}
.hl-all{color:#2e7d4f;font-weight:700;margin:0}.hl-bad{color:#a35a00;font-weight:700;margin:0}
.hl-t{border-collapse:collapse;width:100%;font-size:14px}.hl-t th,.hl-t td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.hl-t th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.hl-t td.dot span{display:inline-block;width:12px;height:12px;border-radius:50%;background:#2e7d4f}
.hl-t tr.st-late td.dot span{background:#e0a200}.hl-t tr.st-bad td.dot span{background:#b23b2b}.hl-t tr.st-never td.dot span{background:#aaa}
.hl-t tr.st-late td,.hl-t tr.st-bad td{font-weight:600}
.hl-two{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:900px){.hl-two{grid-template-columns:1fr 1fr}}
.hl-pre{white-space:pre-wrap;font:13px ui-monospace,Menlo,monospace;background:var(--soft,#f1f4f2);padding:10px;border-radius:8px;margin:0}
.hl-mv{margin:0;padding-left:18px}.hl-mv .up{color:#b23b2b;font-weight:700}.hl-mv .down{color:#2e7d4f;font-weight:700}.hl-mv .bad{color:#b23b2b;font-weight:700}
.pd-tr{border-top:1px solid var(--line);padding:8px 0;display:grid;gap:6px}.pd-trh{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.pd-trt th.sep,.pd-trt td.sep{border:0;width:14px;background:transparent}.pd-trt td{font-variant-numeric:tabular-nums}

/* ── v163: the monitor layout — Today (S1), prices rows side by side, two-column approvals, More as cards ── */
.td{display:grid;gap:14px;min-width:0;max-width:100%}.td>*{min-width:0}.td-two>.card{min-width:0;max-width:100%}.td-two .tw{overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}
.td-head h2{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin:0}.td-date{font-size:14px;font-weight:400;color:var(--muted)}
.td-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.td-tile{display:grid;gap:2px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:inherit;border-left-width:5px;min-width:0}
.td-tile:hover{border-color:var(--muted)}
.td-tile.st-ok{border-left-color:#2e7d4f}.td-tile.st-warn{border-left-color:#e0a200}.td-tile.st-bad{border-left-color:#b23b2b}.td-tile.st-off{border-left-color:var(--line);opacity:.7}
.td-lab{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.td-big{font-size:30px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.td-sub{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-two{display:grid;gap:12px;grid-template-columns:1fr}
.td-two .card h3{margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.td-more{text-decoration:none}
.td-t{border-collapse:collapse;width:100%;font-size:14px}.td-t td{padding:6px 6px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.td-t tr:last-child td{border-bottom:0}
.td-t .td-act form{display:flex;gap:4px;flex-wrap:wrap}.td-t .td-act button{font-size:12px;padding:4px 9px}
.td-q{list-style:none;margin:0;padding:0}.td-q li{padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.td-q li:last-child{border-bottom:0}.td-q a{text-decoration:none;color:inherit}.td-q a:hover{text-decoration:underline}
.pcards{display:grid;gap:10px}.pcards .pcard{margin:0}
@media (min-width: 1000px) {
  .td-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .td-two{grid-template-columns:1fr 1fr}
  .td-two .card:nth-child(3){grid-column:1 / -1}
  .pd-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 22px}
  .pd-rows .pd-row{grid-template-columns:1fr;gap:3px}.pd-rows .pd-row .pd-chips,.pd-rows .pd-row .pd-act{grid-column:1}
  .pd-rows .pd-row:nth-child(-n+3){border-top:0}
  .pd-rt{display:flex;gap:8px;align-items:baseline}
  .qlist{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.qlist .qrow{margin:0}.qlist .qrow.open{grid-column:1 / -1}
  .pcards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cktable table{min-width:0}
}
@media (min-width: 1500px) {
  .td-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .pd-rows{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pd-rows .pd-row:nth-child(-n+4){border-top:0}
}
@media (max-width: 480px){ .td-grid{grid-template-columns:1fr 1fr} .td-big{font-size:24px} }
@media (max-width: 620px){ .td-t,.td-t tbody,.td-t tr{display:block;width:100%} .td-t tr{border-bottom:1px solid var(--line);padding:7px 0} .td-t tr:last-child{border-bottom:0} .td-t td{display:inline-block;border:0;padding:1px 8px 1px 0;white-space:normal} .td-t td.td-act{display:block;padding-top:4px} }
/* v164: the rota refresh, and names on the sheet nobody in Lura Ops has */
.shw-read{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 6px}.shw-read p{margin:0;flex:1;min-width:0}.shw-read form{margin:0}
.cal .nm.unk{background:transparent;border:1.5px dashed #a35a00;color:#7a3a00}
.shw-unk{color:#7a3a00}
@media (prefers-color-scheme: dark){.cal .nm.unk{color:#f2c58a;border-color:#f2c58a}.shw-unk{color:#f2c58a}}
.ickb-hw{margin:10px 0}.ickb-hw form{display:inline-flex;gap:4px;align-items:center;margin-left:6px}
/* v165: bookings Soft Restaurant can't make to the centavo — adjust in Cloudbeds first */
.sr-adj{border:2px solid #e0a200;border-radius:12px;padding:10px 14px;background:#fffaf0;margin:0 0 14px}
.sr-adj h3{margin:0 0 4px;color:#7a3a00}.sr-t{border-collapse:collapse;width:100%;font-size:14px}.sr-t th,.sr-t td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.sr-t th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.sr-chg b{color:#b23b2b}.sr-t form{margin:0}
.ickb-jump a.warn{background:#fff1d6;color:#7a3a00;font-weight:700}
@media (prefers-color-scheme: dark){.sr-adj{background:#2a2414;border-color:#a37a00}.sr-adj h3{color:#f2c58a}.ickb-jump a.warn{background:#3a2a17;color:#f2c58a}}
.sr-adj{min-width:0;max-width:100%;box-sizing:border-box}.sr-adj .tw{overflow-x:auto;max-width:100%;min-width:0}
@media (max-width: 620px){ .sr-t,.sr-t tbody,.sr-t tr{display:block;width:100%} .sr-t tr:first-child{display:none} .sr-t tr{border-bottom:1px solid var(--line);padding:6px 0} .sr-t td{display:inline-block;border:0;padding:2px 8px 2px 0} }
/* v166 */
.sr-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sr-head h3{flex:1;min-width:200px}.sr-head form{margin:0}
.sr-chg.up b{color:#2e7d4f}.sr-cb{text-decoration:none;color:inherit}.sr-cb:hover b{text-decoration:underline}
.sr-none{margin:0 0 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:#2e7d4f}.sr-none form{margin:0}.sr-pid{margin-top:8px}
/* v167: the INGUAT book, guest by guest — one line each */
.ickl-g{margin:6px 0}.ickl-g>summary{cursor:pointer;padding:6px 0;font-size:15px}
.ickl-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ickl-row{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;padding:8px 12px;display:grid;gap:3px;min-width:0}
.ickl-row.st-write,.ickl-row.st-arrived{border-left-color:#e0a200}.ickl-row.st-ok{border-left-color:#2e7d4f}.ickl-row.st-fix{border-left-color:#b23b2b}.ickl-row.st-coming{border-left-color:#9aa}
.ickl-who{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.ickl-st{font-size:12.5px;font-weight:600}.ickl-st.ok{color:#2e7d4f}.ickl-st.bad{color:#b23b2b}.ickl-st.w{color:#a35a00}.ickl-st.mute{color:var(--muted)}
.ickl-line{font-size:13.5px;color:var(--fg)}
.ickl-sum{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;font-size:14px;font-variant-numeric:tabular-nums}.ickl-from{color:var(--muted)}
.ickl-sum .hi{background:#e3f2e9;color:#1d5c3a;border-radius:5px;padding:1px 6px}.ickl-sum b[data-k=suma]{font-size:16px}
.ickl-ed{display:inline-block;margin-left:auto}.ickl-ed summary{cursor:pointer;list-style:none}.ickl-ed label{margin-left:8px}.ickl-ed input{width:6em}
.ickl-probs{margin:2px 0 0;padding-left:0;list-style:none;font-size:13px;color:#b23b2b}
.ickl-nm{display:none;color:#a35a00}.ickl-row.nomoney .ickl-nm{display:block}
@media (prefers-color-scheme: dark){.ickl-sum .hi{background:#173326;color:#9fe0b2}}
/* v168: the guest card, the Shift page, the beds reminder */
.ickl-card{gap:5px}.ickl-pay{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.ickl-charge b{font-size:22px;font-variant-numeric:tabular-nums}.ickl-keys{background:#f4f0e6;border-radius:6px;padding:2px 8px;color:inherit}
.ickl-where{font-weight:600;color:#a35a00;font-size:14px}.ickl-tip{margin:4px 0 8px}.g-lastnight>summary{color:#a35a00}
.ick-so-ho{border:1px solid #e0a200;background:#fff8e6;border-radius:8px;padding:8px 12px;margin:8px 0}.ick-so-ho ul{margin:4px 0;padding-left:18px}
.shp-pg{display:grid;gap:12px;max-width:900px}.shp-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.shp-top h2{margin:0}
.shp-prev{border:1px solid var(--line);border-left:5px solid #2e7d4f;border-radius:10px;padding:8px 12px;background:var(--card)}.shp-prev.open{border-left-color:#e0a200}.shp-prev h3{margin:0 0 4px;font-size:16px}
.shp-ho{margin:4px 0;padding-left:18px}
.shp-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.shp-a{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;background:var(--card);color:inherit;text-decoration:none;min-width:0}
.shp-n{min-width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:18px;background:#eee;flex:none}
.shp-t{display:grid;gap:2px;min-width:0}.shp-who{font-size:14px;overflow-wrap:anywhere}
.lv-warn .shp-a{border-left-color:#e0a200}.lv-warn .shp-n{background:#ffe8a8;color:#6b4500}
.lv-bad .shp-a{border-left-color:#b23b2b}.lv-bad .shp-n{background:#f7d4cf;color:#7a1f14}
.lv-info .shp-a{border-left-color:#4a7fb5}.lv-info .shp-n{background:#dce8f5;color:#1f4870}
.lv-done .shp-a{opacity:.75}.lv-done .shp-n{background:#e3f2e9;color:#1d5c3a}
.bedsremind{position:relative;z-index:1;border-radius:8px;margin:0 0 10px;box-shadow:0 2px 8px rgba(0,0,0,.2);display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#ffe8a8;color:#4a3000;border-bottom:2px solid #e0a200;padding:10px 16px;font-weight:600}
.bedsremind[hidden]{display:none}.bedsremind .br-go{font-weight:700;color:#4a3000}.bedsremind .br-s{font-weight:400;font-size:13px;display:flex;gap:4px;align-items:center}
@media (prefers-color-scheme: dark){.ickl-keys{background:#2a2a22}.ick-so-ho{background:#2b2410}.shp-n{background:#333}.lv-warn .shp-n{background:#4a3a10;color:#ffe08a}.lv-bad .shp-n{background:#4a1d17;color:#ffb3a8}.lv-info .shp-n{background:#1d3550;color:#b9d4f0}.lv-done .shp-n{background:#173326;color:#9fe0b2}.bedsremind{background:#4a3a10;color:#ffe08a}.bedsremind .br-go{color:#ffe08a}}
/* v169: the Shift page in two columns on a monitor, the day hour by hour, copy buttons */
.shp-pg{max-width:1500px}.shp-cols{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){.shp-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.shp-side{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}}
.shp-main{display:grid;gap:12px;align-content:start;min-width:0}.shp-side{display:grid;gap:10px;align-content:start;min-width:0}.shp-side h3{margin:0}.shc-h{margin:4px 0}
.shp-how{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 12px}.shp-how summary{cursor:pointer;font-weight:600}.shp-how ol{margin:6px 0;padding-left:20px;display:grid;gap:4px}
.shp-else{color:#4a7fb5;font-weight:600}
.rt-day{display:grid;gap:8px}.rt-day h3{margin:4px 0 0}
.rt-sh{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 10px}.rt-sh>summary{cursor:pointer;padding:4px 0}
.rt-list{list-style:none;margin:6px 0;padding:0;display:grid;gap:6px}
.rt{border:1px solid var(--line);border-left:5px solid #ccd;border-radius:8px;padding:6px 10px;display:grid;gap:4px;min-width:0;scroll-margin-top:70px}
.rt.st-done{border-left-color:#2e7d4f;opacity:.8}.rt.st-now{border-left-color:#e0a200;background:#fff8e6}.rt.st-late{border-left-color:#b23b2b;background:#fdf1ef}.rt.rt-hold{border-style:dashed}
.rt:target{box-shadow:0 0 0 3px #e0a200}
.rt-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rt-at{font-variant-numeric:tabular-nums;font-weight:700;min-width:46px}
.rt-t{flex:1 1 220px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;min-width:0}.rt-by{color:#2e7d4f;font-size:13px;font-weight:600}
.rt-chip{font-size:12px;border-radius:99px;padding:1px 8px;background:#eee}.rt-chip.now{background:#ffe8a8;color:#6b4500}.rt-chip.late{background:#f7d4cf;color:#7a1f14}
.rt-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.rt-msgbox{display:grid;gap:4px}.rt-msg{white-space:pre-wrap;font:13px/1.4 inherit;font-family:inherit;background:#f4f0e6;border-radius:6px;padding:6px 8px;margin:0;max-height:9.5em;overflow:auto;overflow-wrap:anywhere}
.rt-copy{justify-self:start}.rt-how summary{cursor:pointer}.rt-how ol{margin:4px 0;padding-left:20px}
.cpb{font-size:12px;line-height:1;padding:2px 5px;margin-left:3px;border-radius:5px;border:1px solid var(--line);background:transparent;cursor:pointer;vertical-align:middle}.cpb.copied{background:#e3f2e9;color:#1d5c3a}
/* v179: the reminders sit in the page under the menu, never over it */
@media (prefers-color-scheme: dark){.rt.st-now{background:#2b2410}.rt.st-late{background:#2d1714}.rt-msg{background:#2a2a22}.rt-chip{background:#333}.rt-chip.now{background:#4a3a10;color:#ffe08a}.rt-chip.late{background:#4a1d17;color:#ffb3a8}}
/* v172: the INGUAT book in four tabs; the book as paper (today's lines, pages to fix); Cloudbeds buttons; WhatsApp buttons */
.ickb-tabs{display:flex;gap:6px;flex-wrap:wrap}.ickb-tab{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border:1px solid var(--line);border-radius:99px;background:var(--card);color:inherit;text-decoration:none;font-weight:600;font-size:14px}
.ickb-tab.on{background:#1f2a44;color:#fff;border-color:#1f2a44}.ickb-n{border-radius:99px;padding:0 7px;font-size:12px;background:#eee;color:#333}.ickb-n.warn{background:#ffe8a8;color:#6b4500}.ickb-n.bad{background:#f7d4cf;color:#7a1f14}.ickb-back{margin-left:auto}
.cb-btn{display:inline-block;background:#0d6efd;color:#fff !important;border-radius:7px;padding:3px 9px;text-decoration:none;font-weight:600;font-size:13px;white-space:nowrap}.cb-btn:hover{filter:brightness(1.1)}
.cb-nopid{border:1px solid #e0a200;background:#fff8e6;border-radius:8px;padding:6px 10px;margin:6px 0}
.pp-wrap{overflow-x:auto}.pp-t{border-collapse:collapse;font-size:13px;min-width:1100px;width:100%;background:#fffdf6}
.pp-t th{background:#f1ead6;font-size:11.5px;font-weight:700;padding:4px 6px;border:1px solid #d9cfb4;text-align:left;vertical-align:bottom}
.pp-t td{border:1px solid #e3dac2;padding:4px 6px;vertical-align:top;font-variant-numeric:tabular-nums}.pp-t td.num{text-align:right}
.pp-t .spine{width:6px;background:#d9cfb4;padding:0;border:0}.pp-t td.ln{white-space:nowrap}
.pp-t td.hi{background:#e3f2e9;color:#1d5c3a;font-weight:600}.pp-t td.pend{color:#8a8a8a;font-style:italic;font-size:12px}
.pp-t td.gname{min-width:150px}.pp-st{display:block;font-size:11.5px;color:#a35a00;font-weight:600}.pp-r.st-ok .pp-st{color:#2e7d4f}.pp-r.st-fix .pp-st{color:#b23b2b}.pp-r.st-coming .pp-st{color:var(--muted)}
.pp-t td.c-err{background:#fbe1dc;outline:2px solid #b23b2b;outline-offset:-2px}.pp-t td.c-empty{background:#fff1d6;outline:2px dashed #e0a200;outline-offset:-2px}.pp-t td.c-chk{background:#fff8e6}
.fx-say{display:block;font-size:11.5px;color:#7a1f14;font-weight:600;max-width:240px;white-space:normal}
.pp-r.r-ok td{color:#666}.pp-r.r-ok .ok{color:#2e7d4f}
.fx-how{border:1px solid var(--line);border-radius:8px;padding:6px 12px;background:var(--card)}.fx-how ol{margin:4px 0;padding-left:20px}
.fx-page{border:1px solid var(--line);border-left:5px solid #b23b2b;border-radius:10px;padding:8px 10px;margin:10px 0;background:var(--card);scroll-margin-top:70px}.fx-page.fx-wait{border-left-color:#4a7fb5}.fx-page:target{box-shadow:0 0 0 3px #e0a200}
.fx-ph{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}.fx-ph h4{margin:0}
.tbk .pp-r:target{box-shadow:0 0 0 3px #e0a200}
.rt-btns{display:flex;gap:6px;flex-wrap:wrap}.rt-wa{background:#25d366 !important;border-color:#1da851 !important;color:#06371b !important;text-decoration:none;font-weight:700}.rt-watip{color:var(--muted)}
.rt-notify{margin:0}.rt-wagroup{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.shp-ho a{color:inherit}
@media (prefers-color-scheme: dark){.pp-t{background:#1d1b16}.pp-t th{background:#2a2619;border-color:#3a3424}.pp-t td{border-color:#3a3424}.pp-t td.hi{background:#173326;color:#9fe0b2}.pp-t td.c-err{background:#4a1d17}.pp-t td.c-empty{background:#3a2e10}.fx-say{color:#ffb3a8}.cb-nopid{background:#2b2410}.ickb-n{background:#333;color:#ddd}}

/* v179: the INGUAT screens as one */
.ing-nav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px;padding:4px;border-radius:10px;background:#eef1f4}
.ing-nav-a{padding:8px 14px;border-radius:8px;text-decoration:none;font-weight:600;color:#2b3440}
.ing-nav-a.on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);color:#1d3b5a}
@media (prefers-color-scheme: dark){.ing-nav{background:#22262b}.ing-nav-a{color:#cfd6dd}.ing-nav-a.on{background:#33393f;color:#fff}}

/* v187: the book, page by page (photos the reception computer can see) */
.bkg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 8px; }
.bkg-p { margin: 0; border: 1px solid var(--line, #ddd); border-radius: 10px; padding: 8px; background: var(--card, #fff); }
.bkg-pics { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.bkg-pics img { width: 100%; height: 140px; object-fit: cover; border-radius: 6px; display: block; background: #eee; }
.bkg-none { display: flex; align-items: center; justify-content: center; height: 140px; border: 1px dashed #c66; border-radius: 6px; color: #a33; font-size: .85em; }
.bkg-p figcaption { margin-top: 6px; font-size: .9em; }
.bkg-box { max-width: 96vw; max-height: 96vh; padding: 8px; border: 0; border-radius: 10px; }
.bkg-box::backdrop { background: rgba(0,0,0,.75); }
.bkg-box img { max-width: 92vw; max-height: 80vh; display: block; margin: 0 auto; }
.bkg-box figure { margin: 0; } .bkg-box figcaption { text-align: center; margin: 4px 0; }
.bkg-nav { display: flex; gap: 8px; justify-content: center; }
.fx-thumb img { height: 54px; width: 72px; object-fit: cover; border-radius: 4px; vertical-align: middle; margin-left: 4px; }
/* v187: the guest card is the book line, in the book's order */
.ickl-book { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 6px 0 2px; }
.ickl-book > div { border: 1px solid var(--line, #ddd); border-radius: 6px; padding: 2px 6px; min-width: 64px; background: var(--card, #fff); }
.ickl-book > div.wide { min-width: 150px; } .ickl-book > div.sp { border-left: 3px solid #8a6d3b; }
.ickl-book dt { font-size: .68em; opacity: .7; line-height: 1.2; } .ickl-book dd { margin: 0; font-size: .92em; }
.ickl-more { margin-top: 4px; } .ickl-more > summary { cursor: pointer; }
/* v187: the ⭐ at check-out is a big, easy button */
.gl-star-big { font-size: 1.05em; padding: 6px 12px; min-height: 38px; border-radius: 18px; border: 1px solid #d4a017; background: #fffbea; cursor: pointer; margin-right: 6px; }
.gl-star-big.on { background: #f7d046; font-weight: 600; }
.hkd-star { display: inline-block; vertical-align: middle; }
td .gl-star-big, .hkd-grid .gl-star-big { font-size: .85em; padding: 2px 6px; min-height: 0; }

/* v191: staff suggestions */
.sug-form textarea, .sug-dlg textarea { width: 100%; box-sizing: border-box; font: inherit; }
.sug-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; align-items: center; }
.sug-photo-btn { display: inline-block; padding: 6px 12px; border: 1px dashed #999; border-radius: 8px; cursor: pointer; margin: 6px 0; }
.sug-thumbs { display: flex; gap: 6px; flex-wrap: wrap; } .sug-thumbs img { height: 64px; border-radius: 6px; }
.sug-mine { list-style: none; padding: 0; } .sug-mine li { border-bottom: 1px solid var(--line, #eee); padding: 8px 0; }
.sug-queue { position: fixed; bottom: 12px; left: 12px; z-index: 60; background: #fff3cd; border: 1px solid #e0a200; border-radius: 18px; padding: 6px 12px; font-size: .9em; }
.sug-fab { position: fixed; bottom: 12px; right: 12px; z-index: 50; background: #1d3b5a; color: #fff; border-radius: 18px; padding: 8px 14px; text-decoration: none; font-size: .9em; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.sug-pen { float: right; margin-left: 6px; font-size: 12px; line-height: 1; padding: 3px 6px; border-radius: 10px; border: 1px solid #e0a200; background: #fff8e1; color: #8a5a00; cursor: pointer; opacity: .85; }
h2 > .sug-pen, h3 > .sug-pen { float: none; vertical-align: middle; }
.sug-dlg { max-width: 520px; width: 92vw; border: 0; border-radius: 12px; } .sug-dlg::backdrop { background: rgba(0,0,0,.45); }
.sug-list { list-style: none; padding: 0; } .sug-r { margin-bottom: 12px; } .sug-h { display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; }
.sug-body { margin: 6px 0; white-space: normal; } .sug-en { color: #456; margin-bottom: 6px; } .sug-fix { background: #eef6ee; border-radius: 6px; padding: 6px 8px; margin: 6px 0; }
.sug-ph { display: flex; gap: 6px; flex-wrap: wrap; } .sug-ph img { height: 90px; border-radius: 6px; }
.sug-act { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 6px; } .sug-flt { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0; }
.sug-st-done { opacity: .75; } .sug-st-notdoing { opacity: .6; }
@media (prefers-color-scheme: dark) { .sug-queue { background: #3a2e10; color: #fff; } .sug-pen { background: #3a2e10; color: #ffd27a; } .sug-fix { background: #1f2f22; } }
/* v195: a guest link's timeline */
.gl-tl { margin-top: 4px; } .gl-tl ol { margin: 4px 0 0; padding-left: 18px; font-size: .88em; } .gl-tl .tlt { font-variant-numeric: tabular-nums; color: #567; }
