/* ═══════════════════════════════════════════════════════════════════════════
 * Platform — the rules every page shares
 *
 * These three blocks were copied into each page's own <style>, twenty times
 * over: around forty kilobytes of identical CSS that had to be edited in
 * twenty places and would drift the first time one was missed. They live here
 * now, linked once.
 *
 * Load order matters: this file, then cards.css, then motion.css. A page's own
 * <style> still wins over all of them, which is what lets a page keep a genuine
 * exception without fighting the shared layer.
 * ═══════════════════════════════════════════════════════════════════════════ */


/* ── one button shape across the platform ──────────────────────────────
   Nine different button classes had grown up page by page — .abtn, .dbtn,
   .repbtn, .act, .btn, .actbtn and others — each with its own radius, height
   and weight, so the same action looked different depending on where you met
   it. This normalises the SHAPE only: radius, height, padding, weight and the
   press behaviour. Every class keeps its own colours, so nothing that used
   colour to mean something loses that meaning. */
.abtn,.dbtn,.repbtn,.act,.btn,.actbtn,.bt-btn,.navbtn,.sg-btn,.missbtn,.wc-btn,.note-btn,.acctbtn{
  border-radius:12px;
  font-family:var(--font-body,inherit);
  font-weight:600;
  letter-spacing:.005em;
  transition:transform .14s ease,border-color .16s ease,background-color .16s ease,opacity .16s ease;
}

/* ── the labelled record, shared ──────────────────────────────────────
   The same two-column layout used on tickets, rooms, notes, the concierge
   boards and the downtime desk. Defined on every page so a card is read the
   same way wherever you meet it. */
.fields{display:grid;grid-template-columns:1fr;margin:12px 0 0;
  border-top:1px solid rgba(246,241,231,.13)}
.fr{display:grid;grid-template-columns:104px minmax(0,1fr);gap:0;align-items:baseline;
  border-bottom:1px solid rgba(246,241,231,.075)}
.fr:last-child{border-bottom:0}
.fr dt{font-size:12.5px;color:var(--muted-2);font-weight:500;padding:7px 12px 7px 0;
  border-right:1px solid rgba(246,241,231,.075)}
.fr dd{margin:0;font-size:14px;color:var(--parch);font-weight:500;min-width:0;
  overflow-wrap:anywhere;padding:7px 0 7px 12px}
.fr.v-bad dd,.fr.v-rose dd,.fr.v-high dd,.fr.v-urgent dd{color:var(--rose)}
.fr.v-warn dd,.fr.v-amber dd,.fr.v-medium dd{color:var(--amber)}
.fr.v-live dd,.fr.v-brass dd{color:var(--brass-hi)}
.fr.v-done dd,.fr.v-muted dd,.fr.v-low dd{color:var(--muted)}
.fr.v-sage dd,.fr.v-ok dd{color:var(--sage)}
@media (max-width:520px){
  .fr{grid-template-columns:94px minmax(0,1fr)}
  .fr dt{font-size:12px;padding-right:10px}
  .fr dd{padding-left:10px}
}

/* The orbital menu is deliberately left as it was. Because it borrows the
   page's own .navcard and .pbrand styling, changing --font-display would
   have restyled it too; these two selectors are more specific, so the menu
   keeps its original face while everything else takes the new one. */
.orb-stage .navcard, .orb-stage .navcard .nl{font-family:'Sora','Inter Tight','Inter',-apple-system,'Segoe UI',system-ui,sans-serif}
.orb-bar .orb-brand{font-family:'Sora','Inter Tight','Inter',-apple-system,'Segoe UI',system-ui,sans-serif}


/* ── motion only where it is seen ─────────────────────────────────────────
   The menu's icon animates on a loop inside the overlay, which spends almost
   all of its life closed. A hidden element still animates, so that is a
   repaint every frame for something nobody is looking at. Paused until the
   overlay opens. This changes nothing about how the menu looks or behaves. */
.orb-ov:not(.open) .orb-tod .core,
.orb-ov:not(.open) .orb-tod .rays{animation-play-state:paused}
