
:root {
  color-scheme: dark;
  --bg: #0b0c0e;
  --surface: #131518;
  --surface-2: #191c20;
  --border: #343941;
  --text: #f2f4f7;
  --muted: #aeb5bf;
  --olive: #575700;
  --blue: #086cff;
  --alr: #4a4d52;
  --accent: #8b46a7;
  --leave: #7650a8;
  --danger-soft: #392a16;
  --danger-border: #70552b;
  --radius: 16px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); min-height: 100vh; }
button, input, select { font: inherit; }
.shell { width: min(1180px, calc(100% - 28px)); margin: 0 auto; }
.topbar { background: linear-gradient(135deg, #7c3c96, #9a4fb4); border-bottom: 1px solid rgba(255,255,255,.14); }
.topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:96px; }
h1, h2, p { margin-top:0; }
h1 { margin-bottom:0; font-size:clamp(1.8rem, 4vw, 2.6rem); letter-spacing:-.03em; }
h2 { margin-bottom:0; font-size:clamp(1.25rem, 3vw, 1.65rem); letter-spacing:-.02em; }
.eyebrow { font-size:.72rem; letter-spacing:.14em; font-weight:800; opacity:.75; margin-bottom:5px; }
.privacy-pill { padding:9px 12px; border:1px solid rgba(255,255,255,.3); border-radius:999px; font-size:.82rem; white-space:nowrap; }
main { padding:24px 0 50px; }
.panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(16px, 3vw, 26px); box-shadow:0 14px 35px rgba(0,0,0,.18); }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:22px; }
.section-heading .muted { max-width:560px; margin:0; }
.muted, small { color:var(--muted); }
.form-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.field > span, fieldset legend { font-size:.86rem; font-weight:750; color:#dfe3e8; }
.field small { min-height:1.2em; font-size:.75rem; }
input[type="date"], input[type="number"], select { width:100%; padding:11px 12px; color:var(--text); background:#0e1012; border:1px solid #414750; border-radius:10px; outline:none; min-height:44px; }
input:focus, select:focus { border-color:#b676d0; box-shadow:0 0 0 3px rgba(182,118,208,.13); }
.swap-box { margin-top:18px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); overflow:hidden; }
.check-row { display:flex; gap:12px; align-items:flex-start; padding:16px; cursor:pointer; }
.check-row input { margin-top:4px; transform:scale(1.15); }
.check-row span { display:flex; flex-direction:column; gap:3px; }
.check-row small { display:block; }
.swap-fields { grid-template-columns:1fr 1fr 2fr; padding:0 16px 16px; border-top:1px solid var(--border); padding-top:16px; }
.sequence-preview { align-self:center; min-height:44px; background:#101215; border:1px dashed #3d434b; border-radius:10px; padding:10px 12px; color:#d5dae0; font-size:.86rem; line-height:1.45; }
.actions { display:flex; justify-content:flex-end; margin-top:20px; }
button { border:0; border-radius:10px; min-height:44px; padding:11px 18px; cursor:pointer; font-weight:800; }
button.primary { color:white; background:linear-gradient(135deg, #8444a0, #a154bd); box-shadow:0 8px 24px rgba(130,66,158,.25); }
button.primary:hover { filter:brightness(1.08); }
.output-section { margin-top:28px; }
.output-heading { align-items:end; margin-bottom:14px; }
.legend { display:flex; flex-wrap:wrap; gap:12px; color:var(--muted); font-size:.78rem; }
.legend span { display:flex; align-items:center; gap:6px; }
.swatch { width:10px; height:10px; border-radius:2px; display:inline-block; }
.swatch.shift { background:#111; border:1px solid #707781; }
.swatch.off { background:var(--blue); }
.swatch.alr { background:var(--alr); }
.roster-output { display:flex; flex-direction:column; gap:16px; }
.week-card { background:#070809; border:1px solid #434850; border-radius:12px; overflow:hidden; }
.week-card-header { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:12px 14px; background:#111315; border-bottom:1px solid #40454d; }
.wc-label { font-size:.84rem; color:#c5cad0; }
.line-label { font-size:1.02rem; font-weight:850; letter-spacing:.02em; }
.line-label .roster-name { color:#d7d93d; }
.table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.roster-grid { min-width:760px; display:grid; grid-template-columns:repeat(7, 1fr); }
.day-column { min-width:0; border-right:1px solid #d4d4d4; }
.day-column:last-child { border-right:0; }
.day-head { min-height:52px; padding:7px 5px; text-align:center; background:var(--olive); border-bottom:1px solid #ddd; }
.day-head strong { display:block; font-size:.82rem; }
.day-head span { display:block; font-size:.73rem; margin-top:2px; color:#e7e7cf; }
.roster-cell { min-height:94px; display:flex; flex-direction:column; justify-content:flex-start; align-items:center; text-align:center; padding:8px 5px; background:#060708; }
.roster-cell.off { justify-content:center; background:var(--blue); }
.roster-cell.alr { justify-content:center; background:var(--alr); }
.roster-cell.pre-start { opacity:.48; }
.cell-shift { font-size:.84rem; letter-spacing:.02em; }
.cell-time { font-size:1.03rem; font-weight:900; margin-top:2px; }
.cell-detail { color:#bfc4ca; font-size:.72rem; margin-top:5px; line-height:1.2; }
.cell-special { font-size:1.05rem; font-weight:800; letter-spacing:.05em; }

/* -------------------------------------------------------------------------
   RosterBot compact view (combined beta v0.11)
   A phone-friendly list view that keeps RosterBot's own visual language.
   ---------------------------------------------------------------------- */
.output-tools { display:flex; flex-direction:column; align-items:flex-end; gap:10px; min-width:0; }
.roster-view-toggle { display:inline-flex; gap:4px; padding:4px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); }
.roster-view-toggle button { min-height:34px; padding:6px 11px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--muted); font-size:.78rem; box-shadow:none; }
.roster-view-toggle button[aria-pressed="true"] { color:var(--text); border-color:var(--border); background:color-mix(in srgb,var(--accent) 14%,var(--surface)); }
.roster-view-toggle button:hover { filter:brightness(1.12); }

.roster-output.compact-mode { gap:12px; }
.compact-week .week-card-header { border-bottom:1px solid var(--border); }
.compact-day-list { display:flex; flex-direction:column; }
.compact-day { border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent); background:color-mix(in srgb,var(--surface) 88%,var(--bg)); }
.compact-day:last-child { border-bottom:0; }
.compact-day[open] { background:color-mix(in srgb,var(--surface-2) 84%,var(--bg)); }
.compact-day.pre-start { opacity:.48; }
.compact-day summary { list-style:none; display:grid; grid-template-columns:minmax(86px,.8fr) minmax(125px,1.2fr) minmax(82px,1fr) 20px; gap:10px; align-items:center; min-height:58px; padding:9px 12px; cursor:pointer; }
.compact-day summary::-webkit-details-marker { display:none; }
.compact-day summary::marker { content:""; }
.compact-day-label { min-width:0; }
.compact-day-label strong { display:block; font-size:.78rem; letter-spacing:.04em; }
.compact-day-label span { display:block; margin-top:2px; color:var(--muted); font-size:.73rem; }
.compact-time { min-width:0; font-size:.92rem; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.compact-duty { min-width:0; display:flex; justify-content:flex-start; align-items:center; gap:6px; font-size:.84rem; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.compact-duty-text { overflow:hidden; text-overflow:ellipsis; }
.compact-chevron { color:var(--muted); font-size:.9rem; text-align:center; transition:transform .16s ease; }
.compact-day[open] .compact-chevron { transform:rotate(180deg); }
.compact-badge { display:inline-flex; align-items:center; min-height:26px; padding:3px 9px; border-radius:999px; border:1px solid var(--border); font-size:.72rem; font-weight:900; letter-spacing:.03em; }
.compact-badge.or { background:color-mix(in srgb,var(--blue) 72%,var(--surface)); color:var(--text); }
.compact-badge.alr { background:color-mix(in srgb,var(--alr) 76%,var(--surface)); color:var(--text); }
.compact-badge.leave { background:color-mix(in srgb,var(--leave,#7650a8) 72%,var(--surface)); color:white; }
.compact-details { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px 12px; padding:0 12px 12px; border-top:1px dashed color-mix(in srgb,var(--border) 62%,transparent); }
.compact-detail { min-width:0; padding-top:9px; }
.compact-detail span { display:block; color:var(--muted); font-size:.66rem; font-weight:750; text-transform:uppercase; letter-spacing:.05em; }
.compact-detail strong { display:block; margin-top:3px; font-size:.8rem; overflow-wrap:anywhere; }
.compact-detail-wide { grid-column:1 / -1; }
.compact-detail-wide strong { font-weight:650; line-height:1.4; }
.compact-job-text { margin-top:4px; font-size:.79rem; line-height:1.52; white-space:pre-wrap; overflow-wrap:anywhere; }
.compact-job-meta { margin-top:5px; color:var(--muted); font-size:.68rem; line-height:1.4; }
.compact-approx { color:var(--muted); font-size:.68rem; font-weight:650; margin-left:5px; }

@media (max-width:700px) {
  .output-heading { align-items:flex-start; }
  .output-tools { width:100%; align-items:flex-start; }
  .roster-view-toggle { width:100%; }
  .roster-view-toggle button { flex:1 1 0; }
  .compact-day summary { grid-template-columns:76px minmax(108px,1.15fr) minmax(70px,.9fr) 18px; gap:7px; padding:9px 10px; }
  .compact-time { font-size:.86rem; }
  .compact-duty { font-size:.8rem; }
  .compact-details { grid-template-columns:1fr 1fr; }
}
@media (max-width:410px) {
  .compact-day summary { grid-template-columns:70px minmax(100px,1fr) minmax(64px,.8fr) 16px; gap:5px; padding-left:8px; padding-right:8px; }
  .compact-day-label strong { font-size:.73rem; }
  .compact-day-label span { font-size:.68rem; }
  .compact-time { font-size:.8rem; }
  .compact-duty { font-size:.74rem; }
}

.export-panel { margin-top:24px; }
.calendar-warning { padding:12px 14px; background:var(--danger-soft); border:1px solid var(--danger-border); border-radius:10px; color:#f0dcc1; line-height:1.45; margin-bottom:18px; }
.export-grid { display:grid; grid-template-columns:1.2fr 1.2fr .8fr; gap:16px; align-items:start; }
.choice-group { margin:0; border:1px solid var(--border); border-radius:10px; padding:12px; min-height:142px; }
.choice-group legend { padding:0 5px; }
.choice-group label { display:flex; gap:8px; align-items:center; margin:10px 0; color:#e1e5e9; }
.choice-group small { display:block; line-height:1.35; }
.alr-note { margin-top:14px; color:var(--muted); font-size:.85rem; }
.export-actions { margin-top:16px; }
footer { text-align:center; color:#727984; font-size:.75rem; padding:26px 0 4px; }

.cell-time-range { font-size:1rem; font-weight:900; margin-top:2px; white-space:nowrap; }
.cell-duration { margin-top:2px; color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.02em; }
.compact-shift-duration { display:block; margin-top:2px; color:var(--muted); font-size:.68rem; font-weight:750; line-height:1.05; }
.cell-finish-assumed { color:var(--muted); font-size:.64rem; margin-top:3px; }
html[data-theme="1"] .cell-time-range { color:#e7fff9; }
html[data-theme="2"] .cell-time-range { color:#f1f4f6; }
html[data-theme="3"] .cell-time-range { color:#fff0b3; }
html[data-theme="4"] .cell-time-range { color:#fff4ed; }
html[data-theme="5"] .cell-time-range { color:#f4f8fc; }
html[data-theme="6"] .cell-time-range { color:#f7eefd; }

@media (max-width: 850px) {
  .form-grid { grid-template-columns:1fr 1fr; }
  .swap-fields { grid-template-columns:1fr 1fr; }
  .sequence-preview { grid-column:1 / -1; }
  .export-grid { grid-template-columns:1fr; }
  .choice-group { min-height:0; }
}

@media (max-width: 560px) {
  .shell { width:min(100% - 18px, 1180px); }
  .topbar-inner { min-height:82px; }
  .privacy-pill { display:none; }
  main { padding-top:14px; }
  .section-heading { flex-direction:column; gap:8px; }
  .form-grid { grid-template-columns:1fr; }
  .swap-fields { grid-template-columns:1fr; }
  .sequence-preview { grid-column:auto; }
  .actions button { width:100%; }
  .week-card-header { align-items:flex-start; flex-direction:column; gap:3px; }
  .topbar-actions { align-items:flex-end; }
}

/* -------------------------------------------------------------------------
   RosterBot visual themes. Theme 1 remains the default; themes 2–7 are presentation-only overrides.
   ---------------------------------------------------------------------- */
.topbar-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.style-picker { display:flex; align-items:center; gap:8px; }
.style-picker label { font-size:.78rem; font-weight:800; opacity:.9; white-space:nowrap; }
.style-picker select { width:auto; min-width:170px; min-height:38px; padding:7px 34px 7px 10px; border-color:rgba(255,255,255,.28); background:rgba(13,14,16,.42); }

html[data-theme="1"] {
  --bg:#071a20;
  --surface:#0b2730;
  --surface-2:#0f333d;
  --border:#245766;
  --text:#e9fbff;
  --muted:#9fc4cc;
  --olive:#185b63;
  --blue:#16758a;
  --alr:#355f67;
  --accent:#35d6d0;
  --danger-soft:#302717;
  --danger-border:#776032;
  --leave:#7650a8;
}
html[data-theme="1"] .topbar { background:linear-gradient(135deg, #0b5364, #0f8074); border-bottom-color:rgba(131,238,143,.34); }
html[data-theme="1"] .panel { box-shadow:0 14px 35px rgba(0,0,0,.24); }
html[data-theme="1"] .field > span, html[data-theme="1"] fieldset legend { color:#dffbff; }
html[data-theme="1"] input[type="date"],
html[data-theme="1"] input[type="number"],
html[data-theme="1"] select { background:#06161b; border-color:#2c6674; }
html[data-theme="1"] input:focus, html[data-theme="1"] select:focus { border-color:#35d6d0; box-shadow:0 0 0 3px rgba(53,214,208,.15); }
html[data-theme="1"] button.primary { background:linear-gradient(135deg, #18aeb0, #58c978); box-shadow:0 8px 24px rgba(35,190,178,.23); }
html[data-theme="1"] .sequence-preview { background:#061a20; border-color:#2a6370; color:#d9f8fb; }
html[data-theme="1"] .week-card { background:#06161b; border-color:#2b6170; }
html[data-theme="1"] .week-card-header { background:#0d2a32; border-bottom-color:#2c6370; }
html[data-theme="1"] .wc-label { color:#add3da; }
html[data-theme="1"] .line-label .roster-name { color:#83ee8f; }
html[data-theme="1"] .day-head { background:#145a65; border-bottom-color:#43a5aa; }
html[data-theme="1"] .day-head span { color:#d8f3f6; }
html[data-theme="1"] .day-column { border-right-color:#437b84; }
html[data-theme="1"] .roster-cell { background:#071a20; }
html[data-theme="1"] .roster-cell.off { background:#16758a; }
html[data-theme="1"] .roster-cell.alr { background:#355f67; }
html[data-theme="1"] .cell-detail { color:#9fc4cc; }
html[data-theme="1"] .swatch.shift { background:#071a20; border-color:#4d8791; }

html[data-theme="2"] {
  --bg:#090a0b;
  --surface:#111315;
  --surface-2:#16191c;
  --border:#343a40;
  --text:#e8ecef;
  --muted:#939ca5;
  --olive:#22282d;
  --blue:#303941;
  --alr:#252a2e;
  --accent:#b8c0c7;
  --danger-soft:#211b16;
  --danger-border:#514537;
  --radius:8px;
  font-family:"JetBrains Mono", "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}
html[data-theme="2"] .topbar { background:#111315; border-bottom:1px solid #3d444b; }
html[data-theme="2"] h1, html[data-theme="2"] h2 { letter-spacing:-.015em; }
html[data-theme="2"] .eyebrow { color:#aab2b9; }
html[data-theme="2"] .panel { box-shadow:0 10px 26px rgba(0,0,0,.3); }
html[data-theme="2"] input[type="date"],
html[data-theme="2"] input[type="number"],
html[data-theme="2"] select { background:#0b0d0f; border-color:#3f464d; }
html[data-theme="2"] input:focus, html[data-theme="2"] select:focus { border-color:#9ba5ad; box-shadow:0 0 0 3px rgba(155,165,173,.11); }
html[data-theme="2"] button.primary { color:#08090a; background:#c7ced4; box-shadow:none; }
html[data-theme="2"] .week-card { background:#090a0b; border-color:#3b4248; }
html[data-theme="2"] .week-card-header { background:#14171a; border-bottom-color:#3b4248; }
html[data-theme="2"] .line-label .roster-name { color:#f0f2f4; }
html[data-theme="2"] .day-head { background:#23282d; border-bottom-color:#454c52; }
html[data-theme="2"] .day-head span { color:#c3c9ce; }
html[data-theme="2"] .day-column { border-right-color:#41474d; }
html[data-theme="2"] .roster-cell { background:#0a0c0d; }
html[data-theme="2"] .roster-cell.off { background:#2d353c; }
html[data-theme="2"] .roster-cell.alr { background:#252a2e; }
html[data-theme="2"] .cell-detail { color:#aab2b9; }
html[data-theme="2"] .swatch.shift { background:#0a0c0d; border-color:#777f87; }
html[data-theme="2"] .style-picker select { background:#0b0d0f; }



/* Design 3 — VR Blue & Gold (1937–1981).
   Inspired by Victorian Railways / VicRail royal blue and gold. */
html[data-theme="3"] {
  --bg:#06101d; --surface:#0b192a; --surface-2:#10233a; --border:#6d6030;
  --text:#f7f2df; --muted:#c0b895; --olive:#173f70; --blue:#d5a92e;
  --alr:#5c4b1f; --accent:#e5b93d; --danger-soft:#2c2311; --danger-border:#725c25; --radius:11px;
}
html[data-theme="3"] .topbar { background:linear-gradient(135deg,#0b3a70,#08294f); border-bottom:2px solid #d7ad36; }
html[data-theme="3"] .panel { box-shadow:0 14px 34px rgba(0,0,0,.30); }
html[data-theme="3"] .field > span, html[data-theme="3"] fieldset legend { color:#fff5d3; }
html[data-theme="3"] input[type="date"], html[data-theme="3"] input[type="number"], html[data-theme="3"] select { background:#071525; border-color:#5c573b; }
html[data-theme="3"] input:focus, html[data-theme="3"] select:focus { border-color:#e5b93d; box-shadow:0 0 0 3px rgba(229,185,61,.14); }
html[data-theme="3"] button.primary { color:#101826; background:linear-gradient(135deg,#e7bd48,#c99b22); box-shadow:0 8px 24px rgba(215,173,54,.22); }
html[data-theme="3"] .sequence-preview { background:#08182a; border-color:#615a38; color:#eee4bd; }
html[data-theme="3"] .week-card { background:#06101d; border-color:#665b35; }
html[data-theme="3"] .week-card-header { background:#0e2540; border-bottom-color:#74652f; }
html[data-theme="3"] .wc-label { color:#d5cba6; }
html[data-theme="3"] .line-label .roster-name { color:#f1c84f; }
html[data-theme="3"] .day-head { background:linear-gradient(180deg,#174d83,#103761); border-bottom:2px solid #d7ad36; }
html[data-theme="3"] .day-head span { color:#e8dfba; }
html[data-theme="3"] .day-column { border-right-color:#786e4a; }
html[data-theme="3"] .roster-cell { background:#071322; }
html[data-theme="3"] .roster-cell.off { background:#d5a92e; color:#101826; }
html[data-theme="3"] .roster-cell.alr { background:#5c4b1f; }
html[data-theme="3"] .cell-detail { color:#c7bea0; }
html[data-theme="3"] .swatch.shift { background:#071322; border-color:#8a7b45; }
html[data-theme="3"] .style-picker select { background:#09203a; border-color:rgba(229,185,61,.62); }
html[data-theme="3"] .privacy-pill, html[data-theme="3"] .feedback-topbar-btn { border-color:rgba(229,185,61,.55); background:rgba(4,24,46,.45); }
html[data-theme="3"] .feedback-close-btn, html[data-theme="3"] .feedback-form input[type="email"], html[data-theme="3"] .feedback-form textarea, html[data-theme="3"] .feedback-form select { background:#071525; border-color:#5c573b; }
html[data-theme="3"] .feedback-form input:focus, html[data-theme="3"] .feedback-form textarea:focus, html[data-theme="3"] .feedback-form select:focus { border-color:#e5b93d; box-shadow:0 0 0 3px rgba(229,185,61,.14); }

/* Design 4 — V/Line Orange (1983–1994).
   Orange/grey rolling-stock identity with the original green V/Line accent. */
html[data-theme="4"] {
  --bg:#151719; --surface:#24282b; --surface-2:#2d3236; --border:#596168;
  --text:#f5f6f4; --muted:#b7bec2; --olive:#4b5256; --blue:#ef5b2a;
  --alr:#286844; --accent:#ef5b2a; --danger-soft:#342019; --danger-border:#7e472f; --radius:10px;
}
html[data-theme="4"] .topbar { background:linear-gradient(135deg,#f26a2f 0%,#e6531d 62%,#bd3f11 100%); border-bottom:2px solid #17191b; box-shadow:inset 0 -1px 0 rgba(255,255,255,.12); }
html[data-theme="4"] .topbar .eyebrow { color:#fff3eb; opacity:.9; }
html[data-theme="4"] .panel { box-shadow:0 14px 34px rgba(0,0,0,.28); }
html[data-theme="4"] .field > span, html[data-theme="4"] fieldset legend { color:#f1f3f2; }
html[data-theme="4"] input[type="date"], html[data-theme="4"] input[type="number"], html[data-theme="4"] select { background:#171a1c; border-color:#5e666c; }
html[data-theme="4"] input:focus, html[data-theme="4"] select:focus { border-color:#ff7947; box-shadow:0 0 0 3px rgba(239,91,42,.16); }
html[data-theme="4"] button.primary { color:white; background:linear-gradient(135deg,#247348,#32955d); box-shadow:0 8px 24px rgba(43,125,66,.24); }
html[data-theme="4"] .sequence-preview { background:#1b1f21; border-color:#626b70; color:#e2e5e4; }
html[data-theme="4"] .week-card { background:#151719; border-color:#626a70; }
html[data-theme="4"] .week-card-header { background:#30363a; border-bottom-color:#687177; }
html[data-theme="4"] .wc-label { color:#d0d5d7; }
html[data-theme="4"] .line-label .roster-name { color:#60c07a; }
html[data-theme="4"] .day-head { background:linear-gradient(180deg,#50585d,#3e4549); border-bottom:2px solid #ef5b2a; }
html[data-theme="4"] .day-head span { color:#e5e8e7; }
html[data-theme="4"] .day-column { border-right-color:#7b8388; }
html[data-theme="4"] .roster-cell { background:#1a1d1f; }
html[data-theme="4"] .roster-cell.off { background:#ef5b2a; color:#fff; }
html[data-theme="4"] .roster-cell.alr { background:#286844; }
html[data-theme="4"] .cell-detail { color:#c4c9cb; }
html[data-theme="4"] .swatch.shift { background:#1a1d1f; border-color:#8b9297; }
html[data-theme="4"] .style-picker select { background:#252a2d; border-color:rgba(255,255,255,.48); }
html[data-theme="4"] .privacy-pill, html[data-theme="4"] .feedback-topbar-btn { background:rgba(24,27,29,.28); border-color:rgba(255,255,255,.48); }
html[data-theme="4"] .feedback-close-btn, html[data-theme="4"] .feedback-form input[type="email"], html[data-theme="4"] .feedback-form textarea, html[data-theme="4"] .feedback-form select { background:#171a1c; border-color:#5e666c; }
html[data-theme="4"] .feedback-form input:focus, html[data-theme="4"] .feedback-form textarea:focus, html[data-theme="4"] .feedback-form select:focus { border-color:#ff7947; box-shadow:0 0 0 3px rgba(239,91,42,.16); }

/* Design 5 — V/Line Red & Blue (2000–2006).
   Based on the mixed-case red V/Line wordmark and blue sweeping line. */
html[data-theme="5"] {
  --bg:#0c1219; --surface:#141d27; --surface-2:#1a2734; --border:#40566c;
  --text:#f7f8fa; --muted:#a9b8c7; --olive:#244f79; --blue:#2468a8;
  --alr:#69333a; --accent:#cf4046; --danger-soft:#301b1d; --danger-border:#72393d; --radius:12px;
}
html[data-theme="5"] .topbar { background:linear-gradient(135deg,#c7353c,#d94b50 58%,#2569a9 100%); border-bottom:2px solid #2b6da9; }
html[data-theme="5"] .panel { box-shadow:0 14px 35px rgba(0,0,0,.27); }
html[data-theme="5"] .field > span, html[data-theme="5"] fieldset legend { color:#edf3f9; }
html[data-theme="5"] input[type="date"], html[data-theme="5"] input[type="number"], html[data-theme="5"] select { background:#0c1621; border-color:#405a72; }
html[data-theme="5"] input:focus, html[data-theme="5"] select:focus { border-color:#cf4046; box-shadow:0 0 0 3px rgba(207,64,70,.14); }
html[data-theme="5"] button.primary { color:white; background:linear-gradient(135deg,#c9343b,#e05a5e); box-shadow:0 8px 24px rgba(207,64,70,.23); }
html[data-theme="5"] .sequence-preview { background:#0d1823; border-color:#48637c; color:#dce7f1; }
html[data-theme="5"] .week-card { background:#0b141e; border-color:#49627a; }
html[data-theme="5"] .week-card-header { background:#142538; border-bottom-color:#4a6680; }
html[data-theme="5"] .wc-label { color:#bdcad6; }
html[data-theme="5"] .line-label .roster-name { color:#ff7a7f; }
html[data-theme="5"] .day-head { background:linear-gradient(180deg,#2f72ad,#245b8c); border-bottom:2px solid #d34a50; }
html[data-theme="5"] .day-head span { color:#dbe9f5; }
html[data-theme="5"] .day-column { border-right-color:#5b7590; }
html[data-theme="5"] .roster-cell { background:#0d1721; }
html[data-theme="5"] .roster-cell.off { background:#2468a8; }
html[data-theme="5"] .roster-cell.alr { background:#69333a; }
html[data-theme="5"] .cell-detail { color:#afbfce; }
html[data-theme="5"] .swatch.shift { background:#0d1721; border-color:#71879b; }
html[data-theme="5"] .style-picker select { background:#172333; border-color:rgba(255,255,255,.45); }
html[data-theme="5"] .privacy-pill, html[data-theme="5"] .feedback-topbar-btn { background:rgba(12,28,45,.34); border-color:rgba(255,255,255,.5); }
html[data-theme="5"] .feedback-close-btn, html[data-theme="5"] .feedback-form input[type="email"], html[data-theme="5"] .feedback-form textarea, html[data-theme="5"] .feedback-form select { background:#0c1621; border-color:#405a72; }
html[data-theme="5"] .feedback-form input:focus, html[data-theme="5"] .feedback-form textarea:focus, html[data-theme="5"] .feedback-form select:focus { border-color:#cf4046; box-shadow:0 0 0 3px rgba(207,64,70,.14); }

/* Design 6 — V/Line Purple (2014–Present).
   Current regional purple identity with a subtle PTV-inspired geometric feel. */
html[data-theme="6"] {
  --bg:#120d17; --surface:#1c1424; --surface-2:#261b31; --border:#5f4670;
  --text:#faf8fc; --muted:#c5b6ce; --olive:#624078; --blue:#7f3f98;
  --alr:#4e305d; --accent:#8a45a3; --danger-soft:#2d1d20; --danger-border:#70444c; --radius:14px;
}
html[data-theme="6"] .topbar { background:linear-gradient(135deg,#6f3489 0%,#843e9d 62%,#5a2a71 100%); border-bottom:2px solid #a77abb; }
html[data-theme="6"] .panel { box-shadow:0 14px 36px rgba(0,0,0,.27); }
html[data-theme="6"] .field > span, html[data-theme="6"] fieldset legend { color:#f4eaf8; }
html[data-theme="6"] input[type="date"], html[data-theme="6"] input[type="number"], html[data-theme="6"] select { background:#140f19; border-color:#60496d; }
html[data-theme="6"] input:focus, html[data-theme="6"] select:focus { border-color:#b879cf; box-shadow:0 0 0 3px rgba(184,121,207,.14); }
html[data-theme="6"] button.primary { color:white; background:linear-gradient(135deg,#7b3994,#9a53b2); box-shadow:0 8px 24px rgba(139,70,167,.25); }
html[data-theme="6"] .sequence-preview { background:#17101e; border-color:#60496d; color:#eadcf0; }
html[data-theme="6"] .week-card { background:#100b15; border-color:#664b75; }
html[data-theme="6"] .week-card-header { background:#251831; border-bottom-color:#6c4f7b; }
html[data-theme="6"] .wc-label { color:#cfbdd7; }
html[data-theme="6"] .line-label .roster-name { color:#c88bdd; }
html[data-theme="6"] .day-head { background:linear-gradient(135deg,#74408a 0%,#5e3371 52%,#824a98 52%,#824a98 100%); border-bottom:2px solid #b987cb; }
html[data-theme="6"] .day-head span { color:#eadcf0; }
html[data-theme="6"] .day-column { border-right-color:#765b82; }
html[data-theme="6"] .roster-cell { background:#120d17; }
html[data-theme="6"] .roster-cell.off { background:#7f3f98; }
html[data-theme="6"] .roster-cell.alr { background:#4e305d; }
html[data-theme="6"] .cell-detail { color:#cbbbd2; }
html[data-theme="6"] .swatch.shift { background:#120d17; border-color:#80688b; }
html[data-theme="6"] .style-picker select { background:#2b1d36; border-color:rgba(255,255,255,.46); }
html[data-theme="6"] .privacy-pill, html[data-theme="6"] .feedback-topbar-btn { background:rgba(34,19,43,.34); border-color:rgba(255,255,255,.44); }
html[data-theme="6"] .feedback-close-btn, html[data-theme="6"] .feedback-form input[type="email"], html[data-theme="6"] .feedback-form textarea, html[data-theme="6"] .feedback-form select { background:#140f19; border-color:#60496d; }
html[data-theme="6"] .feedback-form input:focus, html[data-theme="6"] .feedback-form textarea:focus, html[data-theme="6"] .feedback-form select:focus { border-color:#b879cf; box-shadow:0 0 0 3px rgba(184,121,207,.14); }


@media (max-width: 700px) {
  .topbar-actions { gap:6px; }
  .style-picker label { display:none; }
  .style-picker select { min-width:140px; }
}

/* -------------------------------------------------------------------------
   v1.4 mobile layout fixes. Presentation only: roster/date/ICS logic unchanged.
   ---------------------------------------------------------------------- */
input[type="date"], input[type="number"], select { min-width:0; max-width:100%; }
input[type="date"] { display:block; -webkit-min-logical-width:0; }

@media (max-width: 600px) {
  .shell { width:calc(100% - 16px); max-width:100%; }

  .topbar-inner {
    min-height:auto;
    padding:12px 0;
    gap:10px;
    flex-wrap:wrap;
  }
  .brand-block { min-width:0; flex:1 1 170px; }
  .brand-block h1 { white-space:nowrap; }
  .topbar-actions { min-width:0; flex:0 1 auto; max-width:100%; }
  .style-picker { min-width:0; max-width:100%; }
  .style-picker select { min-width:0; width:min(42vw, 170px); max-width:100%; padding-right:28px; }

  .field, .field input, .field select { min-width:0; max-width:100%; }
  input[type="date"] { width:100%; }

  /* Fit all seven roster days on screen instead of requiring horizontal scroll. */
  .table-scroll { overflow-x:hidden; width:100%; }
  .roster-grid { min-width:0; width:100%; grid-template-columns:repeat(7, minmax(0,1fr)); }
  .day-head { min-height:46px; padding:6px 1px; }
  .day-head strong { font-size:clamp(.58rem, 2.35vw, .72rem); }
  .day-head span { font-size:clamp(.50rem, 2.05vw, .64rem); line-height:1.1; }
  .roster-cell { min-height:82px; padding:6px 1px; overflow:hidden; }
  .cell-shift { font-size:clamp(.53rem, 2.2vw, .68rem); line-height:1.08; overflow-wrap:anywhere; }
  .cell-time, .cell-time-range { font-size:clamp(.58rem, 2.35vw, .72rem); line-height:1.12; }
  .cell-duration { font-size:clamp(.43rem, 1.72vw, .54rem); line-height:1.05; }
  .cell-time-range { white-space:normal; }
  .cell-time-range .time-start, .cell-time-range .time-finish { display:block; }
  .cell-time-range .time-sep { display:none; }
  .cell-time-range .time-finish::before { content:"↳"; margin-right:1px; opacity:.72; }
  .cell-detail { font-size:clamp(.46rem, 1.9vw, .59rem); line-height:1.08; margin-top:3px; overflow-wrap:anywhere; word-break:break-word; }
  .cell-special { font-size:clamp(.65rem, 2.8vw, .9rem); }
  .cell-finish-assumed { font-size:clamp(.42rem, 1.7vw, .52rem); line-height:1.05; }
}

@media (max-width: 410px) {
  .topbar-inner { align-items:flex-start; }
  .brand-block { flex-basis:100%; }
  .topbar-actions { width:100%; justify-content:flex-start; }
  .style-picker { width:100%; }
  .style-picker select { width:100%; }
  .roster-cell { min-height:76px; }
}



/* -------------------------------------------------------------------------
   Annual leave + multi-calendar export (v1.6)
   ---------------------------------------------------------------------- */
.annual-leave-box { margin-top:18px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); overflow:hidden; }
.annual-leave-fields { padding:0 16px 16px; border-top:1px solid var(--border); padding-top:16px; }
.leave-add-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.leave-add-row .field { min-width:0; }
button.secondary { color:var(--text); background:var(--surface-2); border:1px solid var(--border); box-shadow:none; }
button.secondary:hover { filter:brightness(1.12); }
.annual-leave-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.leave-chip { display:flex; align-items:center; gap:8px; padding:8px 9px 8px 11px; border:1px solid var(--border); border-radius:999px; background:#0e1012; color:var(--text); font-size:.76rem; }
.leave-chip button { min-height:26px; width:26px; padding:0; border-radius:999px; color:var(--muted); background:transparent; border:1px solid var(--border); font-size:.9rem; line-height:1; }
.leave-empty { color:var(--muted); font-size:.78rem; }
.swatch.leave { background:var(--leave,#7650a8); }
.annual-leave-banner { min-height:118px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:7px; padding:20px; background:linear-gradient(135deg, rgba(118,80,168,.28), rgba(118,80,168,.12)); border-top:1px solid rgba(255,255,255,.04); }
.annual-leave-banner strong { font-size:clamp(1.1rem, 3vw, 1.55rem); letter-spacing:.08em; }
.annual-leave-banner span { color:var(--muted); font-size:.8rem; }
html[data-theme="1"] .annual-leave-banner { background:linear-gradient(135deg, rgba(37,215,173,.2), rgba(61,180,219,.12)); }
html[data-theme="2"] .annual-leave-banner { background:repeating-linear-gradient(135deg, #171a1d 0, #171a1d 12px, #1d2125 12px, #1d2125 24px); }
html[data-theme="3"] .annual-leave-banner { background:linear-gradient(135deg, rgba(215,173,54,.26), rgba(11,58,112,.30)); border-top-color:rgba(215,173,54,.42); }
html[data-theme="4"] .annual-leave-banner { background:linear-gradient(135deg, rgba(40,104,68,.42), rgba(239,91,42,.14)); border-top-color:rgba(239,91,42,.45); }
html[data-theme="5"] .annual-leave-banner { background:linear-gradient(135deg, rgba(207,64,70,.27), rgba(36,104,168,.20)); border-top-color:rgba(207,64,70,.40); }
html[data-theme="6"] .annual-leave-banner { background:linear-gradient(135deg, rgba(127,63,152,.34), rgba(185,135,203,.12)); border-top-color:rgba(185,135,203,.38); }
/* Annual leave stays purple in both the legend and the roster table. */
html[data-theme] .annual-leave-banner {
  background:linear-gradient(135deg, color-mix(in srgb,var(--leave,#7650a8) 42%,var(--surface)), color-mix(in srgb,var(--leave,#7650a8) 20%,var(--surface-2)));
  border-top-color:color-mix(in srgb,var(--leave,#7650a8) 58%,var(--border));
}
.file-options { margin-top:16px; min-height:0; }
.file-options label { align-items:flex-start; }
.file-options label span { display:flex; flex-direction:column; gap:2px; }
.file-options input[type="checkbox"] { margin-top:3px; }
.file-options input[disabled] + span { opacity:.48; }
.calendar-files { margin-top:16px; padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); }
.calendar-files[hidden] { display:none; }
.calendar-files-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:10px; }
.calendar-files-header p { margin:3px 0 0; color:var(--muted); font-size:.78rem; line-height:1.35; }
.calendar-file-list { display:grid; gap:9px; }
.calendar-file-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 11px; background:#0e1012; border:1px solid var(--border); border-radius:10px; }
.calendar-file-meta { min-width:0; }
.calendar-file-meta strong { display:block; font-size:.84rem; }
.calendar-file-meta small { display:block; margin-top:2px; overflow-wrap:anywhere; }
.calendar-file-row button { flex:0 0 auto; min-height:38px; padding:8px 12px; }
.calendar-file-empty { color:var(--muted); font-size:.8rem; }
html[data-theme="1"] .leave-chip, html[data-theme="1"] .calendar-file-row { background:#061418; }
html[data-theme="2"] .leave-chip, html[data-theme="2"] .calendar-file-row { background:#0b0d0f; }
html[data-theme="3"] .leave-chip, html[data-theme="3"] .calendar-file-row { background:#08182a; }
html[data-theme="4"] .leave-chip, html[data-theme="4"] .calendar-file-row { background:#1b1f21; }
html[data-theme="5"] .leave-chip, html[data-theme="5"] .calendar-file-row { background:#0d1823; }
html[data-theme="6"] .leave-chip, html[data-theme="6"] .calendar-file-row { background:#17101e; }

@media (max-width:560px) {
  .leave-add-row { grid-template-columns:1fr; }
  .leave-add-row button { width:100%; }
  .calendar-file-row { align-items:stretch; flex-direction:column; }
  .calendar-file-row button { width:100%; }
  .annual-leave-banner { min-height:96px; padding:16px 10px; }
}

/* -------------------------------------------------------------------------
   Feedback modal (v1.5)
   ---------------------------------------------------------------------- */
.feedback-topbar-btn {
  min-height:38px;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:10px;
  color:var(--text);
  background:rgba(13,14,16,.42);
  font-size:.78rem;
  font-weight:800;
  box-shadow:none;
}
.feedback-topbar-btn:hover { filter:brightness(1.12); }
.feedback-modal[hidden] { display:none; }
.feedback-modal {
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.feedback-dialog {
  width:min(560px, 100%);
  max-height:min(760px, calc(100vh - 36px));
  overflow:auto;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:0 24px 70px rgba(0,0,0,.48);
}
.feedback-dialog-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 20px 14px;
  border-bottom:1px solid var(--border);
}
.feedback-dialog-header h2 { margin:0; }
.feedback-close-btn {
  flex:0 0 auto;
  min-height:36px;
  width:36px;
  padding:0;
  border:1px solid var(--border);
  border-radius:9px;
  color:var(--text);
  background:var(--surface-2);
  font-size:1.15rem;
  line-height:1;
  box-shadow:none;
}
.feedback-form { padding:18px 20px 20px; }
.feedback-form-grid { display:grid; gap:14px; }
.feedback-form input[type="email"],
.feedback-form textarea,
.feedback-form select {
  width:100%;
  min-width:0;
  max-width:100%;
  padding:11px 12px;
  color:var(--text);
  background:#0e1012;
  border:1px solid #414750;
  border-radius:10px;
  outline:none;
  font:inherit;
}
.feedback-form input[type="email"] { min-height:44px; }
.feedback-form textarea { min-height:150px; resize:vertical; line-height:1.45; }
.feedback-form input:focus,
.feedback-form textarea:focus,
.feedback-form select:focus {
  border-color:#b676d0;
  box-shadow:0 0 0 3px rgba(182,118,208,.13);
}
.feedback-checkbox {
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.4;
}
.feedback-checkbox input { margin-top:3px; }
.feedback-note {
  margin:0;
  color:var(--muted);
  font-size:.75rem;
  line-height:1.45;
}
.feedback-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  margin-top:18px;
}
.feedback-status {
  flex:1 1 auto;
  min-height:1.3em;
  margin:0;
  font-size:.78rem;
  color:var(--muted);
}
.feedback-status.success { color:#65d99a; }
.feedback-status.error { color:#ff8d8d; }
.feedback-submit[disabled] { opacity:.58; cursor:wait; }
body.feedback-modal-open { overflow:hidden; }

html[data-theme="1"] .feedback-topbar-btn {
  border-color:rgba(53,214,208,.42);
  background:rgba(5,39,48,.72);
}
html[data-theme="1"] .feedback-form input:focus,
html[data-theme="1"] .feedback-form textarea:focus,
html[data-theme="1"] .feedback-form select:focus {
  border-color:#35d6d0;
  box-shadow:0 0 0 3px rgba(53,214,208,.15);
}
html[data-theme="2"] .feedback-topbar-btn,
html[data-theme="2"] .feedback-close-btn {
  background:#0b0d0f;
  border-color:#3f464d;
}
html[data-theme="2"] .feedback-form input[type="email"],
html[data-theme="2"] .feedback-form textarea,
html[data-theme="2"] .feedback-form select {
  background:#0b0d0f;
  border-color:#3f464d;
}
html[data-theme="2"] .feedback-form input:focus,
html[data-theme="2"] .feedback-form textarea:focus,
html[data-theme="2"] .feedback-form select:focus {
  border-color:#9ba5ad;
  box-shadow:0 0 0 3px rgba(155,165,173,.11);
}


@media (max-width:560px) {
  .feedback-topbar-btn { width:auto; max-width:100%; }
  .feedback-modal { padding:10px; align-items:end; }
  .feedback-dialog { width:100%; max-height:calc(100vh - 20px); }
  .feedback-dialog-header { padding:16px 16px 12px; }
  .feedback-form { padding:15px 16px 18px; }
  .feedback-actions { flex-direction:column; align-items:stretch; }
  .feedback-actions .feedback-submit { width:100%; }
  .feedback-status { width:100%; }
}

@media (max-width:410px) {
  .feedback-topbar-btn { flex:1 1 auto; }
}



/* -------------------------------------------------------------------------
   Calendar file actions + changelog (v1.8+)
   ---------------------------------------------------------------------- */
.calendar-file-actions { display:flex; gap:8px; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; }
.calendar-file-actions button { min-height:38px; padding:8px 12px; }
.calendar-bundle-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; margin-top:12px; padding-top:12px; border-top:1px solid var(--border); }
.calendar-bundle-actions button { min-height:40px; }
.changelog-dialog { width:min(700px, 100%); }
.changelog-body { padding:18px 20px 22px; display:grid; gap:12px; }
.changelog-entry { border:1px solid var(--border); background:var(--surface-2); border-radius:12px; padding:14px 15px; }
.changelog-entry.current { box-shadow:inset 3px 0 0 var(--accent); }
.changelog-entry-head { display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; }
.changelog-entry-head strong { font-size:1rem; }
.changelog-entry-head span { color:var(--text); font-weight:750; }
.changelog-entry-head em { margin-left:auto; color:var(--muted); font-size:.7rem; font-style:normal; text-transform:uppercase; letter-spacing:.08em; }
.changelog-entry ul { margin:9px 0 0; padding-left:19px; color:var(--muted); font-size:.84rem; line-height:1.5; }
.changelog-entry li + li { margin-top:4px; }
html[data-theme="1"] .changelog-entry.current { box-shadow:inset 3px 0 0 #38e4c9; }
html[data-theme="2"] .changelog-entry.current { box-shadow:inset 3px 0 0 #c7ced4; }
html[data-theme="3"] .changelog-entry.current { box-shadow:inset 3px 0 0 #e5b93d; }
html[data-theme="4"] .changelog-entry.current { box-shadow:inset 3px 0 0 #ef5b2a; }
html[data-theme="5"] .changelog-entry.current { box-shadow:inset 3px 0 0 #cf4046; }
html[data-theme="6"] .changelog-entry.current { box-shadow:inset 3px 0 0 #b879cf; }
@media (max-width:560px) {
  .calendar-file-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .calendar-file-actions button { width:100%; }
  .calendar-bundle-actions { display:grid; grid-template-columns:1fr; }
  .calendar-bundle-actions button { width:100%; }
  .changelog-body { padding:14px 14px 18px; }
  .changelog-entry { padding:12px; }
}


/* -------------------------------------------------------------------------
   Combined RosterBot + PayBot beta navigation and PayBot theme integration
   PayBot intentionally inherits RosterBot's seven theme variables.
   ---------------------------------------------------------------------- */
.tool-nav-btn.active { box-shadow: inset 0 0 0 2px var(--accent); }
.paybot-page { padding:24px 0 50px; }
.paybot-page .pb-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.paybot-page .pb-hero-title { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.paybot-page .pb-hero h2 { font-size:clamp(1.45rem,3.2vw,2rem); }
.paybot-page .pb-beta { display:inline-flex; align-items:center; border:1px solid var(--accent); color:var(--accent); border-radius:999px; padding:5px 9px; font-size:.7rem; font-weight:850; letter-spacing:.05em; }
.paybot-page .pb-intro { margin:5px 0 0; color:var(--muted); font-size:.88rem; }
.paybot-page .setup { padding:clamp(16px,3vw,26px); }
.paybot-page .setup-grid { display:grid; grid-template-columns:1.25fr 1.15fr 1.1fr 1fr 1fr; gap:12px; align-items:end; }
.paybot-page .field { min-width:0; }
.paybot-page .field label { display:block; color:var(--muted); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; margin:0 0 6px; }
.paybot-page .control,
.paybot-page select,
.paybot-page input[type="date"],
.paybot-page input[type="number"],
.paybot-page input[type="text"] { width:100%; min-width:0; border:1px solid var(--border); background:color-mix(in srgb,var(--surface-2) 65%,#000); color:var(--text); border-radius:10px; padding:10px 11px; font:inherit; min-height:44px; }
.paybot-page select:focus,
.paybot-page input:focus,
.paybot-page button:focus { outline:2px solid var(--accent); outline-offset:2px; }
.paybot-page .period-row { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:8px; }
.paybot-page .period-current { margin-top:7px; width:100%; justify-content:center; }
.paybot-page .entry-mode-hint.pending { color:var(--accent2); font-weight:700; }
.paybot-page .btn { border:1px solid var(--border); background:var(--surface-2); color:var(--text); border-radius:10px; padding:10px 13px; min-height:44px; font-weight:750; cursor:pointer; box-shadow:none; }
.paybot-page .btn:hover { border-color:var(--accent); }
.paybot-page .btn.primary { background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 76%,#111),var(--accent)); color:#fff; border-color:transparent; }
.paybot-page .btn.soft { background:transparent; }
.paybot-page .btn.tiny { min-height:38px; padding:6px 9px; font-size:.75rem; }
.paybot-page .subnote { font-size:.75rem; color:var(--muted); margin-top:6px; }
.paybot-page .subcontrol { margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); }
.paybot-page .subcontrol>label { font-size:.65rem; margin-bottom:5px; }
.paybot-page .subcontrol select { min-height:40px; padding:8px 10px; }
.paybot-page .rate-card { margin-top:14px; padding:13px 14px; background:var(--surface-2); border-radius:12px; border:1px solid var(--border); display:flex; justify-content:space-between; gap:14px; align-items:center; flex-wrap:wrap; }
.paybot-page .rate-main strong { font-size:1.45rem; color:var(--accent); }
.paybot-page .rate-main span { color:var(--muted); font-size:.75rem; margin-left:8px; }
.paybot-page .rate-note { color:var(--muted); font-size:.75rem; max-width:760px; }
.paybot-page .dataset-pill { display:inline-flex; border:1px solid var(--border); border-radius:999px; padding:5px 9px; color:var(--muted); font-size:.68rem; font-weight:800; }
.paybot-page .summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:16px 0; }
.paybot-page .metric { padding:15px 16px; }
.paybot-page .metric .k { font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:800; }
.paybot-page .metric .v { font-size:clamp(1.3rem,3vw,1.85rem); font-weight:850; margin-top:4px; }
.paybot-page .metric .small { font-size:.72rem; color:var(--muted); margin-top:2px; }
.paybot-page .tabs { display:flex; gap:8px; margin:14px 0; flex-wrap:wrap; }
.paybot-page .tab.active { border-color:var(--accent); color:var(--accent); }
.paybot-page .week { margin:16px 0; }
.paybot-page .week-head { display:flex; justify-content:space-between; align-items:end; gap:12px; margin-bottom:8px; }
.paybot-page .week-head h2 { margin:0; font-size:1.1rem; }
.paybot-page .week-head span { color:var(--muted); font-size:.8rem; }
.paybot-page .days { display:grid; gap:9px; }
.paybot-page .day { display:grid; grid-template-columns:118px 135px 180px minmax(300px,1fr) minmax(195px,.85fr) 118px; gap:10px; align-items:center; padding:11px 12px; background:color-mix(in srgb,var(--surface-2) 78%,#000); border:1px solid var(--border); border-radius:13px; }
.paybot-page .day.ph { border-color:#d6a93b; box-shadow:inset 4px 0 0 #d6a93b; }
.paybot-page .date strong { display:block; }
.paybot-page .date small { color:var(--muted); display:block; }
.paybot-page .holiday-badge { display:inline-block; margin-top:4px; border-radius:999px; padding:2px 7px; background:rgba(214,169,59,.12); color:#f0c85d; font-size:.64rem; font-weight:800; }
.paybot-page .shift-code { font-weight:850; }
.paybot-page .assumed { font-size:.64rem; color:#f0c85d; display:block; margin-top:2px; }
.paybot-page .master-time { font-variant-numeric:tabular-nums; color:var(--muted); font-size:.74rem; margin-top:2px; }
.paybot-page .actual-duty { position:relative; min-width:0; }
.paybot-page .actual-code-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
.paybot-page .actual-code-row input { text-transform:uppercase; }
.paybot-page .shift-suggestions { display:none; margin-top:6px; border:1px solid var(--border); border-radius:10px; overflow:hidden; background:var(--surface); box-shadow:0 10px 26px rgba(0,0,0,.24); max-height:260px; overflow-y:auto; position:relative; z-index:20; }
.paybot-page .shift-suggestions.open { display:grid; }
.paybot-page .shift-suggestion { width:100%; display:grid; grid-template-columns:minmax(70px,.7fr) minmax(115px,1fr) minmax(80px,.8fr); gap:8px; align-items:center; padding:9px 10px; border:0; border-bottom:1px solid var(--border); border-radius:0; background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.paybot-page .shift-suggestion:last-child { border-bottom:0; }
.paybot-page .shift-suggestion:hover,.paybot-page .shift-suggestion:focus { background:color-mix(in srgb,var(--accent) 12%,var(--surface)); outline:none; }
.paybot-page .shift-suggestion strong { font-size:.78rem; }
.paybot-page .shift-suggestion span { font-size:.74rem; font-variant-numeric:tabular-nums; }
.paybot-page .shift-suggestion small { color:var(--muted); font-size:.66rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.paybot-page .shift-suggest-empty { padding:9px 10px; color:var(--muted); font-size:.72rem; }
.paybot-page .times { display:grid; grid-template-columns:minmax(74px,1fr) auto minmax(74px,1fr) auto; gap:6px; align-items:center; }
.paybot-page .time24 { font-variant-numeric:tabular-nums; text-align:center; letter-spacing:.03em; }
.paybot-page .day-actions { display:flex; gap:6px; justify-content:flex-end; }
.paybot-page .editor-layout-bar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:-4px 0 12px; }
.paybot-page .editor-layout-left { display:flex; align-items:center; gap:9px; min-width:0; }
.paybot-page .editor-layout-left>span { color:var(--muted); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.paybot-page .editor-layout-toggle { width:auto; }
.paybot-page .pb-auto-next { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:.72rem; font-weight:750; white-space:nowrap; cursor:pointer; }
.paybot-page .pb-auto-next input { width:17px; height:17px; accent-color:var(--accent); }
.paybot-page .pb-compact-editor .week { margin:10px 0 14px; }
.paybot-page .pb-compact-editor .days { gap:4px; }
.paybot-page .pb-compact-day { display:block; padding:0; overflow:hidden; border-radius:10px; }
.paybot-page .pb-compact-glance { display:grid; grid-template-columns:minmax(78px,.65fr) minmax(100px,.85fr) minmax(270px,1.55fr) minmax(122px,.72fr) auto 36px; grid-template-areas:"date duty times status skip expand"; gap:7px; align-items:center; min-height:52px; padding:6px 8px; }
.paybot-page .pb-compact-glance .date { grid-area:date; min-width:0; }
.paybot-page .pb-compact-glance .date strong { font-size:.76rem; letter-spacing:.025em; }
.paybot-page .pb-compact-glance .date small { font-size:.66rem; }
.paybot-page .pb-compact-duty { grid-area:duty; min-width:0; }
.paybot-page .pb-compact-duty strong { display:block; font-size:.79rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.paybot-page .pb-compact-duty small { display:block; color:var(--muted); font-size:.63rem; margin-top:1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.paybot-page .pb-compact-inline-times { grid-area:times; display:grid; grid-template-columns:minmax(70px,1fr) 16px minmax(70px,1fr) auto auto; gap:4px; align-items:center; min-width:0; }
.paybot-page .pb-compact-inline-times .time24 { min-height:36px; padding:4px 6px; font-size:16px; font-weight:850; line-height:1.1; }
.paybot-page .pb-compact-arrow { color:var(--muted); font-weight:850; text-align:center; }
.paybot-page .pb-compact-hours { color:var(--muted); font-weight:800; font-size:.69rem; white-space:nowrap; min-width:34px; text-align:right; }
.paybot-page .pb-status-badge { grid-area:status; display:flex; align-items:center; justify-content:center; min-height:25px; min-width:0; width:auto; padding:3px 7px; border:1px solid var(--border); border-radius:999px; background:color-mix(in srgb,var(--surface) 72%,var(--bg)); color:var(--muted); font-size:.65rem; font-weight:850; line-height:1.1; text-align:center; white-space:nowrap; overflow:visible; }
.paybot-page .pb-status-badge.worked { color:var(--text); border-color:color-mix(in srgb,var(--accent) 55%,var(--border)); }
.paybot-page .pb-status-badge.or { color:var(--accent); }
.paybot-page .pb-status-badge.leave { color:#d8c6ff; border-color:#7650a8; }
.paybot-page .pb-status-badge.unpaid { color:#ffb7ad; border-color:#a85a50; }
.paybot-page .pb-compact-skip { grid-area:skip; min-height:32px!important; padding:4px 7px!important; white-space:nowrap; font-size:.68rem!important; }
.paybot-page .pb-compact-chevron { grid-area:expand; min-width:34px!important; min-height:34px!important; padding:5px 7px!important; font-size:.86rem; transition:transform .15s ease; }
.paybot-page .pb-compact-day.open .pb-compact-chevron { transform:rotate(180deg); }
.paybot-page .pb-compact-expand { padding:12px; border-top:1px dashed var(--border); }
.paybot-page .pb-compact-edit-grid { display:grid; grid-template-columns:minmax(220px,1.2fr) minmax(200px,.9fr) auto; gap:10px; align-items:center; margin-bottom:12px; }
.paybot-page .pb-compact-edit-grid .day-actions { justify-content:flex-start; }
.paybot-page .iconbtn { min-width:44px; padding:8px 10px; }
.paybot-page .quick8 { min-width:48px; min-height:40px; padding:7px 8px; white-space:nowrap; }
.paybot-page .pdt-day-btn { min-width:56px; }
.paybot-page .pdt-day-btn.active { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 18%,var(--surface-2)); color:var(--accent); }
.paybot-page .pdt-day-btn:disabled { opacity:.42; cursor:not-allowed; }
.paybot-page .details { grid-column:1/-1; border-top:1px dashed var(--border); padding-top:11px; display:none; }
.paybot-page .day.open .details { display:block; }
.paybot-page .details-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:16px; }
.paybot-page .checkrow { display:flex; align-items:center; gap:8px; min-height:38px; }
.paybot-page .checkrow input { width:18px; height:18px; }
.paybot-page .allowances { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.paybot-page .allowance { border:1px solid var(--border); border-radius:10px; padding:9px; background:color-mix(in srgb,var(--bg) 38%,transparent); }
.paybot-page .allowance .a-head { display:flex; gap:8px; align-items:flex-start; }
.paybot-page .allowance strong { font-size:.75rem; }
.paybot-page .allowance small { display:block; color:var(--muted); font-size:.68rem; }
.paybot-page .allowance .qty { margin-top:6px; display:grid; grid-template-columns:1fr 90px; gap:8px; align-items:center; }
.paybot-page .allowance .qty input { min-height:36px; padding:6px 8px; }
.paybot-page .phbox { border:1px solid #8d7535; background:rgba(214,169,59,.07); padding:10px; border-radius:10px; }
.paybot-page .phbox label { font-size:.72rem; color:var(--muted); }
.paybot-page .lookup-msg { font-size:.68rem; color:var(--muted); margin-top:5px; min-height:14px; }
.paybot-page .results { padding:16px; overflow:hidden; }
.paybot-page .pay-table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.paybot-page .pay-table th,.paybot-page .pay-table td { text-align:right; padding:9px 8px; border-bottom:1px solid var(--border); }
.paybot-page .pay-table th:first-child,.paybot-page .pay-table td:first-child { text-align:left; }
.paybot-page .pay-table th { font-size:.68rem; text-transform:uppercase; color:var(--muted); letter-spacing:.06em; }
.paybot-page .pay-table tfoot td { font-size:1.18rem; font-weight:900; border-top:2px solid var(--accent); border-bottom:0; }
.paybot-page .day-breakdown { display:grid; gap:8px; }
.paybot-page .break-row { display:grid; grid-template-columns:165px 1fr auto; gap:10px; padding:10px; border:1px solid var(--border); border-radius:10px; }
.paybot-page .break-row small { color:var(--muted); }
.paybot-page .day-total { display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-start; white-space:nowrap; }
.paybot-page .day-total small { font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:2px; }
.paybot-page .guarantee-balance-row { border-style:dashed; opacity:.9; }
.paybot-page .warning { padding:12px 14px; border:1px solid #8d7535; border-radius:12px; background:rgba(214,169,59,.07); color:var(--text); margin:14px 0; font-size:.8rem; line-height:1.45; }
.paybot-page .warning.strong-warning { border-color:#b7644d; background:rgba(183,100,77,.09); }
.paybot-page .footer { color:var(--muted); font-size:.75rem; text-align:center; padding:28px 10px; }
.paybot-page .hidden { display:none!important; }
.paybot-page .mode-note { grid-column:1/-1; padding:10px 12px; border-radius:10px; background:var(--surface-2); font-size:.75rem; color:var(--muted); }
.paybot-page .shared-note { color:var(--accent); font-weight:750; }

/* Session data controls */
.data-dialog { width:min(620px,100%); }
.data-body { padding:18px 20px 22px; line-height:1.5; }
.data-body p { margin:0 0 12px; }
.data-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.storage-health { padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:color-mix(in srgb,var(--panel) 78%,transparent); }
.danger-data-btn { border-color:#8f5353!important; }

/* Clearer cyan/green palette carried over from the early PayBot beta. */
html[data-theme="1"] .paybot-page .control, html[data-theme="1"] .paybot-page select, html[data-theme="1"] .paybot-page input[type="date"], html[data-theme="1"] .paybot-page input[type="number"], html[data-theme="1"] .paybot-page input[type="text"] { background:#06161b; border-color:#2c6674; }
html[data-theme="1"] .paybot-page .day { background:#0b2730; }
html[data-theme="1"] .paybot-page .rate-card, html[data-theme="1"] .paybot-page .mode-note, html[data-theme="1"] .paybot-page .metric { background:#0f333d; }
html[data-theme="1"] .paybot-page .rate-main strong, html[data-theme="1"] .paybot-page .tab.active, html[data-theme="1"] .paybot-page .shared-note { color:#35d6d0; }
html[data-theme="1"] .paybot-page .btn.primary { background:linear-gradient(135deg,#18aeb0,#58c978); color:#06161b; }
html[data-theme="1"] .paybot-page .btn:hover { border-color:#35d6d0; }

@media(max-width:900px){
  .paybot-page .pb-compact-glance { grid-template-columns:72px minmax(82px,.8fr) minmax(230px,1.45fr) minmax(112px,.72fr) auto 34px; gap:5px; }
  .paybot-page .pb-compact-edit-grid { grid-template-columns:1fr 1fr auto; }
}
@media(max-width:620px){
  /* Keep controls at 16px on phones so iOS Safari does not auto-zoom when they receive focus. */
  .paybot-page input, .paybot-page select { font-size:16px; }
  .paybot-page .editor-layout-bar { align-items:flex-start; flex-wrap:wrap; margin-bottom:9px; }
  .paybot-page .editor-layout-left { width:100%; justify-content:space-between; }
  .paybot-page .editor-layout-toggle { flex:1 1 auto; max-width:230px; }
  .paybot-page .pb-auto-next { margin-left:auto; }
  .paybot-page .pb-compact-editor .week { margin:8px 0 12px; }
  .paybot-page .pb-compact-editor .days { gap:3px; }
  .paybot-page .week-head { margin-bottom:5px; }
  .paybot-page .week-head h2 { font-size:1rem; }
  .paybot-page .week-head span { font-size:.7rem; }
  .paybot-page .pb-compact-glance {
    grid-template-columns:minmax(78px,.82fr) minmax(64px,.72fr) max-content 32px;
    grid-template-areas:"date duty status expand" "times times times skip";
    gap:4px 6px;
    min-height:0;
    padding:5px 6px;
  }
  .paybot-page .pb-compact-glance .date { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
  .paybot-page .pb-compact-glance .date strong { display:inline; font-size:.72rem; }
  .paybot-page .pb-compact-glance .date small { display:inline; margin:0; font-size:.66rem; }
  .paybot-page .pb-compact-duty { display:flex; align-items:baseline; gap:4px; overflow:hidden; }
  .paybot-page .pb-compact-duty strong { display:inline; font-size:.72rem; }
  .paybot-page .pb-compact-duty small { display:inline; margin:0; font-size:.6rem; }
  .paybot-page .pb-status-badge { justify-self:end; width:auto; max-width:none; min-height:23px; padding:2px 6px; font-size:.62rem; }
  .paybot-page .pb-compact-inline-times { grid-template-columns:minmax(66px,1fr) 14px minmax(66px,1fr) 42px auto; gap:3px; }
  .paybot-page .pb-compact-inline-times .time24 { min-height:34px; padding:3px 5px; font-size:16px; border-radius:8px; }
  .paybot-page .pb-compact-inline-times .quick8 { min-width:42px; min-height:34px; padding:4px 5px; font-size:.68rem; border-radius:8px; }
  .paybot-page .pb-compact-hours { min-width:32px; font-size:.64rem; }
  .paybot-page .pb-compact-skip { align-self:center; justify-self:end; min-height:34px!important; padding:4px 7px!important; border-radius:8px!important; }
  .paybot-page .pb-compact-chevron { min-width:32px!important; min-height:32px!important; border-radius:8px!important; }
  .paybot-page .pb-compact-edit-grid { grid-template-columns:1fr; }
  .paybot-page .pb-compact-edit-grid .actual-duty,.paybot-page .pb-compact-edit-grid .status-wrap,.paybot-page .pb-compact-edit-grid .day-actions { grid-column:1; }
}
@media(max-width:390px){
  .paybot-page .pb-compact-glance { grid-template-columns:minmax(72px,.8fr) minmax(58px,.7fr) max-content 30px; gap:3px 5px; padding:4px 5px; }
  .paybot-page .pb-compact-inline-times { grid-template-columns:minmax(62px,1fr) 12px minmax(62px,1fr) 40px; gap:3px; }
  .paybot-page .pb-compact-hours { display:none; }
  .paybot-page .pb-compact-inline-times .quick8 { min-width:40px; }
  .paybot-page .pb-status-badge { font-size:.6rem; padding:2px 5px; }
  .paybot-page .pb-compact-skip { font-size:.64rem!important; padding:4px 6px!important; }
}
@media(max-width:1100px){.paybot-page .setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.paybot-page .summary-grid{grid-template-columns:repeat(2,1fr)}.paybot-page .day{grid-template-columns:110px 125px 170px minmax(220px,1fr) 175px}.paybot-page .day-actions{grid-column:1/-1;justify-content:flex-start}.paybot-page .details-grid{grid-template-columns:1fr}}
@media(max-width:720px){.paybot-page{padding-top:14px}.paybot-page .pb-hero{flex-direction:column}.paybot-page .setup-grid{grid-template-columns:1fr}.paybot-page .summary-grid{grid-template-columns:1fr 1fr}.paybot-page .day{grid-template-columns:1fr 1fr;gap:9px}.paybot-page .date{grid-column:1}.paybot-page .shift{grid-column:2}.paybot-page .actual-duty,.paybot-page .actual-wrap,.paybot-page .status-wrap,.paybot-page .day-actions{grid-column:1/-1}.paybot-page .allowances{grid-template-columns:1fr}.paybot-page .details-grid{grid-template-columns:1fr}.paybot-page .pay-table{font-size:.8rem}.paybot-page .pay-table th,.paybot-page .pay-table td{padding:8px 4px}}
@media(max-width:430px){.paybot-page .summary-grid{grid-template-columns:1fr}.paybot-page .times{grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr) auto}.paybot-page .day{grid-template-columns:1fr}.paybot-page .date,.paybot-page .shift,.paybot-page .actual-duty,.paybot-page .actual-wrap,.paybot-page .status-wrap,.paybot-page .day-actions{grid-column:1}.paybot-page .break-row{grid-template-columns:1fr auto}.paybot-page .break-row>div:nth-child(2){grid-column:1/-1}}



/* -------------------------------------------------------------------------
   Design 7 — Terminal (combined beta v0.14)
   A deliberately flat, terminal-like theme: monospaced type, high contrast,
   bracket-style controls, no cards, gradients or visible button boxes.
   ---------------------------------------------------------------------- */
html[data-theme="7"] {
  --bg:#202020;
  --surface:#202020;
  --surface-2:#202020;
  --border:#5f646b;
  --text:#c4c8cf;
  --muted:#8f949c;
  --olive:#202020;
  --blue:#202020;
  --alr:#202020;
  --accent:#d9dde2;
  --accent2:#d9dde2;
  --leave:#c4c8cf;
  --danger-soft:#202020;
  --danger-border:#8f949c;
  --radius:0px;
  color-scheme:dark;
  font-family:"SFMono-Regular", "Cascadia Mono", "Cascadia Code", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
html[data-theme="7"] body {
  background:#202020;
  color:var(--text);
  font-variant-numeric:tabular-nums;
  letter-spacing:.015em;
}
html[data-theme="7"] .shell { width:min(1180px,calc(100% - 24px)); }
html[data-theme="7"] .topbar {
  background:#202020;
  border:0;
  box-shadow:none;
}
html[data-theme="7"] .topbar-inner { min-height:0; padding:14px 0 8px; align-items:flex-start; }
html[data-theme="7"] h1,
html[data-theme="7"] h2,
html[data-theme="7"] .paybot-page .pb-hero h2 {
  letter-spacing:.015em;
  font-weight:700;
}
html[data-theme="7"] h1 { font-size:clamp(1.55rem,3vw,2rem); }
html[data-theme="7"] h2 { font-size:clamp(1.05rem,2.2vw,1.35rem); }
html[data-theme="7"] .eyebrow,
html[data-theme="7"] .field > span,
html[data-theme="7"] fieldset legend,
html[data-theme="7"] .paybot-page .field label,
html[data-theme="7"] .paybot-page .metric .k,
html[data-theme="7"] .paybot-page .editor-layout-left>span {
  color:var(--muted);
  font-family:inherit;
  letter-spacing:.08em;
}
html[data-theme="7"] main,
html[data-theme="7"] .paybot-page { padding-top:12px; }

/* Flatten every container into whitespace and text. */
html[data-theme="7"] .panel,
html[data-theme="7"] .week-card,
html[data-theme="7"] .swap-box,
html[data-theme="7"] .sequence-preview,
html[data-theme="7"] .calendar-files,
html[data-theme="7"] .calendar-file-row,
html[data-theme="7"] .feedback-dialog,
html[data-theme="7"] .changelog-entry,
html[data-theme="7"] .data-dialog,
html[data-theme="7"] .storage-health,
html[data-theme="7"] .paybot-page .setup,
html[data-theme="7"] .paybot-page .rate-card,
html[data-theme="7"] .paybot-page .metric,
html[data-theme="7"] .paybot-page .results,
html[data-theme="7"] .paybot-page .day,
html[data-theme="7"] .paybot-page .pb-compact-day,
html[data-theme="7"] .paybot-page .allowance,
html[data-theme="7"] .paybot-page .phbox,
html[data-theme="7"] .paybot-page .warning,
html[data-theme="7"] .paybot-page .mode-note,
html[data-theme="7"] .paybot-page .break-row,
html[data-theme="7"] .paybot-page .shift-suggestions,
html[data-theme="7"] .roster-view-toggle,
html[data-theme="7"] .paybot-page .editor-layout-toggle {
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
html[data-theme="7"] .panel,
html[data-theme="7"] .paybot-page .setup,
html[data-theme="7"] .paybot-page .results { padding-left:0; padding-right:0; }
html[data-theme="7"] .week-card-header,
html[data-theme="7"] .compact-week .week-card-header,
html[data-theme="7"] .feedback-dialog-header,
html[data-theme="7"] .calendar-bundle-actions,
html[data-theme="7"] .paybot-page .details,
html[data-theme="7"] .paybot-page .pb-compact-expand,
html[data-theme="7"] .paybot-page .subcontrol {
  background:transparent !important;
  border:0 !important;
}
html[data-theme="7"] .week-card-header { padding-left:0; padding-right:0; }

/* Buttons become text commands: [Load], [Skip], [Compact], etc. */
html[data-theme="7"] button,
html[data-theme="7"] .feedback-topbar-btn,
html[data-theme="7"] .paybot-page .btn,
html[data-theme="7"] .roster-view-toggle button,
html[data-theme="7"] .paybot-page .tab {
  appearance:none;
  -webkit-appearance:none;
  min-height:0;
  padding:4px 2px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--text) !important;
  box-shadow:none !important;
  filter:none !important;
  font:inherit;
  font-weight:600;
  text-decoration:none;
}
html[data-theme="7"] button::before { content:"["; color:var(--muted); margin-right:.18em; }
html[data-theme="7"] button::after  { content:"]"; color:var(--muted); margin-left:.18em; }
html[data-theme="7"] button:hover,
html[data-theme="7"] button:focus-visible,
html[data-theme="7"] .paybot-page .tab.active,
html[data-theme="7"] .roster-view-toggle button[aria-pressed="true"] {
  color:#ffffff !important;
  outline:0 !important;
  text-decoration:underline;
  text-underline-offset:3px;
}
html[data-theme="7"] .paybot-page .pb-compact-chevron::before,
html[data-theme="7"] .paybot-page .pb-compact-chevron::after { content:""; margin:0; }
html[data-theme="7"] .paybot-page .pb-compact-chevron {
  color:var(--muted) !important;
  min-width:2ch !important;
  width:auto !important;
  padding:2px !important;
}
html[data-theme="7"] .privacy-pill,
html[data-theme="7"] .paybot-page .pb-beta,
html[data-theme="7"] .paybot-page .dataset-pill,
html[data-theme="7"] .compact-badge,
html[data-theme="7"] .paybot-page .pb-status-badge,
html[data-theme="7"] .holiday-badge,
html[data-theme="7"] .leave-chip {
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding-left:0;
  padding-right:0;
}
html[data-theme="7"] .privacy-pill::before { content:"["; color:var(--muted); }
html[data-theme="7"] .privacy-pill::after { content:"]"; color:var(--muted); }
html[data-theme="7"] .paybot-page .pb-status-badge::before { content:""; }
html[data-theme="7"] .paybot-page .pb-status-badge::after { content:""; }
html[data-theme="7"] .paybot-page .pb-status-badge.worked { color:var(--text); }
html[data-theme="7"] .paybot-page .pb-status-badge.or,
html[data-theme="7"] .paybot-page .pb-status-badge.leave,
html[data-theme="7"] .paybot-page .pb-status-badge.unpaid { color:var(--muted); }

/* Inputs/selects use open square-bracket corners instead of boxes. */
html[data-theme="7"] input[type="date"],
html[data-theme="7"] input[type="number"],
html[data-theme="7"] input[type="text"],
html[data-theme="7"] input[type="email"],
html[data-theme="7"] textarea,
html[data-theme="7"] select,
html[data-theme="7"] .paybot-page .control,
html[data-theme="7"] .feedback-form input[type="email"],
html[data-theme="7"] .feedback-form textarea,
html[data-theme="7"] .feedback-form select {
  color:var(--text) !important;
  background-color:transparent !important;
  background-image:
    linear-gradient(var(--muted),var(--muted)),
    linear-gradient(var(--muted),var(--muted)),
    linear-gradient(var(--muted),var(--muted)),
    linear-gradient(var(--muted),var(--muted)),
    linear-gradient(var(--muted),var(--muted)),
    linear-gradient(var(--muted),var(--muted));
  background-repeat:no-repeat;
  background-position:left top,left top,left bottom,right top,right top,right bottom;
  background-size:1px 100%,7px 1px,7px 1px,1px 100%,7px 1px,7px 1px;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:0 !important;
  min-height:34px;
  padding:5px 9px;
  font-family:inherit !important;
}
html[data-theme="7"] input:focus,
html[data-theme="7"] textarea:focus,
html[data-theme="7"] select:focus {
  color:#fff !important;
  background-image:
    linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),
    linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff) !important;
}
html[data-theme="7"] input::placeholder,
html[data-theme="7"] textarea::placeholder { color:#70757c; opacity:1; }
html[data-theme="7"] input[type="checkbox"],
html[data-theme="7"] input[type="radio"] { accent-color:#c4c8cf; }

/* RosterBot calendar and compact views: no cell boxes, just aligned text. */
html[data-theme="7"] .day-head,
html[data-theme="7"] .roster-cell,
html[data-theme="7"] .roster-cell.off,
html[data-theme="7"] .roster-cell.alr,
html[data-theme="7"] .compact-day,
html[data-theme="7"] .compact-day[open],
html[data-theme="7"] .annual-leave-banner {
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  color:var(--text) !important;
}
html[data-theme="7"] .day-column,
html[data-theme="7"] .compact-day { border:0 !important; }
html[data-theme="7"] .day-head { min-height:36px; padding:3px 2px; }
html[data-theme="7"] .roster-cell { min-height:72px; padding:5px 3px; }
html[data-theme="7"] .cell-time-range,
html[data-theme="7"] .cell-time,
html[data-theme="7"] .line-label .roster-name,
html[data-theme="7"] .paybot-page .rate-main strong,
html[data-theme="7"] .paybot-page .shared-note { color:var(--text) !important; }
html[data-theme="7"] .cell-detail,
html[data-theme="7"] .wc-label,
html[data-theme="7"] .compact-job-meta,
html[data-theme="7"] .compact-approx { color:var(--muted) !important; }
html[data-theme="7"] .swatch { display:none; }
html[data-theme="7"] .legend span::before { content:"- "; color:var(--muted); }
html[data-theme="7"] .annual-leave-banner { color:#d5c8df !important; }
html[data-theme="7"] .compact-day summary { min-height:0; padding:5px 0; }
html[data-theme="7"] .compact-details { padding:2px 0 8px; border:0; }
html[data-theme="7"] .compact-detail { padding-top:5px; }

/* PayBot compact editor: terminal rows instead of cards. */
html[data-theme="7"] .paybot-page .pb-compact-editor .days { gap:0; }
html[data-theme="7"] .paybot-page .pb-compact-day { overflow:visible; }
html[data-theme="7"] .paybot-page .pb-compact-glance {
  min-height:0;
  padding:4px 0;
  gap:3px 9px;
}
html[data-theme="7"] .paybot-page .pb-compact-glance .date strong,
html[data-theme="7"] .paybot-page .pb-compact-duty strong { font-weight:600; }
html[data-theme="7"] .paybot-page .pb-compact-duty small,
html[data-theme="7"] .paybot-page .pb-compact-glance .date small { color:var(--muted); }
html[data-theme="7"] .paybot-page .pb-compact-inline-times .time24 {
  min-height:30px;
  padding:3px 8px;
  font-size:16px;
  font-weight:500;
}
html[data-theme="7"] .paybot-page .pb-compact-inline-times .quick8,
html[data-theme="7"] .paybot-page .pb-compact-skip { min-height:0 !important; padding:3px 1px !important; }
html[data-theme="7"] .paybot-page .pb-compact-arrow,
html[data-theme="7"] .paybot-page .pb-compact-hours { color:var(--muted); }
html[data-theme="7"] .paybot-page .pb-compact-expand { padding:5px 0 10px; }
html[data-theme="7"] .paybot-page .pb-compact-day.open { margin-bottom:6px; }
html[data-theme="7"] .paybot-page .allowances { gap:4px 16px; }
html[data-theme="7"] .paybot-page .allowance { padding:5px 0; }
html[data-theme="7"] .paybot-page .shift-suggestions { padding:4px 0; }
html[data-theme="7"] .paybot-page .shift-suggestion { border:0; padding:5px 0; }
html[data-theme="7"] .paybot-page .shift-suggestion:hover,
html[data-theme="7"] .paybot-page .shift-suggestion:focus { background:transparent; color:#fff; text-decoration:underline; }

/* Pay figures read like a terminal printout. */
html[data-theme="7"] .paybot-page .summary-grid { gap:8px 22px; }
html[data-theme="7"] .paybot-page .metric { padding:4px 0; }
html[data-theme="7"] .paybot-page .metric .v { font-size:1.15rem; font-weight:650; }
html[data-theme="7"] .paybot-page .pay-table th,
html[data-theme="7"] .paybot-page .pay-table td { border:0; padding:5px 4px; }
html[data-theme="7"] .paybot-page .pay-table tfoot td { border:0; }
html[data-theme="7"] .paybot-page .break-row { padding:6px 0; }
html[data-theme="7"] .paybot-page .day-total { font-weight:600; }
html[data-theme="7"] .paybot-page .warning,
html[data-theme="7"] .paybot-page .mode-note { padding:6px 0; color:var(--muted); }
html[data-theme="7"] .paybot-page .warning::before { content:"! "; color:var(--text); }

/* Dialogs keep an overlay, but the content itself stays plain text. */
html[data-theme="7"] .feedback-modal { background:rgba(0,0,0,.82); backdrop-filter:none; -webkit-backdrop-filter:none; }
html[data-theme="7"] .feedback-dialog { background:#202020 !important; padding:0 10px; }
html[data-theme="7"] .changelog-entry { padding:6px 0; }
html[data-theme="7"] .changelog-entry.current { box-shadow:none !important; }
html[data-theme="7"] .changelog-entry.current::before { content:"> "; color:#fff; }
html[data-theme="7"] .changelog-entry-head em { color:var(--muted); }

@media (max-width:620px) {
  html[data-theme="7"] .shell { width:calc(100% - 20px); }
  html[data-theme="7"] .topbar-inner { padding-top:9px; }
  html[data-theme="7"] .topbar-actions { gap:4px 10px; }
  html[data-theme="7"] .style-picker { width:100%; align-items:center; }
  html[data-theme="7"] .style-picker select { min-height:30px; padding-top:3px; padding-bottom:3px; }
  html[data-theme="7"] .paybot-page .pb-compact-glance {
    grid-template-columns:minmax(78px,.85fr) minmax(62px,.72fr) max-content 20px;
    grid-template-areas:"date duty status expand" "times times times skip";
    gap:1px 7px;
    padding:3px 0;
  }
  html[data-theme="7"] .paybot-page .pb-compact-inline-times {
    grid-template-columns:minmax(64px,1fr) 12px minmax(64px,1fr) 38px auto;
    gap:2px;
  }
  html[data-theme="7"] .paybot-page .pb-status-badge { justify-self:start; font-size:.68rem; min-height:0; padding:0; }
  html[data-theme="7"] .paybot-page .pb-compact-chevron { justify-self:end; min-height:0 !important; min-width:16px !important; }
  html[data-theme="7"] .paybot-page .pb-compact-skip { justify-self:end; font-size:.68rem !important; }
  html[data-theme="7"] .paybot-page .pb-compact-hours { font-size:.66rem; }
  html[data-theme="7"] .paybot-page .week-head { margin-top:8px; }
  html[data-theme="7"] .paybot-page .week-head h2 { font-size:.9rem; }
  html[data-theme="7"] .paybot-page .editor-layout-bar { margin-bottom:4px; }
  html[data-theme="7"] .summary-grid { margin-top:8px; margin-bottom:8px; }
}


/* -------------------------------------------------------------------------
   Design 7 — Terminal (v0.14 hard override)
   One typeface, one text size, one flat canvas. No cards, pills or chrome.
   ---------------------------------------------------------------------- */
html[data-theme="7"],
html[data-theme="7"] body,
html[data-theme="7"] body * {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
  font-size: 16px !important;
  line-height: 1.34 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}
html[data-theme="7"] {
  --bg:#202020;
  --surface:#202020;
  --surface-2:#202020;
  --border:#202020;
  --text:#c4c8cf;
  --muted:#858a92;
  --accent:#e1e4e8;
  --accent2:#e1e4e8;
  --leave:#c4c8cf;
  --radius:0;
  color-scheme:dark;
}
html[data-theme="7"] body {
  background:#202020 !important;
  color:#c4c8cf !important;
  font-variant-numeric: tabular-nums slashed-zero;
}
html[data-theme="7"] strong,
html[data-theme="7"] b,
html[data-theme="7"] h1,
html[data-theme="7"] h2,
html[data-theme="7"] h3,
html[data-theme="7"] legend { font-weight:600 !important; }
html[data-theme="7"] h1,
html[data-theme="7"] h2,
html[data-theme="7"] h3,
html[data-theme="7"] p { margin-top:0; }
html[data-theme="7"] h1,
html[data-theme="7"] h2,
html[data-theme="7"] h3 { margin-bottom:.45em; }
html[data-theme="7"] small,
html[data-theme="7"] .muted,
html[data-theme="7"] .subnote,
html[data-theme="7"] .lookup-msg { color:#858a92 !important; opacity:1 !important; }
html[data-theme="7"] .shell {
  width:min(112ch, calc(100% - 2ch)) !important;
  max-width:none !important;
  margin-inline:auto !important;
}
html[data-theme="7"] main,
html[data-theme="7"] .paybot-page { padding:1ch 0 3ch !important; }

/* Header = plain terminal heading + text commands. */
html[data-theme="7"] .topbar,
html[data-theme="7"] .topbar-inner,
html[data-theme="7"] .topbar-actions,
html[data-theme="7"] .brand-block,
html[data-theme="7"] .style-picker {
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html[data-theme="7"] .topbar-inner {
  min-height:0 !important;
  padding:1ch 0 !important;
  gap:1ch 2ch !important;
  align-items:flex-start !important;
}
html[data-theme="7"] .topbar-actions { gap:.2ch 1.4ch !important; align-items:center !important; }
html[data-theme="7"] .brand-block .eyebrow { display:none !important; }
html[data-theme="7"] .brand-block h1,
html[data-theme="7"] .paybot-page .pb-hero-title h2 {
  font-size:0 !important;
  margin:0 !important;
  white-space:nowrap;
}
html[data-theme="7"] .brand-block h1::after { content:"ROSTERBOT"; font-size:16px !important; color:#e1e4e8; }
html[data-theme="7"] .paybot-page .pb-hero-title h2::after { content:"PAYBOT"; font-size:16px !important; color:#e1e4e8; }
html[data-theme="7"] .privacy-pill { color:#858a92 !important; padding:0 !important; white-space:normal !important; }
html[data-theme="7"] .privacy-pill::before { content:"["; }
html[data-theme="7"] .privacy-pill::after { content:"]"; }
html[data-theme="7"] .style-picker label { color:#858a92 !important; }

/* Strip all visual containers. */
html[data-theme="7"] .panel,
html[data-theme="7"] .week-card,
html[data-theme="7"] .week-card-header,
html[data-theme="7"] .swap-box,
html[data-theme="7"] .sequence-preview,
html[data-theme="7"] .calendar-files,
html[data-theme="7"] .calendar-file-row,
html[data-theme="7"] .feedback-dialog,
html[data-theme="7"] .changelog-entry,
html[data-theme="7"] .data-dialog,
html[data-theme="7"] .storage-health,
html[data-theme="7"] .compact-day,
html[data-theme="7"] .compact-details,
html[data-theme="7"] .annual-leave-banner,
html[data-theme="7"] .roster-view-toggle,
html[data-theme="7"] .paybot-page .setup,
html[data-theme="7"] .paybot-page .rate-card,
html[data-theme="7"] .paybot-page .metric,
html[data-theme="7"] .paybot-page .results,
html[data-theme="7"] .paybot-page .day,
html[data-theme="7"] .paybot-page .pb-compact-day,
html[data-theme="7"] .paybot-page .pb-compact-expand,
html[data-theme="7"] .paybot-page .details,
html[data-theme="7"] .paybot-page .details-grid,
html[data-theme="7"] .paybot-page .allowance,
html[data-theme="7"] .paybot-page .phbox,
html[data-theme="7"] .paybot-page .warning,
html[data-theme="7"] .paybot-page .mode-note,
html[data-theme="7"] .paybot-page .break-row,
html[data-theme="7"] .paybot-page .shift-suggestions,
html[data-theme="7"] .paybot-page .subcontrol,
html[data-theme="7"] .paybot-page .editor-layout-toggle,
html[data-theme="7"] fieldset {
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}
html[data-theme="7"] .panel,
html[data-theme="7"] .paybot-page .setup,
html[data-theme="7"] .paybot-page .results,
html[data-theme="7"] fieldset { padding:0 !important; }

/* Text commands. No button chrome at all. */
html[data-theme="7"] button,
html[data-theme="7"] .btn,
html[data-theme="7"] .feedback-topbar-btn,
html[data-theme="7"] .paybot-page .tab,
html[data-theme="7"] .roster-view-toggle button {
  appearance:none !important;
  -webkit-appearance:none !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:#c4c8cf !important;
  min-width:0 !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  font-weight:400 !important;
  filter:none !important;
  white-space:nowrap;
}
html[data-theme="7"] button::before { content:"[" !important; color:#858a92 !important; margin:0 !important; }
html[data-theme="7"] button::after { content:"]" !important; color:#858a92 !important; margin:0 !important; }
html[data-theme="7"] button:hover,
html[data-theme="7"] button:focus-visible,
html[data-theme="7"] button.active,
html[data-theme="7"] .paybot-page .tab.active,
html[data-theme="7"] .roster-view-toggle button[aria-pressed="true"] {
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:2px !important;
  outline:0 !important;
}
html[data-theme="7"] button:disabled { color:#666b72 !important; opacity:1 !important; text-decoration:none !important; }
html[data-theme="7"] .paybot-page .pb-compact-chevron::before,
html[data-theme="7"] .paybot-page .pb-compact-chevron::after { content:"" !important; }
html[data-theme="7"] .paybot-page .pb-compact-chevron { color:#858a92 !important; width:2ch !important; }
html[data-theme="7"] #paybotNavBtn,
html[data-theme="7"] #rosterbotNavBtn { font-size:0 !important; }
html[data-theme="7"] #paybotNavBtn::before { content:"[PAYBOT BETA]" !important; font-size:16px !important; color:#c4c8cf !important; }
html[data-theme="7"] #paybotNavBtn::after { content:"" !important; }
html[data-theme="7"] #rosterbotNavBtn::before { content:"[ROSTERBOT]" !important; font-size:16px !important; color:#c4c8cf !important; }
html[data-theme="7"] #rosterbotNavBtn::after { content:"" !important; }

/* All form controls use the same terminal text. Bracket corners are the only boundary. */
html[data-theme="7"] input[type="date"],
html[data-theme="7"] input[type="number"],
html[data-theme="7"] input[type="text"],
html[data-theme="7"] input[type="email"],
html[data-theme="7"] textarea,
html[data-theme="7"] select,
html[data-theme="7"] .control {
  color:#c4c8cf !important;
  background-color:transparent !important;
  background-image:
    linear-gradient(#858a92,#858a92), linear-gradient(#858a92,#858a92), linear-gradient(#858a92,#858a92),
    linear-gradient(#858a92,#858a92), linear-gradient(#858a92,#858a92), linear-gradient(#858a92,#858a92) !important;
  background-repeat:no-repeat !important;
  background-position:left top,left top,left bottom,right top,right top,right bottom !important;
  background-size:1px 100%,.65ch 1px,.65ch 1px,1px 100%,.65ch 1px,.65ch 1px !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:0 !important;
  min-height:0 !important;
  height:auto !important;
  padding:.12em .65ch !important;
  font-weight:400 !important;
}
html[data-theme="7"] textarea { min-height:6em !important; }
html[data-theme="7"] input:focus,
html[data-theme="7"] textarea:focus,
html[data-theme="7"] select:focus {
  color:#fff !important;
  background-image:
    linear-gradient(#e1e4e8,#e1e4e8), linear-gradient(#e1e4e8,#e1e4e8), linear-gradient(#e1e4e8,#e1e4e8),
    linear-gradient(#e1e4e8,#e1e4e8), linear-gradient(#e1e4e8,#e1e4e8), linear-gradient(#e1e4e8,#e1e4e8) !important;
}
html[data-theme="7"] input::placeholder,
html[data-theme="7"] textarea::placeholder { color:#777c84 !important; opacity:1 !important; }
html[data-theme="7"] input[type="checkbox"],
html[data-theme="7"] input[type="radio"] { width:1em !important; height:1em !important; accent-color:#c4c8cf; }

/* Pills/badges become plain words. */
html[data-theme="7"] .pb-beta,
html[data-theme="7"] .dataset-pill,
html[data-theme="7"] .compact-badge,
html[data-theme="7"] .pb-status-badge,
html[data-theme="7"] .holiday-badge,
html[data-theme="7"] .leave-chip,
html[data-theme="7"] .privacy-pill {
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
html[data-theme="7"] .pb-beta { color:#858a92 !important; padding:0 !important; }
html[data-theme="7"] .pb-beta::before { content:"["; }
html[data-theme="7"] .pb-beta::after { content:"]"; }
html[data-theme="7"] .pb-status-badge,
html[data-theme="7"] .pb-status-badge.worked,
html[data-theme="7"] .pb-status-badge.or,
html[data-theme="7"] .pb-status-badge.leave,
html[data-theme="7"] .pb-status-badge.unpaid { color:#c4c8cf !important; padding:0 !important; }

/* Roster output = plain rows. */
html[data-theme="7"] .day-head,
html[data-theme="7"] .roster-cell,
html[data-theme="7"] .roster-cell.off,
html[data-theme="7"] .roster-cell.alr,
html[data-theme="7"] .compact-day,
html[data-theme="7"] .annual-leave-banner {
  background:transparent !important;
  border:0 !important;
  color:#c4c8cf !important;
  box-shadow:none !important;
}
html[data-theme="7"] .day-column { border:0 !important; }
html[data-theme="7"] .day-head,
html[data-theme="7"] .roster-cell { min-height:0 !important; padding:.25em .35ch !important; }
html[data-theme="7"] .compact-day summary { padding:.18em 0 !important; min-height:0 !important; }
html[data-theme="7"] .compact-details { padding:.2em 0 .6em 2ch !important; }
html[data-theme="7"] .swatch { display:none !important; }
html[data-theme="7"] .legend { gap:.3em 2ch !important; }
html[data-theme="7"] .legend span::before { content:"- " !important; color:#858a92 !important; }
html[data-theme="7"] .cell-time-range,
html[data-theme="7"] .cell-time,
html[data-theme="7"] .line-label .roster-name { color:#c4c8cf !important; }
html[data-theme="7"] .annual-leave-banner { color:#c4c8cf !important; }

/* PayBot header/setup/results are text records, not dashboard cards. */
html[data-theme="7"] .paybot-page .pb-hero,
html[data-theme="7"] .paybot-page .setup-grid,
html[data-theme="7"] .paybot-page .summary-grid,
html[data-theme="7"] .paybot-page .editor-layout-bar,
html[data-theme="7"] .paybot-page .week-head { gap:.35em 2ch !important; }
html[data-theme="7"] .paybot-page .pb-hero { margin-bottom:1em !important; }
html[data-theme="7"] .paybot-page .metric { padding:0 !important; }
html[data-theme="7"] .paybot-page .metric .k,
html[data-theme="7"] .paybot-page .metric .v { display:inline !important; font-weight:400 !important; }
html[data-theme="7"] .paybot-page .metric .k::after { content:"  "; }
html[data-theme="7"] .paybot-page .metric .v { color:#e1e4e8 !important; }
html[data-theme="7"] .paybot-page .rate-main strong { color:#e1e4e8 !important; font-weight:600 !important; }

/* Compact PayBot = dense terminal rows. */
html[data-theme="7"] .paybot-page .pb-compact-editor .days { gap:0 !important; }
html[data-theme="7"] .paybot-page .pb-compact-day { margin:0 !important; padding:0 !important; overflow:visible !important; }
html[data-theme="7"] .paybot-page .pb-compact-glance {
  min-height:0 !important;
  padding:.22em 0 !important;
  gap:.05em .8ch !important;
  align-items:center !important;
}
html[data-theme="7"] .paybot-page .pb-compact-glance .date,
html[data-theme="7"] .paybot-page .pb-compact-duty { min-width:0 !important; }
html[data-theme="7"] .paybot-page .pb-compact-glance .date strong,
html[data-theme="7"] .paybot-page .pb-compact-glance .date small,
html[data-theme="7"] .paybot-page .pb-compact-duty strong,
html[data-theme="7"] .paybot-page .pb-compact-duty small { display:inline !important; margin:0 !important; font-weight:400 !important; color:#c4c8cf !important; }
html[data-theme="7"] .paybot-page .pb-compact-glance .date small::before { content:" "; }
html[data-theme="7"] .paybot-page .pb-compact-duty small { display:none !important; }
html[data-theme="7"] .paybot-page .pb-compact-inline-times { gap:.15em .5ch !important; align-items:center !important; }
html[data-theme="7"] .paybot-page .pb-compact-inline-times .time24 {
  width:8ch !important;
  min-width:0 !important;
  padding:.08em .45ch !important;
  text-align:center !important;
  font-weight:400 !important;
}
html[data-theme="7"] .paybot-page .pb-compact-arrow,
html[data-theme="7"] .paybot-page .pb-compact-hours { color:#c4c8cf !important; }
html[data-theme="7"] .paybot-page .pb-compact-inline-times .quick8,
html[data-theme="7"] .paybot-page .pb-compact-skip { padding:0 !important; }
html[data-theme="7"] .paybot-page .pb-compact-expand { padding:.4em 0 .8em 2ch !important; }
html[data-theme="7"] .paybot-page .allowances { gap:.25em 2ch !important; }
html[data-theme="7"] .paybot-page .allowance { padding:.15em 0 !important; }
html[data-theme="7"] .paybot-page .shift-suggestion { border:0 !important; padding:.15em 0 !important; }

/* Payroll output should look like a terminal printout. */
html[data-theme="7"] .paybot-page .pay-table {
  border-collapse:collapse !important;
  width:100% !important;
}
html[data-theme="7"] .paybot-page .pay-table th,
html[data-theme="7"] .paybot-page .pay-table td,
html[data-theme="7"] .paybot-page .pay-table tfoot td {
  border:0 !important;
  padding:.12em .5ch !important;
  background:transparent !important;
}
html[data-theme="7"] .paybot-page .pay-table th { color:#858a92 !important; font-weight:400 !important; }
html[data-theme="7"] .paybot-page .break-row { padding:.2em 0 !important; }
html[data-theme="7"] .paybot-page .day-total { color:#e1e4e8 !important; font-weight:600 !important; }
html[data-theme="7"] .paybot-page .warning,
html[data-theme="7"] .paybot-page .mode-note { color:#858a92 !important; padding:.3em 0 !important; }
html[data-theme="7"] .paybot-page .warning::before { content:"! " !important; color:#c4c8cf !important; }

/* Dialog overlay is allowed; dialog itself is still terminal text. */
html[data-theme="7"] .feedback-modal { background:rgba(0,0,0,.86) !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
html[data-theme="7"] .feedback-dialog { background:#202020 !important; padding:1ch !important; }
html[data-theme="7"] #fatalError,
html[data-theme="7"] noscript div { font-family:inherit !important; border-radius:0 !important; }

/* Footer contains no emoji in terminal mode. */
html[data-theme="7"] .footer { font-size:0 !important; color:#858a92 !important; }
html[data-theme="7"] .footer::after { content:"ROSTERBOT + PAYBOT BETA v0.29.1 / LOCAL-FIRST / AUSTRALIA-MELBOURNE"; font-size:16px !important; }

@media (max-width:620px) {
  html[data-theme="7"] .shell { width:calc(100% - 2ch) !important; }
  html[data-theme="7"] .topbar-inner { display:block !important; }
  html[data-theme="7"] .topbar-actions { margin-top:.4em !important; display:flex !important; flex-wrap:wrap !important; }
  html[data-theme="7"] .style-picker { width:100% !important; display:grid !important; grid-template-columns:max-content minmax(0,1fr) !important; gap:1ch !important; }
  html[data-theme="7"] .paybot-page .summary-grid { grid-template-columns:1fr !important; gap:.15em !important; }
  html[data-theme="7"] .paybot-page .pb-compact-glance {
    grid-template-columns:10ch minmax(6ch,1fr) max-content 2ch !important;
    grid-template-areas:"date duty status expand" "times times times skip" !important;
    gap:.05em .6ch !important;
  }
  html[data-theme="7"] .paybot-page .pb-compact-inline-times {
    grid-template-columns:8ch 2ch 8ch 5ch auto !important;
    gap:.1em .35ch !important;
  }
  html[data-theme="7"] .paybot-page .pb-status-badge { justify-self:end !important; white-space:nowrap !important; }
  html[data-theme="7"] .paybot-page .pb-compact-skip { justify-self:end !important; }
  html[data-theme="7"] .paybot-page .pb-compact-chevron { justify-self:end !important; }
  html[data-theme="7"] .paybot-page .week-head { display:flex !important; flex-wrap:wrap !important; justify-content:space-between !important; }
  html[data-theme="7"] .paybot-page .setup-grid { grid-template-columns:1fr !important; }
}

@media (max-width:400px) {
  html[data-theme="7"],
  html[data-theme="7"] body,
  html[data-theme="7"] body * { font-size:16px !important; }
  html[data-theme="7"] .paybot-page .pb-compact-glance {
    grid-template-columns:9ch minmax(5ch,1fr) max-content 2ch !important;
  }
  html[data-theme="7"] .paybot-page .pb-compact-inline-times {
    grid-template-columns:7.4ch 1.4ch 7.4ch 4.6ch auto !important;
  }
}


/* v0.15 personal roster diary */
.setup-heading-actions{display:flex;gap:12px;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap}.setup-heading-actions .muted{max-width:520px;margin:0}.local-data-notice{margin:0 0 18px;padding:12px 14px;border:1px dashed var(--border);border-radius:10px;background:rgba(255,255,255,.025);font-size:.92rem}.text-action{display:inline;border:0;background:none;color:var(--accent);padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.timeline-list{display:grid;gap:10px;margin:14px 0 22px}.timeline-entry{padding:12px 0;border-bottom:1px solid var(--border)}.timeline-entry:last-child{border-bottom:0}.timeline-entry-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.timeline-entry strong{display:block}.timeline-entry code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}.timeline-entry .actions{margin-top:8px}.timeline-add{border-top:1px solid var(--border);padding-top:16px}.roster-builder-dialog,.day-editor-dialog{width:min(920px,calc(100vw - 24px))}.week-override-dialog{width:min(620px,calc(100vw - 24px))}.day-notes-field textarea{width:100%}.actual-marker{display:inline-block;margin-left:5px;font-weight:800}.holiday-name{display:block;font-size:.72em;line-height:1.15;margin-top:2px;opacity:.88}.week-warning{display:block;font-size:.76rem;font-weight:700;color:#ffd27a;margin-top:4px}.week-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.week-change-btn{font-size:.78rem;padding:4px 7px}.actual-roster-note{font-size:.72rem;opacity:.8;margin-top:3px}.backup-reminder{margin:10px 0 18px;padding:10px 12px;border-left:3px solid #e9b949;background:rgba(233,185,73,.08)}.amended-rostered{text-decoration:line-through;opacity:.68}.actual-emphasis{font-weight:800}.timeline-active-note{margin-top:8px;font-size:.84rem}.future-roster-warning{border-top:1px dashed rgba(255,210,122,.45)}
html[data-theme="7"] .local-data-notice,html[data-theme="7"] .timeline-entry,html[data-theme="7"] .timeline-add{border-radius:0!important;background:transparent!important;border-color:#54585c!important}html[data-theme="7"] .text-action,html[data-theme="7"] .week-change-btn{color:#e9ecef!important;text-decoration:none!important}html[data-theme="7"] .text-action::before{content:"["}html[data-theme="7"] .text-action::after{content:"]"}html[data-theme="7"] .week-warning{color:#e9ecef!important}html[data-theme="7"] .holiday-name{font-size:16px!important;opacity:.72!important}html[data-theme="7"] .actual-marker{font-size:16px!important}
@media(max-width:720px){.setup-heading-actions{justify-content:flex-start}.roster-builder-dialog,.day-editor-dialog{width:calc(100vw - 12px)}.timeline-entry-head{display:block}.week-header-actions{width:100%;justify-content:flex-start}}


/* v0.16 diary-first navigation + pay-cycle summaries */
.diary-nav-panel{margin-bottom:18px}.diary-nav-grid{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr);gap:12px}.diary-nav-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.diary-current{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap}.diary-current strong{font-size:1.02rem}.setup-collapsed-note{font-size:.83rem;color:var(--muted)}.range-outside{opacity:.32}.today-marker{outline:2px solid color-mix(in srgb,var(--accent) 65%,transparent);outline-offset:-2px}.today-tag{display:inline-block;margin-left:5px;font-size:.64rem;font-weight:800;letter-spacing:.05em;color:var(--accent)}
/* v0.17 quick/basic + personal-diary experiences */
.experience-panel{margin-bottom:18px}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.experience-choice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-height:82px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);box-shadow:none}.experience-choice strong{font-size:1rem}.experience-choice span{font-size:.78rem;line-height:1.35;color:var(--muted);font-weight:500}.experience-choice.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.experience-status{margin-top:10px;color:var(--muted);font-size:.8rem}.quick-convert-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.quick-convert-note{font-size:.78rem;color:var(--muted);max-width:620px}.timeline-empty{padding:14px 0;color:var(--muted)}.timeline-helper-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.timeline-entry-body{display:grid;gap:5px;min-width:0}.timeline-entry-type{display:block;font-weight:800;letter-spacing:.04em}.timeline-entry-sequence{display:block;white-space:normal;overflow-wrap:anywhere}.timeline-entry-note{display:block;color:var(--muted);font-size:.78rem}.timeline-entry-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.timeline-form-state{margin:0 0 10px;padding:8px 10px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent);font-size:.8rem}.timeline-form-state[hidden]{display:none}.quick-mode .diary-only{display:none!important}.diary-mode .quick-only{display:none!important}
@media(max-width:720px){.experience-grid{grid-template-columns:1fr}.timeline-entry-actions{justify-content:flex-start}.timeline-entry-head{gap:8px}.experience-choice{min-height:0}.quick-convert-row{align-items:flex-start}}
html[data-theme="7"] .experience-panel{border-radius:0!important;background:transparent!important;box-shadow:none!important}html[data-theme="7"] .experience-choice{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:5px 0!important}html[data-theme="7"] .experience-choice.active{border:0!important;box-shadow:none!important}html[data-theme="7"] .experience-choice.active strong::before{content:"> "}html[data-theme="7"] .timeline-form-state{background:transparent!important;border-left:0!important;padding-left:0!important}
/* v0.18 pay-cycle calendar + roster/PayBot day fusion */
.diary-nav-tools{position:relative}.quick-calendar{position:absolute;z-index:30;right:0;top:calc(100% + 8px);width:min(320px,calc(100vw - 32px));padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 44px rgba(0,0,0,.34)}.quick-calendar[hidden]{display:none}.quick-calendar-head{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(82px,.7fr) auto;gap:6px;align-items:center}.quick-calendar-head select{min-width:0;min-height:36px;padding:5px 7px}.quick-calendar-weekdays,.quick-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.quick-calendar-weekdays{margin-top:10px}.quick-calendar-weekdays span{text-align:center;color:var(--muted);font-size:.68rem;font-weight:800}.quick-calendar-grid{margin-top:4px}.quick-calendar-day{appearance:none;border:0;background:transparent;color:var(--text);border-radius:7px;min-height:34px;padding:4px 2px;font:inherit;cursor:pointer;position:relative}.quick-calendar-day.other-month{opacity:.38}.quick-calendar-day.weekend{color:#e58b8b}.quick-calendar-day.in-pay-cycle{background:color-mix(in srgb,var(--accent) 18%,transparent)}.quick-calendar-day.pay-start{border-radius:8px 0 0 8px}.quick-calendar-day.pay-end{border-radius:0 8px 8px 0}.quick-calendar-day.selected-day{outline:2px solid var(--accent);outline-offset:-2px;font-weight:800}.quick-calendar-day.today::after{content:"";position:absolute;left:50%;bottom:2px;width:3px;height:3px;border-radius:50%;background:var(--accent);transform:translateX(-50%)}.quick-calendar-foot{margin-top:8px;padding-top:7px;border-top:1px solid var(--border);font-size:.72rem;color:var(--muted)}
.roster-builder-body{padding:18px 20px 20px}.day-paybot-controls{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.day-paybot-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px}.day-paybot-head p{margin:0;max-width:560px}.day-duty-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.day-shift-suggestions{display:grid;gap:3px;margin-top:5px}.day-shift-suggestions:empty{display:none}.day-shift-suggestion{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;text-align:left;align-items:baseline;padding:6px 8px!important}.day-shift-suggestion small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-time-actions{display:flex;gap:8px;align-items:end}.day-time-actions .field{flex:1 1 150px}.day-allowances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.day-allowance{padding:9px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--bg) 38%,transparent)}.day-allowance-head{display:flex;gap:8px;align-items:flex-start}.day-allowance-head small{display:block;color:var(--muted)}.day-allowance-qty{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center;margin-top:6px}.day-allowance-qty input{min-height:36px;padding:6px 8px}.day-inline-check{display:flex;gap:8px;align-items:center;padding-top:8px}.day-inline-check>span{min-width:0;line-height:1.35}.day-paybot-controls>.form-grid{grid-template-columns:1fr}.day-editor-readonly .day-paybot-controls input,.day-editor-readonly .day-paybot-controls select,.day-editor-readonly #dayLookupBtn,.day-editor-readonly #dayPlus8Btn{pointer-events:none;opacity:.7}.day-paybot-fortnight{margin-top:12px}
@media(max-width:700px){.quick-calendar{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:calc(100vh - 24px);overflow:auto}.day-allowances{grid-template-columns:1fr}.day-time-actions{flex-wrap:wrap}.roster-builder-body{padding:16px 18px 18px}}
html[data-theme="7"] .experience-grid{grid-template-columns:1fr!important;gap:.7em!important}html[data-theme="7"] .experience-choice{white-space:normal!important;width:100%!important;min-width:0!important}html[data-theme="7"] .experience-choice span,html[data-theme="7"] .experience-choice strong{white-space:normal!important;overflow-wrap:anywhere!important;max-width:100%!important}html[data-theme="7"] .quick-calendar{background:#202020!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:1em 0!important}html[data-theme="7"] .quick-calendar-day{white-space:normal!important;color:#c4c8cf!important}html[data-theme="7"] .quick-calendar-day::before,html[data-theme="7"] .quick-calendar-day::after{content:none!important}html[data-theme="7"] .quick-calendar-day.in-pay-cycle{background:transparent!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}html[data-theme="7"] .quick-calendar-day.selected-day{outline:0!important;color:#fff!important;font-weight:600!important}html[data-theme="7"] .quick-calendar-day.selected-day::before{content:">"!important;display:inline!important;color:#fff!important}html[data-theme="7"] .quick-calendar-foot{border-top:0!important}html[data-theme="7"] .roster-builder-body{padding:1em 0 0!important}html[data-theme="7"] .day-paybot-controls,html[data-theme="7"] .day-allowance{border:0!important;border-radius:0!important;background:transparent!important;padding-left:0!important;padding-right:0!important}html[data-theme="7"] .day-allowances{gap:.25em 2ch!important}html[data-theme="7"] .day-shift-suggestion{white-space:normal!important}
.fortnight-group{margin:0 0 24px}.fortnight-group>.week-card+.week-card{margin-top:14px}.fortnight-group-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:0 0 8px;padding:0 2px}.fortnight-group-head .eyebrow{margin:0}.fortnight-group-head strong{font-size:.9rem}.fortnight-pay-footer{margin-top:8px;padding:12px 14px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:12px 18px;align-items:center}.fortnight-pay-main{display:grid;grid-template-columns:auto auto;justify-content:start;gap:2px 18px}.fortnight-pay-main span{color:var(--muted);font-size:.78rem}.fortnight-pay-main strong{font-size:1.12rem}.fortnight-pay-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pay-check-status{grid-column:1/-1;font-size:.76rem;color:var(--muted)}.pay-check-status.checked{color:var(--accent)}.fortnight-pay-values{display:grid;grid-template-columns:auto auto;gap:2px 18px;align-items:baseline}.fortnight-pay-values span{color:var(--muted);font-size:.78rem}.fortnight-pay-values strong{font-size:1rem}.pay-difference.negative{color:#ff9a9a}.pay-difference.positive{color:#8ee2ad}.pay-check-dialog{width:min(560px,calc(100vw - 24px))}.pay-check-summary{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:14px 0}.pay-check-summary strong{text-align:right}
.week-lock-state{font-size:.72rem;font-weight:800;letter-spacing:.04em}.locked-week{position:relative}.locked-week .week-card-header{opacity:.94}.locked-week .edit-actual-day-btn{display:none}.locked-week .day-column[data-roster-day]{cursor:default}.locked-week .compact-day[data-roster-day] summary{cursor:pointer}.locked-note{font-size:.72rem;color:var(--muted)}
.day-editor-readonly .field input,.day-editor-readonly .field select,.day-editor-readonly .field textarea{opacity:.7}.day-editor-readonly #daySaveBtn,.day-editor-readonly #dayUseRosteredBtn,.day-editor-readonly #dayClearActualBtn{display:none}.day-lock-warning{margin:8px 0;padding:8px 10px;border-left:3px solid var(--accent);background:rgba(255,255,255,.035)}
.day-editor-header-actions{display:flex;align-items:center;gap:8px}.day-editor-readonly #daySaveCloseBtn{display:none}.day-save-close{white-space:nowrap;min-height:38px;padding:8px 12px}
.fortnight-allowances{grid-column:1/-1;border-top:1px solid var(--border);padding-top:10px}.fortnight-allowances summary{cursor:pointer;font-weight:800;color:var(--text)}.fortnight-allowance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.fortnight-allowance-item{border:1px solid var(--border);border-radius:9px;padding:8px;background:color-mix(in srgb,var(--bg) 35%,transparent)}.fortnight-allowance-item label{display:grid;gap:5px;font-size:.75rem;color:var(--muted)}.fortnight-allowance-item strong{font-size:.78rem;color:var(--text)}.fortnight-allowance-custom{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,1fr) 100px 120px;gap:8px}.fortnight-allowance-note{margin-top:8px;font-size:.72rem;color:var(--muted)}
@media(max-width:700px){.day-editor-header-actions{gap:5px}.day-save-close{font-size:.76rem;padding:7px 9px}.fortnight-allowance-grid{grid-template-columns:1fr}.fortnight-allowance-custom{grid-template-columns:1fr 90px 100px}}
#setupPanel[hidden]{display:none}.setup-toggle-actions{display:flex;gap:8px;flex-wrap:wrap}.view-range-note{font-size:.76rem;color:var(--muted)}
@media(max-width:700px){.diary-nav-grid{grid-template-columns:1fr 1fr}.fortnight-pay-footer{grid-template-columns:1fr}.fortnight-pay-actions{justify-content:flex-start}.fortnight-pay-main{grid-template-columns:auto 1fr}.diary-nav-actions button{flex:1 1 auto}.diary-current{align-items:flex-start}}
@media(max-width:430px){.diary-nav-grid{grid-template-columns:1fr}.diary-nav-actions{display:grid;grid-template-columns:1fr 1fr}.diary-nav-actions button{width:100%}}
html[data-theme="7"] .diary-nav-panel,html[data-theme="7"] .fortnight-group,html[data-theme="7"] .fortnight-pay-footer{border:0!important;background:transparent!important;box-shadow:none!important}html[data-theme="7"] .fortnight-group-head{border-bottom:0!important}html[data-theme="7"] .fortnight-pay-footer{padding:8px 0!important;border-top:0!important;border-bottom:0!important}html[data-theme="7"] .fortnight-allowances,html[data-theme="7"] .fortnight-allowance-item{border:0!important;background:transparent!important;border-radius:0!important;padding-left:0!important;padding-right:0!important}html[data-theme="7"] .fortnight-pay-footer:before{content:"-------------------------------------------------------------------------------";display:block;grid-column:1/-1;white-space:nowrap;overflow:hidden;color:#747980}html[data-theme="7"] .diary-current{border-top:0!important}html[data-theme="7"] .diary-current:before{content:"-------------------------------------------------------------------------------";display:block;width:100%;white-space:nowrap;overflow:hidden;color:#747980}

/* v0.19 mobile Terminal regression fix: the global phone rule hides the Style label,
   so Terminal must use a single shrinkable grid column rather than leaving the select
   in a max-content column (which overflowed narrow iPhone viewports). */
@media(max-width:620px){
  html[data-theme="7"] .style-picker{grid-template-columns:minmax(0,1fr)!important;}
  html[data-theme="7"] .style-picker select{width:100%!important;min-width:0!important;max-width:100%!important;}
}

/* v0.19 historical/depot/PH workflow */
.public-holiday-day .day-head{background:color-mix(in srgb,#f2bf42 24%,var(--surface-2));box-shadow:inset 0 -2px 0 #d9a514}.compact-day.public-holiday-day>summary{box-shadow:inset 4px 0 0 #d9a514;background:color-mix(in srgb,#f2bf42 8%,transparent)}
.public-holiday-day .holiday-name{color:#ffd86b;font-weight:800}.actual-rostered-strike{text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.7}.ph-conversion-note{margin-top:5px;color:#ffd86b;font-size:.68rem;font-weight:700}.conversion-warning{margin-top:5px;color:#ffc36b;font-size:.68rem}.roster-builder-close-actions{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);align-items:center}.roster-builder-close-actions small{max-width:560px}.week-leave-btn.active{border-color:#ad7ad8}.depot-tag{color:var(--muted);font-size:.82em}


/* v0.21 unified workspace */
html.diary-mode #experiencePanel,html.diary-mode #diaryNavPanel,html.diary-mode #setupPanel{display:none!important}
html.diary-mode #paybotNavBtn{display:none!important}
.diary-home{margin:18px 0 14px;padding:0;background:transparent;border:0;box-shadow:none}
.diary-home-top{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px}
.diary-home-top h2{font-size:clamp(1.65rem,4vw,2.35rem);margin:2px 0 4px;letter-spacing:-.035em}
.home-position{font-size:.86rem;color:var(--muted)}
.home-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.home-actions button{min-height:40px}
.home-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 12px}
.home-metric{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-width:0;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 90%,transparent);color:var(--text)}
button.home-metric{cursor:pointer}
button.home-metric:hover{border-color:color-mix(in srgb,var(--accent) 70%,var(--border));transform:translateY(-1px)}
.home-metric span{font-size:.66rem;letter-spacing:.11em;font-weight:800;color:var(--muted)}
.home-metric strong{font-size:1.22rem;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.home-metric small{margin-top:3px;color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.history-strip{display:flex;align-items:center;gap:7px;padding:8px 10px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.history-year-btn{border:0;background:transparent;color:var(--text);font-size:1.25rem;padding:4px 8px;cursor:pointer}.history-strip>strong{min-width:44px;text-align:center}
.history-months{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;flex:1;min-width:0}
.history-month{position:relative;border:0;background:transparent;color:var(--muted);padding:6px 2px 5px;border-radius:8px;cursor:pointer;font-size:.72rem;font-weight:700;min-height:43px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px}
.history-month:hover,.history-month.active{background:var(--surface-2);color:var(--text)}
.history-cycle-markers{display:grid;grid-template-rows:auto auto;gap:2px;min-height:12px;align-items:center;justify-items:center}.history-cycle-row{display:flex;gap:2px;min-height:5px;align-items:center;justify-content:center}.history-cycle-dot{display:inline-block;width:5px;height:5px;border-radius:50%;box-sizing:border-box;background:transparent}.history-cycle-dot.diary{border:1px solid var(--accent)}.history-cycle-dot.diary.complete{background:var(--accent)}.history-cycle-dot.pay{border:1px solid #e9b949}.history-cycle-dot.pay.complete{background:#e9b949}.history-cycle-dot.future{opacity:.55}
.history-legend{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin:5px 10px 0;color:var(--muted);font-size:.66rem;flex-wrap:wrap}.history-legend span{display:inline-flex;gap:5px;align-items:center}.history-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;box-sizing:border-box}.history-legend .edit-dot{border:1px solid var(--accent);background:var(--accent)}.history-legend .check-dot{border:1px solid #e9b949;background:#e9b949}.history-legend .hollow-dot{border:1px solid currentColor;background:transparent}
.universal-search-wrap{position:relative;margin-top:10px}.universal-search{display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.universal-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent)}
.universal-search input{flex:1;min-width:0;border:0!important;background:transparent!important;padding:11px 0!important;color:var(--text);outline:0;box-shadow:none!important}.universal-search button{border:0;background:transparent;color:var(--muted);font-size:1.25rem;cursor:pointer}
.universal-search-results{position:absolute;z-index:80;top:calc(100% + 5px);left:0;right:0;max-height:min(64vh,520px);overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);box-shadow:0 16px 46px rgba(0,0,0,.45);padding:6px}
.search-result{display:block;width:100%;border:0;background:transparent;color:var(--text);padding:10px 11px;border-radius:9px;text-align:left;cursor:pointer}.search-result:hover{background:rgba(255,255,255,.06)}.search-result strong{display:block}.search-result span,.search-result small{display:block;color:var(--muted);margin-top:2px}.search-section-label{padding:8px 11px 4px;font-size:.66rem;letter-spacing:.12em;color:var(--muted);font-weight:800}
html.diary-mode .output-heading{display:none}.output-section{scroll-margin-top:10px}
html.diary-mode .export-panel{margin-top:22px}

.week-actions-wrap{position:relative}.week-actions-toggle{white-space:nowrap}.week-actions-menu{position:absolute;z-index:90;right:0;top:calc(100% + 5px);min-width:210px;max-height:min(60vh,380px);overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);box-shadow:0 12px 34px rgba(0,0,0,.42)}.week-card.week-menu-open{overflow:visible;position:relative;z-index:80}.week-card.week-menu-open .week-card-header{border-radius:11px 11px 0 0;position:relative;z-index:100}
.week-actions-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:8px;cursor:pointer}.week-actions-menu button:hover{background:rgba(255,255,255,.07)}.week-actions-menu hr{border:0;border-top:1px solid var(--border);margin:5px 0}.week-leave-submenu{margin:3px 0 0;padding:5px;border-left:2px solid var(--accent)}.week-leave-submenu[hidden]{display:none}.week-leave-badge{display:inline-flex;margin-left:7px;padding:2px 7px;border:1px solid color-mix(in srgb,var(--leave) 65%,var(--border));border-radius:999px;font-size:.66rem;vertical-align:middle;color:#e9dbf6}

/* Day editor becomes a desktop drawer / mobile bottom sheet. */
#dayEditorModal.feedback-modal{align-items:stretch;justify-content:flex-end;padding:0;background:rgba(0,0,0,.48)}
#dayEditorModal .day-editor-dialog{margin:0;width:min(650px,94vw);max-height:100vh;height:100vh;border-radius:18px 0 0 18px;overflow:auto;box-shadow:-20px 0 60px rgba(0,0,0,.45);animation:drawer-in .18s ease-out}
@keyframes drawer-in{from{transform:translateX(30px);opacity:.55}to{transform:translateX(0);opacity:1}}
.day-duty-details{margin:10px 0 16px;padding:13px 14px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--surface-2) 88%,transparent)}.day-duty-details .eyebrow{margin-bottom:7px}.day-duty-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.day-duty-title strong{font-size:1.06rem}.day-duty-title span{color:var(--muted)}.day-duty-copy{margin:8px 0 0;white-space:pre-wrap;line-height:1.45;font-size:.88rem}.day-duty-meta{margin-top:7px;color:var(--muted);font-size:.73rem}#dayEditorModal .day-editor-dialog>.form-grid{grid-template-columns:minmax(165px,.72fr) minmax(300px,1.45fr)}#dayEditorModal .day-duty-row{grid-template-columns:minmax(160px,1fr) auto}#dayEditorModal #dayActualCode{width:100%}.fortnight-notes{grid-column:1/-1;border-top:1px solid var(--border);padding-top:9px}.fortnight-notes summary{cursor:pointer;font-weight:800}.fortnight-notes-body{margin-top:8px}.fortnight-notes textarea{width:100%;min-height:82px;resize:vertical}.fortnight-notes-status{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}
.day-paybot-head .eyebrow::after{content:' · AUTO'}

.unified-pay-details{grid-column:1/-1;margin-top:8px;border-top:1px solid var(--border);padding-top:12px}.unified-pay-details[hidden]{display:none}.pay-detail-tabs{display:flex;gap:6px;margin-bottom:10px}.pay-detail-tabs button{padding:7px 10px}.pay-detail-tabs button.active{border-color:var(--accent);color:var(--text)}
.pay-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.pay-detail-summary div{padding:10px;border:1px solid var(--border);border-radius:9px}.pay-detail-summary span{display:block;color:var(--muted);font-size:.68rem;letter-spacing:.08em}.pay-detail-summary strong{display:block;margin-top:3px;font-size:1.08rem}
.inline-pay-table{width:100%;border-collapse:collapse}.inline-pay-table th,.inline-pay-table td{padding:8px 7px;border-bottom:1px solid var(--border);text-align:left}.inline-pay-table th:nth-child(n+2),.inline-pay-table td:nth-child(n+2){text-align:right}.inline-daily{display:grid;gap:7px}.inline-daily-row{display:grid;grid-template-columns:150px 1fr auto;gap:12px;padding:9px 10px;border:1px solid var(--border);border-radius:9px}.inline-daily-row small{color:var(--muted)}
.fortnight-pay-actions [data-pay-details].active{border-color:var(--accent)}

.pay-issues-panel{position:fixed;z-index:120;right:16px;top:90px;width:min(460px,calc(100vw - 32px));max-height:75vh;overflow:auto;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);box-shadow:0 18px 60px rgba(0,0,0,.5)}.pay-issues-panel[hidden]{display:none}.pay-issues-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.pay-issues-head button{border:0;background:transparent;color:var(--text);font-size:1.3rem}.pay-issue-row{width:100%;text-align:left;border:0;border-top:1px solid var(--border);background:transparent;color:var(--text);padding:10px 2px;cursor:pointer}.pay-issue-row span{display:block;color:var(--muted);font-size:.75rem}.pay-issue-row strong.negative{color:#ff8a88}.pay-issue-row strong.positive{color:#77dfa1}

@media(max-width:900px){.home-metrics{grid-template-columns:1fr 1fr}.history-months{grid-template-columns:repeat(6,1fr);row-gap:3px}.inline-daily-row{grid-template-columns:110px 1fr}}
@media(max-width:620px){.diary-home-top{align-items:flex-start;display:block}.home-actions{justify-content:flex-start;margin-top:10px}.home-metrics{grid-template-columns:1fr 1fr;gap:7px}.home-metric{padding:10px}.home-metric strong{font-size:1rem}.history-strip{align-items:flex-start}.history-months{grid-template-columns:repeat(4,1fr)}.history-legend{justify-content:flex-start;flex-wrap:wrap}#dayEditorModal.feedback-modal{align-items:flex-end;justify-content:center}#dayEditorModal .day-editor-dialog{width:100vw;height:min(88vh,820px);max-height:88vh;border-radius:18px 18px 0 0;animation:sheet-in .18s ease-out}#dayEditorModal .day-editor-dialog>.form-grid{grid-template-columns:1fr}#dayEditorModal .day-duty-row{grid-template-columns:minmax(0,1fr) auto}@keyframes sheet-in{from{transform:translateY(30px);opacity:.55}to{transform:translateY(0);opacity:1}}.pay-detail-summary{grid-template-columns:1fr}.inline-daily-row{grid-template-columns:1fr}.fortnight-pay-footer{gap:10px}}

[hidden]{display:none!important}
.home-actions .active{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}
/* v0.22 sync proof-of-concept */
.data-dialog{width:min(900px,calc(100vw - 24px))}.data-body{display:grid;gap:18px}.data-local-section,.cloud-sync-section{padding:15px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 72%,transparent)}.cloud-sync-section{border-color:color-mix(in srgb,var(--accent) 32%,var(--border))}.cloud-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:9px}.cloud-section-head h3{margin:0}.sync-poc-badge{display:inline-flex;padding:2px 6px;margin-left:5px;border:1px solid #e9b949;border-radius:999px;color:#e9b949;font-size:.58em;vertical-align:middle;letter-spacing:.08em}.cloud-state-pill{display:inline-flex;padding:4px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.7rem;white-space:nowrap}.cloud-state-pill.online{border-color:#3f9b65;color:#77dfa1}.cloud-state-pill.warning{border-color:#9a7836;color:#ffd27a}.cloud-state-pill.error{border-color:#9a4949;color:#ff9898}.cloud-state-pill.local{border-color:var(--border)}.cloud-setup-details{margin:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 0}.cloud-setup-details summary{cursor:pointer;font-weight:800}.cloud-config-grid,.cloud-auth-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin-top:10px}.cloud-auth-block{padding-top:4px}.cloud-account-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.cloud-account-card strong,.cloud-account-card small{display:block}.cloud-account-card small{margin-top:2px}.cloud-label{display:block;font-size:.64rem;letter-spacing:.1em;color:var(--muted);font-weight:800}.cloud-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.cloud-metrics>div{padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.cloud-metrics span{display:block;color:var(--muted);font-size:.66rem;letter-spacing:.06em}.cloud-metrics strong{display:block;margin-top:3px;font-size:.84rem;overflow-wrap:anywhere}.cloud-sync-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.cloud-advanced-actions{margin-top:8px}.cloud-small{font-size:.76rem;margin:8px 0 0}.cloud-compat{padding:8px 10px;margin:8px 0;border-left:3px solid var(--border);background:rgba(255,255,255,.025)}.cloud-compat.warning{border-left-color:#e9b949;color:#ffd98a}.cloud-compat.ok{border-left-color:#55b77d;color:#9de0b5}.cloud-history-panel{margin-top:11px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.cloud-history-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:3px 3px 8px}.cloud-history-list{display:grid;gap:5px}.cloud-history-row{display:grid;grid-template-columns:74px 1fr auto;gap:10px;align-items:center;padding:8px;border-top:1px solid var(--border)}.cloud-history-row:first-child{border-top:0}.cloud-history-row small{display:block}.cloud-history-row button{font-size:.72rem;padding:5px 7px}.cloud-conflict{padding:10px;border:1px solid #9a7836;border-radius:9px;background:rgba(233,185,73,.08);color:#ffd98a}.cloud-status-detail{display:block;margin-top:3px;font-size:.75rem}.cloud-sync-section code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.cloud-sync-overview{display:flex;align-items:stretch;gap:10px;margin:12px 0}.cloud-main-state{flex:1;padding:13px 14px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.cloud-main-state strong{display:block;margin-top:3px;font-size:1.06rem}.cloud-main-state small{display:block;margin-top:5px;line-height:1.35}.cloud-sync-primary{min-width:132px}.cloud-conflict-panel{margin:10px 0;padding:12px;border:1px solid #9a7836;border-radius:10px;background:rgba(233,185,73,.08)}.cloud-conflict-panel strong{display:block;color:#ffd98a}.cloud-conflict-panel p{margin:6px 0 0}.cloud-conflict-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.cloud-advanced-details{margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.cloud-advanced-details>summary{cursor:pointer;font-weight:800;color:var(--muted)}.cloud-fingerprint{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.cloud-sync-section[data-sync-state="up-to-date"] .cloud-main-state{border-color:#3f9b65}.cloud-sync-section[data-sync-state="local-only"] .cloud-main-state,.cloud-sync-section[data-sync-state="cloud-only"] .cloud-main-state{border-color:#7b6b34}.cloud-sync-section[data-sync-state="conflict"] .cloud-main-state,.cloud-sync-section[data-sync-state="unlinked-different"] .cloud-main-state,.cloud-sync-section[data-sync-state="local-cleared"] .cloud-main-state{border-color:#9a7836}.cloud-sync-section[data-sync-state="error"] .cloud-main-state{border-color:#9a4949}
.cloud-encryption-card{margin:10px 0;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.cloud-encryption-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cloud-encryption-head strong,.cloud-encryption-head small{display:block}.cloud-encryption-head small{margin-top:3px;color:var(--muted)}.cloud-encryption-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:850;white-space:nowrap;color:var(--muted)}.cloud-encryption-pill.ok{border-color:#3e9c64;color:#9de0b5}.cloud-encryption-pill.warning{border-color:#9a7836;color:#ffd98a}.cloud-encryption-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cloud-encryption-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:grid;gap:10px}.cloud-encryption-panel[hidden]{display:none}.cloud-encryption-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cloud-encryption-secret{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;word-break:break-all;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:10px;user-select:all}.cloud-encryption-warning{padding:9px 10px;border-left:3px solid #e9b949;background:rgba(233,185,73,.08);font-size:.8rem}.cloud-encryption-check{display:flex;gap:8px;align-items:flex-start}.cloud-encryption-check input{margin-top:3px}.cloud-encryption-method{display:flex;gap:7px;flex-wrap:wrap}.cloud-encryption-method button.active{border-color:var(--accent);color:var(--accent)}@media(max-width:700px){.cloud-encryption-grid{grid-template-columns:1fr}.cloud-encryption-head{display:grid}.cloud-encryption-pill{justify-self:start}}.cloud-auth-intro{margin:2px 0 10px}.cloud-auto-row{display:flex;align-items:center;gap:10px;margin:10px 0 2px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.cloud-auto-row input{width:18px;height:18px;flex:0 0 auto}.cloud-auto-copy{flex:1;min-width:0}.cloud-auto-copy strong,.cloud-auto-copy small{display:block}.cloud-auto-copy small{margin-top:2px}.cloud-auto-state{font-size:.72rem;font-weight:800;color:#9de0b5;white-space:nowrap}.cloud-auto-state.warning{color:#ffd98a}.cloud-auto-state.off{color:var(--muted)}.cloud-auth-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface);margin:3px 0 10px}.cloud-auth-switch button{border:0;background:transparent;padding:7px 10px;border-radius:7px;color:var(--muted);font-weight:800}.cloud-auth-switch button.active{background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));color:var(--text)}.cloud-auth-panel{display:grid;gap:9px}.cloud-auth-panel[hidden]{display:none}.cloud-account-note{padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.025);margin:9px 0}.cloud-account-note strong{display:block;margin-bottom:3px}.cloud-dev-note{margin:8px 0 0}.cloud-config-needed{padding:10px;border:1px solid #9a7836;border-radius:9px;background:rgba(233,185,73,.08);margin:10px 0}.cloud-config-needed strong{display:block;color:#ffd98a;margin-bottom:3px}.cloud-verified{color:#9de0b5}.cloud-unverified{color:#ffd98a}.cloud-setup-details:not([open]){padding-bottom:10px}.cloud-setup-details summary{display:flex;align-items:center;gap:6px}.cloud-setup-details summary::after{content:'tester';font-size:.62rem;letter-spacing:.06em;color:var(--muted);font-weight:700}
@media(max-width:760px){.cloud-config-grid,.cloud-auth-grid{grid-template-columns:1fr}.cloud-metrics{grid-template-columns:1fr 1fr}.cloud-history-row{grid-template-columns:64px 1fr}.cloud-history-row button{grid-column:1/-1;justify-self:start}}
@media(max-width:480px){.cloud-metrics{grid-template-columns:1fr}.cloud-section-head{align-items:flex-start}.cloud-account-card{align-items:flex-start}.cloud-sync-overview{flex-direction:column}.cloud-sync-primary{width:100%}}



/* -------------------------------------------------------------------------
   v0.26.1 mobile UI hotfix
   - Keep Week actions inside the phone viewport.
   - Anchor full-screen dialogs to the visible top of the dynamic viewport.
   - Keep modal headers/close buttons reachable while long dialogs scroll.
   ---------------------------------------------------------------------- */
@media (max-width:720px) {
  .week-actions-menu {
    left:0 !important;
    right:auto !important;
    width:min(280px, calc(100vw - 44px));
    min-width:0;
    max-width:calc(100vw - 44px);
    box-sizing:border-box;
  }

  .feedback-modal:not(#dayEditorModal) {
    align-items:start;
    justify-items:center;
    overflow-y:auto;
    overflow-x:hidden;
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-right:10px;
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
    padding-left:10px;
  }

  .feedback-modal:not(#dayEditorModal) .feedback-dialog {
    width:100%;
    max-height:calc(100vh - 20px);
    max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin:0;
    overscroll-behavior:contain;
  }

  .feedback-modal:not(#dayEditorModal) .feedback-dialog-header {
    position:sticky;
    top:0;
    z-index:20;
    background:var(--surface);
  }

  .feedback-modal:not(#dayEditorModal) .feedback-close-btn {
    width:44px;
    min-width:44px;
    min-height:44px;
  }
}



/* ==========================================================================
   v0.27.0 Dashboard Prototype
   Dashboard/navigation layer only. Existing roster/pay engines remain intact.
   ========================================================================== */
:root{--v27-card:#7de5d4;--v27-card-2:#6bd9c7;--v27-ink:#092925;--v27-green:#006b54;--v27-green-deep:#004e3f;--v27-soft:#b9f2e8;--v27-warning:#e5a923;--v27-leave:#8b63bc}
html[data-theme="1"] body{background:var(--bg)}
.v27-topbar{background:linear-gradient(155deg,#084f46 0%,#00705a 56%,#0b8069 100%)!important;border-bottom:1px solid rgba(255,255,255,.13)!important}
.v27-header-shell{padding:18px 0 15px}.v27-brand-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.v27-brand-home{min-height:0;padding:0;border:0;background:transparent!important;box-shadow:none!important;color:#f1fffc;text-align:left}.v27-brand-home .eyebrow{display:block;color:#a9f3e4;opacity:1}.v27-brand-title{display:block;font-size:clamp(2rem,5vw,2.75rem);font-weight:850;letter-spacing:-.04em;line-height:1.05}.v27-header-icons{display:flex;gap:8px}.v27-icon-btn{display:grid;place-items:center;width:46px;height:46px;min-height:46px;padding:0;border-radius:999px;border:1px solid rgba(179,248,230,.34);background:rgba(2,70,57,.42);color:#eafff9;font-size:1.35rem;box-shadow:none}.v27-icon-btn:hover{filter:brightness(1.12)}html.v27-dashboard-active #dashboardHomeBtn{display:none}
.v27-header-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.v27-header-chip{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:8px 12px;border:1px solid rgba(179,248,230,.30);border-radius:999px;background:rgba(0,80,62,.68);color:#f3fffc;box-shadow:none}.v27-header-chip>span:last-child{min-width:0;text-align:left}.v27-header-chip strong,.v27-header-chip small{display:block;line-height:1.12}.v27-header-chip strong{font-size:.82rem}.v27-header-chip small{margin-top:2px;color:#baf3e6;font-size:.66rem}.v27-chip-icon{display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border-radius:999px;border:1px solid rgba(255,255,255,.28);font-size:.8rem}.v27-header-chip.sync-warning .v27-chip-icon{color:#ffe29c;border-color:#e5a923}.v27-header-chip.sync-error .v27-chip-icon{color:#ffaaa2;border-color:#db665a}

.v27-dashboard{padding:18px 0 8px}.v27-search-wrap{margin:0}.v27-search{border-radius:22px;min-height:58px;padding:0 15px;background:color-mix(in srgb,var(--surface-2) 88%,transparent);box-shadow:0 8px 24px rgba(0,0,0,.12)}.v27-search input{font-size:1rem}.v27-search-icon{font-size:1.55rem;color:var(--text)}
.v27-card-pager{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:14px;margin:16px calc((100vw - min(1180px,calc(100vw - 28px)))/-2) 0;padding:0 calc((100vw - min(1180px,calc(100vw - 28px)))/2);scrollbar-width:none;-webkit-overflow-scrolling:touch}.v27-card-pager::-webkit-scrollbar{display:none}.v27-card-page{flex:0 0 100%;scroll-snap-align:center;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.v27-dash-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-width:0;min-height:174px;padding:18px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:24px;background:linear-gradient(145deg,var(--v27-card),var(--v27-card-2));color:var(--v27-ink);box-shadow:0 12px 30px rgba(0,75,61,.13);overflow:hidden}.v27-dash-card::after{content:"";position:absolute;right:-34px;bottom:-38px;width:118px;height:118px;border-radius:50%;background:rgba(255,255,255,.13);pointer-events:none}.v27-dash-card:hover{transform:translateY(-1px);filter:brightness(1.025)}.v27-card-kicker{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;font-size:.84rem;font-weight:850}.v27-dash-card>strong{display:block;margin-top:13px;font-size:clamp(1.05rem,3vw,1.38rem);line-height:1.15;overflow-wrap:anywhere}.v27-card-line{display:block;margin-top:8px;font-size:.82rem;line-height:1.3}.v27-card-pay{display:block;margin-top:9px;font-size:1rem;font-weight:850}.v27-status-line{display:inline-flex;margin-top:10px;padding:5px 9px;border-radius:999px;background:rgba(0,77,59,.12);font-size:.73rem;font-weight:800}.v27-status-line.good{background:rgba(0,116,73,.14)}.v27-status-line.warn{background:rgba(229,169,35,.24)}.v27-today-card{background:linear-gradient(145deg,#92eedf,#67dbc8)}.v27-tool-card{min-height:190px}.v27-wide-card{grid-column:1/-1;min-height:156px}
.v27-week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;width:100%;margin-top:13px}.v27-week-day{display:grid;gap:5px;justify-items:center;min-width:0}.v27-week-day b{font-size:.66rem}.v27-week-day i{display:block;width:18px;height:18px;border-radius:999px;background:#126e61;border:2px solid transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}.v27-week-day.off i{background:#a7bbb7}.v27-week-day.leave i{background:var(--v27-leave)}.v27-week-day.today i{border-color:#082d27;box-shadow:0 0 0 2px rgba(255,255,255,.72)}
.v27-pager-dots{display:flex;justify-content:center;gap:7px;margin:12px 0 18px}.v27-page-dot{width:9px;height:9px;min-height:9px;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--muted) 52%,transparent);box-shadow:none}.v27-page-dot.active{width:25px;background:var(--accent)}
.v27-history-strip{margin-top:8px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--border) 75%,transparent)}.v27-history-legend{margin-top:8px}.v27-compat{display:none!important}

html.v27-dashboard-active #experiencePanel,html.v27-dashboard-active #diaryNavPanel,html.v27-dashboard-active #setupPanel,html.v27-dashboard-active #outputSection{display:none!important}html:not(.v27-dashboard-active) #diaryHomePanel{display:none!important}

.v27-settings-body,.v27-viewer-body{padding:18px 20px 22px}.v27-settings-body{display:grid;gap:13px}.v27-settings-group{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.v27-settings-group strong,.v27-settings-group small{display:block}.v27-settings-group small{margin-top:4px}.v27-segment{display:flex;gap:5px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.v27-segment button{min-height:36px;padding:7px 12px;background:transparent;color:var(--muted);box-shadow:none}.v27-segment button.active{background:var(--accent);color:#05241f}.v27-settings-note{margin:2px 0 0;font-size:.78rem;line-height:1.5}
.v27-viewer-dialog{width:min(920px,100%)}.v27-viewer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr .7fr;gap:10px}.v27-rotation-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:16px}.v27-rotation-day{min-width:0;padding:10px 7px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);text-align:center}.v27-rotation-day b,.v27-rotation-day strong,.v27-rotation-day span{display:block}.v27-rotation-day b{font-size:.68rem;color:var(--muted)}.v27-rotation-day strong{margin-top:7px;font-size:.86rem;overflow-wrap:anywhere}.v27-rotation-day span{margin-top:4px;font-size:.72rem;color:var(--muted)}.v27-rotation-day.off{opacity:.68}.v27-shift-search{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.v27-viewer-results{display:grid;gap:7px;margin-top:10px;max-height:320px;overflow:auto}.v27-job-result{padding:10px 11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.v27-job-result strong,.v27-job-result span,.v27-job-result small{display:block}.v27-job-result span,.v27-job-result small{margin-top:3px;color:var(--muted)}

/* Green light appearance. It deliberately overrides the old dark-only Design 1 rules. */
html[data-theme="1"][data-color-mode="light"]{color-scheme:light;--bg:#f4fbf9;--surface:#ffffff;--surface-2:#eaf7f3;--border:#b8d8d0;--text:#12312e;--muted:#607b76;--olive:#a8ddd3;--blue:#76cdbd;--alr:#c9d9d5;--accent:#149c80;--danger-soft:#fff4df;--danger-border:#d8b46d;--leave:#936bc0}
html[data-theme="1"][data-color-mode="light"] .v27-topbar{background:linear-gradient(150deg,#c8f7ee,#79dfcd)!important;border-bottom-color:#a8d9d0!important}html[data-theme="1"][data-color-mode="light"] .v27-brand-home{color:#0d302b}html[data-theme="1"][data-color-mode="light"] .v27-brand-home .eyebrow{color:#167967}html[data-theme="1"][data-color-mode="light"] .v27-icon-btn{background:rgba(255,255,255,.5);border-color:#7fcabb;color:#12312e}html[data-theme="1"][data-color-mode="light"] .v27-header-chip{background:rgba(255,255,255,.64);border-color:#8cd4c6;color:#12312e}html[data-theme="1"][data-color-mode="light"] .v27-header-chip small{color:#3d756b}
html[data-theme="1"][data-color-mode="light"] .panel,html[data-theme="1"][data-color-mode="light"] .feedback-dialog,html[data-theme="1"][data-color-mode="light"] .data-local-section,html[data-theme="1"][data-color-mode="light"] .cloud-sync-section,html[data-theme="1"][data-color-mode="light"] .cloud-main-state,html[data-theme="1"][data-color-mode="light"] .cloud-account-card,html[data-theme="1"][data-color-mode="light"] .cloud-encryption-card{background:#fff;color:var(--text)}
html[data-theme="1"][data-color-mode="light"] input,html[data-theme="1"][data-color-mode="light"] select,html[data-theme="1"][data-color-mode="light"] textarea,html[data-theme="1"][data-color-mode="light"] .feedback-form input[type="email"],html[data-theme="1"][data-color-mode="light"] .feedback-form textarea,html[data-theme="1"][data-color-mode="light"] .feedback-form select{background:#fff!important;color:var(--text)!important;border-color:#a8cec6!important}html[data-theme="1"][data-color-mode="light"] button.secondary{background:#e6f5f1;color:var(--text);border-color:#acd2ca}
html[data-theme="1"][data-color-mode="light"] .week-card{background:#fff!important;border-color:#a7cfc7!important}html[data-theme="1"][data-color-mode="light"] .week-card-header{background:#e7f6f2!important;border-bottom-color:#a8d1c9!important}html[data-theme="1"][data-color-mode="light"] .roster-cell{background:#f8fcfb!important;color:#12312e}html[data-theme="1"][data-color-mode="light"] .roster-cell.off{background:#88d5c7!important;color:#12312e}html[data-theme="1"][data-color-mode="light"] .roster-cell.alr{background:#d8e8e4!important;color:#12312e}html[data-theme="1"][data-color-mode="light"] .cell-detail,html[data-theme="1"][data-color-mode="light"] .wc-label{color:#52726c!important}html[data-theme="1"][data-color-mode="light"] .compact-day{background:#f8fcfb!important;color:#12312e}html[data-theme="1"][data-color-mode="light"] .compact-day[open]{background:#edf8f5!important}html[data-theme="1"][data-color-mode="light"] .feedback-dialog-header{background:#fff!important}html[data-theme="1"][data-color-mode="light"] .universal-search-results{background:#fff;color:var(--text)}html[data-theme="1"][data-color-mode="light"] .search-result:hover{background:#eaf7f3}

@media(max-width:720px){.v27-header-shell{padding:14px 0 12px}.v27-header-actions{gap:6px}.v27-header-chip{padding:7px 8px;gap:5px}.v27-header-chip strong{font-size:.69rem}.v27-header-chip small{font-size:.58rem}.v27-chip-icon{width:21px;height:21px}.v27-card-pager{margin-left:-8px;margin-right:-8px;padding:0 8px}.v27-card-page{gap:10px}.v27-dash-card{min-height:166px;padding:15px;border-radius:22px}.v27-tool-card{min-height:172px}.v27-wide-card{min-height:145px}.v27-settings-group{display:grid}.v27-viewer-grid{grid-template-columns:1fr 1fr}.v27-rotation-grid{grid-template-columns:repeat(7,minmax(43px,1fr));overflow-x:auto}.v27-rotation-day{padding:8px 3px}.v27-rotation-day strong{font-size:.72rem}.v27-rotation-day span{font-size:.62rem}}
@media(max-width:430px){.v27-brand-title{font-size:2rem}.v27-icon-btn{width:42px;height:42px;min-height:42px}.v27-header-chip>span:last-child small{display:none}.v27-dash-card{min-height:156px;padding:14px}.v27-dash-card>strong{font-size:1.02rem}.v27-card-line{font-size:.73rem}.v27-card-pay{font-size:.88rem}.v27-week-day i{width:15px;height:15px}.v27-week-day b{font-size:.58rem}.v27-history-strip{display:grid;grid-template-columns:34px 1fr 34px}.v27-history-strip>strong{grid-column:2;grid-row:1;text-align:center}.v27-history-strip .history-months{grid-column:1/-1;grid-row:2}.v27-history-strip #historyPrevYear{grid-column:1;grid-row:1}.v27-history-strip #historyNextYear{grid-column:3;grid-row:1}}



/* ==========================================================================
   v0.27.1 Dashboard polish + drill-down navigation
   UI-only overrides. Payroll, official roster data and cloud-sync logic are unchanged.
   ========================================================================== */
html[data-theme="1"][data-color-mode="dark"]{
  color-scheme:dark;
  --bg:#003c32;--surface:#075044;--surface-2:#0b5a4c;--border:#287666;
  --text:#f4fffc;--muted:#abd2c9;--olive:#176e5e;--blue:#2c8d7a;--alr:#426e66;
  --accent:#61e2c6;--danger-soft:#4a381a;--danger-border:#8f6d2d;--leave:#9d72c9;
  --v27-card:#8cebd9;--v27-card-2:#69d9c4;--v27-ink:#07372d;
}
html[data-theme="1"][data-color-mode="light"]{
  color-scheme:light;
  --bg:#f7fbfa;--surface:#ffffff;--surface-2:#edf8f5;--border:#cfe4df;
  --text:#132f2a;--muted:#687f7a;--olive:#cdeee7;--blue:#a9ddd2;--alr:#d6e4e1;
  --accent:#118f74;--danger-soft:#fff6e6;--danger-border:#ddba73;--leave:#936bc0;
  --v27-card:#e3faf5;--v27-card-2:#d0f4eb;--v27-ink:#0b3c32;
}
body{background:var(--bg)}
.v27-svg{display:block;width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v27-topbar{box-shadow:none!important}
html[data-color-mode="dark"] .v27-topbar{background:linear-gradient(180deg,#003c32 0%,#00483b 100%)!important;border-bottom-color:rgba(127,230,207,.16)!important}
html[data-theme="1"][data-color-mode="light"] .v27-topbar{background:#fff!important;border-bottom:1px solid #e2efec!important}
.v27-header-shell{max-width:880px;padding:20px 0 16px}
.v27-brand-home .eyebrow{font-size:.68rem;letter-spacing:.15em}
.v27-brand-title{font-size:clamp(2rem,4.6vw,2.55rem);font-weight:820}
.v27-header-icons{gap:9px}
.v27-icon-btn{width:44px;height:44px;min-height:44px;border-radius:999px;font-size:1.12rem;transition:transform .14s ease,background .14s ease,border-color .14s ease}
.v27-icon-btn:active{transform:scale(.96)}
html[data-color-mode="dark"] .v27-icon-btn{background:rgba(0,78,63,.46);border-color:rgba(98,226,198,.42);color:#effffb}
html[data-theme="1"][data-color-mode="light"] .v27-icon-btn{background:#e9faf6;border-color:transparent;color:#123b32}
.v27-mode-glyph{display:grid;place-items:center}.v27-mode-glyph .v27-svg{width:22px;height:22px}.v27-sun-svg{display:none}.v27-moon-svg{display:block}html[data-color-mode="light"] .v27-sun-svg{display:block}html[data-color-mode="light"] .v27-moon-svg{display:none}
.v27-header-actions{margin-top:17px;gap:9px}
.v27-header-chip{min-height:46px;border-radius:999px;padding:7px 14px;box-shadow:none;transition:transform .14s ease}
.v27-header-chip:active{transform:scale(.985)}
html[data-color-mode="dark"] .v27-header-chip{background:rgba(0,70,57,.72);border-color:rgba(94,222,194,.35);color:#f4fffc}
html[data-theme="1"][data-color-mode="light"] .v27-header-chip{background:#e7f9f4;border-color:transparent;color:#123b32}
.v27-chip-icon{width:25px;height:25px;border:0!important;background:transparent!important;font-size:1rem}.v27-chip-icon .v27-svg{width:22px;height:22px}.v27-chip-icon>svg+svg{display:none}
.v27-header-chip strong{font-size:.8rem}.v27-header-chip small{font-size:.62rem}
.v27-dashboard{max-width:880px;margin:0 auto;padding:20px 0 10px}
.v27-search{min-height:58px;border:1px solid color-mix(in srgb,var(--border) 68%,transparent);border-radius:22px;box-shadow:0 10px 26px rgba(0,46,37,.08)}
html[data-color-mode="dark"] .v27-search{background:rgba(0,79,64,.72)}html[data-color-mode="light"] .v27-search{background:#fff}
.v27-search-icon{display:grid;place-items:center;width:28px;font-size:1.16rem}.v27-search-icon .v27-svg{width:24px;height:24px}
.v27-card-pager{gap:0;margin:18px 0 0;padding:0;overflow-x:auto;scroll-padding:0;border-radius:25px}
.v27-card-page{flex:0 0 100%;padding:0;gap:12px}
.v27-dash-card{min-height:176px;padding:17px;border:0;border-radius:22px;background:linear-gradient(145deg,var(--v27-card),var(--v27-card-2));color:var(--v27-ink);box-shadow:0 12px 28px rgba(0,66,53,.09);isolation:isolate;transition:transform .14s ease,filter .14s ease,box-shadow .14s ease}
.v27-dash-card:hover{transform:translateY(-1px);filter:none;box-shadow:0 15px 30px rgba(0,66,53,.13)}.v27-dash-card:active{transform:scale(.992)}
.v27-dash-card::after{display:none}.v27-today-card{background:linear-gradient(145deg,#a1f1e3,#74dfcc)}html[data-color-mode="light"] .v27-today-card{background:linear-gradient(145deg,#ddfaf4,#c8f2e8)}
.v27-card-kicker{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font-size:.86rem;font-weight:850}
.v27-card-label{display:flex;align-items:center;gap:9px;min-width:0}.v27-card-icon{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px}.v27-card-icon .v27-svg{width:25px;height:25px;stroke-width:1.9}
.v27-card-chevron{display:grid;place-items:center;flex:0 0 auto}.v27-card-chevron .v27-svg{width:21px;height:21px;stroke-width:2.2}
.v27-dash-card>strong,.v27-card-line,.v27-card-pay,.v27-status-line,.v27-card-cta,.v27-week-strip{position:relative;z-index:2}
.v27-dash-card>strong{margin-top:13px;font-size:clamp(1.05rem,2.4vw,1.28rem);letter-spacing:-.01em}
.v27-card-line{margin-top:7px;font-size:.8rem;line-height:1.34}.v27-card-pay{margin-top:8px;font-size:.98rem}
.v27-status-line{margin-top:8px;padding:4px 8px;border-radius:999px;background:rgba(6,85,69,.1);font-size:.69rem}
.v27-card-watermark{position:absolute;z-index:1;right:12px;bottom:8px;display:grid;place-items:center;width:72px;height:72px;color:#08725f;opacity:.13;pointer-events:none}.v27-card-watermark .v27-svg{width:58px;height:58px;stroke-width:1.45}
.v27-card-cta{margin-top:auto;padding-top:12px;font-size:.72rem;font-weight:850;color:#075f4f}
.v27-tool-card{min-height:190px}.v27-wide-card{min-height:150px}
.v27-week-strip{gap:5px;margin-top:12px}.v27-week-day{gap:4px}.v27-week-day b{font-size:.61rem}.v27-week-day i{width:17px;height:17px;background:#157564;box-shadow:none}.v27-week-day.off i{background:#9db5b0}.v27-week-day.leave i{background:var(--v27-leave)}.v27-week-day.today i{border:2px solid #0a4439;box-shadow:0 0 0 2px rgba(255,255,255,.75)}
.v27-pager-dots{gap:8px;margin:13px 0 19px}.v27-page-dot{width:9px;height:9px;min-height:9px;border:1.5px solid var(--accent);background:transparent;opacity:.85;transition:background .14s ease,transform .14s ease}.v27-page-dot.active{width:9px;background:var(--accent);transform:scale(1.05)}
.v27-history-strip{margin-top:4px;padding-top:18px}.v27-history-legend{justify-content:center;margin-top:10px;font-size:.72rem}.v27-dashboard-tip{display:flex;align-items:center;justify-content:center;gap:9px;margin:19px 0 0;min-height:50px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:999px;color:var(--muted);font-size:.78rem}.v27-dashboard-tip .v27-svg{width:20px;height:20px;color:var(--accent)}
.history-month{border-radius:12px!important}.history-month.active{background:color-mix(in srgb,var(--accent) 13%,var(--surface-2))!important}

/* Glance -> drill-down pages. Calendar export is only visible in Calendar mode. */
.v27-drilldown-nav{display:none;margin:0 0 12px}.v27-back-home{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:7px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);box-shadow:none}.v27-back-home .v27-svg{width:18px;height:18px}
html.v27-drilldown-active .v27-drilldown-nav{display:block}html.v27-drilldown-active #experiencePanel,html.v27-drilldown-active #diaryNavPanel,html.v27-drilldown-active #setupPanel{display:none!important}
html:not(.v27-view-calendar) #outputSection>.export-panel{display:none!important}
html.v27-view-week .fortnight-group-head,html.v27-view-week .fortnight-pay-footer{display:none!important}
html.v27-view-calendar #rosterOutput,html.v27-view-calendar .output-tools{display:none!important}html.v27-view-calendar .export-panel{display:block!important;margin-top:0}
html.v27-view-calendar .output-heading{margin-bottom:15px}.output-section{scroll-margin-top:12px}
.v27-calendar-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:-2px 0 16px}.v27-calendar-feature{position:relative;display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.v27-calendar-feature-icon{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;color:var(--accent)}.v27-calendar-feature-icon .v27-svg{width:26px;height:26px}.v27-calendar-feature strong,.v27-calendar-feature small{display:block}.v27-calendar-feature small{margin-top:3px;color:var(--muted);line-height:1.35}.v27-calendar-feature.planned{opacity:.78}.v27-planned-pill{position:absolute;right:10px;top:10px;padding:3px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);font-size:.58rem;font-weight:850;letter-spacing:.08em}

/* Day editor: keep the three footer actions reachable on small iOS viewports. */
#dayEditorModal .day-editor-dialog{overscroll-behavior:contain;padding-bottom:0}
#dayEditorModal .day-editor-dialog>.actions{position:sticky;z-index:8;bottom:0;display:flex;flex-wrap:wrap;gap:8px;margin:18px -20px 0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#dayEditorModal .day-editor-dialog>.actions button{width:auto;flex:1 1 160px;min-width:0}


/* v0.27.6 polish */
html[data-theme="1"] .v27-week-day.off i{background:#78908b!important;box-shadow:inset 0 0 0 2px rgba(3,29,27,.42)!important}
html[data-theme="1"] .v27-week-day.leave i{background:#9c72c7!important}
html[data-theme="3"] .history-cycle-dot.diary{border-color:#65cbd0!important}html[data-theme="3"] .history-cycle-dot.diary.complete{background:#65cbd0!important}
html[data-theme="3"] .history-cycle-dot.pay{border-color:#e9b949!important}html[data-theme="3"] .history-cycle-dot.pay.complete{background:#e9b949!important}
.v27-fortnight-nav{display:none;align-items:center;gap:8px;margin-left:auto}html.v27-view-fortnight .v27-fortnight-nav{display:flex}html.v27-view-fortnight .v27-drilldown-nav{display:flex;align-items:center;flex-wrap:wrap}
.v27-classic-roster-head>#v27ClassicBackHome{margin-bottom:14px}
/* iOS day editor: true viewport width, vertical-only scrolling, sticky chrome and reachable actions. */
#dayEditorModal{overflow:hidden!important;overscroll-behavior:none;touch-action:pan-y}
#dayEditorModal .day-editor-dialog{box-sizing:border-box!important;max-width:100vw!important;overflow-x:hidden!important;overscroll-behavior-x:none!important;touch-action:pan-y}
#dayEditorModal .feedback-dialog-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
@media(max-width:620px){#dayEditorModal .day-editor-dialog{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;margin:0!important;padding-left:18px;padding-right:18px}#dayEditorModal .day-editor-dialog>.actions{position:sticky!important;bottom:0!important;z-index:30!important;margin-bottom:0!important;padding-bottom:calc(16px + env(safe-area-inset-bottom))!important;background:var(--surface)!important}}
/* Year strip is a horizontal gesture surface; JS changes year on a deliberate swipe. */
.v27-history-strip{touch-action:pan-y;user-select:none;-webkit-user-select:none}

/* Full master-rotation viewer. */
.v27-viewer-dialog{width:min(1240px,calc(100vw - 20px));max-height:min(94dvh,980px)}.v27-viewer-body{padding:17px 20px 22px}.v27-viewer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:10px}.v27-master-note{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin:15px 0 9px}.v27-master-note span{color:var(--muted);font-size:.78rem}.v27-master-table-wrap{width:100%;max-height:54dvh;overflow:auto;border:1px solid var(--border);border-radius:14px;background:var(--surface);-webkit-overflow-scrolling:touch}.v27-master-table{width:max(100%,980px);border-collapse:separate;border-spacing:0;font-size:.78rem}.v27-master-table th,.v27-master-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:0;text-align:left;vertical-align:middle}.v27-master-table tr:last-child th,.v27-master-table tr:last-child td{border-bottom:0}.v27-master-table th:last-child,.v27-master-table td:last-child{border-right:0}.v27-master-table thead th{position:sticky;z-index:4;top:0;padding:9px 8px;background:var(--surface-2);font-size:.69rem;text-transform:uppercase;letter-spacing:.07em}.v27-master-table thead th:first-child{left:0;z-index:6;min-width:58px}.v27-master-line{position:sticky;z-index:3;left:0;width:58px;padding:8px!important;background:var(--surface-2);font-weight:900;text-align:center!important}.v27-master-duty{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;min-width:125px;min-height:58px;padding:7px 8px;border:0;border-radius:0;background:transparent;color:var(--text);box-shadow:none;text-align:left}.v27-master-duty:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.v27-master-duty strong{font-size:.78rem}.v27-master-duty span{margin-top:2px;color:var(--muted);font-size:.68rem}.v27-master-duty.off{justify-content:center;color:var(--muted);background:color-mix(in srgb,var(--muted) 7%,transparent)}.v27-selected-duty{margin-top:10px;padding:12px 13px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);font-size:.78rem;line-height:1.45}.v27-selected-duty strong{display:block;font-size:.9rem}.v27-selected-duty span,.v27-selected-duty small{display:block;margin-top:3px;color:var(--muted)}.v27-selected-duty p{margin:8px 0 0;white-space:pre-wrap}.v27-shift-search{margin-top:16px}.v27-viewer-results{max-height:250px}.v27-job-result{border-radius:12px}

@media(max-width:720px){
  .v27-header-shell,.v27-dashboard{max-width:none}.v27-header-actions{gap:6px}.v27-card-page{gap:9px}.v27-dash-card{min-height:164px;padding:14px;border-radius:20px}.v27-tool-card{min-height:174px}.v27-wide-card{min-height:142px}.v27-card-icon{width:25px;height:25px}.v27-card-icon .v27-svg{width:23px;height:23px}.v27-card-watermark{right:6px;bottom:5px;width:60px;height:60px}.v27-card-watermark .v27-svg{width:50px;height:50px}.v27-card-cta{font-size:.66rem}.v27-calendar-feature-grid{grid-template-columns:1fr}.v27-viewer-grid{grid-template-columns:1fr 1fr}.v27-viewer-grid .field:first-child{grid-column:1/-1}.v27-viewer-dialog{width:100vw;max-width:none;max-height:94dvh}.v27-master-table-wrap{max-height:50dvh}
}
@media(max-width:560px){
  #dayEditorModal .day-editor-dialog>.actions{display:grid;grid-template-columns:1fr;margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}#dayEditorModal .day-editor-dialog>.actions button{width:100%;flex:none}
}
@media(max-width:430px){
  .v27-header-shell{padding-top:15px}.v27-brand-title{font-size:1.95rem}.v27-icon-btn{width:40px;height:40px;min-height:40px}.v27-header-chip{min-height:43px;padding:6px 8px}.v27-chip-icon{width:21px;height:21px}.v27-chip-icon .v27-svg{width:19px;height:19px}.v27-card-page{gap:8px}.v27-dash-card{min-height:157px;padding:13px}.v27-dash-card>strong{font-size:.98rem}.v27-card-line{font-size:.7rem}.v27-card-pay{font-size:.84rem}.v27-status-line{font-size:.61rem}.v27-card-kicker{font-size:.75rem}.v27-card-label{gap:6px}.v27-card-icon{width:22px;height:22px}.v27-card-icon .v27-svg{width:21px;height:21px}.v27-card-chevron .v27-svg{width:18px;height:18px}.v27-week-day i{width:14px;height:14px}.v27-week-day b{font-size:.55rem}.v27-card-watermark{opacity:.09}.v27-dashboard-tip{min-height:44px;font-size:.72rem}.v27-viewer-grid{grid-template-columns:1fr}.v27-viewer-grid .field:first-child{grid-column:auto}.v27-master-duty{min-width:112px;min-height:54px}.v27-master-table{width:880px}
}


/* ==========================================================================
   v0.27.2 visual refinement
   Restores the established RosterBot Green palette/treatment from the live
   pre-dashboard UI, adds breathing room between dashboard pages, restores the
   elongated active pager indicator, and fits all seven master-roster days on
   a phone without horizontal scrolling.
   ========================================================================== */
html[data-theme="1"][data-color-mode="dark"]{
  --bg:#071a20;--surface:#0b2730;--surface-2:#0f333d;--border:#245766;
  --text:#e9fbff;--muted:#9fc4cc;--olive:#185b63;--blue:#16758a;
  --alr:#355f67;--accent:#35d6d0;--danger-soft:#302717;
  --danger-border:#776032;--leave:#7650a8;
}
html[data-theme="1"][data-color-mode="dark"] body{background:#071a20}
html[data-theme="1"][data-color-mode="dark"] .v27-topbar{
  background:linear-gradient(135deg,#0b5364,#0f8074)!important;
  border-bottom-color:rgba(131,238,143,.34)!important;
}
/* Dashboard cards now belong to the same dark-green surface family as the
   established controls instead of becoming large mint-coloured slabs. */
html[data-theme="1"][data-color-mode="dark"] .v27-dash-card,
html[data-theme="1"][data-color-mode="dark"] .v27-today-card{
  background:#0f333d;color:#e9fbff;border:1px solid #245766;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
html[data-theme="1"][data-color-mode="dark"] .v27-dash-card:hover{
  background:#123b46;box-shadow:0 13px 28px rgba(0,0,0,.22);
}
html[data-theme="1"][data-color-mode="dark"] .v27-card-icon,
html[data-theme="1"][data-color-mode="dark"] .v27-card-chevron,
html[data-theme="1"][data-color-mode="dark"] .v27-card-cta{color:#35d6d0}
html[data-theme="1"][data-color-mode="dark"] .v27-card-watermark{color:#35d6d0;opacity:.09}
html[data-theme="1"][data-color-mode="dark"] .v27-status-line{background:rgba(53,214,208,.10);color:#dffbff}
html[data-theme="1"][data-color-mode="dark"] .v27-week-day i{background:#16758a}
html[data-theme="1"][data-color-mode="dark"] .v27-week-day.today i{border-color:#83ee8f;box-shadow:0 0 0 2px rgba(53,214,208,.20)}

/* Keep a visible gutter between the two whole dashboard pages while swiping. */
.v27-card-pager{gap:12px;border-radius:0}
.v27-card-page{flex:0 0 100%;scroll-snap-align:start}
/* Restore the pill-shaped current-page indicator. */
.v27-page-dot{width:9px;height:9px;min-height:9px;transition:width .16s ease,background .16s ease,transform .16s ease}
.v27-page-dot.active{width:25px;transform:none}

/* Master rotation: seven days + line number must fit in one mobile viewport. */
@media(max-width:720px){
  .v27-master-table-wrap{overflow-x:hidden}
  .v27-master-table{width:100%;min-width:0;table-layout:fixed;font-size:.62rem}
  .v27-master-table thead th{padding:7px 1px;font-size:.52rem;letter-spacing:.02em}
  .v27-master-table thead th:first-child{width:31px;min-width:31px}
  .v27-master-line{width:31px;min-width:31px;padding:5px 1px!important;font-size:.62rem}
  .v27-master-duty{min-width:0;min-height:48px;padding:5px 1px;align-items:center;text-align:center;overflow:hidden}
  .v27-master-duty strong{width:100%;font-size:.58rem;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:clip;letter-spacing:-.02em}
  .v27-master-duty span{width:100%;margin-top:3px;font-size:.51rem;line-height:1;white-space:nowrap;overflow:hidden}
}
@media(max-width:430px){
  .v27-master-table{width:100%!important;min-width:0!important}
  .v27-master-duty{min-width:0!important;min-height:44px}
  .v27-master-table thead th:first-child,.v27-master-line{width:28px;min-width:28px}
  .v27-master-duty strong{font-size:.54rem}.v27-master-duty span{font-size:.48rem}
}


/* v0.27.3: original live themes, month navigation and viewer OR emphasis. */
html{color-scheme:dark!important}
.v27-month-nav{display:none;align-items:center;gap:8px;margin-left:auto}.v27-month-nav strong{min-width:130px;text-align:center}.v27-drilldown-nav{align-items:center;gap:10px}html.v27-view-month .v27-drilldown-nav{display:flex}html.v27-view-month .v27-month-nav{display:flex}
.v27-theme-field{min-width:min(320px,100%)}.v27-theme-field select{width:100%}
/* Dashboard chrome follows the selected original theme instead of imposing Green. */
.v27-dash-card,.v27-today-card{background:var(--surface-2)!important;color:var(--text)!important;border:1px solid var(--border)!important;box-shadow:0 10px 24px rgba(0,0,0,.18)!important}.v27-dash-card:hover{background:color-mix(in srgb,var(--surface-2) 88%,var(--accent))!important}.v27-card-icon,.v27-card-chevron,.v27-card-cta,.v27-card-watermark{color:var(--accent)!important}.v27-status-line{background:color-mix(in srgb,var(--accent) 12%,transparent)!important;color:var(--text)!important}.v27-search{background:var(--surface)!important}.v27-icon-btn,.v27-header-chip{background:color-mix(in srgb,var(--surface) 72%,transparent)!important;border-color:color-mix(in srgb,var(--accent) 38%,var(--border))!important;color:var(--text)!important}
html[data-theme="1"] .v27-topbar{background:linear-gradient(135deg,#0b5364,#0f8074)!important;border-bottom-color:rgba(131,238,143,.34)!important}html[data-theme="2"] .v27-topbar{background:#111315!important;border-bottom-color:#3d444b!important}html[data-theme="3"] .v27-topbar{background:linear-gradient(135deg,#0b3a70,#08294f)!important;border-bottom:2px solid #d7ad36!important}html[data-theme="4"] .v27-topbar{background:linear-gradient(135deg,#f26a2f 0%,#e6531d 62%,#bd3f11 100%)!important;border-bottom:2px solid #17191b!important}html[data-theme="5"] .v27-topbar{background:linear-gradient(135deg,#c7353c,#d94b50 58%,#2569a9 100%)!important;border-bottom:2px solid #2b6da9!important}html[data-theme="6"] .v27-topbar{background:linear-gradient(135deg,#6f3489 0%,#843e9d 62%,#5a2a71 100%)!important;border-bottom:2px solid #a77abb!important}html[data-theme="7"] .v27-topbar{background:#202020!important}
.v27-master-duty.off{background:color-mix(in srgb,var(--accent) 32%,var(--surface-2))!important;color:var(--text)!important;font-weight:900}.v27-master-duty.off strong{color:var(--text)!important}
@media(max-width:560px){.v27-drilldown-nav{flex-wrap:wrap}.v27-month-nav{width:100%;justify-content:space-between;margin-left:0}.v27-month-nav strong{flex:1}}


/* v0.27.4: month jump returns to the proven classic Your Roster workbench. */
.v27-classic-roster-head{display:none;margin:18px 0 16px}.v27-classic-title h2{margin:4px 0 4px;font-size:clamp(1.75rem,5vw,2.6rem)}.v27-classic-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.v27-classic-controls button{min-height:48px;padding:10px 18px;border-radius:14px;font-weight:800}.v27-classic-controls #v27ClassicPrev,.v27-classic-controls #v27ClassicNext{min-width:58px;font-size:1.45rem}.v27-view-month .v27-classic-roster-head{display:block}.v27-view-month .v27-drilldown-nav{display:none!important}.v27-view-month .output-heading{display:none!important}.v27-view-month .export-panel{display:none!important}
@media(max-width:560px){.v27-classic-controls{display:grid;grid-template-columns:58px 1fr 58px 1.35fr}.v27-classic-controls #v27ClassicCompact{grid-column:1/3}.v27-classic-controls button{padding:9px 10px}}


/* v0.27.7 iPhone focus-zoom + VR legend correction */
/* iOS Safari automatically zooms focused form controls whose computed text size is below 16px.
   Keep every editable day-diary control at 16px on phone widths so focus does not change page scale. */
@media(max-width:620px){
  #dayEditorModal input,
  #dayEditorModal select,
  #dayEditorModal textarea{font-size:16px!important;}
}
/* VR Blue & Gold: keep the legend keyed to the same cyan Diary / gold Payslip colours as the year dots. */
html[data-theme="3"] .history-legend .edit-dot{border-color:#65cbd0!important;background:#65cbd0!important}
html[data-theme="3"] .history-legend .check-dot{border-color:#e9b949!important;background:#e9b949!important}


/* ==========================================================================\n   v0.27.11 Calendar subscription prototype\n   The live feed is intentionally a minimal projection separate from Cloud Sync.\n   ========================================================================== */
.rbcal-subscription{margin:2px 0 22px;padding:18px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:18px;background:color-mix(in srgb,var(--surface-2) 84%,var(--surface));box-shadow:0 12px 30px rgba(0,0,0,.08)}
.rbcal-sub-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}.rbcal-sub-head h3{margin:1px 0 5px;font-size:1.2rem}.rbcal-sub-head p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.rbcal-pill{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:850;white-space:nowrap}.rbcal-pill.ok{border-color:#3e9c64;color:#9de0b5}.rbcal-pill.warning{border-color:#9a7836;color:#ffd98a}.rbcal-pill.error{border-color:#9a4949;color:#ffaaa2}
.rbcal-refresh-warning{margin:14px 0;padding:11px 12px;border-left:3px solid #e9b949;border-radius:8px;background:rgba(233,185,73,.09);font-size:.78rem;line-height:1.5}.rbcal-settings-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.rbcal-choice{min-height:0}.rbcal-choice label:not(.field){align-items:flex-start}.rbcal-choice label span{display:flex;flex-direction:column;gap:2px}.rbcal-choice label small,.rbcal-choice .field small{color:var(--muted);line-height:1.35}.rbcal-privacy-box{margin-top:13px;padding:11px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--surface) 70%,transparent)}.rbcal-privacy-box strong,.rbcal-privacy-box small{display:block}.rbcal-privacy-box small{margin-top:4px;color:var(--muted);line-height:1.45}
.rbcal-preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.rbcal-preview-head strong,.rbcal-preview-head small{display:block}.rbcal-preview-head small{margin-top:3px;color:var(--muted)}.rbcal-actions-inline,.rbcal-publish-actions{display:flex;gap:8px;flex-wrap:wrap}.rbcal-preview{margin-top:10px;display:grid;gap:6px}.rbcal-preview-row{display:grid;grid-template-columns:95px minmax(0,1fr);gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.rbcal-preview-row time{color:var(--muted);font-size:.73rem;font-weight:750}.rbcal-preview-row strong,.rbcal-preview-row small{display:block}.rbcal-preview-row small{margin-top:3px;color:var(--muted);line-height:1.35}.rbcal-preview-more{padding:7px 2px;color:var(--muted);font-size:.75rem}
.rbcal-publish-box{margin-top:15px;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.rbcal-publish-copy strong,.rbcal-publish-copy small{display:block}.rbcal-publish-copy small{margin-top:4px;color:var(--muted);line-height:1.45}.rbcal-publish-actions{margin-top:10px}.rbcal-link-panel{margin-top:13px;padding-top:13px;border-top:1px solid var(--border)}.rbcal-link-panel input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.rbcal-provider-help{margin-top:13px;border-top:1px solid var(--border);padding-top:11px}.rbcal-provider-help summary{cursor:pointer;font-weight:800}.rbcal-provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.rbcal-provider-grid>div{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.rbcal-provider-grid strong,.rbcal-provider-grid small{display:block}.rbcal-provider-grid small{margin-top:3px;color:var(--muted);line-height:1.4}.rbcal-oneoff-divider{display:flex;align-items:center;gap:10px;margin:22px 0 14px;color:var(--muted);font-size:.67rem;font-weight:900;letter-spacing:.12em}.rbcal-oneoff-divider::before,.rbcal-oneoff-divider::after{content:"";height:1px;flex:1;background:var(--border)}
@media(max-width:720px){.rbcal-subscription{padding:14px}.rbcal-sub-head{grid-template-columns:auto 1fr}.rbcal-sub-head .rbcal-pill{grid-column:2;justify-self:start}.rbcal-settings-grid{grid-template-columns:1fr}.rbcal-preview-head{align-items:flex-start;flex-direction:column}.rbcal-actions-inline,.rbcal-publish-actions{width:100%}.rbcal-actions-inline button,.rbcal-publish-actions button{flex:1 1 145px}.rbcal-provider-grid{grid-template-columns:1fr}.rbcal-preview-row{grid-template-columns:78px minmax(0,1fr)}}


/* ==========================================================================\n   v0.27.10 Phase 1 UX — first-run onboarding\n   Keeps existing roster/diary/pay engines; removes mode choice from normal UX.\n   ========================================================================== */
#experiencePanel{display:none!important}
.v28-onboarding-copy{max-width:720px;margin:4px 0 16px;color:var(--muted);line-height:1.55}
.v28-onboarding-copy strong{color:var(--text)}
.v28-onboarding-secondary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:11px}
.v28-onboarding-secondary small{color:var(--muted)}
.v28-preview-confirm{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 16px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--surface-2) 88%,var(--surface));box-shadow:0 10px 28px rgba(0,0,0,.10)}
.v28-preview-confirm>div>strong,.v28-preview-confirm>div>small{display:block}.v28-preview-confirm>div>small{margin-top:4px;color:var(--muted);line-height:1.4}.v28-preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.v28-lookup-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 15px;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.v28-lookup-banner strong,.v28-lookup-banner small{display:block}.v28-lookup-banner small{margin-top:3px;color:var(--muted)}

html.v28-onboarding-active #diaryHomePanel,
html.v28-onboarding-active #diaryNavPanel{display:none!important}
html.v28-onboarding-active .v27-header-actions{display:none!important}
html.v28-onboarding-active #setupPanel{display:block!important;margin:22px auto;max-width:820px}
html.v28-onboarding-active #setupPanel .setup-heading-actions,
html.v28-onboarding-active #setupPanel #localDataNotice,
html.v28-onboarding-active #setupPanel .annual-leave-box,
html.v28-onboarding-active #setupPanel .compact-field,
html.v28-onboarding-active #setupPanel #convertQuickToDiaryBtn,
html.v28-onboarding-active #setupPanel #quickConvertNote{display:none!important}
html.v28-onboarding-active #setupPanel .section-heading{align-items:flex-start}
html.v28-onboarding-active #setupPanel .form-grid{margin-top:10px}
html.v28-onboarding-active #setupPanel .swap-box{margin-top:14px}
html.v28-onboarding-active #setupPanel .quick-convert-row{margin-top:18px}
html.v28-onboarding-active #setupPanel #generateBtn{min-width:min(100%,220px)}
html.v28-onboarding-active #outputSection{display:none!important}
html.v28-onboarding-active.v28-onboarding-preview #outputSection{display:block!important;margin-top:8px}
html.v28-onboarding-active.v28-onboarding-preview #outputSection .v27-classic-roster-head,
html.v28-onboarding-active.v28-onboarding-preview #outputSection .v27-drilldown-nav,
html.v28-onboarding-active.v28-onboarding-preview #outputSection .export-panel,
html.v28-onboarding-active.v28-onboarding-preview #outputSection .fortnight-pay-footer,
html.v28-onboarding-active.v28-onboarding-preview #outputSection .week-actions-wrap{display:none!important}
html.v28-onboarding-active.v28-onboarding-preview #outputSection .fortnight-group-head{margin-top:6px}
html.v28-onboarding-active.v28-onboarding-preview #outputSection .output-heading{margin-top:0}
html.v28-onboarding-active.v28-lookup-active #v28PreviewConfirm{display:none!important}
html.v28-onboarding-active.v28-lookup-active #setupPanel{border-color:color-mix(in srgb,var(--accent) 42%,var(--border))}

@media(max-width:620px){
  html.v28-onboarding-active #setupPanel{margin:14px 0;padding:16px}
  html.v28-onboarding-active #setupPanel input,
  html.v28-onboarding-active #setupPanel select{font-size:16px!important}
  .v28-preview-confirm{align-items:stretch;flex-direction:column;padding:13px}
  .v28-preview-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.v28-preview-actions button{width:100%}
  .v28-lookup-banner{align-items:flex-start;flex-direction:column}
}


/* ==========================================================================
   v0.27.11 Phase 2 UX — primary navigation + permanent Roster Lookup
   Navigation layer only; roster/pay/calendar engines remain unchanged.
   ========================================================================== */
.v29-primary-nav-shell{display:none;z-index:60;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
html.v29-app-ready .v29-primary-nav-shell{display:block}
.v29-primary-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px 0}
.v29-nav-btn{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 10px;border:0;border-radius:12px;background:transparent;color:var(--muted);box-shadow:none;font-weight:800}
.v29-nav-btn .v27-svg{width:20px;height:20px;stroke-width:1.9}.v29-nav-btn.active{background:color-mix(in srgb,var(--accent) 17%,var(--surface-2));color:var(--text)}
.v29-nav-btn.active .v27-svg{color:var(--accent)}
html.v29-app-ready .v27-header-actions{display:none!important}
html.v29-app-ready #settingsOpenBtn{display:none!important}
html.v28-onboarding-active .v29-primary-nav-shell{display:none!important}
body.feedback-modal-open .v29-primary-nav-shell{display:none!important}
html.v28-onboarding-active .v27-header-icons{display:none!important}

.v29-hub{display:none;padding:22px 0 28px}
html.v29-view-roster #v29RosterHub,html.v29-view-more #v29MoreHub{display:block}
html.v29-view-roster #outputSection,html.v29-view-more #outputSection,
html.v29-view-roster #diaryNavPanel,html.v29-view-more #diaryNavPanel,
html.v29-view-roster #setupPanel,html.v29-view-more #setupPanel{display:none!important}
.v29-hub-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:16px}.v29-hub-head h2{margin:2px 0 4px;font-size:clamp(1.6rem,4vw,2.25rem)}.v29-hub-head p{margin:0;color:var(--muted);line-height:1.45}
.v29-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v29-hub-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:158px;padding:17px;border:1px solid var(--border);border-radius:18px;background:var(--surface-2);color:var(--text);text-align:left;box-shadow:none}
button.v29-hub-card{cursor:pointer}.v29-hub-card:hover{border-color:color-mix(in srgb,var(--accent) 62%,var(--border))}
.v29-hub-card.wide{grid-column:1/-1}.v29-hub-card.featured{border-color:color-mix(in srgb,var(--accent) 52%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}
.v29-hub-card-top{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px}.v29-hub-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}.v29-hub-card-icon .v27-svg{width:23px;height:23px}
.v29-hub-card h3{margin:12px 0 0;font-size:1.05rem}.v29-hub-card strong{display:block;margin-top:10px;font-size:1.2rem}.v29-hub-card p,.v29-hub-card small{margin:6px 0 0;color:var(--muted);line-height:1.45}.v29-hub-card .v29-card-arrow{color:var(--muted);font-size:1.2rem}
.v29-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:14px}.v29-card-actions button{min-height:38px}
.v29-lookup-safety{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,transparent);font-size:.7rem;font-weight:800;color:var(--text)}
.v29-more-grid .v29-hub-card{min-height:138px}
.v29-more-status{margin-top:8px;font-size:.76rem;font-weight:800;color:var(--muted)}

@media(min-width:761px){
  .v29-primary-nav-shell{position:sticky;top:0}
}
@media(max-width:760px){
  html.v29-app-ready body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  .v29-primary-nav-shell{position:fixed;left:0;right:0;bottom:0;border-top:1px solid var(--border);border-bottom:0;background:color-mix(in srgb,var(--surface) 96%,transparent)}
  .v29-primary-nav{gap:0;padding:6px 5px calc(6px + env(safe-area-inset-bottom))}
  .v29-nav-btn{flex-direction:column;gap:2px;min-height:56px;padding:5px 2px;border-radius:10px;font-size:.64rem;line-height:1.1}
  .v29-nav-btn .v27-svg{width:22px;height:22px}
  .v29-hub{padding:16px 0 24px}.v29-hub-grid{grid-template-columns:1fr}.v29-hub-card.wide{grid-column:auto}.v29-hub-card{min-height:142px;padding:15px}
}


/* v0.27.12 Data & Sync close-control hotfix */
#dataModal .feedback-dialog-header{isolation:isolate}
#dataModal #dataCloseBtn{position:relative;z-index:50;pointer-events:auto;touch-action:manipulation}

/* ==========================================================================\n   v0.27.13 Recovery UX hotfix\n   ========================================================================== */
.v30-existing-user{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--surface-2) 76%,var(--surface))}
.v30-existing-user>div:first-child{min-width:0}.v30-existing-user strong,.v30-existing-user small{display:block}.v30-existing-user small{margin-top:3px;color:var(--muted);line-height:1.4}.v30-existing-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}
.cloud-copy-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 0}.cloud-copy-summary>div{min-width:0;padding:10px 11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.cloud-copy-summary strong{display:block;margin-top:4px;font-size:.82rem;line-height:1.35;overflow-wrap:anywhere}.cloud-copy-summary .cloud-label{font-size:.61rem}
@media(max-width:620px){.v30-existing-user{align-items:stretch;flex-direction:column}.v30-existing-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.v30-existing-actions button{width:100%;font-size:.8rem}.cloud-copy-summary{grid-template-columns:1fr}}

/* ==========================================================================
   v0.27.14 Phase 3 UX — Roster History & Changes
   Human-first change editor layered over the existing schema-v4 timeline.
   ========================================================================== */
.timeline-history-intro{display:grid;gap:5px;margin:0 0 16px;padding:14px 15px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--surface-2) 86%,var(--surface))}
.timeline-history-intro>strong{font-size:1rem}.timeline-history-intro>span{color:var(--muted);font-size:.82rem;line-height:1.45}
.timeline-history-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 18px}.timeline-history-actions button{min-height:42px}
.timeline-history-list{margin-top:4px}.timeline-entry{padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 78%,transparent)}.timeline-entry+.timeline-entry{margin-top:8px}.timeline-entry.current{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));box-shadow:inset 3px 0 0 var(--accent)}
.timeline-entry-range{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-current-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text);font-size:.66rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.timeline-entry-type{font-size:.7rem;color:var(--muted);letter-spacing:.08em}.timeline-entry-sequence{font-size:.96rem;font-weight:800}.timeline-entry-note{line-height:1.4}
.timeline-editor{margin-top:18px;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 44%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--surface-2) 82%,var(--surface));box-shadow:0 14px 34px rgba(0,0,0,.10)}.timeline-editor[hidden]{display:none}.timeline-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.timeline-editor-head h3{margin:2px 0 0;font-size:1.2rem}.timeline-intent-section{margin:13px 0 14px}.timeline-intent-section>strong{display:block;margin-bottom:8px}.timeline-intent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.timeline-intent{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:88px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;box-shadow:none}.timeline-intent strong{font-size:.83rem;line-height:1.25}.timeline-intent span{color:var(--muted);font-size:.72rem;line-height:1.35;font-weight:500}.timeline-intent.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent)}.timeline-intent-help{margin:8px 0 0;font-size:.76rem;line-height:1.45}.timeline-change-fields{margin-top:4px}.timeline-editor-actions{margin-top:12px}.timeline-more-tools,.timeline-danger-zone{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.timeline-more-tools summary,.timeline-danger-zone summary{cursor:pointer;font-weight:800;color:var(--text);padding:5px 0}.timeline-more-body{padding:8px 0 2px}.timeline-more-body>.muted{margin-top:0}.timeline-danger-zone summary{color:var(--muted)}
html[data-theme="7"] .timeline-history-intro,html[data-theme="7"] .timeline-entry,html[data-theme="7"] .timeline-editor,html[data-theme="7"] .timeline-intent{border-radius:0!important;background:transparent!important;box-shadow:none!important}.timeline-intent.active{outline:0}html[data-theme="7"] .timeline-intent.active{border-color:#e9ecef!important}.timeline-current-pill{white-space:nowrap}html[data-theme="7"] .timeline-current-pill{border-radius:0!important;background:transparent!important;padding-left:0!important;padding-right:0!important}
@media(max-width:720px){.timeline-history-actions{display:grid;grid-template-columns:1fr 1fr}.timeline-history-actions .primary{grid-column:1/-1}.timeline-history-actions button{width:100%}.timeline-intent-grid{grid-template-columns:1fr}.timeline-intent{min-height:0}.timeline-editor{padding:13px}.timeline-editor-head{align-items:center}.timeline-entry{padding:12px}.timeline-entry-actions{margin-top:10px}.timeline-entry-actions button{flex:1 1 auto}}
@media(max-width:430px){.timeline-history-actions{grid-template-columns:1fr}.timeline-history-actions .primary{grid-column:auto}.timeline-editor-actions{display:grid;grid-template-columns:1fr}.timeline-editor-actions button{width:100%}}
.timeline-history-list .timeline-entry:last-child{border-bottom:1px solid var(--border)}.timeline-history-list .timeline-entry.current:last-child{border-bottom-color:color-mix(in srgb,var(--accent) 48%,var(--border))}

/* ==========================================================================
   v0.27.15 Phase 4 UX — Calendar progressive disclosure
   ========================================================================== */
.rbcal-calendar-page{overflow:visible}.rbcal-page-heading{margin-bottom:14px}.rbcal-page-intro{max-width:700px;margin:5px 0 0;color:var(--muted);line-height:1.5}
.rbcal-path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 10px}.rbcal-path-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-height:118px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface-2);color:var(--text);text-align:left;box-shadow:none}.rbcal-path-card:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--border))}.rbcal-path-card.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}.rbcal-path-card.has-active .rbcal-path-status{border-color:#3e9c64;color:#9de0b5;background:rgba(62,156,100,.08)}
.rbcal-path-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}.rbcal-path-icon .v27-svg{width:27px;height:27px}.rbcal-path-copy{min-width:0}.rbcal-path-copy strong,.rbcal-path-copy small{display:block}.rbcal-path-copy strong{font-size:1rem;line-height:1.25}.rbcal-path-copy small{margin-top:5px;color:var(--muted);font-size:.78rem;line-height:1.45}.rbcal-path-status{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.66rem;font-weight:850;white-space:nowrap}.rbcal-path-hint{margin:0 2px 16px;color:var(--muted);font-size:.77rem}.rbcal-flow-panel[hidden]{display:none!important}.rbcal-flow-panel{margin-top:14px}.rbcal-flow-panel .rbcal-subscription{margin:0}.rbcal-oneoff-card{padding:18px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:18px;background:color-mix(in srgb,var(--surface-2) 84%,var(--surface));box-shadow:0 12px 30px rgba(0,0,0,.08)}.rbcal-flow-head h3{margin:2px 0 5px;font-size:1.2rem}.rbcal-flow-head p{margin:0 0 14px;color:var(--muted);font-size:.82rem;line-height:1.5}
.rbcal-core-settings{margin-top:14px}.rbcal-primary-action-box{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.rbcal-progressive-more{margin-top:13px;padding-top:11px;border-top:1px solid var(--border)}.rbcal-progressive-more>summary,.rbcal-how-it-works>summary{cursor:pointer;padding:6px 0;font-weight:850;color:var(--text)}.rbcal-more-body,.rbcal-how-body{padding:9px 0 2px}.rbcal-more-body>.choice-group{margin:0}.rbcal-how-it-works{margin-top:4px}.rbcal-how-it-works .rbcal-refresh-warning{margin-top:4px}.rbcal-range-note{margin:11px 0 0;font-size:.76rem;line-height:1.45}.rbcal-oneoff-core{margin-top:14px}.rbcal-oneoff-action{margin-top:15px}.rbcal-oneoff-action .primary{min-width:220px}
html[data-theme="7"] .rbcal-path-card,html[data-theme="7"] .rbcal-oneoff-card{border-radius:0!important;background:transparent!important;box-shadow:none!important}html[data-theme="7"] .rbcal-path-icon,html[data-theme="7"] .rbcal-path-status{border-radius:0!important;background:transparent!important}
@media(max-width:760px){.rbcal-path-grid{grid-template-columns:1fr}.rbcal-path-card{min-height:104px;padding:14px}.rbcal-oneoff-card{padding:14px}.rbcal-path-hint{margin-bottom:12px}.rbcal-oneoff-action{display:grid}.rbcal-oneoff-action .primary{width:100%;min-width:0}}
@media(max-width:430px){.rbcal-path-card{grid-template-columns:auto minmax(0,1fr)}.rbcal-path-status{grid-column:2;justify-self:start}.rbcal-path-icon{width:40px;height:40px}.rbcal-path-copy strong{font-size:.95rem}}


/* ==========================================================================
   v0.27.17 Phase 5 UX — Home refinement + Calendar choice-card polish
   ========================================================================== */
/* Home now has one useful at-a-glance page; permanent primary navigation owns
   Roster / Calendar / Pay / More instead of duplicating them behind a swipe. */
.v27-card-pager{display:block!important;overflow:visible!important;scroll-snap-type:none!important;margin:18px 0 0!important;padding:0!important;border-radius:0!important}
.v27-card-page{width:100%;flex:none!important;scroll-snap-align:none!important}
.v27-pager-dots{display:none!important}

/* Calendar method choices use the same card language as the Roster/More hubs.
   Keep every text/status item in an explicit flex column so Safari cannot
   collapse the labels into one run of inline text on narrow screens. */
.rbcal-path-card{display:grid!important;grid-template-columns:44px minmax(0,1fr) 22px!important;column-gap:12px!important;row-gap:0!important;align-items:start!important;min-height:0!important;padding:15px!important;border:1px solid var(--border)!important;border-radius:18px!important;background:var(--surface-2)!important;color:var(--text)!important;text-align:left!important;box-shadow:none!important;white-space:normal!important}
.rbcal-path-card:hover{border-color:color-mix(in srgb,var(--accent) 62%,var(--border))!important}
.rbcal-path-card.active{border-color:color-mix(in srgb,var(--accent) 78%,var(--border))!important;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))!important;box-shadow:inset 3px 0 0 var(--accent)!important}
.rbcal-path-icon{grid-column:1;grid-row:1;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent)}
.rbcal-path-copy{grid-column:2;grid-row:1;display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0;width:100%;gap:6px;text-align:left!important;white-space:normal!important}
.rbcal-path-title{display:flex!important;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;min-width:0}
.rbcal-path-copy strong{display:block!important;min-width:0;margin:0!important;font-size:.98rem;line-height:1.3;color:var(--text);white-space:normal!important;overflow-wrap:anywhere}
.rbcal-path-copy small{display:block!important;width:100%;margin:0!important;color:var(--muted);font-size:.78rem;line-height:1.45;font-weight:500;white-space:normal!important;overflow-wrap:anywhere}
.rbcal-path-status{display:inline-flex!important;flex:0 0 auto;align-items:center;justify-content:center;min-height:24px;padding:3px 7px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.63rem;font-weight:850;white-space:nowrap}
.rbcal-path-card.has-active .rbcal-path-status{border-color:#3e9c64;color:#9de0b5;background:rgba(62,156,100,.08)}
.rbcal-path-arrow{grid-column:3;grid-row:1;display:grid;place-items:center;align-self:center;color:var(--muted)}
.rbcal-path-arrow .v27-svg{width:20px;height:20px;stroke-width:2.1}
html[data-theme="7"] .rbcal-path-arrow{color:#c4c8cf!important}
@media(max-width:760px){.rbcal-path-grid{gap:9px}.rbcal-path-card{grid-template-columns:40px minmax(0,1fr) 20px!important;padding:13px!important}.rbcal-path-title{flex-direction:column;gap:6px}.rbcal-path-status{align-self:flex-start}.rbcal-path-icon{width:38px;height:38px}.rbcal-path-copy strong{font-size:.94rem}.rbcal-path-copy small{font-size:.75rem}}
@media(max-width:430px){.rbcal-path-card{grid-template-columns:36px minmax(0,1fr) 18px!important;column-gap:10px!important}.rbcal-path-icon{width:34px;height:34px;border-radius:10px}.rbcal-path-icon .v27-svg{width:22px;height:22px}.rbcal-path-arrow .v27-svg{width:18px;height:18px}}

/* ========================================================================== 
   v0.27.18 small UX luxuries — directional year transition + viewer period copy
   ========================================================================== */
.v27-history-strip{overflow:hidden;touch-action:pan-y}
.v27-history-strip #historyYear,.v27-history-strip .history-months{backface-visibility:hidden;-webkit-backface-visibility:hidden}
#viewerDataset option,#viewerRoster option{font-variant-numeric:tabular-nums}


/* ==========================================================================
   v0.28.0 Sources — public calculation/reference provenance
   ========================================================================== */
.sources-dialog{width:min(1100px,calc(100vw - 24px));max-height:min(92vh,980px)}
.sources-body{display:grid;gap:16px;padding-bottom:4px}
.sources-intro,.sources-section{padding:16px;border:1px solid var(--border);border-radius:15px;background:color-mix(in srgb,var(--surface-2) 76%,var(--surface))}
.sources-intro{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.sources-intro>strong{font-size:1.08rem}.sources-intro p{margin:6px 0 0;color:var(--muted);line-height:1.55}
.sources-status-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.sources-badge,.sources-source-pill{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:850;white-space:nowrap}.sources-badge.verified{border-color:#4b9d68;color:#9de0b5}.sources-badge.calc{border-color:color-mix(in srgb,var(--accent) 70%,var(--border));color:var(--accent)}.sources-badge.public{border-color:#5d7895;color:#a9cbe9}
.sources-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.sources-section-head h3{margin:2px 0 4px;font-size:1.25rem}.sources-section-head p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5;max-width:780px}.sources-source-pill{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--text)}
.sources-current-card{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:12px;background:var(--surface)}.sources-current-card strong,.sources-current-card span,.sources-current-card small{display:block}.sources-current-card strong{font-size:1.12rem}.sources-current-card span{color:var(--accent);font-weight:850}.sources-current-card small{margin-top:3px;color:var(--muted)}
.sources-table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);-webkit-overflow-scrolling:touch}.sources-table{width:100%;border-collapse:separate;border-spacing:0;min-width:850px;font-size:.78rem}.sources-table th,.sources-table td{padding:9px 10px;border-bottom:1px solid var(--border);border-right:1px solid color-mix(in srgb,var(--border) 72%,transparent);text-align:right;white-space:nowrap}.sources-table th:first-child,.sources-table td:first-child,.sources-table th:nth-child(2),.sources-table td:nth-child(2){text-align:left}.sources-table th{position:sticky;top:0;z-index:1;background:var(--surface-2);font-size:.67rem;letter-spacing:.035em;color:var(--muted)}.sources-table tr:last-child td{border-bottom:0}.sources-table th:last-child,.sources-table td:last-child{border-right:0}.sources-table .sources-code{font-weight:900;color:var(--accent)}.sources-table .sources-current-col{background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--text);font-weight:850}.sources-table td small{display:block;color:var(--muted);font-size:.68rem;margin-top:2px;white-space:normal}.sources-history-table{min-width:720px}.sources-history-table td:nth-child(3),.sources-history-table td:nth-child(4){text-align:left;white-space:normal;min-width:180px}
.sources-details{margin-top:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.sources-details>summary{cursor:pointer;padding:12px 13px;font-weight:850}.sources-details-body{padding:0 13px 13px}.sources-details-body>p{margin:0 0 10px;color:var(--muted);line-height:1.5;font-size:.8rem}
.sources-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.sources-rule-grid article{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.sources-rule-grid article>strong{display:block}.sources-rule-grid article p{margin:5px 0 8px;color:var(--muted);font-size:.77rem;line-height:1.5}.sources-rule-grid article span{display:block;font-size:.68rem;color:var(--accent);font-weight:750}.sources-caution{margin:12px 0 0;padding:10px 11px;border-left:3px solid #e9b949;border-radius:8px;background:rgba(233,185,73,.07);color:var(--muted);font-size:.76rem;line-height:1.5}
.sources-document-grid{display:grid;gap:9px}.sources-document{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.sources-document.current{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.sources-document h4{margin:6px 0 4px;font-size:.98rem}.sources-document p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45}.sources-doc-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.sources-doc-actions a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:38px;padding:8px 11px;border-radius:10px;font-weight:800;font-size:.75rem}.sources-doc-actions a.primary{color:var(--button-text,#fff);background:var(--accent);border:1px solid var(--accent)}.sources-doc-actions a.secondary{color:var(--text);background:var(--surface-2);border:1px solid var(--border)}
.sources-future{border-style:dashed}
@media(max-width:760px){.sources-dialog{width:100%}.sources-section,.sources-intro{padding:13px}.sources-section-head{flex-direction:column;gap:8px}.sources-current-card{align-items:flex-start;flex-direction:column;gap:5px}.sources-rule-grid{grid-template-columns:1fr}.sources-document{align-items:flex-start;flex-direction:column}.sources-doc-actions{width:100%;justify-content:stretch}.sources-doc-actions a{flex:1 1 145px}.sources-table{font-size:.74rem}.sources-table th,.sources-table td{padding:8px}.sources-source-pill{white-space:normal}}


/* ==========================================================================
   v0.29.0 Employment & Pay Profile + Sources mobile containment
   ========================================================================== */
.sources-dialog,.sources-body,.sources-section,.sources-intro,.sources-details,.sources-details-body{min-width:0;max-width:100%}
.sources-body{gap:14px;overflow-x:hidden}
.sources-intro,.sources-section{overflow:hidden}
.sources-table-wrap{display:block;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.sources-table{width:max-content;min-width:850px;max-width:none}
.sources-history-table{min-width:720px}
@media(max-width:760px){
  .sources-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);margin-inline:auto}
  .sources-body{gap:14px;width:100%;max-width:100%;padding-inline:0}
  .sources-intro,.sources-section{width:100%;max-width:100%;box-sizing:border-box}
  .sources-table-wrap{width:100%;max-width:100%;border-radius:10px}
  .sources-table{min-width:820px}
  .sources-history-table{min-width:680px}
  .sources-table th:first-child,.sources-table td:first-child{position:sticky;left:0;z-index:2;background:var(--surface)}
  .sources-table th:first-child{z-index:3;background:var(--surface-2)}
}

.manual-pattern-box{margin-top:14px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--surface-2) 80%,var(--surface));min-width:0}
.manual-pattern-box[hidden]{display:none!important}.manual-pattern-box>p{margin:6px 0 0;color:var(--muted);font-size:.8rem;line-height:1.5}
.manual-pattern-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.manual-pattern-head strong,.manual-pattern-head small{display:block}.manual-pattern-head small{margin-top:3px;color:var(--muted);font-size:.76rem;line-height:1.4}
.manual-pattern-grid,.employment-pattern-grid{display:grid;gap:7px}.manual-pattern-grid label,.employment-pattern-grid label{display:grid;grid-template-columns:42px 24px minmax(94px,1fr) 18px minmax(94px,1fr);align-items:center;gap:7px;padding:8px 9px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.manual-pattern-grid label>span:first-child,.employment-pattern-grid label>span:first-child{font-size:.68rem;font-weight:900;letter-spacing:.06em;color:var(--muted)}
.manual-pattern-grid input[type="time"],.employment-pattern-grid input[type="time"]{min-width:0;width:100%;font-size:16px}

.employment-dialog{width:min(900px,calc(100vw - 24px));max-height:min(94vh,1000px)}
.employment-body{display:grid;gap:14px;min-width:0;padding-bottom:4px}
.employment-current,.employment-section{min-width:0;padding:14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface-2) 78%,var(--surface))}
.employment-current{display:flex;align-items:center;justify-content:space-between;gap:14px;border-color:color-mix(in srgb,var(--accent) 42%,var(--border))}.employment-current span,.employment-current strong,.employment-current small{display:block}.employment-current span{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:850}.employment-current strong{margin-top:3px;font-size:1.03rem}.employment-current small{max-width:420px;color:var(--muted);line-height:1.45;text-align:right}
.employment-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:11px}.employment-section-head h3{margin:2px 0 4px;font-size:1.16rem}.employment-section-head p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.5;max-width:700px}
.employment-timeline{display:grid;gap:8px}.employment-empty{display:grid;gap:4px;padding:12px;border:1px dashed var(--border);border-radius:11px;color:var(--muted)}.employment-empty strong{color:var(--text)}
.employment-event{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.employment-event.current{border-color:color-mix(in srgb,var(--accent) 54%,var(--border));box-shadow:inset 3px 0 0 var(--accent)}.employment-event>div:first-child{min-width:0}.employment-event span,.employment-event small{display:block}.employment-event>div>span{margin-top:4px;font-weight:800}.employment-event small{margin-top:4px;color:var(--muted);line-height:1.4}.employment-event-range{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.employment-current{font-variant-numeric:tabular-nums}
.employment-current-pill{display:inline-flex;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.63rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.employment-event-actions{display:flex;gap:6px;flex:0 0 auto}.employment-event-actions button{min-height:36px}
.employment-editor .form-grid{margin-top:0}.employment-profile-hint{margin:5px 0 0;line-height:1.4}.employment-profile-hint strong{color:var(--accent)}
.employment-pattern-date{max-width:320px;margin-bottom:10px}.employment-pattern-grid{margin-top:4px}.employment-pattern-grid label{grid-template-columns:42px 24px minmax(90px,1fr) 18px minmax(90px,1fr)}
html[data-theme="7"] .manual-pattern-box,html[data-theme="7"] .manual-pattern-grid label,html[data-theme="7"] .employment-current,html[data-theme="7"] .employment-section,html[data-theme="7"] .employment-event,html[data-theme="7"] .employment-pattern-grid label{border-radius:0!important;background:transparent!important;box-shadow:none!important}
@media(max-width:700px){
  .manual-pattern-head{align-items:stretch;flex-direction:column}.manual-pattern-head button{width:100%}
  .manual-pattern-grid label,.employment-pattern-grid label{grid-template-columns:38px 24px 1fr 14px 1fr;gap:5px;padding:7px}
  .employment-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px)}
  .employment-body{gap:14px}.employment-current{align-items:flex-start;flex-direction:column}.employment-current small{text-align:left;max-width:none}
  .employment-event{align-items:stretch;flex-direction:column}.employment-event-actions{display:grid;grid-template-columns:1fr 1fr}.employment-event-actions button{width:100%}
}
@media(max-width:430px){.manual-pattern-grid label,.employment-pattern-grid label{grid-template-columns:34px 22px minmax(0,1fr) 12px minmax(0,1fr)}.manual-pattern-grid input[type="time"],.employment-pattern-grid input[type="time"]{padding-inline:4px}.employment-section{padding:12px}}


/* ==========================================================================
   Combined roster dashboard card + unified week/pay-fortnight view
   ========================================================================== */
.v31-roster-card{min-height:218px!important;padding:18px 20px!important;border-color:color-mix(in srgb,var(--accent) 62%,var(--border))!important;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--surface-2)),var(--surface-2))!important}
.v31-roster-card .v27-card-watermark{width:92px;height:92px;right:16px;bottom:11px;opacity:.07}.v31-roster-card .v27-card-watermark .v27-svg{width:78px;height:78px}
.v31-roster-period{position:relative;z-index:2;display:flex;align-items:baseline;justify-content:space-between;gap:16px;width:100%;margin-top:12px}.v31-roster-period>strong{font-size:clamp(1.08rem,2.4vw,1.32rem);line-height:1.2}.v31-roster-period>small{color:var(--muted);font-size:.76rem;font-weight:800;text-align:right}
.v31-roster-week-heading{position:relative;z-index:2;display:flex;align-items:baseline;gap:8px;margin-top:14px}.v31-roster-week-heading small{font-size:.62rem;font-weight:900;letter-spacing:.09em;color:var(--accent)}.v31-roster-week-heading strong{font-size:.77rem}
.v31-roster-card .v27-week-strip{max-width:440px;margin-top:7px}
.v31-roster-pay-row{position:relative;z-index:2;display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;width:100%;margin-top:12px;padding-top:11px;border-top:1px solid color-mix(in srgb,var(--accent) 24%,var(--border))}.v31-roster-pay-row .v27-card-line,.v31-roster-pay-row .v27-card-pay,.v31-roster-pay-row .v27-status-line{margin-top:0}.v31-roster-pay-row .v27-card-line{font-weight:800}.v31-roster-pay-row .v27-card-pay{font-size:.9rem}.v31-roster-pay-row .v27-status-line{margin-left:auto}

.v31-roster-drilldown-head{display:none;width:100%;margin-top:20px}.v31-roster-title{display:grid;gap:3px}.v31-roster-title>.eyebrow{margin:0}.v31-roster-title>strong{font-size:clamp(1.55rem,4vw,2.25rem);line-height:1.16}.v31-roster-title>small{color:var(--muted);font-size:.8rem;font-weight:750}
.v31-roster-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.v31-period-toggle{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}.v31-period-toggle button{min-height:38px;padding:7px 13px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:.76rem;font-weight:850;box-shadow:none}.v31-period-toggle button.active{background:color-mix(in srgb,var(--accent) 17%,var(--surface));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 50%,var(--border))}
html.v27-view-week .v31-roster-drilldown-head,html.v27-view-fortnight .v31-roster-drilldown-head{display:block}
html.v27-view-week .v27-drilldown-nav,html.v27-view-fortnight .v27-drilldown-nav{display:block}
html.v27-view-week .v27-fortnight-nav,html.v27-view-fortnight .v27-fortnight-nav{display:flex;margin-left:0}
html.v27-view-week .fortnight-group-head{display:none!important}
html.v27-view-week .fortnight-pay-footer{display:grid!important}
.timeline-missing-note{display:grid;gap:4px;padding:22px 18px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface-2) 72%,var(--surface));color:var(--muted)}.timeline-missing-note strong{color:var(--text);font-size:.92rem}.timeline-missing-note span{font-size:.78rem;line-height:1.45}

@media(max-width:620px){
  .v31-roster-card{min-height:220px!important;padding:15px!important}.v31-roster-period{align-items:flex-start;flex-direction:column;gap:3px;margin-top:10px}.v31-roster-period>small{text-align:left}.v31-roster-week-heading{margin-top:11px}.v31-roster-card .v27-week-strip{width:100%;max-width:none}.v31-roster-pay-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:10px;padding-top:9px}.v31-roster-pay-row .v27-status-line{grid-column:1/-1;justify-self:start;margin-left:0}.v31-roster-pay-row .v27-card-pay{text-align:right}
  .v31-roster-drilldown-head{margin-top:17px}.v31-roster-toolbar{align-items:stretch;flex-direction:column;gap:10px;margin-top:13px}.v31-period-toggle{display:grid;grid-template-columns:1fr 1fr;width:100%}.v31-period-toggle button{width:100%}.v31-roster-toolbar .v27-fortnight-nav{display:grid!important;grid-template-columns:46px 1fr 46px;width:100%}.v31-roster-toolbar .v27-fortnight-nav button{justify-content:center}.timeline-missing-note{padding:18px 14px}
}
html[data-theme="7"] .v31-period-toggle,html[data-theme="7"] .v31-period-toggle button,html[data-theme="7"] .timeline-missing-note{border-radius:0!important;background:transparent!important;box-shadow:none!important}
/* Keep the static legacy shell out of view until saved local state has been hydrated. */
.app-startup{display:none}
html.rb-booting body>:not(#appStartup):not(#fatalError):not(noscript){display:none!important}
html.rb-booting .app-startup{display:grid;min-height:100dvh;place-items:center;padding:24px;background:var(--bg);color:var(--text)}
.app-startup-card{display:grid;gap:7px;justify-items:center;padding:22px 26px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 14px 35px rgba(0,0,0,.18);font-family:inherit}
.app-startup-card strong{font-size:1.35rem}.app-startup-card span{color:var(--muted);font-size:.9rem}
.boot-diagnostic-card{width:min(720px,100%);justify-items:stretch}.boot-diagnostic-card h1{margin:0;font-size:clamp(1.35rem,5vw,2rem)}.boot-diagnostic-card textarea{width:100%;min-height:180px;resize:vertical;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.boot-diagnostic-card button{justify-self:start}.boot-diagnostic-card span{line-height:1.45}
#appStartup[data-recovery-state]{display:block;min-height:100dvh;overflow:auto;padding:clamp(16px,4vw,42px) max(16px,env(safe-area-inset-left));background:var(--bg);color:var(--text)}
.recovery-screen{width:min(960px,100%);margin:0 auto;padding-bottom:max(24px,env(safe-area-inset-bottom));font-family:inherit}
.recovery-screen header{max-width:760px}.recovery-kicker{display:block;margin-bottom:10px;color:var(--accent);font-size:.72rem;font-weight:900;letter-spacing:.14em}.recovery-screen h1{margin:0;font-size:clamp(1.75rem,5vw,2.75rem);line-height:1.08}.recovery-screen header p{max-width:720px;margin:10px 0 0;color:var(--muted);line-height:1.55}.recovery-screen .recovery-lead{color:var(--text);font-size:clamp(1rem,2.2vw,1.18rem);font-weight:750}
.recovery-copies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:26px}.recovery-copy{min-width:0;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.recovery-copy-valid{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.recovery-copy-damaged{border-color:#b86c3e}.recovery-copy-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.recovery-copy-head h3{margin:0;font-size:1rem}.recovery-copy-head span{padding:4px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:.7rem;font-weight:850}.recovery-copy dl{display:grid;gap:10px;margin:14px 0 0}.recovery-copy dl div{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr);gap:12px}.recovery-copy dt{color:var(--muted);font-size:.75rem;font-weight:800}.recovery-copy dd{min-width:0;margin:0;font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.recovery-missing{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem;line-height:1.45}
.recovery-preserve-note{margin:16px 0 0;padding:11px 13px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));font-size:.82rem;line-height:1.45}.recovery-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.recovery-actions button{min-height:44px}.recovery-actions .danger{border-color:#a84a4a;background:#7a2424;color:#fff}.recovery-actions .danger:disabled{opacity:.45}.recovery-confirm{flex-basis:100%;display:flex;align-items:flex-start;gap:9px;max-width:680px;margin-top:6px;color:var(--muted);font-size:.82rem;line-height:1.4}.recovery-confirm input{margin-top:2px}.recovery-status{min-height:1.4em;margin:14px 0 0;color:var(--muted);font-size:.83rem;font-weight:750}.recovery-status.success{color:var(--success,#3f9b66)}.recovery-status.error{color:#d77862}.recovery-technical{margin-top:20px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.recovery-technical summary{cursor:pointer;font-size:.82rem;font-weight:850}.recovery-technical p{color:var(--muted);font-size:.78rem;line-height:1.45}.recovery-technical pre{max-height:260px;overflow:auto;margin:10px 0 0;padding:12px;border-radius:8px;background:var(--surface-2);color:var(--text);font-size:.72rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:680px){.recovery-copies{grid-template-columns:1fr}.recovery-actions{align-items:stretch;flex-direction:column}.recovery-actions button{width:100%}.recovery-copy dl div{grid-template-columns:105px minmax(0,1fr)}}
html[data-theme="7"] .recovery-copy,html[data-theme="7"] .recovery-technical,html[data-theme="7"] .recovery-copy-head span,html[data-theme="7"] .recovery-technical pre{border-radius:0!important;box-shadow:none!important}
