/* Attune workspace design system (was ShiftDock v2) — "Day Ward" (light) and "Night Station" (dark).
   Tokens first; every component reads tokens, never a literal theme color. See docs/design-system.md. */
@font-face { font-family:"Bricolage Grotesque"; font-style:normal; font-weight:200 800; font-stretch:75% 100%; font-display:swap; src:url(/fonts/bricolagegrotesque-1.woff2) format("woff2"); }
@font-face { font-family:"DM Sans"; font-style:normal; font-weight:100 1000; font-display:swap; src:url(/fonts/dmsans-2.woff2) format("woff2"); }
@font-face { font-family:"JetBrains Mono"; font-style:normal; font-weight:100 800; font-display:swap; src:url(/fonts/jetbrainsmono-3.woff2) format("woff2"); }

@layer tokens,base,layout,components,responsive;
@layer tokens {
  :root {
    color-scheme:light;
    --bg:#faf9f5; --surface:#ffffff; --surface-2:#f5f0e8; --chrome:#faf9f5;
    --ink:#141413; --muted:#66645e; --faint:#8e8b82;
    --line:#e6dfd8; --line-strong:#d8d0c4; --control-line:#cfc6b8;
    --accent:#b5532f; --accent-strong:#9c4527; --accent-ink:#ffffff; --accent-soft:#f8e9e2; --accent-soft-ink:#9c4527; --accent-glow:rgba(181,83,47,0.18);
    --planned:#bfe1d8; --planned-ink:#1f6f60;
    --warn:#7a4a12; --warn-soft:#f5e4cf; --warn-bar:#d99a5b;
    --danger:#a52626; --danger-soft:#ffebe7;
    --info-soft:#edf0ff; --info-ink:#46468c;
    --shadow:0 1px 2px rgba(27,42,48,0.06); --shadow-float:0 24px 80px rgba(27,42,48,0.22);
    --focus:#b5532f;
    --font-ui:"SD Sans","DM Sans",'Segoe UI',system-ui,sans-serif; --font-display:"SD Serif","Bricolage Grotesque","DM Sans",system-ui,sans-serif; --font-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
    --radius-s:8px; --radius:10px; --radius-l:14px; --radius-xl:18px;
    /* legacy aliases used by older pages */
    --paper:var(--bg); --teal:var(--accent); --teal-dark:var(--accent-strong); --border:var(--line); --amber:var(--warn); --red:var(--danger);
  }
  @media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) {
    color-scheme:dark;
    --bg:#181715; --surface:#1f1e1b; --surface-2:#252320; --chrome:#1b1a18;
    --ink:#f3efe7; --muted:#a09d96; --faint:#8a867e;
    --line:#2e2c28; --line-strong:#3a3732; --control-line:#46423c;
    --accent:#e08a6b; --accent-strong:#f0a98e; --accent-ink:#1a0d07; --accent-soft:#3a2219; --accent-soft-ink:#f0a98e; --accent-glow:rgba(224,138,107,0.32);
    --planned:#24514a; --planned-ink:#9fd8ca;
    --warn:#e0a458; --warn-soft:#2d2416; --warn-bar:#e0a458;
    --danger:#ff8a80; --danger-soft:#3a1f1c;
    --info-soft:#1d2440; --info-ink:#aab4ff;
    --shadow:0 1px 2px rgba(0,0,0,0.4); --shadow-float:0 24px 80px rgba(0,0,0,0.6);
    --focus:#e8a55a;
  } }
  :root[data-theme="dark"] {
    color-scheme:dark;
    --bg:#181715; --surface:#1f1e1b; --surface-2:#252320; --chrome:#1b1a18;
    --ink:#f3efe7; --muted:#a09d96; --faint:#8a867e;
    --line:#2e2c28; --line-strong:#3a3732; --control-line:#46423c;
    --accent:#e08a6b; --accent-strong:#f0a98e; --accent-ink:#1a0d07; --accent-soft:#3a2219; --accent-soft-ink:#f0a98e; --accent-glow:rgba(224,138,107,0.32);
    --planned:#24514a; --planned-ink:#9fd8ca;
    --warn:#e0a458; --warn-soft:#2d2416; --warn-bar:#e0a458;
    --danger:#ff8a80; --danger-soft:#3a1f1c;
    --info-soft:#1d2440; --info-ink:#aab4ff;
    --shadow:0 1px 2px rgba(0,0,0,0.4); --shadow-float:0 24px 80px rgba(0,0,0,0.6);
    --focus:#e8a55a;
  }
}
@layer base {
  :root { font-family:var(--font-ui); color:var(--ink); background:var(--bg); font-size:15px; line-height:1.45; font-variant-numeric:tabular-nums; -webkit-font-smoothing:antialiased; }
  * { box-sizing:border-box; } body { margin:0; background:var(--bg); color:var(--ink); } button,input,select,textarea { font:inherit; color:inherit; } button { cursor:pointer; } button:disabled { cursor:not-allowed; opacity:.55; } button { min-height:42px; } a { color:var(--accent-strong); }
  input,select,textarea { min-width:0; max-width:100%; width:100%; border:1px solid var(--line-strong); border-radius:var(--radius); padding:11px 12px; background:var(--surface); color:var(--ink); }
  input[type=checkbox],input[type=radio] { width:20px; height:20px; flex-shrink:0; accent-color:var(--accent); } label { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:600; }
  h1,h2,h3,p { margin-top:0; } h1 { font-family:var(--font-display); font-size:34px; font-weight:600; letter-spacing:-0.8px; line-height:1.05; margin-bottom:8px; text-wrap:balance; } h2 { font-family:var(--font-display); font-size:22px; font-weight:600; letter-spacing:-0.3px; } h3 { font-size:16px; font-weight:600; } p { line-height:1.55; color:var(--muted); } strong { font-weight:600; }
  time,.time,.mono { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
  button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible { outline:3px solid var(--focus); outline-offset:3px; } ul { padding:0; list-style:none; } .skip { position:fixed; z-index:20; top:-60px; left:10px; background:var(--surface); padding:12px; } .skip:focus { top:10px; }
  @media (prefers-reduced-motion:no-preference) { button,.nav-item,.shift-card { transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease; } }
}
@layer layout {
  .layout { display:flex; min-height:100vh; } .sidebar { width:235px; flex-shrink:0; background:var(--chrome); color:var(--ink); border-right:1px solid var(--line); padding:26px 16px 20px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; } .workspace { min-width:0; flex:1; } .topbar { height:60px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 34px; color:var(--muted); background:transparent; font-size:13px; } .topbar span span { padding:0 10px; color:var(--faint); } main#main { padding:32px 40px; max-width:1480px; } footer { padding:18px 40px; color:var(--faint); font-size:12px; } .schedule-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:20px; align-items:start; } .team-layout { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; } .employee-layout { display:grid; grid-template-columns:1.3fr 1fr; gap:26px; max-width:1250px; } .page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; } .page-heading p:last-child { margin-bottom:0; } .login { min-height:100vh; display:grid; grid-template-columns:1.1fr 1fr; padding:0!important; } .intro { background:var(--chrome); border-right:1px solid var(--line); color:var(--ink); padding:64px 10%; display:flex; flex-direction:column; justify-content:center; } .login-panel { max-width:520px; align-self:center; margin:60px auto; padding:40px; } .login-panel form { display:grid; gap:22px; margin:28px 0 20px; }
}
@layer components {
  .wordmark { display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-size:20px; font-weight:600; letter-spacing:-.3px; } .mark { display:grid; place-items:center; background:var(--accent); color:var(--accent-ink); height:28px; width:28px; border-radius:8px; font-size:11px; letter-spacing:-.3px; font-family:var(--font-ui); } .wordmark small { font-size:9px; font-weight:500; letter-spacing:1px; margin-left:7px; color:var(--faint); } .organization { display:flex; flex-direction:column; gap:4px; padding:22px 10px 18px; } .organization strong { font-size:14px; } .organization>span:last-child { color:var(--faint); font-size:12px; } .eyebrow { font-size:11px; font-weight:600; letter-spacing:.08em; color:var(--muted); margin-bottom:10px; } .sidebar .eyebrow { color:var(--faint); } nav { display:grid; gap:4px; } .nav-item { border:0; background:none; color:var(--muted); text-align:left; padding:10px 12px; border-radius:var(--radius); font-size:14px; font-weight:500; display:flex; align-items:center; gap:10px; min-height:42px; } .nav-item span { display:none; } .nav-item.active { background:var(--accent-soft); color:var(--accent-soft-ink); } .nav-item:hover { background:var(--surface-2); color:var(--ink); } .nav-item.active:hover { background:var(--accent-soft); } .nav-groups { display:flex; flex-direction:column; gap:2px; } .nav-destinations { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); display:grid; gap:2px; } .nav-destinations p { font-size:11px; font-weight:600; letter-spacing:.08em; color:var(--faint); margin:0 12px 6px; text-transform:uppercase; }
  .sidebar-bottom { margin-top:auto; padding:24px 6px 0; } .sidebar-bottom p { color:var(--faint); font-size:11px; margin:10px 0 18px; } .profile { display:flex; gap:10px; align-items:center; font-size:13px; } .profile>div { display:grid; gap:3px; } .profile span:not(.avatar) { color:var(--muted); font-size:12px; } .avatar { width:34px; height:34px; display:inline-flex; flex-shrink:0; align-items:center; justify-content:center; background:var(--accent-soft); color:var(--accent-soft-ink); border-radius:50%; font-size:12px; font-weight:600; } .avatar.light { background:var(--surface-2); color:var(--muted); border:1px solid var(--line); } .signout { border:0; color:var(--muted); background:none; font-size:12px; padding:14px 0 0; min-height:36px; } .theme-toggle { border:1px solid var(--line-strong); background:transparent; color:var(--ink); border-radius:var(--radius); font-size:12px; font-weight:600; padding:8px 12px; min-height:36px; margin-top:12px; display:inline-flex; align-items:center; gap:8px; }
  .primary,.secondary,.subtle,.danger { border-radius:var(--radius); padding:10px 16px; font-size:14px; font-weight:600; white-space:nowrap; } .primary { border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); } .primary:hover { background:var(--accent-strong); border-color:var(--accent-strong); } .primary span { margin-left:16px; } .secondary { background:var(--surface); border:1px solid var(--line-strong); color:var(--ink); } .subtle { background:transparent; border:1px solid transparent; color:var(--muted); } .subtle:hover,.secondary:hover { background:var(--surface-2); color:var(--ink); } .danger { background:var(--danger-soft); color:var(--danger); border:1px solid transparent; margin-right:auto; }
  .badge { display:inline-flex; align-items:center; align-self:flex-start; gap:5px; padding:5px 9px; font-size:11px; font-weight:600; letter-spacing:.02em; background:var(--accent-soft); color:var(--accent-soft-ink); border-radius:999px; white-space:nowrap; } .badge.amber { background:var(--warn-soft); color:var(--warn); } .badge.outlined { border:1px solid var(--line-strong); background:transparent; color:var(--faint); font-size:9px; letter-spacing:.08em; }
  .summary { display:grid; grid-template-columns:repeat(4,1fr); margin-bottom:26px; padding:21px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); } .summary>div { display:flex; flex-direction:column; gap:8px; padding:0 24px; border-right:1px solid var(--line); } .summary>div:first-child { padding-left:0; } .summary>div:last-child { border:0; } .summary>div>span { color:var(--muted); font-size:12px; } .summary strong { font-size:24px; letter-spacing:-.5px; font-family:var(--font-mono); font-weight:500; } .summary small { font-size:12px; font-weight:400; color:var(--muted); letter-spacing:0; display:block; margin-top:3px; }
  .schedule-panel,.panel,.review-panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); } .schedule-panel { overflow:hidden; } .schedule-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 17px; } .week-control { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:500; } .week-control button { background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--radius-s); width:34px; min-height:34px; font-size:20px; color:var(--ink); } .filters { display:flex; align-items:end; gap:13px; padding:0 17px 18px; } .filters label { flex:1; font-size:12px; gap:6px; } .filters input,.filters select { padding:9px; font-size:13px; } .filters .badge { margin-bottom:6px; align-self:flex-end; } .grid-scroll { overflow:auto; }
  .schedule-grid { border-collapse:separate; border-spacing:0; width:100%; table-layout:fixed; min-width:850px; } .schedule-grid thead th { background:var(--surface-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); height:66px; text-align:center; font-weight:400; } .schedule-grid thead th:first-child { text-align:left; padding-left:16px; width:185px; font-size:12px; color:var(--muted); } .schedule-grid thead th span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); } .schedule-grid thead th strong { display:block; font-size:18px; margin-top:4px; font-family:var(--font-mono); font-weight:500; } .schedule-grid tbody th { padding:14px; background:var(--surface); text-align:left; position:sticky; left:0; z-index:1; } .schedule-grid td,.schedule-grid tbody th { border-bottom:1px solid var(--line); border-right:1px solid var(--line); height:110px; vertical-align:top; } .schedule-grid tbody th { vertical-align:middle; } .schedule-grid td { padding:6px; } .person { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:500; } .person small { display:block; color:var(--muted); font-size:11px; font-weight:400; margin-top:4px; }
  .shift-card { border:1px solid var(--line); background:var(--surface); padding:10px 10px 9px; border-radius:var(--radius-s); width:100%; text-align:left; min-height:72px; display:flex; flex-direction:column; gap:4px; color:var(--ink); } .shift-card strong { font-size:12px; line-height:1.4; font-family:var(--font-mono); font-weight:500; color:var(--ink); } .shift-card span { font-size:12px; font-weight:600; } .shift-card small { font-size:11px; color:var(--muted); } .shift-card.published { background:var(--accent-soft); border-color:transparent; color:var(--accent-soft-ink); } .shift-card.published strong,.shift-card.published small { color:var(--accent-soft-ink); } .shift-card.published small { opacity:.8; } .shift-card .day-track { position:relative; display:block; height:3px; margin-top:auto; border-radius:2px; background:var(--line); overflow:hidden; } .shift-card .day-track b { position:absolute; top:0; bottom:0; background:var(--accent); border-radius:2px; } .shift-card.published .day-track { background:rgba(8,127,122,0.18); } .shift-card.blocked .day-track { background:rgba(176,112,0,0.2); } .shift-card.blocked .day-track b { background:var(--warn); } .shift-card strong { white-space:nowrap; } .shift-card:hover { border-color:var(--line-strong); } .shift-card.published:hover { border-color:var(--accent); } .add-cell { width:100%; border:0; background:none; color:var(--faint); min-height:24px; height:24px; font-size:16px; margin-top:5px; border-radius:6px; } .add-cell:hover { background:var(--surface-2); color:var(--ink); }
  .panel-foot { padding:13px 18px; font-size:11px; color:var(--muted); line-height:1.6; background:var(--surface-2); border-top:1px solid var(--line); } .review-panel { padding:22px 19px; } .review-panel h2 { margin-bottom:22px; } .check-item { display:flex; gap:10px; margin-bottom:20px; } .check-item strong { font-size:13px; } .check-item p { font-size:12px; margin:6px 0 0; line-height:1.6; } .check,.warning { border-radius:50%; width:22px; height:22px; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:11px; font-weight:700; } .check { color:var(--accent-soft-ink); background:var(--accent-soft); } .warning { color:var(--warn); background:var(--warn-soft); } .review-total { border-top:1px solid var(--line); padding-top:18px; display:grid; gap:7px; margin-bottom:18px; font-size:13px; } .review-total span { color:var(--muted); font-size:12px; } .full { width:100%; } .fine { font-size:12px; line-height:1.6; margin:14px 0 0; color:var(--muted); } .empty { padding:38px 25px; text-align:center; } .empty>span { display:block; font-size:30px; color:var(--faint); margin-bottom:12px; } .empty p { max-width:420px; margin:0 auto 20px; font-size:13px; }
  .panel { padding:24px; margin-bottom:22px; } .section-title { display:flex; align-items:center; justify-content:space-between; } .section-title h2 { margin:0; } .team-row { display:flex; align-items:center; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); } .team-row>div { flex:1; } .team-row p { margin:4px 0 0; font-size:13px; } .count { font-size:12px; background:var(--surface-2); border:1px solid var(--line); border-radius:999px; padding:3px 9px; margin-left:9px; font-family:var(--font-mono); } .simple-row { display:flex; flex-direction:column; gap:8px; padding:18px 0; border-bottom:1px solid var(--line); } .simple-row span { color:var(--muted); font-size:13px; } .history-row { display:flex; align-items:center; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); } .history-row>div { flex:1; } .history-row p { margin:5px 0 0; font-size:13px; } .history-icon { font-size:22px; color:var(--accent); }
  .next-shift { background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); border-radius:var(--radius-xl); padding:28px; color:var(--ink); margin-bottom:24px; } .next-shift .eyebrow { color:var(--accent); } .next-shift h2 { font-size:26px; margin:16px 0 8px; } .next-shift p { color:var(--muted); } .big-time { font-family:var(--font-mono); font-size:30px; font-weight:500; letter-spacing:-.5px; margin-bottom:18px; } .employee-shift { padding:18px 0; border-bottom:1px solid var(--line); line-height:1.7; } .employee-shift p { font-size:13px; margin:5px 0; } .notification { padding:18px 0; border-bottom:1px solid var(--line); } .diff-list { margin:16px 0; } .diff-row { display:flex; align-items:flex-start; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); } .diff-row p { font-size:13px; line-height:1.6; margin:6px 0 0; } .diff-row .muted { color:var(--muted); font-weight:600; display:inline-block; margin-right:6px; }
  .notice { border:1px solid var(--warn-bar); background:var(--warn-soft); border-radius:var(--radius); padding:14px 16px; color:var(--warn); } .notice p { color:var(--warn); font-size:13px; margin:0 0 6px; } .notice h2 { color:var(--ink); }
  dialog { border:1px solid var(--line); border-radius:var(--radius-xl); padding:0; max-width:720px; width:calc(100% - 32px); max-height:90vh; box-shadow:var(--shadow-float); color:var(--ink); background:var(--surface); } dialog::backdrop { background:rgba(8,16,20,0.55); } .dialog-content { padding:30px; } .dialog-content h2 { font-size:26px; letter-spacing:-.5px; } .dialog-content>p { font-size:14px; } .dialog-content form { display:grid; gap:18px; } .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; } .dialog-actions { display:flex; justify-content:flex-end; gap:9px; padding-top:10px; } .checkbox { flex-direction:row; align-items:flex-start; line-height:1.6; font-weight:400; margin-top:20px; gap:12px; } .form-error { color:var(--danger); margin:10px 0 0; } .form-error:empty { display:none; }
  .toast:not(:empty) { position:fixed; bottom:20px; right:20px; z-index:15; background:var(--ink); color:var(--bg); padding:14px 20px; border-radius:var(--radius); box-shadow:var(--shadow-float); max-width:min(580px,calc(100vw - 40px)); font-size:13px; line-height:1.5; } .toast.error { background:var(--danger); color:#fff; }
  .intro .wordmark { margin-bottom:80px; } .intro .eyebrow { color:var(--accent); } .intro h1 { font-size:clamp(40px,4.8vw,64px); line-height:1.05; letter-spacing:-2px; max-width:590px; margin:13px 0 24px; } .intro .lead { color:var(--muted); font-size:18px; line-height:1.7; } .intro-lines { display:grid; gap:0; margin-top:54px; } .intro-lines span { color:var(--muted); display:flex; gap:22px; border-top:1px solid var(--line); padding:18px 0; font-size:12px; } .intro-lines strong { color:var(--ink); font-weight:500; font-size:14px; } .login-panel h2 { font-size:27px; letter-spacing:-.6px; margin-top:24px; } .mobile-schedule { display:none; }
}
@layer responsive {
  .availability-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); gap:24px; }
  .availability-summary { display:flex; gap:18px; margin:22px 0; flex-wrap:wrap; }
  .availability-summary article { flex:1; min-width:150px; border:1px solid var(--line); border-radius:var(--radius); padding:18px; background:var(--surface); }
  .availability-summary span { display:block; color:var(--muted); font-size:12px; margin-bottom:10px; }
  .availability-summary strong { font-size:22px; font-family:var(--font-mono); font-weight:500; } .availability-summary strong.summary-word { font-family:var(--font-display); font-size:20px; font-weight:600; letter-spacing:-.2px; }
  .availability-entry { padding:22px 0; border-bottom:1px solid var(--line); }
  .entry-top { display:flex; justify-content:space-between; align-items:start; gap:12px; flex-wrap:wrap; }
  .entry-top>div { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
  .availability-entry>p,.timeline-entry p { font-size:13px; overflow-wrap:anywhere; margin:12px 0 0; }
  .entry-actions { display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
  .state-label { display:inline-flex; background:var(--accent-soft); color:var(--accent-soft-ink); padding:4px 9px; border-radius:999px; font-size:11px; font-weight:600; }
  .state-unavailable { background:var(--danger-soft); color:var(--danger); }
  .state-unknown { background:var(--warn-soft); color:var(--warn); }
  .state-preferred { background:var(--info-soft); color:var(--info-ink); }
  .timeline-entry { padding:18px 0; border-bottom:1px solid var(--line); }
  .timeline-entry strong { display:block; margin-bottom:9px; }
  .compact-label { font-size:12px; min-width:120px; }
  .availability-notice { margin-bottom:24px; }
  .conflict-list li { border-top:1px solid var(--line); padding:13px 0; }
  .conflict-list p { margin:7px 0 0; font-size:13px; overflow-wrap:anywhere; }
  .shift-card.blocked { background:var(--warn-soft); border-color:transparent; color:var(--warn); } .shift-card.blocked strong,.shift-card.blocked small { color:var(--warn); }
  .review-panel>.notice { margin-bottom:14px; }
  .form-error button { display:block; margin-top:12px; }
  @media(max-width:1000px) { .availability-layout { grid-template-columns:1fr; } }
  @media(max-width:500px) { .availability-summary { gap:10px; } .availability-summary article { min-width:125px; padding:14px; } .availability-summary strong { font-size:18px; } .availability-layout .section-title { align-items:start; gap:12px; } }
  @media(min-width:1700px) { .schedule-grid { min-width:1050px; } }
  @media(max-width:1450px) { .schedule-layout { grid-template-columns:minmax(0,1fr); } .review-panel { display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; } .review-panel h2,.review-panel>.eyebrow { grid-column:1/-1; margin-bottom:5px; } .review-total { margin-bottom:0; } .sidebar { width:210px; } main#main { padding:26px; } }
  @media(max-width:800px) { .layout { display:block; } .sidebar { position:static; width:100%; height:auto; padding:16px 20px; border-right:0; border-bottom:1px solid var(--line); } .sidebar .wordmark { font-size:19px; } .organization { padding:18px 0 12px; } .organization .eyebrow,.organization>span:last-child { display:none; } .sidebar nav { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; } .nav-item { padding:8px 10px; font-size:13px; } .sidebar-bottom { margin:0; padding:0; } .sidebar-bottom>.badge,.sidebar-bottom>p,.profile { display:none; } .signout { margin-top:10px; min-height:34px; padding:5px 0; } .topbar { height:48px; padding:0 20px; } main#main { padding:24px 18px; } .page-heading { align-items:flex-start; } h1 { font-size:28px; } .page-heading p { font-size:13px; } .page-heading .primary { font-size:13px; padding:10px; } .summary { grid-template-columns:1fr 1fr; gap:22px; } .summary>div { border:0; padding:0; } .summary strong { font-size:22px; } .grid-scroll { display:none; } .mobile-schedule { display:block; padding:0 16px 18px; } .mobile-schedule article { padding:14px 0 0; } .shift-card strong { font-size:13px; } .shift-card span { font-size:12px; } .shift-card small { font-size:11px; } .shift-card { padding:13px; } .filters { flex-wrap:wrap; } .filters label { min-width:110px; } .filters .badge { display:none; } .team-layout,.employee-layout { grid-template-columns:1fr; gap:0; } .panel { padding:20px; } .team-row { flex-wrap:wrap; } .history-row { gap:10px; flex-wrap:wrap; } .history-row .secondary { font-size:12px; } .review-panel { display:block; } .review-panel h2 { margin:12px 0 24px; } .review-total { margin-bottom:20px; } footer { padding:16px 18px; } .dialog-content { padding:24px 20px; } .dialog-actions { flex-wrap:wrap; } .danger { width:100%; } .form-grid { grid-template-columns:1fr; } .big-time { font-size:26px; } .next-shift { padding:22px; } .login { grid-template-columns:1fr; } .intro { padding:40px 30px; border-right:0; border-bottom:1px solid var(--line); } .intro .wordmark { margin-bottom:50px; } .intro h1 { font-size:42px; } .intro-lines { display:none; } .login-panel { padding:30px; margin:0 auto; } }
}

textarea { min-height:90px; resize:vertical; } details { border-top:1px solid var(--line); padding:16px 0; } summary { cursor:pointer; font-weight:600; line-height:1.5; } details[open] summary { margin-bottom:18px; }
#coverage-filter-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; align-items:end; }
#coverage-filter-form > p { grid-column:1/-1; margin:0; }
#coverage-filter-form > button { justify-self:start; }
#coverage-filter-form input, #coverage-filter-form select { min-width:0; width:100%; }

/* Long reviewed schedule records must remain readable inside narrow dialogs. */
.dialog-content .panel p { min-width:0; white-space:normal; overflow-wrap:anywhere; }

#schedule-export-form { display:grid; gap:16px; max-width:700px; }
.export-record { border-top:1px solid var(--line); padding:16px 0; break-inside:avoid; overflow-wrap:anywhere; }
.export-actions { display:flex; flex-wrap:wrap; gap:12px; } .export-actions p { flex-basis:100%; }
@media print {
 body.printing-schedule { background:white; color:#000; }
 body.printing-schedule #app,body.printing-schedule #status,body.printing-schedule .skip,body.printing-schedule .export-actions { display:none!important; }
 body.printing-schedule dialog { position:static!important; width:100%!important; max-width:none!important; max-height:none!important; height:auto!important; margin:0!important; padding:0!important; overflow:visible!important; border:0!important; box-shadow:none!important; background:white; color:#000; }
 body.printing-schedule .dialog-content { padding:0; overflow:visible; }
 body.printing-schedule dialog::backdrop { display:none; }
 #schedule-print h2 { font-size:20pt; } .export-record h3 { font-size:12pt; }
}

.export-print-context { display:none; }
@media print {
 @page { margin:14mm; @bottom-center { content:"Page " counter(page) " of " counter(pages); } }
 .export-print-context { display:block; font-size:9pt; }
 .export-record { padding:10px 0; }
}

/* Keep every workspace control reachable as the menu grows. */
.sidebar { overflow-y:auto; } .sidebar nav { flex-shrink:0; }

.workload-form { display:grid; gap:1rem; max-width:680px; }
.workload-form fieldset { display:grid; grid-template-columns:1fr 1fr; gap:1rem; border:1px solid var(--line); border-radius:var(--radius); padding:1rem; min-width:0; }
.workload-form input,.workload-form select { min-width:0; max-width:100%; }

.private-note-body { white-space:pre-wrap; overflow-wrap:anywhere; }
#manager-note-input textarea { display:block; width:100%; max-width:100%; padding:12px; font:inherit; border:1px solid var(--line); border-radius:var(--radius-s); }

/* Audit: show the work first on phones; keep every destination available. */
.workspace-menu { display:contents; }
.mobile-navigation { display:none; }
.setup-guide { display:flex; align-items:center; justify-content:space-between; gap:20px; background:var(--accent-soft); border:1px solid transparent; border-radius:var(--radius-l); padding:22px; margin-bottom:24px; color:var(--accent-soft-ink); }
.setup-guide h2 { margin-bottom:8px; color:inherit; } .setup-guide p { margin-bottom:12px; color:inherit; }
.setup-guide ol { display:flex; flex-wrap:wrap; gap:12px 26px; padding-left:20px; font-size:13px; margin-bottom:0; }
@media(max-width:800px) {
 .sidebar { padding:16px 20px; } .sidebar .organization { padding:12px 0; }
 .mobile-navigation { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:13px; }
 .mobile-navigation button { min-height:44px; padding:10px 18px; color:var(--ink); background:var(--surface-2); border:1px solid var(--line-strong); border-radius:var(--radius); }
 .workspace-menu { display:none; } .workspace-menu.menu-open { display:block; padding-top:12px; }
 .workspace-menu nav { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
 .workspace-menu .nav-item { min-height:44px; padding:10px 8px; font-size:13px; gap:7px; }
 .workspace-menu .sidebar-bottom { padding-top:8px; }
 .page-heading { flex-direction:column; align-items:stretch; gap:18px; }
 .page-heading .entry-actions { display:flex; flex-wrap:wrap; width:100%; gap:8px; }
 .page-heading .entry-actions .primary { order:-1; flex-basis:100%; }
 .page-heading .entry-actions .secondary { flex:1; }
 .setup-guide { flex-direction:column; align-items:stretch; padding:18px; }
 .week-control button { min-width:44px; min-height:44px; }
}

/* M2: compact mobile navigation, schedule controls and sign-in. */
.schedule-summary{border:0;padding:0;margin-bottom:20px}.schedule-summary>summary{font-size:13px;padding:12px 0;min-height:44px}.schedule-summary .summary{margin:0}.login .wordmark{color:inherit;text-decoration:none}

@media(max-width:800px){
 .sidebar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 16px}.sidebar .wordmark{font-size:19px}.sidebar .mark{width:26px;height:26px}.sidebar .organization{padding:0;font-size:12px;grid-column:1;min-width:0;overflow-wrap:anywhere}.mobile-navigation{display:contents}.mobile-navigation>span{display:none}.mobile-navigation>button{grid-column:2;grid-row:1/3;align-self:center;min-width:64px;padding:8px 12px}.workspace-menu{grid-column:1/-1}.workspace-menu .nav-item{font-size:13px}.topbar{height:36px;padding:0 16px;font-size:11px}.topbar .badge{font-size:9px;padding:4px 6px}
 main#main{padding:18px 16px}h1{font-size:26px;letter-spacing:-.5px}.page-heading{gap:12px;margin-bottom:16px}.page-heading p{font-size:13px}.page-heading .entry-actions{display:flex;flex-wrap:wrap;gap:6px}.page-heading .entry-actions>button{flex:1}.page-heading .schedule-entry-actions{display:grid;grid-template-columns:1fr 1fr 1.2fr}.page-heading .entry-actions .primary{order:0}.page-heading .entry-actions button{font-size:12px;padding:9px 6px;white-space:normal;min-height:44px}
 .schedule-summary{margin-bottom:12px}.schedule-summary>summary{font-size:12px}.schedule-summary .summary{padding:14px 0;gap:14px}.summary strong{font-size:20px}.schedule-toolbar{padding:10px;gap:6px;flex-wrap:wrap}.week-control{gap:6px;font-size:12px;flex:1;justify-content:space-between}.schedule-toolbar>.subtle{padding:8px;font-size:11px;min-height:44px}.filters{padding:0 10px 12px;gap:8px}.filters input,.filters select{font-size:16px;padding:9px 8px;min-height:44px}.filters label{font-size:12px;min-width:100px}.mobile-schedule{padding:0 10px 12px}.mobile-day{margin-bottom:16px}.mobile-day h2{font-size:15px;margin:4px 0 8px;padding:8px 0;border-bottom:1px solid var(--line)}.mobile-schedule article{padding:0;margin:0 0 10px}.shift-person{display:block;font-size:13px;margin:0 0 5px}.mobile-schedule .shift-card{min-height:66px;padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:4px 8px}.mobile-schedule .shift-card strong{font-size:13px;grid-column:1/-1}.mobile-schedule .shift-card span{font-size:12px;overflow-wrap:anywhere}.mobile-schedule .shift-card small{font-size:11px;text-align:right}.badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}.panel,.review-panel{padding:16px}.dialog-content{padding:20px 16px}.dialog-content h2{font-size:22px}input,select,textarea{font-size:16px;min-height:44px}.primary,.secondary,.subtle,.danger{min-height:44px}
}

/* ---- Feature styles carried forward from v1, tokenized ---- */
 .login{min-height:100dvh;display:block;background:var(--surface)}.login .intro{padding:16px 20px;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--border)}.login .intro .wordmark{margin:0;font-size:21px;min-height:44px}.login .intro h1,.login .intro>.lead,.login .intro>p,.login .intro-lines{display:none}.login-panel{width:100%;max-width:480px;margin:0 auto;padding:24px 20px}.login-panel h2{font-size:24px}.login-panel form{margin:20px 0 16px;gap:16px}.login-panel form button{font-size:14px;min-height:44px}.login-panel .fine{font-size:12px}.login-panel input{font-size:16px}
}

label[hidden]{display:none!important}

.auth-switch{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:14px;color:var(--teal-dark)}.login-panel button[value="recovery"]{border:0;background:transparent;color:var(--teal-dark);text-decoration:underline;min-height:44px;font-size:14px}
.login-panel.auth-enrollment{width:100%;max-width:660px;min-width:0}
.auth-setup-methods{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin:24px 0}
.auth-setup-methods>img{display:block;flex:0 0 220px;width:220px;height:220px;max-width:100%;object-fit:contain}
.auth-manual-key{flex:1 1 200px;min-width:0}
.auth-manual-key h3{margin:0 0 8px;font-size:16px}
.auth-manual-key p{margin:0 0 12px;font-size:14px}
.auth-manual-key code{display:block;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:7px;font-size:16px;line-height:1.6;overflow-wrap:anywhere;user-select:all}
.login.hosted-auth{display:block;min-height:100dvh;background:var(--paper)}
.hosted-auth .auth-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 32px;border-bottom:1px solid var(--border);background:var(--surface)}
.auth-header .wordmark{min-height:44px;color:var(--ink);text-decoration:none}
.auth-header>span{font-size:13px;color:var(--muted)}
.hosted-auth .login-panel{width:calc(100% - 40px);max-width:540px;margin:64px auto;padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 28px #142a3808}
.hosted-auth .login-panel.auth-enrollment{max-width:720px}
.hosted-auth h1{font-size:28px;line-height:1.25;letter-spacing:-.6px;margin:0 0 16px}
.hosted-auth .login-panel>p{font-size:15px;line-height:1.65}
.hosted-auth .login-panel>.fine{font-size:12px;margin:28px 0 0;padding-top:20px;border-top:1px solid var(--border)}
.auth-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.auth-actions>button{min-height:44px;flex:1}
.auth-backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:20px 0 0;padding:16px 16px 16px 40px;background:var(--paper);border:1px solid var(--border);border-radius:8px}
.auth-backup-codes code{font-size:16px;letter-spacing:.5px;user-select:all}
.hosted-auth .auth-check{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-height:44px;font-size:15px}
@media(max-width:420px){.auth-backup-codes{gap:8px 12px;padding:14px 12px 14px 32px}.auth-backup-codes code{font-size:15px;letter-spacing:0}}
.hosted-auth #hosted-signout{min-height:44px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--ink);padding:10px 16px}
@media(max-width:600px){.hosted-auth .auth-header{padding:12px 20px}.auth-header>span{font-size:12px}.hosted-auth .login-panel{margin:24px auto;padding:24px 20px}.hosted-auth h1{font-size:25px}.auth-actions{flex-direction:column}}

.healthcare-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.healthcare-record{border-top:1px solid var(--line);padding:14px 0;margin-top:14px}.healthcare-record dl div{display:flex;justify-content:space-between;gap:16px;margin:6px 0}.healthcare-record dt{color:var(--muted)}.healthcare-record dd{margin:0;text-align:right;overflow-wrap:anywhere}.healthcare-form{display:grid;gap:12px}.healthcare-form input,.healthcare-form select{min-height:44px;font-size:16px}@media(max-width:700px){.healthcare-sections{grid-template-columns:1fr}.healthcare-record dl div{display:block}.healthcare-record dd{text-align:left}}

.healthcare-sections .panel{padding:20px}.healthcare-record button{min-height:44px;min-width:60px}.healthcare-record dl{font-size:14px}@media(max-width:700px){.healthcare-record dl div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.healthcare-record dd{text-align:right}.healthcare-sections{gap:12px}}

.workforce-sections .panel{padding:16px;margin:0}.workforce-step{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.workforce-step h2{margin:0}.workforce-sections .healthcare-record{padding:10px 0 0;margin-top:12px}.workforce-sections h3{margin-bottom:8px}.workforce-sections dl{margin:8px 0}.workforce-sections .healthcare-record:last-child{padding-bottom:0}

.qualification-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;align-items:start}.qualification-list .panel{padding:16px;margin:0}.qualification-list p{margin-bottom:8px}.qualification-list h2{margin-bottom:8px}@media(max-width:700px){.qualification-list{grid-template-columns:1fr}}

.q-conflict-row { padding: 16px; }

/* Empty clock hints must not displace the gap form's date/occurrence pairs. */
#coverage-gap-form [data-clock-note]:empty { display: none; }

.diff-row > .badge { flex-shrink: 0; white-space: nowrap; }


@layer components { .coverage-segments > li { padding:10px 0; border-bottom:1px solid var(--border); } .coverage-segments > li:last-child { border-bottom:0; } }

/* SMS queue navigation: visible selection and touch-sized controls. */
.sms-controls { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.sms-controls button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); color: var(--focus); }
.sms-controls button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--surface); }
.sms-controls button:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }

.sms-sizing { padding: 16px 24px; }
.sms-sizing summary { min-height: 44px; align-content: center; cursor: pointer; font-weight: 600; }
.sms-sizing form { margin-top: 12px; }
.sms-sizing [data-sms-estimate-result] { margin-top: 12px; }
@media (max-width: 600px) { .sms-sizing { padding: 12px 16px; } }

.sms-message { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; padding: 16px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface-2); }

.dialog-content label.sms-confirm { display:flex; flex-direction:row; align-items:flex-start; gap:10px; margin:16px 0; cursor:pointer; }
.dialog-content .sms-confirm input[type="checkbox"] { min-height:20px; width:20px; min-width:20px; height:20px; margin:0; }

#sms-simulate-form > button { margin:4px 8px 0 0; }
/* Employee quiet-hour settings: compact fields and a clear primary action. */
#sms-recipient-form fieldset { min-width: 0; margin: 12px 0; padding: 12px; border: 1px solid var(--line-strong); border-radius: 8px; }
#sms-recipient-form p { margin: 8px 0 12px; }
#sms-recipient-form .sms-controls, #sms-recipient-save .sms-controls { margin-top: 16px; }
#sms-recipient-form .sms-controls .primary, #sms-recipient-save .sms-controls .primary { background: var(--accent-strong); color: white; border-color: var(--accent-strong); }
@media (max-width: 600px) {
 #sms-recipient-form .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
 #sms-recipient-form .form-grid label, #sms-recipient-form .form-grid input { min-width: 0; }
}
.sms-recipient-settings h2 { margin: 0 0 14px; }
.sms-recipient-settings h3 { margin: 12px 0 6px; }
.sms-recipient-settings p { margin: 8px 0 12px; }
.sms-recipient-settings .notice { padding: 12px; }
.shift-fields [data-clock-note]:empty{display:none}
.shift-fields>* , .shift-fields .form-grid>*{min-width:0}.shift-fields input,.shift-fields select{min-width:0;max-width:100%;width:100%}
@media(max-width:800px){.page-heading:has(.schedule-entry-actions){margin-bottom:12px;gap:12px}.schedule-overview{padding:8px 0;margin-bottom:8px}.schedule-overview .schedule-state{flex-basis:auto}}
.schedule-overview{display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px;margin:0 0 20px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.schedule-overview .schedule-state{color:var(--ink)}.shift-card strong{font-size:12px}.publication-blockers{border:2px solid var(--danger);border-radius:8px;padding:16px;margin:16px 0;background:var(--danger-soft)}.publication-blockers h3{color:var(--danger)}.publication-warnings{margin:16px 0}.publication-warnings h3{font-size:15px;margin:0 0 10px}
dialog.shift-editor{overflow:hidden;max-height:90dvh}.shift-editor .dialog-content{padding:0;display:flex;flex-direction:column;max-height:90dvh}.shift-editor .dialog-content>h2{padding:22px 24px 0;margin:0}.shift-editor .shift-intro{padding:8px 24px 14px;margin:0}.shift-editor .dialog-content>.notice{margin:0 24px 12px;overflow:auto;flex-shrink:1}.shift-editor #shift-form{display:flex;flex-direction:column;min-height:0;gap:0}.shift-fields{overflow-y:auto;min-height:0;padding:4px 24px 20px;display:grid;gap:16px;scroll-padding:16px}.shift-fields p{margin:0}.shift-save{background:var(--surface);border-top:1px solid var(--border);padding:14px 24px;flex-shrink:0;margin:0}.shift-save button{min-height:44px}.shift-secondary{border-top:1px solid var(--border);padding-top:16px}.shift-secondary-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.shift-secondary-actions button{min-height:44px}.shift-secondary-actions .danger{flex-basis:100%;width:auto;text-align:left;background:transparent;border:0;padding-left:0}.shift-fields [data-clock-note]{font-size:11px}.shift-fields .form-error{scroll-margin:12px}
@media(max-width:800px){.schedule-overview{font-size:12px;gap:5px 12px;padding:10px 0;margin-bottom:12px}.schedule-overview .schedule-state{flex-basis:100%}.mobile-schedule .shift-card strong{font-size:15px}.shift-editor .dialog-content>h2{padding:18px 16px 0;font-size:23px}.shift-editor .shift-intro{padding:8px 16px 12px}.shift-fields{padding:4px 16px 16px;gap:14px}.shift-save{padding:12px 16px}.shift-save .primary{flex:1}.shift-secondary-actions .secondary{flex:1}.shift-editor .dialog-content>.notice{margin-left:16px;margin-right:16px}}
.hosted-auth .auth-status{padding:14px;border:1px solid var(--accent-soft-ink);border-radius:8px;background:var(--accent-soft);color:var(--accent-soft-ink);line-height:1.5}
.import-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:16px}.import-entry-grid .panel{margin:0}.import-entry button{margin:8px 8px 0 0;min-height:44px}.import-reference-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.import-reference-actions button{min-height:44px}.import-reference{padding:24px;overflow-wrap:anywhere}.import-reference h2{margin-top:0}.import-reference button{min-height:44px}@media(max-width:700px){.import-entry-grid{grid-template-columns:1fr;gap:12px}.import-entry-grid .panel{padding:20px}}

/* Selected direction A: one setup task, followed by the daily schedule. */
.nav-groups{display:grid;gap:4px}.nav-destinations{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.nav-destinations>p{font-size:12px;margin:4px 12px 10px;color:var(--line-strong)}.nav-destinations .nav-item{font-size:13px;padding-left:18px;min-height:44px}.nav-groups .nav-item{min-height:44px}
@media(max-width:800px){.nav-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-destinations{margin-top:12px}.nav-destinations .nav-item{width:100%}}
/* Compact schedule summary follows all legacy mobile overrides. */
@media(max-width:800px){.page-heading:has(.schedule-entry-actions){margin-bottom:12px;gap:12px}.schedule-overview{padding:8px 0;margin-bottom:8px}.schedule-overview .schedule-state{flex-basis:auto}.schedule-entry-actions{gap:6px}.schedule-entry-actions .secondary{padding-left:10px;padding-right:10px}}
@media(max-width:800px){.schedule-entry-actions{margin-top:0}}

.employee-shift-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.employee-shift-actions button { min-height:44px; }
#absence-form .form-grid > *, #absence-form input, #absence-form select { min-width:0; max-width:100%; }

.next-shift .employee-shift-actions .subtle { color:var(--ink); border-color:var(--line-strong); }
.next-shift .employee-shift-actions .subtle:hover { background:var(--surface-2); }
#absence-form .form-grid { gap:12px; }
#absence-form [data-clock-note] { margin:0; }
#absence-form [data-clock-note]:empty { display:none; }
#absence-form .dialog-actions { position:sticky; bottom:0; background:var(--surface); padding:12px 0; }

/* Shared workspace controls: visible boundaries and narrow-screen action labels. */
:root { --control-border:var(--muted); }
input:not([type=checkbox]):not([type=radio]), select, textarea, .secondary, .hosted-auth #hosted-signout { border-color:var(--line-strong); }
#main button, .dialog-content button { min-height:44px; white-space:normal; overflow-wrap:anywhere; }
:where(#main,.panel,.dialog-content) > button + button { margin-inline-start:8px; }
.workflow-guidance { background:var(--accent-soft); border-color:var(--accent-soft); }
.workflow-guidance h2 { font-size:17px; }
@media(max-width:800px) { :where(#main,.panel,.dialog-content) > button { margin-bottom:8px; } }

#manager-note-input textarea, .sms-controls button, .week-control button { border-color:var(--line-strong); }
.filters label { font-size:13px; }
@media(min-width:801px) { .filters input, .filters select { font-size:14px; } }

.workflow-guidance p { color:var(--muted); }

/* Header reflow must survive enlarged text, not only viewport narrowing. */
.sidebar .wordmark { min-width:0; }
.sidebar .brand-name { min-width:0; overflow-wrap:anywhere; }
.sidebar .mark { flex-shrink:0; }
@media(max-width:800px) {
 .topbar { height:auto; min-height:36px; padding-top:8px; padding-bottom:8px; gap:8px; flex-wrap:wrap; }
 .topbar > span { min-width:0; overflow-wrap:anywhere; }
 .sidebar .wordmark { flex-wrap:wrap; }
}

.hosted-auth .auth-header { flex-wrap:wrap; }
.hosted-auth .auth-header > * { min-width:0; overflow-wrap:anywhere; }

.nursing-planner .planner-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,360px); gap:16px; align-items:start; }
.nursing-planner .planner-main,.nursing-planner .planner-tools { display:grid; gap:16px; min-width:0; align-content:start; }
.nursing-planner .planner-scope { margin-bottom:16px; }
.nursing-planner .planner-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; }
.nursing-planner .planner-fields label { min-width:0; }
.nursing-planner input,.nursing-planner select,.nursing-planner textarea { width:100%; }
.nursing-planner fieldset { min-width:0; border:1px solid var(--line-strong); border-radius:8px; }
.nursing-planner fieldset .checkbox { display:flex; align-items:center; gap:8px; margin:8px 0; }
.nursing-planner fieldset .checkbox input { width:auto; }
.nursing-planner .planner-tools .planner-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.nursing-planner .planner-tools .planner-fields label:first-child:nth-last-child(3) { grid-column:1/-1; }
.nursing-planner .planner-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:12px 0; }
.nursing-planner .planner-metrics > div { padding:10px; border-radius:8px; background:var(--surface-2); min-width:0; }
.nursing-planner .planner-metrics small,.nursing-planner .planner-metrics strong { display:block; }
.nursing-planner .planner-metrics strong { overflow-wrap:anywhere; }
.nursing-planner .planner-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; border-top:1px solid var(--line-strong); }
.nursing-planner .planner-row > div { min-width:0; }
.nursing-planner .planner-row button { flex-shrink:0; white-space:nowrap; }
.nursing-planner .planner-row .badge { flex-shrink:0; white-space:nowrap; }
.nursing-planner .planner-row strong,.nursing-planner .planner-row small { display:block; overflow-wrap:anywhere; }
.nursing-planner .planner-row small { color:var(--muted); }
.nursing-planner .planner-section-head { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.nursing-planner .planner-attention { background:var(--warn-soft); border-radius:var(--radius-s); padding:10px 12px; }
.nursing-planner .planner-review { border-color:var(--warn-bar); }
.dialog-content #planner-generation-scope-form fieldset { min-width:0; }
.dialog-content :is(#planner-generation-scope-form,#planner-fixed-form) .checkbox { display:flex; flex-direction:row; align-items:flex-start; gap:10px; min-height:44px; overflow-wrap:anywhere; }
.dialog-content :is(#planner-generation-scope-form,#planner-fixed-form) .checkbox input { flex:0 0 20px; width:20px; height:20px; min-height:20px; margin-top:3px; }
.dialog-content .planner-row { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:12px 0; min-width:0; }
.dialog-content .planner-row > div { min-width:0; overflow-wrap:anywhere; }
.dialog-content .planner-row small { display:block; }
@media(max-width:900px) {
 .nursing-planner .planner-layout { grid-template-columns:1fr; }
 .nursing-planner.planner-first-run .planner-tools { order:-1; }
}
@media(max-width:560px) {
 .nursing-planner .planner-fields,.nursing-planner .planner-tools .planner-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .nursing-planner .planner-scope .planner-fields label:first-child { grid-column:1/-1; }
 .nursing-planner .planner-fields label:has(input[type="datetime-local"]),.nursing-planner .planner-fields [data-clock-note] { grid-column:1/-1; }
 .nursing-planner .planner-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .nursing-planner button,.nursing-planner input,.nursing-planner select { min-height:44px; }
}


/* ---- Break board (design system v2) ---- */
.break-filter { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; align-items:end; padding:16px 18px; margin-bottom:20px; }
.break-filter button { justify-self:start; }
.break-list { display:grid; gap:12px; margin-bottom:24px; }
.break-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); padding:18px 20px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 16px; align-items:center; }
.break-card h2 { font-size:18px; margin:0; } .break-card .card-meta { color:var(--muted); font-size:13px; margin:2px 0 0; display:flex; flex-wrap:wrap; gap:4px 12px; } .break-card .card-flags { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.break-card .entry-actions { margin:0; grid-column:2; grid-row:1/3; align-self:center; }
.break-board { padding:24px; }
.board-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.board-head h2 { font-size:28px; margin:0; letter-spacing:-0.5px; } .board-meta { color:var(--muted); font-size:13px; margin:4px 0 0; display:flex; flex-wrap:wrap; gap:4px 10px; }
.board-head .entry-actions { margin:0; align-items:center; }
.readouts { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:12px; margin-bottom:18px; }
.readout { border:1px solid var(--line); border-radius:var(--radius-l); padding:16px 18px; background:var(--surface); min-width:0; }
.readout.live { background:var(--accent-soft); border-color:transparent; box-shadow:0 0 0 1px var(--accent-glow), 0 0 40px var(--accent-glow); }
.readout .label { font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--muted); text-transform:uppercase; display:flex; align-items:center; gap:8px; }
.readout.live .label { color:var(--accent-soft-ink); } .readout.live .label::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--accent); }
.readout .value { font-family:var(--font-display); font-size:24px; font-weight:600; letter-spacing:-0.4px; margin-top:6px; overflow-wrap:anywhere; } .readout.live .value { color:var(--accent-soft-ink); }
.readout .sub { color:var(--muted); font-size:13px; margin-top:2px; } .readout.live .sub { color:var(--accent-soft-ink); opacity:.85; }
.readout .big { font-family:var(--font-mono); font-size:28px; font-weight:500; margin-top:4px; } .readout .big small { font-size:13px; color:var(--muted); font-family:var(--font-ui); }
.readout .next-list { display:grid; gap:6px; margin-top:8px; font-size:13px; } .readout .next-list div { display:flex; gap:10px; } .readout .next-list .time { color:var(--accent); font-weight:600; min-width:48px; }
.meter { height:6px; border-radius:3px; background:var(--line); overflow:hidden; margin-top:10px; } .meter div { height:100%; background:var(--accent); } .meter.over div { background:var(--warn-bar); }
.rail { border:1px solid var(--line); border-radius:var(--radius-l); padding:14px 18px 10px; background:var(--surface); margin-bottom:18px; }
.rail-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; } .rail-head strong { font-size:14px; }
.rail-legend { display:flex; gap:14px; font-size:12px; color:var(--muted); flex-wrap:wrap; } .rail-legend i { display:inline-block; width:10px; height:10px; border-radius:3px; vertical-align:-1px; margin-right:5px; }
.rail-grid { display:grid; grid-template-columns:150px minmax(0,1fr); font-size:13px; margin-top:10px; }
.rail-ticks { position:relative; height:16px; font-family:var(--font-mono); font-size:11px; color:var(--faint); } .rail-ticks span { position:absolute; transform:translateX(-50%); } .rail-ticks span:first-child { transform:none; }
.rail-name { padding:8px 8px 8px 0; border-top:1px solid var(--line); min-width:0; } .rail-name strong { display:block; font-weight:500; overflow-wrap:anywhere; } .rail-name small { color:var(--muted); font-size:12px; }
.rail-track { position:relative; border-top:1px solid var(--line); min-height:42px; background-image:linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:var(--tick,8%) 100%; }
.rail-bar { position:absolute; top:10px; height:22px; border-radius:6px; background:var(--planned); color:var(--planned-ink); font-size:11px; line-height:22px; padding:0 6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:4px; }
.rail-bar.taken { background:var(--accent); color:var(--accent-ink); } .rail-bar.live { background:var(--accent); color:var(--accent-ink); box-shadow:0 0 0 3px var(--accent-glow); } .rail-bar.missed { background:var(--warn-bar); color:#fff; } .rail-bar.waived { background:transparent; border:1px dashed var(--line-strong); color:var(--muted); }
.rail-bar.conflict { outline:2px solid var(--warn-bar); outline-offset:1px; }
.rail-now { position:absolute; top:0; bottom:0; width:2px; background:var(--ink); z-index:1; }
.rail-group { grid-column:1/-1; font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--faint); text-transform:uppercase; padding:10px 0 4px; }
.rail-grid > :nth-last-child(-n+2) { border-bottom:1px solid var(--line); }
.record-list { list-style:none; margin:0; padding:0; }
.break-row { display:grid; grid-template-columns:118px minmax(0,1fr) auto; gap:4px 14px; align-items:center; min-height:52px; padding:12px 0; border-top:1px solid var(--line); }
.break-row:last-child { border-bottom:1px solid var(--line); }
.break-row.conflict { background:var(--warn-soft); border-radius:var(--radius-s); padding-left:12px; padding-right:12px; margin:0 -12px; border-top-color:transparent; } .break-row.conflict + .break-row { border-top-color:transparent; }
.break-row .when { font-family:var(--font-mono); font-size:14px; color:var(--muted); } .break-row .when b { display:block; color:var(--ink); font-weight:500; }
.break-row-main { display:flex; flex-direction:column; gap:3px; min-width:0; font-size:13px; }
.break-row-main .who { display:flex; align-items:center; gap:8px; flex-wrap:wrap; } .break-row-main .who strong { font-size:14px; } .break-row-main .who .lic { color:var(--muted); }
.break-row-main span { color:var(--muted); overflow-wrap:anywhere; }
.break-row .entry-actions { margin:0; justify-content:flex-end; align-items:center; gap:6px; }
.break-row .entry-actions .subtle { padding:8px 10px; font-size:13px; min-height:36px; } .break-row .entry-actions .primary,.break-row .entry-actions .secondary { padding:8px 14px; font-size:13px; min-height:36px; }
.state-label.state-live { background:var(--accent); color:var(--accent-ink); }
.warning-text { color:var(--warn); font-weight:600; font-size:13px; margin:8px 0 0; }
.board-section { margin-top:22px; } .board-section > h3 { font-size:14px; font-weight:700; margin:0 0 4px; } .board-section > .fine { margin:0 0 10px; }
.break-checks-scroll { overflow:auto; }
.break-checks { width:100%; border-collapse:collapse; font-size:13px; min-width:720px; }
.break-checks th,.break-checks td { text-align:left; padding:10px 8px; border-top:1px solid var(--line); vertical-align:top; } .break-checks thead th { color:var(--muted); font-weight:600; font-size:12px; border-top:0; }
.break-checks small { display:block; color:var(--muted); font-size:11px; }
.break-events { font-size:13px; padding-left:18px; list-style:disc; } .break-events li { margin:6px 0; overflow-wrap:anywhere; }
.break-form { display:grid; gap:14px; }
.break-members { list-style:none; margin:0; padding:0; }
.break-member { display:grid; grid-template-columns:minmax(160px,2fr) repeat(3,minmax(90px,1fr)); gap:10px; align-items:end; padding:10px 0; border-top:1px solid var(--line); }
.break-member>label:first-child { display:flex; gap:8px; align-items:center; } .break-member>label:first-child input { width:auto; }
.break-member small { display:block; color:var(--muted); font-size:11px; }
.break-form fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:12px; display:grid; gap:8px; }
.break-form fieldset label { display:flex; gap:8px; align-items:center; } .break-form fieldset input { width:auto; }
.break-worksheet { width:100%; border-collapse:collapse; font-size:12px; margin-bottom:18px; } .break-worksheet th,.break-worksheet td { border:1px solid var(--ink); padding:8px; text-align:left; vertical-align:top; min-width:90px; } .break-worksheet small { color:var(--muted); }
.signature-field { display:grid; gap:8px; } .signature-pad { width:100%; max-width:600px; height:auto; aspect-ratio:3/1; border:1px dashed var(--line-strong); border-radius:var(--radius); background:var(--surface); touch-action:none; cursor:crosshair; display:block; }
.signature { display:inline-flex; flex-direction:column; gap:2px; margin-top:4px; } .signature svg { width:150px; height:50px; border:1px solid var(--line); border-radius:5px; background:var(--surface); color:var(--ink); } .signature small { color:var(--muted); font-size:11px; }
.break-worksheet .signature svg { width:120px; height:40px; }
/* My breaks (phone first) */
.hero-break { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-xl); padding:18px; box-shadow:var(--shadow); margin-bottom:16px; }
.hero-break.live { background:var(--accent-soft); border-color:transparent; box-shadow:0 0 0 1px var(--accent-glow), 0 0 40px var(--accent-glow); }
.hero-break .label { font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--accent); text-transform:uppercase; }
.hero-break .big { font-family:var(--font-mono); font-size:32px; font-weight:500; letter-spacing:-0.5px; margin-top:4px; } .hero-break .big small { font-size:16px; color:var(--muted); font-weight:400; }
.hero-break .sub { color:var(--muted); margin-top:2px; } .hero-break .busy { display:flex; align-items:center; gap:8px; color:var(--warn); font-size:13px; margin-top:12px; } .hero-break .busy::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--warn-bar); }
.hero-break .primary { width:100%; margin-top:14px; min-height:48px; font-size:16px; }
.my-rail { margin:4px 0 20px; } .my-rail .rail-ticks span:nth-child(even) { display:none; } .my-rail .rail-grid { grid-template-columns:48px minmax(0,1fr); margin-top:0; } .my-rail .rail-track { min-height:26px; border-radius:8px; background:var(--surface-2); border-top:0; background-image:none; } .my-rail .rail-bar { top:4px; height:18px; line-height:18px; font-size:10px; } .my-rail .rail-name { border-top:0; color:var(--muted); font-size:12px; padding:4px 8px 4px 0; } .my-rail .rail-grid > :nth-last-child(-n+2) { border-bottom:0; }
.my-breaks .break-board { padding:18px; }
@media(max-width:900px) { .readouts { grid-template-columns:1fr; } .rail-grid { grid-template-columns:110px minmax(0,1fr); } .break-row { grid-template-columns:1fr; } .break-row .entry-actions { justify-content:flex-start; } .break-card { grid-template-columns:1fr; } .break-card .entry-actions { grid-column:1; grid-row:auto; } }
@media(max-width:700px) { .break-member { grid-template-columns:1fr 1fr; } .break-member>label:first-child { grid-column:1/-1; } .rail-grid { grid-template-columns:84px minmax(0,1fr); } .rail-name strong { font-size:12px; } .board-head h2 { font-size:22px; } }
@media print { body.printing-schedule .break-worksheet th,body.printing-schedule .break-worksheet td { border-color:#000; } }
.rail-legend .k-taken{background:var(--accent)} .rail-legend .k-planned{background:var(--planned)} .rail-legend .k-missed{background:var(--warn-bar)} .readout .value .lic{font-family:var(--font-ui);font-size:14px;font-weight:500}

@media(max-width:700px) { .rail-ticks span:nth-child(even) { display:none; } }

/* DS-04b: forms and tables on design system v2 */
label { font-size:12.5px; font-weight:600; color:var(--ink); gap:6px; }
label > small,.field-help { font-weight:400; color:var(--muted); font-size:12px; line-height:1.5; }
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea { padding:10px 12px; min-height:42px; border-radius:var(--radius-s); border:1px solid var(--control-line); background:var(--surface); color:var(--ink); transition:border-color .12s,box-shadow .12s; }
input[type=date],input[type=time],input[type=datetime-local],input[type=number],input[type=month],input[type=week] { font-family:var(--font-mono); font-size:14px; font-variant-numeric:tabular-nums; }
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover { border-color:var(--muted); }
input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible { outline:0; border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); }
input::placeholder,textarea::placeholder { color:var(--faint); }
select:not([multiple]):not([size]) { appearance:none; -webkit-appearance:none; padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%236b7f85' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
input:disabled,select:disabled,textarea:disabled { background:var(--surface-2); color:var(--muted); border-color:var(--line); }
.workload-form fieldset,.nursing-planner fieldset,.break-form fieldset,#sms-recipient-form fieldset,fieldset { border:0; border-top:1px solid var(--line); border-radius:0; padding:14px 0 0; margin:6px 0 0; min-width:0; display:grid; gap:10px; }
fieldset[hidden] { display:none; }
legend { padding:0 0 10px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); float:left; width:100%; }
legend + * { clear:both; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.form-grid > * { min-width:0; }
.dialog-content { padding:26px 28px 22px; }
.dialog-content h2 { font-family:var(--font-display); font-size:24px; letter-spacing:-.4px; margin:0 0 4px; }
.dialog-content > p { color:var(--muted); font-size:14px; margin:0 0 18px; line-height:1.55; }
.dialog-content form { gap:16px; }
.dialog-actions { position:sticky; bottom:0; background:var(--surface); border-top:1px solid var(--line); margin:8px -28px -22px; padding:14px 28px 18px; display:flex; justify-content:flex-end; gap:10px; }
.dialog-content form .fine,.dialog-content > .fine { font-size:12px; color:var(--muted); line-height:1.55; margin:0; }
.checkbox,.nursing-planner fieldset .checkbox,.break-form fieldset > label,.break-member > label:first-child { flex-direction:row; align-items:center; gap:10px; font-weight:500; margin:0; line-height:1.5; }
.checkbox input,.break-form fieldset input[type=checkbox] { width:18px; height:18px; min-height:0; margin:0; }
.fine { font-size:12px; color:var(--muted); line-height:1.55; }
.form-error { font-size:13px; padding:10px 12px; background:var(--danger-soft); border-radius:var(--radius-s); }
main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) { width:100%; border-collapse:collapse; font-size:13px; }
main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) thead th { text-align:left; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:8px 10px 10px; border-top:0; border-bottom:1px solid var(--line-strong); white-space:nowrap; position:sticky; top:0; background:var(--surface); }
main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) tbody td,main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) tbody th { text-align:left; padding:11px 10px; border-top:1px solid var(--line); vertical-align:top; font-weight:400; }
main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) tbody tr:first-child td,main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) tbody tr:first-child th { border-top:0; }
main table:not(.schedule-grid):not(.break-worksheet):not(.demo-grid) tbody tr:hover { background:var(--surface-2); }
main table .num,main table td.time,main table .mono { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
main table .num { text-align:right; }
.table-scroll,.break-checks-scroll { overflow:auto; border:1px solid var(--line); border-radius:var(--radius); }
.break-checks thead th { font-size:11px; }
.break-checks tbody th { font-weight:600; }
.break-checks small { font-size:11px; }
.history-row,.team-row { display:flex; align-items:center; gap:14px; padding:16px 0; border-top:1px solid var(--line); border-bottom:0; }
.history-row:first-child,.team-row:first-child { border-top:0; }
.history-row > div,.team-row > div { flex:1; min-width:0; }
.history-row p,.team-row p { margin:3px 0 0; font-size:13px; color:var(--muted); }
.history-version { font-family:var(--font-mono); font-size:13px; font-weight:500; color:var(--accent-soft-ink); background:var(--accent-soft); border-radius:var(--radius-s); padding:6px 9px; min-width:44px; text-align:center; }
.diff-row { display:flex; gap:12px; padding:12px 0; border-top:1px solid var(--line); align-items:flex-start; }
.diff-row:first-child { border-top:0; }
.diff-row p { margin:4px 0 0; font-size:13px; }
.diff-row .muted { color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-right:6px; }
@media(max-width:560px) { .form-grid { grid-template-columns:1fr; } .dialog-content { padding:20px 18px 18px; } .dialog-actions { margin:8px -18px -18px; padding:12px 18px 16px; } .dialog-actions button { flex:1; } .dialog-content h2 { font-size:22px; } }
.break-member { display:grid; grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); gap:10px 12px; align-items:end; padding:10px 0; border-top:1px solid var(--line); }
.break-member:first-child { border-top:0; }
.break-member > label:first-child { align-self:center; padding-bottom:10px; }
@media(max-width:700px) { .break-member { grid-template-columns:1fr 1fr; } .break-member > label:first-child { grid-column:1/-1; padding-bottom:0; } }

/* Rehab floor screens (UR-04 to UR-08). Token colors only, so both themes follow. */
.rehab-floors { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin-bottom:20px; }
.rehab-floor { padding:16px; } .rehab-floor dl { display:grid; gap:6px; margin:8px 0; } .rehab-floor dl div { display:flex; justify-content:space-between; gap:12px; } .rehab-floor dt { color:var(--muted); }
.rehab-filters,.rehab-toolbar,.rehab-summary { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin:12px 0; }
.rehab-filters label { display:grid; gap:4px; min-width:150px; flex:1 1 150px; }
.rehab-table { width:100%; border-collapse:collapse; font-size:14px; }
.rehab-table th,.rehab-table td { padding:9px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.rehab-table thead th { font-size:12px; color:var(--muted); background:var(--surface-2); white-space:nowrap; }
.rehab-table tbody th { font-weight:600; }
.rehab-actions { display:flex; flex-wrap:wrap; gap:6px; }
.rehab-day { padding:14px 16px; margin-bottom:14px; } .rehab-day h3 { margin:12px 0 6px; font-size:15px; }
.rehab-shifts { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.rehab-shift { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding:8px 10px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface-2); }
.rehab-tag { display:inline-block; padding:2px 7px; border-radius:999px; font-size:11px; font-weight:600; background:var(--info-soft); color:var(--info-ink); }
.rehab-status { display:inline-block; padding:3px 8px; border-radius:999px; font-size:12px; font-weight:600; white-space:nowrap; background:var(--surface-2); color:var(--muted); border:1px solid var(--line); }
.rehab-ok,.rehab-met { background:var(--accent-soft); color:var(--accent-soft-ink); border-color:transparent; }
.rehab-short { background:var(--danger-soft); color:var(--danger); border-color:transparent; }
.rehab-census-needed,.rehab-review,.rehab-classification-needed { background:var(--warn-soft); color:var(--warn); border-color:transparent; }
#rehab-invite-form fieldset,#rehab-access-form fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; margin:10px 0; display:grid; gap:6px; }
#rehab-invite-form .radio,#rehab-access-form .radio { display:block; }
@media(max-width:640px) { .rehab-table { font-size:13px; min-width:760px; } .rehab-filters label { min-width:100%; } }
/* TK-07 timekeeper export */
.tk-group { margin-top:24px; } .tk-group h2 .fine,.tk-floor h3 .fine { font-weight:400; margin-left:6px; }
.tk-person { border-top:1px solid var(--line); padding:6px 0; } .tk-person summary { cursor:pointer; padding:6px 0; font-weight:600; }
.tk-lines { font-size:13px; } .tk-lines td { white-space:nowrap; }
@media print { body.printing-schedule .tk-floor { break-before:auto; border:0; padding:0; } body.printing-schedule .rehab-table { font-size:9pt; min-width:0; } body.printing-schedule .rehab-table th,body.printing-schedule .rehab-table td { padding:3px 4px; border-color:#000; } body.printing-schedule thead { display:table-header-group; } body.printing-schedule tr { break-inside:avoid; } }
/* LC-04 low census and codes */
.lc-mine { list-style:none; margin:0; padding:0; } .lc-card { display:grid; grid-template-columns:minmax(140px,1fr) minmax(120px,1fr) 2fr; gap:8px 16px; align-items:center; padding:12px 0; border-top:1px solid var(--line); } .lc-card:first-child { border-top:0; }
@media (max-width:640px) { .lc-card { grid-template-columns:1fr; } }
.lc-inline { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:flex-end; margin:0; } .lc-inline label { display:flex; flex-direction:column; gap:2px; font-size:13px; } .lc-inline input:not([type=checkbox]),.lc-inline select { min-width:0; max-width:180px; }
.lc-inline .lc-check { flex-direction:row; align-items:center; gap:6px; min-height:44px; } .lc-inline button { min-height:44px; }
.credential-tiles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0 18px; }
.credential-tile { display:grid; gap:2px; text-align:left; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); }
.credential-tile strong { font-size:24px; line-height:1.1; } .credential-tile span { font-size:13px; color:var(--muted); }
.credential-tile.selected { background:var(--accent-soft); border-color:transparent; color:var(--accent-soft-ink); }
.credential-review,.credential-reminders,.credential-docs { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.credential-review li { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface-2); }
.credential-docs { gap:2px; margin-top:4px; } .credential-docs button { padding:2px 0; }
.credential-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.credential-card { display:grid; gap:8px; align-content:start; } .credential-card h2 { font-size:17px; margin:0; }
.credential-card-head { display:flex; justify-content:space-between; align-items:center; gap:8px; } .credential-card dl { margin:0; display:grid; gap:4px; } .credential-card dt { font-size:12px; color:var(--muted); } .credential-card dd { margin:0; }
.rehab-neutral { background:var(--surface-2); color:var(--muted); }
.credential-status { display:flex; flex-wrap:wrap; align-items:center; gap:6px; } .credential-status .form-error { margin:0; }
#cred-settings-form fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; margin:10px 0; display:grid; gap:6px; }
@media(max-width:640px) { .credential-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); } .credential-table { min-width:640px; } }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
/* Notifications (NT-07, NT-10) */
.notification-list { list-style:none; margin:0 0 16px; padding:0; display:grid; gap:8px; }
.notification-item { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:12px 16px; }
.notification-item[data-unread="true"] { background:var(--info-soft); }
.notification-item p { margin:0 0 4px; }
.notification-title { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.delivery-history { padding-left:20px; display:grid; gap:10px; }
@media (max-width:640px) { .notification-item { flex-direction:column; } }
/* Callout patterns (CP-07). State is a tinted fill plus a label; no accent strokes. */
.callout-urgent { background:var(--danger-soft); color:var(--ink); border:0; border-radius:var(--radius); padding:12px 14px; margin:12px 0; }
.callout-urgent button { min-height:0; padding:2px 6px; font-weight:600; }
.callout-split { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:10px; }
.callout-breakdown { padding:12px 14px; margin:12px 0 20px; }
.callout-readouts { grid-template-columns:repeat(3,minmax(0,1fr)); }
.callout-list,.callout-flags,.callout-policies { list-style:none; padding:0; margin:0 0 14px; display:grid; gap:0; }
.callout-flags li,.callout-policies li { padding:8px 0; border-bottom:1px solid var(--line); }
.callout-flags .callout-flag-urgent { background:var(--danger-soft); border-radius:var(--radius-s); padding:8px 10px; border-bottom:0; }
.callout-row { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 16px; padding:10px 0; border-bottom:1px solid var(--line); }
.callout-row p { margin:2px 0 0; }
.callout-row-side { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.callout-zero { color:var(--muted); }
@media(max-width:640px) { .callout-readouts { grid-template-columns:1fr; } .callout-row-side { width:100%; } }
#main .callout-open { white-space:nowrap; overflow-wrap:normal; }
/* Ratio and census tracking (RC-08, RC-09, RC-11) */
.rehab-current th, .rehab-current td { background:var(--accent-soft); }
.rehab-core { margin:0 0 8px; display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; }
.rehab-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin:12px 0; }
.rehab-tile { border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:var(--surface); display:flex; flex-direction:column; gap:4px; }
.rehab-tile span { font-size:12px; color:var(--muted); }
.rehab-tile strong { font-size:20px; }
.rehab-may-need-coverage { background:var(--warn-soft); color:var(--warn); border-color:transparent; }
.rehab-core-item { display:inline-flex; flex-wrap:wrap; gap:4px 6px; align-items:center; padding-right:8px; }
.rehab-core-section { margin-top:20px; }
/* SS-02–SS-07 self-scheduling: request sheet, request window, balance review */
@layer components {
.ss-panel { padding:16px 18px; margin:14px 0; }
.ss-panel h2 { margin-top:0; }
.ss-status { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:10px; }
.ss-status h2 { margin:0 0 2px; }
.ss-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px 18px; margin:12px 0; }
.ss-facts dt { color:var(--muted); font-size:12px; } .ss-facts dd { margin:2px 0 0; font-weight:600; }
.ss-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ss-help { margin:12px 0; } .ss-help p { margin:4px 0; }
.ss-count { font-weight:600; margin:12px 0 6px; } .ss-count.ss-over-limit { color:var(--danger); }
.ss-week { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px 12px; margin:0 0 12px; }
.ss-week legend { font-weight:600; padding:0 6px; }
.ss-days { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; }
.ss-day { display:grid; gap:4px; align-content:start; padding:8px; border-radius:var(--radius-s); background:var(--surface-2); border:1px solid var(--line); min-width:0; }
.ss-day label { font-size:12px; color:var(--muted); }
.ss-day select { width:100%; min-width:0; }
.ss-date { margin:0 0 2px; font-weight:600; font-size:14px; }
.ss-day.ss-has-request { background:var(--accent-soft); border-color:transparent; }
.ss-day.ss-unavailable { background:var(--warn-soft); border-color:transparent; }
.ss-results { margin:14px 0; }
.ss-result-list { list-style:none; padding:0; margin:8px 0 0; display:grid; gap:6px; }
.ss-result-list li { display:grid; grid-template-columns:1fr auto; gap:4px 10px; align-items:center; padding:8px 10px; border-radius:var(--radius-s); background:var(--surface-2); border:1px solid var(--line); }
.ss-result-list li .fine { grid-column:1 / -1; }
.ss-chip { display:inline-block; padding:2px 7px; margin:1px 0; border-radius:999px; font-size:12px; font-weight:600; background:var(--surface-2); border:1px solid var(--line); white-space:nowrap; }
.ss-chip.ss-over { background:var(--warn-soft); color:var(--warn); border-color:transparent; }
.ss-chip.ss-off { background:var(--info-soft); color:var(--info-ink); border-color:transparent; }
.rehab-tag.ss-late { background:var(--warn-soft); color:var(--warn); }
.ss-floor-grid { margin:10px 0; } .ss-floor-grid summary { padding:8px 0; cursor:pointer; }
.ss-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:12px 0 16px; }
.ss-tile { display:grid; gap:2px; padding:12px; border-radius:var(--radius); background:var(--surface-2); border:1px solid var(--line); }
.ss-tile strong { font-family:var(--font-display); font-size:24px; line-height:1.1; } .ss-tile span { color:var(--muted); font-size:13px; }
.ss-tile.ss-ok { background:var(--accent-soft); border-color:transparent; } .ss-tile.ss-ok span { color:var(--accent-soft-ink); }
.ss-tile.ss-warn { background:var(--warn-soft); border-color:transparent; } .ss-tile.ss-warn span { color:var(--warn); }
.ss-preview h3 { margin:16px 0 6px; }
.ss-preview details { margin:10px 0; }
.ss-times { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ss-staffing input { width:64px; }
#ss-window-form fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; margin:10px 0; }
.ss-history { margin:6px 0; padding-left:18px; }
#ss-apply-form { margin-top:16px; display:grid; gap:8px; justify-items:start; }
}
@layer responsive {
@media(max-width:640px) { .ss-days { grid-template-columns:1fr 1fr; } .ss-panel { padding:14px; } .ss-times { grid-template-columns:1fr; } }
@media(max-width:380px) { .ss-days { grid-template-columns:1fr; } }

/* Daily staffing sheet (DS-07, DS-08). State is a tinted fill plus a label. */
.sheet-when { margin:4px 0 8px; }
.sheet-flags { margin:12px 0; } .sheet-flags h2 { font-size:16px; margin:0 0 6px; }
.sheet-flags ul { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.sheet-flag { padding:8px 12px; border-radius:var(--radius-s); background:var(--warn-soft); color:var(--warn); font-weight:600; }
.sheet-flag-ratio,.sheet-flag-core { background:var(--danger-soft); color:var(--danger); }
.sheet-hospital,.sheet-floor { padding:14px 16px; margin-bottom:14px; min-width:0; }
.sheet-floor-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; }
.sheet-floor-head h2 { margin:0; font-size:18px; }
.sheet-floors { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:14px; }
.sheet-stats,.sheet-lead { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:8px 14px; margin:10px 0; }
.sheet-stats div,.sheet-lead div { display:grid; gap:2px; } .sheet-stats dt,.sheet-lead dt { font-size:12px; color:var(--muted); } .sheet-stats dd,.sheet-lead dd { margin:0; font-weight:600; }
.sheet-group h4,.sheet-note h4 { margin:12px 0 6px; font-size:14px; }
.sheet-group ul { list-style:none; padding:0; margin:0; display:grid; gap:4px; }
.sheet-person { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px; padding:6px 8px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface-2); }
.sheet-not-counted { opacity:.7; } .sheet-not-counted strong { text-decoration:line-through; }
.sheet-tags { display:flex; flex-wrap:wrap; gap:4px; }
.sheet-tag-callout { background:var(--danger-soft); color:var(--danger); } .sheet-tag-float-in,.sheet-tag-float-out,.sheet-tag-sitter { background:var(--warn-soft); color:var(--warn); }
.sheet-note p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.sheet-lists { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:14px; }
.sheet-list { padding:14px 16px; min-width:0; } .sheet-list h2 { font-size:16px; margin:0 0 8px; }
#sheet-picker label { display:grid; gap:4px; }
#sheet-entry-form fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; margin:10px 0; display:grid; gap:8px; }
.sheet-sitter-row { display:grid; grid-template-columns:2fr 1fr; gap:8px; }
.sheet-signed .staffing-sheet { font-size:14px; }
@media print {
 body.printing-sheet { background:white; color:#000; }
 body.printing-sheet .sidebar,body.printing-sheet .topbar,body.printing-sheet footer,body.printing-sheet .sheet-no-print,body.printing-sheet #status,body.printing-sheet .skip { display:none!important; }
 body.printing-sheet .layout,body.printing-sheet .workspace { display:block; }
 body.printing-sheet .staffing-sheet { font-size:9.5pt; }
 body.printing-sheet .panel { box-shadow:none; border:1px solid #000; break-inside:avoid; }
 body.printing-sheet .sheet-floors,body.printing-sheet .sheet-lists { grid-template-columns:1fr 1fr; }
 body.printing-sheet .sheet-person { background:white; border-color:#999; padding:2px 4px; }
 body.printing-sheet .rehab-status,body.printing-sheet .rehab-tag,body.printing-sheet .sheet-flag { background:white!important; color:#000!important; border:1px solid #000; }
}
/* MK-07 to MK-10 open shift marketplace. */
.mk-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 14px; }
.mk-tabs button { min-height:40px; padding:6px 14px; border:1px solid var(--line-strong); border-radius:999px; background:var(--surface); color:var(--ink); font-weight:600; }
.mk-tabs button[aria-pressed="true"] { background:var(--accent-soft); color:var(--accent-soft-ink); border-color:transparent; }
.mk-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; margin-bottom:20px; }
.mk-card { padding:16px; display:grid; gap:8px; align-content:start; }
.mk-card p { margin:0; }
.mk-card-head { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.mk-card-head h3 { margin:0 auto 0 0; font-size:16px; }
.mk-when { font-weight:600; }
.mk-pay { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.mk-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:4px; }
.mk-ranks { list-style:none; padding:0; margin:12px 0; display:grid; gap:10px; }
.mk-rank { padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface-2); display:grid; gap:6px; }
.mk-shorts,.mk-history { list-style:none; padding:0; margin:8px 0; display:grid; gap:4px; }
.mk-wide { grid-column:1/-1; }
#mk-settings-form fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; }
.mk-today { background:var(--warn-soft); border-radius:var(--radius-l); padding:12px 16px 4px; margin-bottom:16px; }
@media(max-width:640px) { .mk-grid { grid-template-columns:1fr; } .mk-card-head h3 { flex-basis:100%; } }

/* Attune brand layer (docs/brand/DESIGN.md): self-hosted serif and sans, the Attune mark, unbolded serif headings. */
@font-face{font-family:"SD Serif";font-weight:400;font-display:swap;src:url(/sd-newsreader-400.ttf) format("truetype")}
@font-face{font-family:"SD Serif";font-weight:500;font-display:swap;src:url(/sd-newsreader-500.ttf) format("truetype")}
@font-face{font-family:"SD Sans";font-weight:400;font-display:swap;src:url(/sd-inter-400.ttf) format("truetype")}
@font-face{font-family:"SD Sans";font-weight:500;font-display:swap;src:url(/sd-inter-500.ttf) format("truetype")}
@font-face{font-family:"SD Sans";font-weight:600 700;font-display:swap;src:url(/sd-inter-600.ttf) format("truetype")}
h1,h2,.dialog-content h2,.readout .value,.ss-tile strong,.availability-summary strong.summary-word{font-weight:400}
h1{letter-spacing:-.025em}
.wordmark{font-weight:500;letter-spacing:-.025em}
.mark{background:url(/attune-mark.svg) center/contain no-repeat;color:transparent;font-size:0}

/* Sign-in screens are full-bleed: the 1480px content cap is for the signed-in workspace only. */
main#main.login { max-width:none; width:100%; }

/* Workspace setup. Full-width three-part flow: a step rail you can move back through,
   the task for the chosen step with everything saved so far, and a dark preview band
   that fills in as the workspace takes shape. */
main#main:has(> .setup-flow){max-width:none}
main#main:has(> .setup-flow)>.page-heading h1{font-size:clamp(34px,2.6vw,46px);font-weight:400;letter-spacing:-.025em}
.setup-flow{--setup-band:#181715;--setup-band-2:#22201d;--setup-band-line:#34322e;--setup-band-ink:#faf9f5;--setup-band-soft:#a09d96;--setup-coral:#e08a6b;--setup-teal:#5db8a6;
  display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1.1fr) minmax(0,1fr);gap:clamp(20px,2vw,36px);align-items:stretch;margin:8px 0 0}
:root[data-theme=dark] .setup-flow{--setup-band:#11100e;--setup-band-2:#1b1a17;--setup-band-line:#2e2c28}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .setup-flow{--setup-band:#11100e;--setup-band-2:#1b1a17;--setup-band-line:#2e2c28}}
.setup-rail{display:flex;flex-direction:column;gap:0;padding:4px 0}
.setup-rail h2{font-family:var(--font-display);font-weight:400;font-size:22px;letter-spacing:-.015em;margin:0}
.setup-progress-text{color:var(--muted);font-size:13px;margin:6px 0 14px}
.setup-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:18px}
.setup-meter i{height:4px;border-radius:2px;background:var(--line-strong)}.setup-meter i.done{background:var(--accent)}.setup-meter i.now:not(.done){background:var(--accent-soft-ink);opacity:.35}
.setup-rail ol{list-style:none;margin:0;padding:0;display:grid;gap:4px;position:relative}
.setup-rail ol::before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:1px;background:var(--line-strong)}
.setup-step{position:relative;display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:var(--radius-l);padding:12px 12px;min-height:64px;color:var(--ink)}
.setup-step:hover:not(:disabled){background:var(--surface-2)}
.setup-step:disabled{opacity:1;color:var(--faint)}.setup-step:disabled small{color:var(--faint)}
.setup-step>span:last-child{display:grid;gap:3px;min-width:0}.setup-step strong{font-size:14px;font-weight:600}.setup-step small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.setup-mark{position:relative;z-index:1;display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;border:1px solid var(--line-strong);background:var(--bg);font-size:13px;font-weight:600;color:var(--muted);font-family:var(--font-mono)}
.setup-step.complete .setup-mark{background:var(--accent-soft);border-color:transparent;color:var(--accent-soft-ink)}
.setup-step.skipped .setup-mark{background:var(--surface-2);border-style:dashed;color:var(--muted)}
.setup-step.current{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}
.setup-step.current .setup-mark{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.setup-step.current strong{color:var(--ink)}
.setup-rail>.fine{margin-top:18px;padding:0 12px}
.setup-stage{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:clamp(28px,2.4vw,44px);min-height:520px}
.setup-count{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 14px}
.setup-stage h2{font-family:var(--font-display);font-weight:400;font-size:clamp(28px,2.2vw,38px);line-height:1.12;letter-spacing:-.02em;margin:0 0 12px;outline:none}
.setup-lead{font-size:16px;line-height:1.6;color:var(--muted);max-width:56ch;margin:0 0 26px}
.setup-records{border-top:1px solid var(--line);padding-top:18px;margin-bottom:22px}
.setup-records-title{display:flex;align-items:center;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.setup-records ul{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));column-gap:28px}
.setup-records li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.setup-records li>span:last-child{display:grid;gap:2px;min-width:0}.setup-records strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-records small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setup-records .avatar{width:30px;height:30px;font-size:11px}
.setup-records-empty{font-size:14px;color:var(--faint);margin:6px 0 0;padding:6px 0}
.setup-stage .entry-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin:0}
.setup-stage .entry-actions button,.setup-stage-nav button{min-height:46px;padding:11px 18px}
.setup-skip{align-self:flex-start;margin-top:16px;background:none;border:0;padding:6px 0;min-height:36px;color:var(--accent-strong);font-weight:600;font-size:14px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.setup-skip:hover{color:var(--ink)}
.setup-stage>.fine{margin-top:18px}
.setup-stage-nav{margin-top:auto;padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.setup-preview{display:flex;flex-direction:column;background:var(--setup-band);color:var(--setup-band-ink);border:1px solid var(--setup-band-line);border-radius:var(--radius-xl);padding:clamp(22px,2vw,32px);min-height:520px;overflow:hidden}
.setup-preview-head{display:grid;gap:4px;margin-bottom:22px}
.setup-preview-head p{margin:0 0 6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--setup-coral)}
.setup-preview-head strong{font-family:var(--font-display);font-weight:400;font-size:26px;letter-spacing:-.015em}
.setup-preview-head span{font-size:13px;color:var(--setup-band-soft)}
.setup-week{display:grid;grid-template-columns:minmax(118px,160px) repeat(7,minmax(0,1fr));border-top:1px solid var(--setup-band-line);border-left:1px solid var(--setup-band-line)}
.setup-week>span{border-right:1px solid var(--setup-band-line);border-bottom:1px solid var(--setup-band-line);min-height:64px;padding:8px}
.setup-week>span:first-child{min-height:0}
.setup-day{min-height:0!important;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--setup-band-soft);text-align:center;padding:9px 4px!important}
.setup-person{display:flex;align-items:center;gap:9px;min-width:0}
.setup-person b{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:50%;background:#3a2219;color:#f0a98e;font-size:10px;font-weight:600}
.setup-person>span{display:grid;gap:1px;min-width:0;font-size:12px;font-weight:500}.setup-person>span,.setup-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setup-person small{font-size:11px;color:var(--setup-band-soft);font-weight:400}
.setup-person.ghost b{background:none;border:1px dashed var(--setup-band-line)}.setup-person.ghost>span{color:var(--setup-band-soft)}
.setup-cell{position:relative}
.setup-shift{position:absolute;inset:8px 6px;border-radius:6px;background:rgba(250,249,245,.06);border:1px solid var(--setup-band-line);font-size:10px;font-weight:600;color:var(--setup-coral);display:grid;place-items:center;text-align:center;line-height:1.2}
.setup-shift.is-next{font-size:16px;font-weight:400;border:1px dashed var(--setup-coral);background:rgba(224,138,107,.10)}
.setup-roles{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.setup-roles span{font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--setup-band-line);color:var(--setup-band-ink)}
.setup-roles span.ghost{border-style:dashed;color:var(--setup-band-soft)}
.setup-preview-foot{margin:auto 0 0;padding-top:22px;font-size:12px;color:var(--setup-band-soft);border-top:0}
.new-role-field[hidden]{display:none}
.setup-preview{container-type:inline-size}
@container (max-width:470px){.setup-day{font-size:10px!important;letter-spacing:0!important;padding:9px 0!important}.setup-week>span{padding:6px}.setup-person b{display:none}}
.setup-next{margin:28px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.setup-next li{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);position:relative}
.setup-next strong{color:var(--ink);font-weight:600}
@media(max-width:1280px){.setup-flow{grid-template-columns:minmax(220px,260px) minmax(0,1fr)}.setup-preview{grid-column:1/-1;min-height:0}}
@media(max-width:800px){.setup-flow{grid-template-columns:1fr;gap:16px}.setup-rail ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.setup-rail ol::before,.setup-rail>.fine,.setup-step small{display:none}.setup-step{flex-direction:column;gap:6px;padding:8px 4px;min-height:0;text-align:center}.setup-step strong{font-size:12px}.setup-stage{min-height:0;padding:22px 20px}.setup-records ul{grid-template-columns:1fr}.setup-stage-nav{flex-wrap:wrap}.setup-preview{padding:18px}.setup-week{grid-template-columns:minmax(92px,1.4fr) repeat(7,minmax(0,1fr))}.setup-week>span{padding:5px;min-height:44px}.setup-person b{display:none}}
