:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg: #fff7f2;
  --surface: #fffdf9;
  --surface-subtle: #faf7f1;
  --surface-raised: #ffffff;
  --header: #2c1634;
  --header-text: #ffffff;
  --header-muted: #cbd5e1;
  --text: #2d1934;
  --muted: #6f606f;
  --muted-strong: #5d4b60;
  --border: #e7dcd9;
  --border-soft: #f1e8e4;
  --primary: #c94426;
  --primary-strong: #9b2e1b;
  --primary-soft: #fff0e9;
  --primary-border: #f0b6a5;
  --covered: #15803d;
  --covered-bg: #dcfce7;
  --covered-border: #86efac;
  --partial: #b45309;
  --partial-bg: #fef3c7;
  --partial-border: #fcd34d;
  --uncovered: #b91c1c;
  --uncovered-bg: #fee2e2;
  --uncovered-border: #fca5a5;
  --assignment: #4f46e5;
  --assignment-bg: #eef2ff;
  --assignment-border: #a5b4fc;
  --lead: #9a3412;
  --lead-bg: #ffedd5;
  --lead-border: #fb923c;
  --event: #7e22ce;
  --event-bg: rgba(192, 132, 252, .22);
  --event-border: #c084fc;
  --availability-green: #16a34a;
  --availability-green-hover: #22c55e;
  --availability-red: #dc2626;
  --availability-red-hover: #ef4444;
  --availability-hour-line: #172033;
  --sheet-header: #f5f7f8;
  --sheet-header-border: #d7dce1;
  --sheet-grid: #d9dde3;
  --sheet-row-header: #f7f8fa;
  --sheet-selection: #2d7ff9;
  --sheet-hover: #f2f7ff;
  --shadow: 0 1px 2px rgba(15, 23, 42, .05);
  --dialog-shadow: 0 20px 60px rgba(15, 23, 42, .25);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #160e19;
  --surface: #211624;
  --surface-subtle: #2b1b2e;
  --surface-raised: #342038;
  --header: #100a12;
  --header-text: #f7faf8;
  --header-muted: #a8bab4;
  --text: #f5edf5;
  --muted: #c1afbe;
  --muted-strong: #ddcedb;
  --border: #503650;
  --border-soft: #3b293e;
  --primary: #ff7955;
  --primary-strong: #ffa186;
  --primary-soft: #482334;
  --primary-border: #7b3d49;
  --covered: #86efac;
  --covered-bg: #123524;
  --covered-border: #166534;
  --partial: #fcd34d;
  --partial-bg: #422f12;
  --partial-border: #92400e;
  --uncovered: #fca5a5;
  --uncovered-bg: #451a1a;
  --uncovered-border: #991b1b;
  --assignment: #c4b5fd;
  --assignment-bg: #29244d;
  --assignment-border: #6366f1;
  --lead: #fdba74;
  --lead-bg: #431f12;
  --lead-border: #ea580c;
  --event: #e9d5ff;
  --event-bg: rgba(126, 34, 206, .32);
  --event-border: #a855f7;
  --availability-green: #16a34a;
  --availability-green-hover: #22c55e;
  --availability-red: #dc2626;
  --availability-red-hover: #ef4444;
  --availability-hour-line: #f8fafc;
  --sheet-header: #20252b;
  --sheet-header-border: #3a414a;
  --sheet-grid: #353c45;
  --sheet-row-header: #1b2026;
  --sheet-selection: #4387f8;
  --sheet-hover: #182842;
  --shadow: 0 1px 2px rgba(0, 0, 0, .3);
  --dialog-shadow: 0 20px 60px rgba(0, 0, 0, .55);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--text); background: var(--bg); font-size: 14px; line-height: 1.45; transition: color .2s, background-color .2s; }
header { background: var(--header); color: var(--header-text); padding: 16px max(24px,calc((100vw - 1452px) / 2)); display: flex; justify-content: space-between; align-items: center; gap: 20px; }
header h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
header p { margin: 2px 0 0; color: var(--header-muted); font-size: 13px; }
button { min-height: 36px; border: 1px solid var(--border); background: var(--surface-raised); color: var(--text); border-radius: 6px; padding: 8px 12px; cursor: pointer; font: inherit; font-weight: 650; }
button:hover { filter: brightness(.97); }
:root[data-theme="dark"] button:hover { filter: brightness(1.12); }
button:disabled { cursor: not-allowed; filter: none; opacity: .5; }
button.primary { background: var(--primary); border-color: var(--primary); color: white; }
button.danger { color: var(--uncovered); background: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 200; padding: 10px 14px; border-radius: 8px; color: #fff; background: var(--primary-strong); font-weight: 750; text-decoration: none; transform: translateY(-180%); transition: transform .16s ease; }
.skip-link:focus { transform: translateY(0); }
.app-loading { position: fixed; inset: 0; z-index: 150; display: grid; padding: 28px; place-content: center; justify-items: center; gap: 9px; color: var(--text); background: color-mix(in srgb,var(--bg) 94%,transparent); backdrop-filter: blur(8px); text-align: center; }
.app-loading[hidden] { display: none; }
.app-loading strong { font-size: 20px; }
.app-loading small { max-width: 420px; color: var(--muted); font-size: 13px; }
.app-loading button { margin-top: 8px; }
.loading-mark { width: 46px; height: 50px; margin-bottom: 7px; background: url('/assets/impact-mark.svg?v=20260829-faithful-flame') center/contain no-repeat; animation: loading-flame 1.05s ease-in-out infinite; }
.app-loading.error .loading-mark { display: none; }
.mobile-account-actions { display: none; align-items: center; gap: 6px; }
.mobile-account-actions button { min-height: 36px; padding: 7px 9px; border-color: var(--border); background: var(--surface); font-size: 11px; }
@keyframes loading-flame { 0%,100% { transform: translateY(0) scale(.96); opacity: .82; } 50% { transform: translateY(-3px) scale(1.03); opacity: 1; } }
.theme-toggle { background: transparent; color: var(--header-text); border-color: #475569; }
nav { position: sticky; top: 0; z-index: 30; background: var(--surface); border-bottom: 1px solid var(--border); padding: 0 max(24px,calc((100vw - 1452px) / 2)); display: flex; gap: 4px; overflow-x: auto; }
nav button { min-height: 44px; border: 0; border-radius: 0; padding: 11px 12px 9px; color: var(--muted); border-bottom: 2px solid transparent; background: transparent; }
nav button.active { color: var(--primary-strong); border-bottom-color: var(--primary); }
.mobile-nav-control { display: none; }
main { padding: 24px; max-width: 1500px; margin: auto; }
.tab { display: none; }
.tab.active { display: block; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 2px 0 18px; }
.page-heading h2 { margin: 0; font-size: 24px; letter-spacing: -.02em; }
.page-heading p { margin: 3px 0 0; color: var(--muted); }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 18px; margin-bottom: 16px; box-shadow: var(--shadow); }
.panel h2 { margin: 0 0 14px; font-size: 18px; }
.panel-title, .controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.panel-title { margin-bottom: 16px; }
.panel-title h2 { margin-bottom: 2px; }
.panel-subtitle { margin: 0; color: var(--muted); font-size: 13px; }
.panel-actions { display: flex; align-items: center; gap: 10px; }
.controls { justify-content: flex-start; }
.metrics-controls span { color: var(--muted); font-size: 12px; }
.schedule-controls { justify-content: space-between; }
#generationSettingsBtn { display:grid; place-items:center; min-width:40px; padding:9px; }
.generation-quick-settings { display:grid; gap:18px; padding:clamp(16px,4vw,24px); width:100%; box-sizing:border-box; }
.generation-quick-settings h2 { margin:0 0 8px; font-size:20px; }
.generation-quick-settings p,.generation-quick-settings small { color:var(--muted); font-size:13px; line-height:1.6; }
.generation-quick-settings small { display:block; margin-top:6px; }
.generation-quick-settings .dialog-actions { display:flex; justify-content:flex-end; gap:10px; }
.schedule-actions { display: flex; align-items: center; gap: 16px; }
.schedule-readiness { display: flex; min-height: 54px; margin: -8px 0 16px; padding: 10px 13px; align-items: center; gap: 10px; border: 1px solid var(--border); border-radius: 10px; color: var(--muted-strong); background: var(--surface-subtle); }
.schedule-readiness > span { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 50%; font-size: 12px; font-weight: 900; }
.schedule-readiness > div { display: grid; gap: 2px; min-width: 0; }
.schedule-readiness strong { color: var(--text); font-size: 12px; }
.schedule-readiness small { color: var(--muted); font-size: 11px; line-height: 1.4; }
.schedule-readiness button { min-height: 32px; margin-left: auto; padding: 6px 10px; white-space: nowrap; }
.schedule-readiness.ready { border-color: var(--covered-border); background: var(--covered-bg); }
.schedule-readiness.ready > span { color: #fff; background: var(--covered); }
.schedule-readiness.needs-setup { border-color: var(--partial-border); background: var(--partial-bg); }
.schedule-readiness.needs-setup > span { color: #fff; background: var(--partial); }
.fellow-focus-control { min-width: 190px; }
.fellow-focus-control select { min-width: 190px; }
.fellow-focus-control.active select { border-color: var(--primary); background: var(--primary-soft); color: var(--primary-strong); font-weight: 750; }
.fellow-focus-notice { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: -4px 0 16px; padding: 10px 12px; border: 1px solid var(--primary-border); border-radius: 8px; color: var(--primary-strong); background: var(--primary-soft); font-size: 12px; }
.fellow-focus-notice[hidden] { display: none; }
.fellow-focus-notice button { flex: 0 0 auto; border-color: var(--primary-border); color: var(--primary-strong); background: var(--surface); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.week-navigation { display: flex; align-items: end; gap: 7px; }
.week-navigation > button { min-height: 38px; }
.week-navigation > button:first-child, .week-navigation > button:nth-child(3) { min-width: 40px; padding-inline: 10px; font-size: 18px; }
.week-publish-controls { display: flex; align-items: center; align-self: end; gap: 8px; margin-left: 8px; padding-left: 15px; border-left: 1px solid var(--border); }
.week-publish-controls > span:first-child { color: var(--muted); font-size: 11px; font-weight: 700; }
.schedule-metrics { margin-top: 24px; }
.schedule-metrics > .metrics-content { padding: 18px; }
.schedule-metrics .metrics-controls { margin-bottom: 18px; }
.metrics-controls > div:first-child { margin-right: auto; }
.metrics-controls h2 { margin: 0 0 2px; font-size: 20px; }
.disclosure-panel { padding: 0; overflow: hidden; }
.disclosure-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; cursor: pointer; list-style: none; }
.disclosure-panel > summary::-webkit-details-marker { display: none; }
.disclosure-panel > summary span strong, .disclosure-panel > summary span small { display: block; }
.disclosure-panel > summary span strong { font-size: 17px; }
.disclosure-panel > summary span small { margin-top: 2px; color: var(--muted); font-weight: 400; }
.disclosure-panel > summary i { color: var(--muted); font-size: 11px; font-style: normal; }
.disclosure-panel[open] > summary { border-bottom: 1px solid var(--border); }
.disclosure-panel > div { padding: 14px 18px 18px; }
label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; color: var(--muted-strong); }
label.inline { flex-direction: row; align-items: center; }
input, select, textarea { border: 1px solid var(--border); border-radius: 6px; padding: 8px 10px; color: var(--text); background: var(--surface-raised); min-height: 36px; font: inherit; }
input:hover, select:hover, textarea:hover { border-color: var(--muted); }
textarea { resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px 8px; border-bottom: 1px solid var(--border-soft); text-align: left; font-size: 13px; white-space: nowrap; }
th { color: var(--muted-strong); background: var(--surface-subtle); position: sticky; top: 0; }
tbody tr:hover td { background: color-mix(in srgb,var(--primary-soft) 45%,transparent); }
.badge { display: inline-block; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 700; background: var(--partial-bg); color: var(--partial); }
.badge.published { background: var(--covered-bg); color: var(--covered); }
.shift-acknowledgement{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 8px;background:var(--partial-bg);color:var(--partial);font-size:10px;font-weight:750;line-height:1.2;white-space:nowrap}
.shift-acknowledgement.confirmed{background:var(--covered-bg);color:var(--covered)}
.shift-acknowledgement.declined{background:var(--uncovered-bg);color:var(--uncovered)}
.shift-acknowledgement-control{display:grid;gap:6px;min-width:180px}
.shift-acknowledgement-control>div{display:flex;gap:6px;flex-wrap:wrap}
.shift-acknowledgement-control button{min-height:32px;padding:6px 9px;font-size:10px}
.shift-acknowledgement-control small{max-width:240px;color:var(--muted);overflow-wrap:anywhere}
.status-wrap { display: flex; gap: 10px; align-items: center; }
.organization-admin-controls { display: flex; align-items: center; gap: 10px; }
.organization-admin-controls[hidden] { display: none; }
.organization-admin-controls label { color: var(--header-muted); font-size: 11px; }
.organization-admin-controls select { min-width: 190px; color: var(--text); background: var(--surface-raised); }
.admin-badge { color: #dbeafe; background: rgba(37,99,235,.32); }
.notice { padding: 12px 14px; margin-bottom: 14px; border-radius: 9px; background: var(--primary-soft); color: var(--primary-strong); border: 1px solid var(--primary-border); }
.notice.warning { background: var(--partial-bg); color: var(--partial); border-color: var(--partial-border); }
.generation-result-actions { display: inline-flex; flex-wrap: wrap; gap: 8px; margin-left: 10px; vertical-align: middle; }
.generation-result-actions button { min-height: 32px; padding: 6px 10px; }
.generation-undo-unavailable { font-size: 12px; font-weight: 700; }
.schedule-grid { display: grid; grid-template-columns: repeat(7, minmax(190px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 8px; }
.day-column { min-width: 190px; background: var(--surface-subtle); border: 1px solid var(--border); border-radius: 10px; padding: 10px; }
.day-column h3 { margin: 0 0 8px; font-size: 14px; }
.day-column h3 span { color: var(--muted); font-weight: 500; }
.shift-card { display: block; width: 100%; min-height: 0; background: var(--surface-raised); border: 1px solid var(--border); border-left: 4px solid var(--muted); padding: 9px; border-radius: 6px; margin-bottom: 7px; color: var(--text); text-align: left; cursor: pointer; }
.shift-card:hover { border-color: var(--primary-border); }
.shift-card.locked { border-left-color: var(--primary); }
.shift-card.team-lead { border-color: var(--lead-border); border-left: 4px solid var(--lead-border); background: var(--lead-bg); }
.shift-card strong { display: block; font-size: 13px; }
.shift-card span { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.empty-day { color: var(--muted); font-size: 12px; }
.shortage { color: var(--uncovered); font-weight: 700; }
.ok { color: var(--covered); font-weight: 700; }
.view-toggle { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; padding: 3px; background: var(--surface-subtle); }
.view-toggle button { border: 0; padding: 6px 10px; background: transparent; color: var(--muted); }
.view-toggle button.active { background: var(--surface-raised); color: var(--primary-strong); box-shadow: var(--shadow); }
.schedule-view-select { display: none; }
.view-panel[hidden], [hidden] { display: none !important; }

.schedule-list { display: grid; gap: 14px; }
.schedule-list-day { overflow: hidden; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.schedule-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--border); background: var(--surface-subtle); }
.schedule-list-heading div { display: flex; align-items: baseline; gap: 7px; }
.schedule-list-heading span, .schedule-list-heading small { color: var(--muted); }
.schedule-list-shifts { display: grid; }
.schedule-list-shift { display: grid; grid-template-columns: minmax(150px,.75fr) minmax(200px,1.5fr) auto; align-items: center; gap: 14px; width: 100%; min-height: 54px; padding: 9px 12px; border: 0; border-bottom: 1px solid var(--border-soft); border-left: 4px solid var(--assignment-border); border-radius: 0; background: var(--surface); text-align: left; }
.schedule-list-shift:last-child { border-bottom: 0; }
.schedule-list-shift.team-lead { border-left-color: var(--lead-border); background: color-mix(in srgb,var(--lead-bg) 36%,var(--surface)); }
.schedule-list-person, .schedule-list-hours { display: flex; flex-direction: column; }
.schedule-list-person small, .schedule-list-hours small { color: var(--muted); font-size: 10px; }
.schedule-list-person small{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.schedule-list-hours { align-items: flex-end; }
.schedule-list-time { font-weight: 700; }

.spreadsheet-summary { display: grid; grid-template-columns: repeat(5,minmax(150px,1fr)); gap: 10px; margin-bottom: 16px; }
.spreadsheet-summary > div { padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-subtle); }
.spreadsheet-summary > div:first-child { border-left: 3px solid var(--primary); }
.spreadsheet-summary span, .spreadsheet-summary strong { display: block; }
.spreadsheet-summary span { color: var(--muted); font-size: 11px; font-weight: 650; }
.spreadsheet-summary strong { margin-top: 3px; font-size: 20px; }
.spreadsheet-wrap { max-height: 720px; padding: 0 10px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-subtle); }
.schedule-spreadsheet { min-width: 1500px; border-collapse: separate; border-spacing: 0 8px; font-variant-numeric: tabular-nums; }
.schedule-spreadsheet th, .schedule-spreadsheet td { height: 48px; padding: 7px 9px; border: 0; font-size: 12px; }
.schedule-spreadsheet th { z-index: 3; height: 42px; color: var(--muted); background: var(--surface-subtle); border-bottom: 1px solid var(--border); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .035em; }
.schedule-spreadsheet th:nth-child(n+6), .schedule-spreadsheet td:nth-child(n+6) { text-align: right; }
.schedule-spreadsheet th:last-child, .schedule-spreadsheet td:last-child { text-align: center; }
.schedule-spreadsheet th:first-child, .schedule-spreadsheet td:first-child { position: sticky; left: 0; width: 150px; min-width: 150px; z-index: 2; background: var(--surface); }
.schedule-spreadsheet th:nth-child(2), .schedule-spreadsheet td:nth-child(2) { position: sticky; left: 150px; width: 180px; min-width: 180px; z-index: 2; background: var(--surface); box-shadow: 3px 0 5px -4px color-mix(in srgb,var(--text) 30%,transparent); }
.schedule-spreadsheet thead th:first-child, .schedule-spreadsheet thead th:nth-child(2) { z-index: 6; background: var(--surface-subtle); }
.schedule-spreadsheet thead th:last-child { position: sticky; right: 0; z-index: 6; background: var(--surface-subtle); box-shadow: -3px 0 5px -4px color-mix(in srgb,var(--text) 30%,transparent); }
.schedule-spreadsheet .spreadsheet-shift-row td { background: var(--surface); border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); }
.schedule-spreadsheet .spreadsheet-shift-row td:first-child { border-left: 1px solid var(--border-soft); border-radius: 9px 0 0 9px; }
.schedule-spreadsheet .spreadsheet-shift-row td:last-child { position: sticky; right: 0; z-index: 2; border-right: 1px solid var(--border-soft); border-radius: 0 9px 9px 0; background: var(--surface); box-shadow: -3px 0 5px -4px color-mix(in srgb,var(--text) 30%,transparent); }
.spreadsheet-shift-row:hover td, .spreadsheet-shift-row:focus td { background: color-mix(in srgb,var(--primary-soft) 55%,var(--surface)); border-color: var(--primary-border); }
.spreadsheet-shift-row:focus { outline: none; }
.schedule-spreadsheet .spreadsheet-input-cell { padding: 5px 7px; }
.spreadsheet-input-cell input:not([type="checkbox"]), .spreadsheet-input-cell select { width: 100%; min-width: 0; min-height: 36px; padding: 7px 8px; border: 1px solid var(--border); border-radius: 6px; color: var(--text); background: var(--surface-raised); font: inherit; font-size: 12px; outline: 0; }
.spreadsheet-input-cell input:not([type="checkbox"]):hover, .spreadsheet-input-cell select:hover { border-color: var(--muted); }
.spreadsheet-input-cell input:not([type="checkbox"]):focus, .spreadsheet-input-cell select:focus { position: relative; z-index: 6; border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent); }
.spreadsheet-input-cell input.dirty, .spreadsheet-input-cell select.dirty { background: color-mix(in srgb,var(--partial-bg) 40%,var(--surface)); }
.schedule-spreadsheet td:nth-child(2) select { font-weight: 700; }
.schedule-spreadsheet td:nth-child(7) input, .schedule-spreadsheet td:nth-child(8) input { text-align: right; }
.spreadsheet-input-cell input[type="checkbox"] { width: 16px; height: 16px; min-height: 16px; margin: 0; padding: 0; accent-color: var(--sheet-selection); cursor: pointer; }
.spreadsheet-input-cell:has(input[type="checkbox"]) { text-align: center; }
.spreadsheet-input-cell.saving-cell { opacity: .62; }
.spreadsheet-action-cell { width: 82px; min-width: 82px; padding: 6px !important; }
.spreadsheet-delete-shift { min-height: 32px; padding: 5px 9px; font-size: 11px; }
.spreadsheet-formula-cell { user-select: text; }
#spreadsheetSaveStatus { padding: 5px 9px; border-radius: 999px; color: var(--muted); background: var(--surface-subtle); font-weight: 750; }
#spreadsheetSaveStatus[data-state="saving"] { color: var(--partial); }
#spreadsheetSaveStatus[data-state="saved"] { color: var(--covered); background: var(--covered-bg); }
#spreadsheetSaveStatus[data-state="error"] { color: var(--uncovered); }
.spreadsheet-cell { position: relative; cursor: cell; }
.spreadsheet-cell.selected-cell { z-index: 5; background: color-mix(in srgb,var(--sheet-selection) 7%,var(--surface)) !important; box-shadow: inset 0 0 0 2px var(--sheet-selection) !important; }
.spreadsheet-cell.editing-cell { z-index: 7; padding: 0; background: var(--surface) !important; box-shadow: inset 0 0 0 2px var(--sheet-selection) !important; }
.spreadsheet-cell.editing-cell input, .spreadsheet-cell.editing-cell select { width: 100%; min-width: 95px; min-height: 33px; margin: 0; padding: 4px 7px; border: 2px solid var(--sheet-selection); border-radius: 1px; background: var(--surface-raised); font-size: 12px; outline: 0; }
.spreadsheet-cell.saving-cell { opacity: .72; }
.schedule-spreadsheet .spreadsheet-formula-cell { color: var(--muted-strong); cursor: default; font-weight: 650; }
.spreadsheet-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin-bottom: 8px; padding: 4px 2px 10px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.spreadsheet-toolbar > div { display: flex; align-items: center; gap: 9px; }
.schedule-editor-title strong { font-size: 15px; }
.schedule-editor-title span { padding-left: 9px; border-left: 1px solid var(--border); color: var(--muted); font-size: 11px; }
.spreadsheet-help { display: flex; align-items: center; gap: 16px; color: var(--muted); font-size: 10px; }
.spreadsheet-help strong { color: var(--muted-strong); }
.field-type { display: inline-block; min-width: 18px; margin-right: 4px; color: var(--muted); font-size: 10px; font-weight: 600; }
.airtable-pill { display: inline-block; padding: 2px 7px; border-radius: 999px; color: #514b83; background: #dedaf3; font-size: 11px; line-height: 18px; }
:root[data-theme="dark"] .airtable-pill { color: #dedaf3; background: #494469; }
.airtable-checkbox { display: inline-grid; width: 15px; height: 15px; min-height: 15px; padding: 0; place-items: center; border: 1px solid var(--sheet-grid); border-radius: 3px; color: #fff; background: var(--surface); font-size: 11px; font-weight: 800; }
.airtable-checkbox.checked { border-color: #2d7ff9; background: #2d7ff9; }
.spreadsheet-subtotal td { height: 36px; background: color-mix(in srgb,var(--primary-soft) 65%,var(--surface)); color: var(--muted-strong); font-weight: 700; }
.spreadsheet-subtotal td { position: static !important; min-width: 0 !important; box-shadow: none !important; }
.spreadsheet-subtotal td:first-child { border-radius: 8px 0 0 8px; text-align: left; }
.spreadsheet-subtotal td:last-child { border-radius: 0 8px 8px 0; }
.spreadsheet-subtotal td:first-child strong, .spreadsheet-subtotal td:first-child span { display: inline-block; }
.spreadsheet-subtotal td:first-child span { margin-left: 7px; color: var(--muted); font-size: 10px; font-weight: 600; }
.spreadsheet-subtotal [data-total], .schedule-spreadsheet tfoot [data-total] { text-align: right; }
.spreadsheet-add-row td { position: static !important; height: 48px; padding: 5px 0; background: transparent !important; box-shadow: none !important; }
.spreadsheet-add-row button { width: 100%; min-height: 38px; border: 1px dashed var(--primary-border); color: var(--primary-strong); background: color-mix(in srgb,var(--primary-soft) 55%,transparent); font-size: 12px; }
.schedule-spreadsheet tfoot td { position: static; height: 42px; border-top: 1px solid var(--border); background: var(--surface-subtle); font-weight: 750; }
.schedule-spreadsheet tfoot td:first-child { position: static; text-align: left; }
.schedule-spreadsheet tfoot td:nth-child(2) { min-width: 0; box-shadow: none; }

.schedule-editor-days { display: grid; gap: 16px; }
.schedule-editor-day { overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-subtle); }
.schedule-editor-day-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 14px; color: var(--text); background: var(--surface-subtle); border-bottom: 1px solid var(--border); }
.schedule-editor-day-heading > div:first-child { display: flex; align-items: baseline; gap: 8px; min-width: max-content; }
.schedule-editor-day-heading > div:first-child strong { font-size: 16px; }
.schedule-editor-day-heading > div:first-child span { color: var(--muted); font-size: 11px; }
.schedule-editor-day-totals { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.schedule-editor-day-totals > span { display: flex; align-items: baseline; gap: 5px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.schedule-editor-day-totals strong { color: var(--muted-strong); font-size: 12px; }
.schedule-editor-shifts { display: grid; gap: 10px; padding: 12px; }
.schedule-editor-shift { padding: 12px; border: 1px solid var(--border-soft); border-left: 4px solid var(--assignment-border); border-radius: 10px; background: var(--surface); box-shadow: var(--shadow); transition: border-color .15s, box-shadow .15s; }
.schedule-editor-shift.team-lead { border-left-color: var(--lead-border); }
.schedule-editor-shift:hover { border-color: var(--primary-border); box-shadow: 0 2px 8px color-mix(in srgb,var(--text) 8%,transparent); }
.schedule-editor-shift-fields { display: grid; grid-template-columns: minmax(145px,1fr) minmax(170px,1.25fr) minmax(120px,.85fr) repeat(2,minmax(120px,.8fr)) minmax(125px,.8fr) minmax(110px,.7fr); gap: 10px; }
.schedule-editor-field { min-width: 0; }
.schedule-editor-field > span, .spreadsheet-formula-cell > span { color: var(--muted); font-size: 10px; font-weight: 750; }
.schedule-editor-field input:not([type="checkbox"]), .schedule-editor-field select { width: 100%; min-width: 0; }
.schedule-editor-shift-footer { display: flex; align-items: center; gap: 16px; margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--border-soft); }
.schedule-editor-calculations { display: flex; align-items: center; gap: 22px; margin-right: auto; }
.schedule-editor-calculations .spreadsheet-formula-cell { display: grid; gap: 1px; min-width: 78px; }
.schedule-editor-calculations .spreadsheet-formula-cell strong { color: var(--text); font-size: 14px; }
.schedule-editor-field.field-locked { flex: 0 0 auto; align-items: center; flex-direction: row; gap: 7px; }
.schedule-editor-field.field-locked > span { order: 2; color: var(--muted-strong); font-size: 11px; }
.schedule-editor-field.field-locked input { order: 1; }
.schedule-editor-shift .spreadsheet-action-cell { width: auto; min-width: 0; padding: 0 !important; }
.schedule-editor-add { width: 100%; margin-top: 12px; border: 1px dashed var(--primary-border); color: var(--primary-strong); background: color-mix(in srgb,var(--primary-soft) 55%,transparent); }

.schedule-density-control { display: grid; gap: 3px; color: var(--muted); font-size: 10px; font-weight: 750; }
.schedule-density-control select { min-width: 130px; min-height: 34px; padding: 6px 9px; font-size: 11px; }
.schedule-canvas-help { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; margin: 0 0 11px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.schedule-canvas-help strong { color: var(--muted-strong); }
.schedule-canvas-scroll { max-height: 680px; overflow: auto; border: 1px solid var(--border); border-radius: 11px; background: var(--surface); }
.schedule-canvas-table { width: 100%; min-width: 1040px; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.schedule-canvas-table th,.schedule-canvas-table td { vertical-align: top; }
.schedule-canvas-corner,.schedule-canvas-day { position: sticky; top: 0; z-index: 5; min-height: 58px; padding: 10px 12px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface-subtle); }
.schedule-canvas-corner { left: 0; z-index: 7; width: 148px; text-align: left; }
.schedule-canvas-corner > * { display: block; }
.schedule-canvas-corner span { color: var(--muted); font-size: 9px; }
.schedule-canvas-day { text-align: left; }
.schedule-canvas-day > * { display: block; }
.schedule-canvas-day strong { font-size: 12px; text-transform: uppercase; letter-spacing: .035em; }
.schedule-canvas-day span { color: var(--muted-strong); font-size: 10px; }
.schedule-canvas-day.today { color: var(--primary-strong); background: color-mix(in srgb,var(--primary-soft) 62%,var(--surface)); }
.schedule-canvas-person { position: sticky; left: 0; z-index: 4; width: 148px; height: 92px; padding: 11px 12px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface); text-align: left; }
.schedule-canvas-person > * { display: block; }
.schedule-canvas-person strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-canvas-person span,.schedule-canvas-person small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-canvas-person small { margin-top: 4px; color: var(--primary-strong); font-weight: 750; }
.schedule-canvas-cell { position: relative; height: 92px; padding: 0; overflow: hidden; border-right: 1px solid var(--border-soft); border-bottom: 1px solid var(--border); background-color: var(--surface); background-image: repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--border-soft) 25%); cursor: crosshair; touch-action: pan-x pan-y; transition: background-color .15s; }
.schedule-canvas-cell-content { position: relative; min-height: max(78px,calc(30px + var(--shift-lanes) * 34px)); }
.schedule-canvas-cell:hover { background-color: color-mix(in srgb,var(--primary-soft) 24%,var(--surface)); }
.schedule-canvas-cell:focus-visible { z-index: 3; outline: 3px solid var(--primary); outline-offset: -3px; }
.schedule-canvas-cell.on-leave { background: color-mix(in srgb,var(--partial-bg) 45%,var(--surface)); }
.schedule-canvas-availability { position: absolute; z-index: 1; inset-block: 5px; left: var(--shift-start); width: var(--shift-width); min-width: 2px; border: 0; border-bottom: 3px solid var(--covered); border-radius: 4px; background: color-mix(in srgb,var(--covered-bg) 55%,transparent); pointer-events: none; }
.schedule-canvas-availability.preferred { border-color: var(--partial); background: color-mix(in srgb,var(--partial-bg) 70%,transparent); }
.schedule-canvas-block { position: absolute; z-index: 3; top: calc(18px + var(--shift-lane) * 34px); left: var(--shift-start); width: max(var(--shift-width),34px); min-width: 34px; height: 30px; touch-action: pan-x pan-y; }
.schedule-canvas-shift { position: absolute; inset: 0; width: 100%; min-height: 30px; padding: 5px 13px; overflow: hidden; border: 1px solid var(--assignment-border); border-left: 4px solid var(--primary); border-radius: 6px; color: var(--assignment); background: var(--assignment-bg); box-shadow: 0 1px 3px color-mix(in srgb,var(--text) 9%,transparent); text-align: left; cursor: grab; }
.schedule-canvas-shift:hover { box-shadow: 0 3px 7px color-mix(in srgb,var(--text) 13%,transparent); }
.schedule-canvas-shift:active { cursor: grabbing; }
.schedule-canvas-shift:focus-visible { z-index: 2; outline: 3px solid var(--primary); outline-offset: 1px; }
.schedule-canvas-shift.generated { border-style: dashed; }
.schedule-canvas-shift.locked { box-shadow: inset 2px 0 0 var(--primary),0 1px 3px color-mix(in srgb,var(--text) 9%,transparent); }
.schedule-canvas-shift.conflict { border-color: var(--uncovered); background: var(--uncovered-bg); color: var(--uncovered); }
.schedule-canvas-shift strong,.schedule-canvas-shift span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-canvas-shift strong { font-size: 10px; }
.schedule-canvas-shift span { margin-top: 1px; font-size: 9px; opacity: .82; }
.schedule-canvas-shift b { position: absolute; top: 7px; right: 7px; font-size: 9px; }
.schedule-canvas-resize-handle { position: absolute; z-index: 4; inset-block: 0; width: 13px; min-width: 0; padding: 0; border: 0; border-radius: 5px; background: transparent; cursor: ew-resize; touch-action: pan-x pan-y; }
.schedule-canvas-resize-handle.start { left: 0; }
.schedule-canvas-resize-handle.end { right: 0; }
.schedule-canvas-block:hover .schedule-canvas-resize-handle:not(:disabled),.schedule-canvas-resize-handle:focus-visible { background: color-mix(in srgb,var(--primary) 25%,transparent); }
.schedule-canvas-resize-handle:disabled { cursor: not-allowed; }
.schedule-canvas-add { position: absolute; z-index: 5; top: 2px; right: 2px; display: grid; width: 24px; min-width: 24px; min-height: 24px; place-items: center; padding: 0; border: 1px dashed transparent; color: var(--muted); background: color-mix(in srgb,var(--surface) 88%,transparent); font-size: 15px; opacity: 0; }
.schedule-canvas-cell.empty .schedule-canvas-add { opacity: .55; }
.schedule-canvas-cell:hover .schedule-canvas-add,.schedule-canvas-cell:focus-within .schedule-canvas-add { border-color: var(--primary-border); color: var(--primary-strong); opacity: 1; }
.schedule-canvas-shift.keyboard-selected { outline: 3px solid var(--primary); outline-offset: 2px; }
.schedule-canvas-leave { position: absolute; z-index: 2; inset: 4px; display: grid; place-items: center; border: 1px solid var(--partial-border); border-radius: 6px; color: var(--partial); background: repeating-linear-gradient(-45deg,var(--partial-bg) 0 5px,color-mix(in srgb,var(--partial-bg) 55%,var(--surface)) 5px 10px); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; pointer-events: none; }
.schedule-canvas-preview,.schedule-canvas-direct-preview { position: absolute; z-index: 8; top: 18px; left: var(--shift-start); width: max(var(--shift-width),18px); min-height: 30px; border: 2px solid var(--primary); border-radius: 6px; background: color-mix(in srgb,var(--primary-soft) 82%,transparent); box-shadow: 0 2px 8px color-mix(in srgb,var(--primary) 25%,transparent); pointer-events: none; }
.schedule-canvas-direct-preview { border-style: dashed; }
.schedule-canvas-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; margin-bottom:7px; }
#scheduleCanvasHint { margin:0; color:var(--muted-strong); font-size:12px; min-height:20px; }
.schedule-canvas-legend { display:flex; flex-wrap:wrap; gap:12px; font-size:11px; color:var(--muted-strong); }
.schedule-canvas-legend span { display:inline-flex; align-items:center; gap:5px; }
.schedule-canvas-legend span::before { content:''; width:9px; height:9px; border-radius:3px; background:var(--covered); }
.schedule-canvas-legend .preferred::before { background:var(--partial); }
.schedule-canvas-legend .assigned::before { background:var(--primary); }
.schedule-keyboard-help { margin:0 0 12px; color:var(--muted); font-size:11px; }
.schedule-keyboard-help summary { cursor:pointer; width:fit-content; }
.schedule-keyboard-help p { max-width:900px; font-size:12px; line-height:1.6; }
.schedule-canvas-day { padding:0; }
.schedule-canvas-day > button { display:flex; width:100%; min-height:46px; padding:8px 10px; align-items:center; justify-content:space-between; gap:4px; border:0; border-radius:0; color:inherit; background:transparent; text-align:left; }
.schedule-canvas-day > button:hover { background:var(--primary-soft); }
.schedule-canvas-day > button span { color:var(--muted); font-size:10px; }
.schedule-time-ruler { display:flex; justify-content:space-between; padding:4px 5px; border-top:1px solid var(--border-soft); color:var(--muted); font-size:9px; font-weight:500; font-variant-numeric:tabular-nums; }
#scheduleCanvas[data-view="day"] .schedule-canvas-table { min-width:600px; }
#scheduleCanvas[data-view="day"] .schedule-time-ruler { font-size:11px; }
#scheduleCanvas[data-view="day"] .schedule-canvas-shift strong { font-size:12px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-shift { padding-inline:5px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-shift span { display:none; }
#scheduleCanvas[data-view="week"] .schedule-canvas-shift strong { font-size:11px; line-height:18px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-cell { height:auto; cursor:default; background-image:none; }
#scheduleCanvas[data-view="week"] .schedule-canvas-cell-content { display:flex; flex-direction:column; gap:6px; min-height:112px; padding:8px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-block { position:relative; top:auto; left:auto; width:100%; min-width:0; height:62px; flex:none; }
#scheduleCanvas[data-view="week"] .schedule-canvas-shift { padding:9px 8px; min-height:62px; border-style:solid; border-left-width:3px; border-radius:8px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-shift strong { font-size:13px; line-height:20px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-shift span { display:block; font-size:10px; line-height:16px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-resize-handle,#scheduleCanvas[data-view="week"] .schedule-canvas-availability,#scheduleCanvas[data-view="week"] .schedule-time-ruler,#scheduleCanvas[data-view="week"] .schedule-canvas-leave { display:none; }
.schedule-week-availability { display:block; color:var(--muted); font-size:10px; line-height:15px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-legend { display:none; }
#scheduleCanvas[data-view="week"] .schedule-canvas-add { position:static; display:flex; justify-content:center; gap:5px; width:100%; min-height:30px; opacity:1; font-size:11px; border:1px dashed var(--border); background:transparent; margin-top:auto; }
#scheduleCanvas[data-view="week"] .schedule-canvas-add:hover { background:var(--primary-soft); }
#scheduleCanvas[data-view="week"] .schedule-canvas-person { height:auto; padding-top:17px; }
#scheduleCanvas[data-view="week"] .schedule-canvas-direct-preview { inset:4px; width:auto; min-height:0; background:var(--primary-soft); display:grid; place-items:center; text-align:center; padding:10px; font-size:12px; font-weight:700; }
#scheduleCanvas[data-view="week"] .schedule-canvas-direct-preview::after { content:'Move shift here'; }
.schedule-canvas-block.locked .schedule-canvas-shift { cursor:pointer; }
.schedule-readiness.ready { min-height:0; padding:8px 12px; background:transparent; border-color:var(--border); }
.schedule-readiness.ready > div { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; }
#scheduleAssignments .panel-title { gap:12px; flex-wrap:wrap; }
#scheduleAssignments .panel-actions { gap:8px; }
@media (max-width:700px) {
  #scheduleCanvas[data-view="day"] .schedule-canvas-table { min-width:100%; }
  #scheduleCanvas[data-view="day"] .schedule-canvas-corner,#scheduleCanvas[data-view="day"] .schedule-canvas-person { width:110px; padding-inline:8px; }
  #scheduleAssignments .panel-actions { width:100%; flex-wrap:wrap; }
  #scheduleAssignments .schedule-density-control { flex:1 1 90px; min-width:0; }
  #scheduleAssignments .schedule-density-control select { width:100%; min-width:0; }
}
.schedule-conflict-mark { display: grid; width: 13px; height: 13px; place-items: center; border-radius: 50%; color: #fff; background: var(--uncovered); }
.schedule-exact-editor { margin-top: 15px; border-top: 1px solid var(--border); }
.schedule-exact-editor > summary { width: max-content; margin-top: 12px; padding: 7px 0; color: var(--primary-strong); font-size: 12px; font-weight: 800; cursor: pointer; }
.schedule-exact-editor > p { margin: 0 0 13px; color: var(--muted); font-size: 11px; }
#scheduleCanvas[data-density="compact"] .schedule-canvas-person,#scheduleCanvas[data-density="compact"] .schedule-canvas-cell { height: 66px; }
#scheduleCanvas[data-density="compact"] .schedule-canvas-cell-content { min-height: max(52px,calc(20px + var(--shift-lanes) * 29px)); }
#scheduleCanvas[data-density="compact"] .schedule-canvas-block { top: calc(12px + var(--shift-lane) * 29px); height: 25px; }
#scheduleCanvas[data-density="compact"] .schedule-canvas-shift { min-height: 25px; padding-top: 3px; padding-bottom: 3px; }
#scheduleCanvas[data-density="compact"] .schedule-canvas-preview,#scheduleCanvas[data-density="compact"] .schedule-canvas-direct-preview { top: 12px; min-height: 25px; }


.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.summary-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 17px 18px; box-shadow: var(--shadow); }
.summary-card > span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.summary-card strong { display: block; margin: 5px 0 1px; font-size: 28px; line-height: 1.1; }
.summary-card strong em { color: var(--muted); font-size: 16px; font-style: normal; font-weight: 600; }
.summary-card small { color: var(--muted); }
.summary-card.accent { border-top: 3px solid var(--primary); }
.summary-card.alert { border-top: 3px solid var(--uncovered); }
.summary-card.alert strong { color: var(--uncovered); }
.metrics-summary { grid-template-columns: repeat(5, minmax(170px, 1fr)); }
.summary-card.goal-met { border-top: 3px solid var(--covered); }
.summary-card.goal-open { border-top: 3px solid var(--partial); }
.metrics-table { min-width: 920px; }
.metrics-table td:not(:first-child), .metrics-table th:not(:first-child) { text-align: right; }
.metrics-table td:first-child, .metrics-table th:first-child { text-align: left; }
.clickable-row { cursor: pointer; }
.clickable-row:hover td { background: var(--primary-soft); }
.metrics-day-heading th { padding-top: 15px; color: var(--primary-strong); background: var(--surface); text-align: left !important; }
.metrics-day-total td { background: var(--surface-subtle); font-weight: 700; }
.shift-metrics-table { min-width: 1120px; }
.analytics-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 18px; }
.analytics-panel { min-height: 330px; }
.progress-chart { display: grid; gap: 15px; }
.progress-label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 5px; font-size: 12px; }
.progress-label span { color: var(--muted); }
.progress-track { position: relative; height: 24px; overflow: hidden; border: 1px solid var(--border); border-radius: 6px; background: var(--surface-subtle); }
.progress-track i { position: absolute; inset: 0 auto 0 0; min-width: 0; transition: width .25s; }
.progress-track i.covered { background: var(--covered-bg); border-right: 2px solid var(--covered); }
.progress-track i.partial { background: var(--partial-bg); border-right: 2px solid var(--partial); }
.progress-track i.uncovered { background: var(--uncovered-bg); }
.progress-track b { position: relative; z-index: 1; display: block; padding: 3px 7px; color: var(--text); text-align: right; font-size: 11px; }
.chart-legend { display: flex; justify-content: flex-end; gap: 13px; margin-bottom: 8px; color: var(--muted); font-size: 11px; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.chart-legend i { width: 9px; height: 9px; border-radius: 2px; }
.chart-legend .actual, .bar-pair .actual { background: var(--primary); }
.chart-legend .expected, .bar-pair .expected { background: var(--assignment-border); }
.daily-bar-chart { display: grid; grid-template-columns: repeat(7,minmax(34px,1fr)); align-items: end; gap: 8px; height: 225px; padding-top: 18px; border-bottom: 1px solid var(--border); }
.daily-bar-group { position: relative; display: grid; grid-template-rows: 1fr auto; align-items: end; height: 100%; min-width: 0; }
.bar-pair { display: flex; align-items: end; justify-content: center; gap: 3px; height: 100%; }
.bar-pair i { display: block; width: min(16px,42%); min-height: 0; border-radius: 4px 4px 0 0; }
.bar-values { position: absolute; inset: -16px 0 auto; display: flex; justify-content: center; gap: 4px; color: var(--muted); font-size: 8px; }
.bar-values span { width: 45%; overflow: hidden; text-align: center; text-overflow: ellipsis; }
.daily-bar-group > strong { padding: 6px 0; color: var(--muted); text-align: center; font-size: 10px; }
.fellow-portal .schedule-metrics { margin-top: 20px; }
.fellow-portal .schedule-metrics > .section-heading { padding: 16px 18px; border-bottom: 1px solid var(--border); }
.fellow-portal .schedule-metrics > .section-heading span strong,
.fellow-portal .schedule-metrics > .section-heading span small { display: block; }
.fellow-portal .schedule-metrics > .section-heading span small { margin-top: 3px; color: var(--muted); font-weight: 400; }
.fellow-portal .schedule-metrics > .metrics-content { padding: 18px; }
.fellow-metrics-summary { grid-template-columns: repeat(5,minmax(145px,1fr)); overflow-x: auto; }
.fellow-metrics-table-panel { margin-top: 18px; }

.calendar-panel { overflow-x: auto; }
.calendar-toolbar { min-width: 820px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; margin-bottom: 16px; }
.calendar-toolbar h2 { margin: 0; text-align: center; font-size: 21px; }
.calendar-toolbar > .primary { justify-self: end; }
.calendar-navigation { display: flex; gap: 6px; }
.calendar-weekdays { min-width: 820px; display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--border); border-bottom: 0; border-radius: 10px 10px 0 0; overflow: hidden; }
.calendar-weekdays span { padding: 8px; color: var(--muted); background: var(--surface-subtle); text-align: center; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.events-calendar { min-width: 820px; display: grid; grid-template-columns: repeat(7, minmax(115px, 1fr)); grid-template-rows: repeat(6, minmax(105px, auto)); border-left: 1px solid var(--border); border-top: 1px solid var(--border); }
.events-agenda { display: none; }
.agenda-event { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 68px; padding: 10px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: var(--surface); text-align: left; }
.agenda-event:last-child { border-bottom: 0; }
.agenda-date { display: grid; place-items: center; padding: 4px; border-radius: 7px; color: var(--primary-strong); background: var(--primary-soft); line-height: 1.1; }
.agenda-date strong { font-size: 9px; text-transform: uppercase; }
.agenda-date b { font-size: 20px; }
.agenda-event-copy { display: flex; min-width: 0; flex-direction: column; }
.agenda-event-copy strong, .agenda-event-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-event-copy small { color: var(--muted); font-size: 11px; }
.calendar-day { min-height: 105px; padding: 6px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface); }
.calendar-day.outside-month { background: var(--surface-subtle); opacity: .62; }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--primary); }
.calendar-date { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 12px; }
.calendar-day.today .calendar-date { background: var(--primary); color: white; }
.calendar-events { display: grid; gap: 4px; }
.calendar-event { display: block; width: 100%; padding: 4px 6px; overflow: hidden; border: 1px solid var(--primary-border); border-radius: 5px; background: var(--primary-soft); color: var(--primary-strong); text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.calendar-event.timed span { margin-right: 4px; opacity: .75; font-size: 9px; }
.calendar-event.all-day { background: var(--assignment-bg); border-color: var(--assignment-border); color: var(--assignment); }
.calendar-event small { display: block; margin-top: 2px; overflow: hidden; opacity: .8; text-overflow: ellipsis; font-size: 8px; }
.event-dialog form { gap: 13px; }
.event-time-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.split-actions { display: grid; grid-template-columns: auto 1fr auto auto; }
.nested-disclosure { margin-top: 18px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }

.time-off-form { display: grid; grid-template-columns: minmax(170px,1fr) repeat(2,minmax(145px,.7fr)) minmax(220px,1.4fr) auto; align-items: end; gap: 10px; }
.fellow-weekly-hours-form { display: grid; grid-template-columns: minmax(240px,1fr) minmax(180px,240px) auto; align-items: end; gap: 12px; }
.fellow-weekly-hours-form h2 { margin: 0; font-size: 17px; }
.schedule-settings-form { display: grid; grid-template-columns: minmax(280px,460px) max-content; align-items: end; justify-content: start; gap: 10px; }
.schedule-settings-form > button { min-width: 140px; align-self: start; margin-top: 24px; }
.requirement-needed-input { width: 90px; }
.summary-card.pending { border-top: 3px solid var(--partial-border); }
.summary-card.approved { border-top: 3px solid var(--covered-border); }
.status-select { min-height: 32px; padding: 5px 8px; font-weight: 700; }
.status-select.pending { color: var(--partial); background: var(--partial-bg); border-color: var(--partial-border); }
.status-select.approved { color: var(--covered); background: var(--covered-bg); border-color: var(--covered-border); }
.status-select.denied { color: var(--uncovered); background: var(--uncovered-bg); border-color: var(--uncovered-border); }
.availability-request-windows { display: grid; gap: 3px; min-width: 240px; white-space: normal; }
.availability-request-windows div { display: grid; grid-template-columns: 34px 1fr; gap: 7px; }
.availability-request-windows strong { color: var(--muted-strong); font-size: 11px; }
.availability-request-windows span, .availability-request-empty { color: var(--muted); font-size: 12px; }

.employee-add-form { display: grid; grid-template-columns: repeat(3,minmax(130px,1fr)) minmax(130px,.8fr) repeat(2,minmax(125px,.7fr)) auto; align-items: end; gap: 12px; }
.employee-add-form button { min-height: 38px; }
.employee-filters { display: flex; align-items: end; gap: 10px; }
.employee-filters input { width: 210px; }
.employee-filters select { min-width: 110px; }
.employee-not-applicable { color: var(--muted); font-size: 11px; font-weight: 700; }
.organizer-forms-table { min-width: 900px; table-layout: fixed; }
.organizer-forms-table th:first-child { width: 180px; }
.organizer-forms-table th:last-child { width: 90px; }
.organizer-forms-table th:not(:first-child), .organizer-forms-table td:not(:first-child) { text-align: center; }
.organizer-forms-table th span, .organizer-forms-table th small, .organizer-forms-table td small { display: block; }
.organizer-forms-table th small, .organizer-forms-table td small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.organizer-forms-table input { width: 78px; margin: 0 auto; text-align: center; }
.inline-message { margin-top: 12px; padding: 9px 11px; border: 1px solid var(--covered-border); border-radius: 7px; color: var(--covered); background: var(--covered-bg); font-size: 12px; font-weight: 700; }
.inline-message.warning { color: var(--partial); border-color: var(--partial-border); background: var(--partial-bg); }
.inline-message.error { color: var(--uncovered); border-color: var(--uncovered-border); background: var(--uncovered-bg); }
.empty-state { padding: 28px 16px; border: 1px dashed var(--border); border-radius: 8px; color: var(--muted); text-align: center; }
.cell-help { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; }
.employee-directory { display:grid; gap:10px; }
.directory-status-heading { margin:18px 0 4px; font-size:16px; }
.directory-status-heading span { color:var(--muted); font-weight:400; }
.inactive-workers-group > summary { cursor:pointer; padding:10px 0; font-weight:700; }
.inactive-workers-group > summary:focus-visible { outline:2px solid var(--muted); outline-offset:4px; border-radius:4px; }
.inactive-worker > summary { background:var(--surface-subtle); }
.inactive-worker-notice { grid-column:1 / -1; margin:0; color:var(--muted-strong); }
.comparison-day-navigation { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 18px; }
.comparison-day-navigation label { display:flex; align-items:center; gap:8px; }
.comparison-day-navigation input { width:155px; }
.comparison-day-navigation > span { color:var(--muted); font-size:13px; }
.comparison-day-navigation button { min-width:40px; min-height:40px; }
.directory-actions { display:flex; justify-content:flex-end; margin:12px 0; }
#managerAccountsTable:not(:empty),#pendingInvitationsTable:not(:empty) { margin-top:10px; }
.directory-signin { padding:16px; border-top:1px solid var(--border); overflow-wrap:anywhere; }
.directory-signin h3 { margin:0 0 10px; font-size:14px; }
.directory-signin p { margin:8px 0; }
.directory-signin button { margin-top:8px; }
#directoryInvitationDialog { width:min(580px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); overflow:auto; }
.directory-invitation-content { padding:20px; }
#directoryInvitationDialog form { padding:16px 0; display:grid; grid-template-columns:1fr; }
#directoryInvitationDialog .invitation-result { flex-wrap:wrap; }
.employee-person { border:1px solid var(--border); border-radius:12px; background:var(--surface); min-width:0; }
.employee-person > summary { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 28px; gap:16px; align-items:center; padding:16px; cursor:pointer; list-style:none; border-radius:12px; }
.employee-person > summary::-webkit-details-marker { display:none; }
.employee-person > summary:hover { background:var(--surface-subtle); }
.employee-person > summary:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.employee-person > summary small { display:block; color:var(--muted); font-size:11px; margin-bottom:4px; }
.employee-person > summary strong { display:block; overflow-wrap:anywhere; font-size:14px; }
.employee-person-arrow { font-size:24px; text-align:center; transition:transform .15s; }
.employee-person[open] .employee-person-arrow { transform:rotate(180deg); }
.employee-person-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:18px; padding:20px 16px; border-top:1px solid var(--border); }
.employee-person-fields > * { min-width:0; }
.employee-person-fields input:not([type="checkbox"]),.employee-person-fields select { width:100%; min-width:0; }
.employee-field-label { display:block; font-size:12px; font-weight:700; margin-bottom:8px; }
.employee-person > .employee-autosave-status { margin:0 16px 14px; }
.employee-person.dirty { border-color:var(--primary); }
@media(max-width:600px) {
  .employee-person > summary { gap:10px; padding:12px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 22px; }
  .employee-person > summary strong { font-size:12px; }
}
.employee-status-toggle { position: relative; flex-direction: row; align-items: center; gap: 8px; width: max-content; cursor: pointer; color: var(--text); white-space: nowrap; }
.employee-status-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.toggle-track { position: relative; display: inline-block; width: 36px; height: 20px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-subtle); transition: .15s; }
.toggle-track i { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--muted); transition: .15s; }
.employee-status-toggle input:checked + .toggle-track { border-color: var(--covered-border); background: var(--covered-bg); }
.employee-status-toggle input:checked + .toggle-track i { left: 18px; background: var(--covered); }
.employee-status-toggle input:focus-visible + .toggle-track { outline: 2px solid var(--primary); outline-offset: 2px; }
.employee-row-actions { display: flex; align-items: flex-start; flex-direction: column; gap: 6px; }
.employee-row-actions button { padding: 8px 10px; }
.employee-week-metrics { display: flex; align-items: center; gap: 5px 11px; flex-wrap: wrap; white-space: normal; }
.employee-week-metrics > span { color: var(--muted); font-size: 10px; white-space: nowrap; }
.employee-week-metrics > span strong { color: var(--text); font-size: 11px; }
.employee-week-metrics .employee-vr-progress { width: 100%; padding: 5px 7px; border: 1px solid; border-radius: 6px; }
.employee-week-metrics .employee-vr-progress.covered { color: var(--covered); border-color: var(--covered-border); background: var(--covered-bg); }
.employee-week-metrics .employee-vr-progress.partial { color: var(--partial); border-color: var(--partial-border); background: var(--partial-bg); }
.employee-week-metrics .employee-vr-progress.uncovered { color: var(--uncovered); border-color: var(--uncovered-border); background: var(--uncovered-bg); }
.employee-week-metrics .employee-vr-progress.neutral { color: var(--muted); border-color: var(--border); background: var(--surface-subtle); }
.employee-week-metrics button { min-height: 28px; padding: 4px 8px; color: var(--primary-strong); border-color: var(--primary-border); background: var(--primary-soft); font-size: 10px; }
.employee-autosave-status { color: var(--muted); font-size: 9px; font-weight: 700; white-space: nowrap; }
.employee-autosave-status[data-save-status="saving"], .employee-autosave-status[data-save-status="pending"] { color: var(--partial); }
.employee-autosave-status[data-save-status="saved"] { color: var(--covered); }
.employee-autosave-status[data-save-status="error"] { color: var(--uncovered); }
.availability-button { display: flex; flex-direction: column; align-items: flex-start; min-width: 116px; border-color: var(--covered-border); background: var(--covered-bg); color: var(--covered); }
.availability-button span { font-size: 12px; }
.availability-button small { margin-top: 2px; opacity: .85; font-size: 10px; }

dialog.availability-dialog { width: min(1320px, 96vw); max-width: none; max-height: 94vh; overflow: auto; }
.availability-editor { padding: 20px; }
.availability-audit-summary { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.dialog-heading, .availability-toolbar, .availability-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.dialog-heading h2 { margin: 0; font-size: 20px; }
.dialog-heading p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.dialog-heading > button { padding: 4px 10px; border: 0; background: transparent; color: var(--muted); font-size: 24px; }
.availability-toolbar { margin-top: 18px; flex-wrap: wrap; }
.availability-legend, .availability-quick-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.availability-legend { color: var(--muted); font-size: 12px; }
.availability-legend span { display: inline-flex; align-items: center; gap: 5px; }
.availability-swatch { display: inline-block; width: 13px; height: 13px; border: 1px solid; border-radius: 3px; }
.availability-swatch.available { background: var(--availability-green); border-color: var(--availability-green); }
.availability-swatch.preferred { border-color: #b45309; background: repeating-linear-gradient(135deg,#f59e0b 0 4px,#fef3c7 4px 8px); }
.availability-swatch.unavailable { border-color: var(--muted); background: repeating-linear-gradient(135deg,var(--surface-subtle) 0 4px,var(--border) 4px 8px); }
.availability-paint-tools { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-subtle); }
.availability-paint-tools button { min-height: 32px; padding: 6px 10px; border-color: transparent; }
.availability-paint-tools button[aria-pressed="true"] { border-color: var(--primary); background: var(--primary-soft); color: var(--primary); box-shadow: 0 0 0 1px var(--primary); }
.availability-help { margin: 11px 0; color: var(--muted); font-size: 12px; }
.availability-exact-form { display: flex; margin: 0 0 10px; padding: 8px 10px; align-items: end; flex-wrap: wrap; gap: 8px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.availability-exact-form > span { align-self: center; color: var(--muted-strong); font-size: 11px; font-weight: 800; }
.availability-exact-form label { min-width: 105px; font-size: 10px; }
.availability-exact-form input,.availability-exact-form select { min-height: 32px; margin-top: 3px; padding: 5px 7px; }
.availability-exact-form button { min-height: 32px; padding: 6px 10px; }
.availability-grid-wrap { max-height: min(520px, 60vh); overflow: auto; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-subtle); }
.availability-grid { display: grid; grid-template-columns: 86px repeat(var(--slot-count), 25px); width: max-content; min-width: 100%; user-select: none; }
.availability-grid-row { display: contents; }
.availability-corner, .availability-time { position: sticky; top: 0; z-index: 4; height: 30px; border-bottom: 1px solid var(--border); background: var(--surface); color: var(--muted); font-size: 9px; font-weight: 700; }
.availability-corner { left: 0; z-index: 6; padding: 8px 10px; text-transform: uppercase; letter-spacing: .05em; }
.availability-time { padding-top: 8px; text-align: center; }
.availability-time.hour-start { border-left: 2px solid var(--availability-hour-line); }
.availability-day-cell { position: sticky; left: 0; z-index: 3; height: 43px; background: var(--surface); }
.availability-day { width: 100%; height: 43px; padding: 12px; border: 0; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); border-radius: 0; background: var(--surface); color: var(--text); text-align: left; cursor: pointer; }
.availability-slot { position: relative; height: 43px; min-width: 25px; padding: 0; border: 0; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.28); border-radius: 0; }
.availability-slot.hour-start { border-left: 2px solid var(--availability-hour-line); }
.availability-slot.available { background: var(--availability-green); }
.availability-slot.available:hover { background: var(--availability-green-hover); }
.availability-slot.preferred { position: relative; background: repeating-linear-gradient(135deg,#d97706 0 5px,#f59e0b 5px 10px); }
.availability-slot.preferred:hover { background: repeating-linear-gradient(135deg,#b45309 0 5px,#f59e0b 5px 10px); }
.availability-slot.unavailable { background: repeating-linear-gradient(135deg,var(--surface-subtle) 0 7px,color-mix(in srgb,var(--border) 72%,var(--surface)) 7px 14px); }
.availability-slot.unavailable:hover { background: color-mix(in srgb,var(--primary-soft) 50%,var(--surface-subtle)); }
.availability-slot.scheduled::before,
.availability-slot.approved-leave::after { position: absolute; z-index: 2; display: grid; place-items: center; width: 15px; height: 15px; border: 1px solid currentColor; border-radius: 50%; background: var(--surface); color: var(--text); font-size: 9px; font-weight: 900; line-height: 1; pointer-events: none; }
.availability-slot.scheduled::before { top: 2px; left: 2px; content: "S"; }
.availability-slot.approved-leave::after { right: 2px; bottom: 2px; content: "L"; }
.availability-slot.approved-leave { position: relative; box-shadow: inset 0 0 0 3px var(--uncovered); }
.availability-slot:focus-visible { position: relative; z-index: 2; outline: 2px solid var(--primary); outline-offset: -2px; }
.availability-footer { margin-top: 15px; }
.availability-footer > div { display: flex; gap: 8px; }
.availability-footer strong { color: var(--muted-strong); font-size: 13px; }
.availability-exception-editor { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); }
.availability-exception-editor .section-heading { margin-bottom: 10px; }
.availability-exception-editor .section-heading > span { display: grid; gap: 2px; }
.availability-exception-editor .section-heading label { min-width: 170px; font-size: 11px; }
.availability-exception-editor .section-heading input { margin-top: 3px; }
.availability-exception-status { min-height: 22px; margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.availability-exception-grid { max-height: 125px; margin: 10px 0; }
.availability-exception-editor > strong { color: var(--muted-strong); font-size: 12px; }

.gantt-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 12px; color: var(--muted); font-size: 12px; }
.gantt-legend.compact { margin: 0; }
.gantt-legend span { display: inline-flex; align-items: center; gap: 5px; }
.legend-dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; border: 1px solid; }
.legend-dot.covered { background: var(--covered-bg); border-color: var(--covered-border); }
.legend-dot.partial { background: var(--partial-bg); border-color: var(--partial-border); }
.legend-dot.uncovered { background: var(--uncovered-bg); border-color: var(--uncovered-border); }
.legend-dot.event { background: var(--event-bg); border-color: var(--event-border); }
.legend-dot.assignment { background: var(--assignment-bg); border-color: var(--assignment-border); }
.legend-dot.team-lead { background: var(--lead-bg); border-color: var(--lead-border); }
.legend-dot.scheduled-time { background: var(--assignment-bg); border-color: var(--assignment-border); }
.legend-dot.actual-time { background: var(--covered-bg); border-color: var(--covered-border); }
.gantt-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-subtle); }
.gantt-chart { min-width: 900px; }
.gantt-axis { display: grid; grid-template-columns: 105px minmax(700px, 1fr); height: 34px; border-bottom: 1px solid var(--border); background: var(--surface); position: sticky; top: 0; z-index: 5; }
.gantt-axis > div:last-child, .gantt-grid { position: relative; }
.gantt-axis span { position: absolute; top: 9px; transform: translateX(-50%); color: var(--muted); font-size: 10px; text-transform: uppercase; }
.gantt-axis > div:last-child span:last-child { transform: translateX(-100%); }
.gantt-day { display: grid; grid-template-columns: 105px minmax(700px, 1fr); border-bottom: 1px solid var(--border); }
.gantt-day:last-child { border-bottom: 0; }
.gantt-day-label { padding: 14px 12px; border-right: 1px solid var(--border); background: var(--surface); }
.gantt-day-label strong, .gantt-day-label span { display: block; }
.gantt-day-label strong { font-size: 12px; }
.gantt-day-label span { margin-top: 2px; color: var(--muted); font-size: 11px; }
.gantt-day-chart { position: relative; padding: 8px 0; overflow: hidden; }
.gantt-event-layer { position: absolute; inset: 0; z-index: 0; }
.gantt-event-highlight { position: absolute; top: 0; bottom: 0; min-width: 3px; padding: 2px 5px; overflow: hidden; border: 0; border-left: 2px solid var(--event-border); border-right: 2px solid var(--event-border); border-radius: 0; background: var(--event-bg); color: var(--event); text-align: left; }
.gantt-event-highlight.covered { border-color: var(--covered-border); }
.gantt-event-highlight.uncovered { border-color: var(--uncovered-border); }
.gantt-event-highlight span, .gantt-event-highlight small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gantt-event-highlight span { font-size: 9px; font-weight: 800; }
.gantt-event-highlight small { font-size: 8px; }
.gantt-grid { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.gantt-grid span { position: absolute; top: 0; bottom: 0; width: 1px; overflow: hidden; text-indent: -9999px; background: var(--border-soft); }
.gantt-lane { position: relative; z-index: 2; margin: 0; min-height: 30px; }
.assignment-lane { border-top: 1px dashed var(--border); padding-top: 4px; }
.lane-label { position: relative; z-index: 2; padding: 2px 7px 4px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gantt-block { position: absolute; display: flex; align-items: center; justify-content: space-between; gap: 5px; min-width: 3px; height: 28px; padding: 4px 7px; overflow: hidden; border: 1px solid; border-radius: 6px; text-align: left; white-space: nowrap; box-shadow: none; }
.gantt-block strong { overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.gantt-block span { flex: 0 0 auto; font-size: 10px; font-weight: 700; }
.shift-block { height: 25px; color: var(--assignment); background: var(--assignment-bg); border-color: var(--assignment-border); }
.shift-block.team-lead { color: var(--lead); background: var(--lead-bg); border-color: var(--lead-border); }
.shift-block.locked { box-shadow: inset 3px 0 0 var(--primary); }
.empty-lane { position: absolute; left: 8px; top: 7px; color: var(--muted); font-size: 10px; }

.comparison-help { margin: -4px 0 12px; }
.comparison-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-subtle); }
.comparison-gantt { min-width: 980px; }
.comparison-axis, .comparison-row { display: grid; grid-template-columns: 190px minmax(740px,1fr); }
.comparison-axis { position: sticky; top: 0; z-index: 5; height: 34px; border-bottom: 1px solid var(--border); background: var(--surface); }
.comparison-axis > div:first-child { padding: 9px 12px; border-right: 1px solid var(--border); color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.comparison-axis > div:last-child, .comparison-chart { position: relative; }
.comparison-axis span { position: absolute; top: 9px; transform: translateX(-50%); color: var(--muted); font-size: 10px; text-transform: uppercase; }
.comparison-axis span:last-child { transform: translateX(-100%); }
.comparison-day { border-bottom: 1px solid var(--border); }
.comparison-day:last-child { border-bottom: 0; }
.comparison-day-heading { display: flex; gap: 6px; padding: 7px 12px; color: var(--muted-strong); background: color-mix(in srgb,var(--surface-subtle) 70%,var(--surface)); font-size: 11px; }
.comparison-day-heading span { color: var(--muted); }
.comparison-row { min-height: 70px; border-top: 1px solid var(--border-soft); background: var(--surface); }
.comparison-employee { display: flex; justify-content: center; flex-direction: column; padding: 9px 12px; border-right: 1px solid var(--border); }
.comparison-employee strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.comparison-delta { margin-top: 3px; font-size: 10px; }
.comparison-delta.over { color: var(--partial); }
.comparison-delta.under { color: var(--uncovered); }
.comparison-delta.even { color: var(--covered); }
.comparison-delta.missing { color: var(--muted); }
.comparison-chart { padding: 5px 0; overflow: hidden; }
.comparison-track { position: relative; z-index: 2; height: 29px; padding-left: 58px; }
.comparison-track > span { position: absolute; left: 7px; top: 7px; width: 48px; color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.comparison-track > em { position: absolute; left: 62px; top: 6px; color: var(--muted); font-size: 10px; font-style: normal; }
.comparison-block { position: absolute; top: 2px; z-index: 3; display: flex; align-items: center; min-width: 3px; height: 25px; padding: 3px 7px; overflow: hidden; border: 1px solid; border-radius: 6px; white-space: nowrap; }
button.comparison-block { box-shadow: none; text-align: left; }
.comparison-block strong { overflow: hidden; text-overflow: ellipsis; font-size: 10px; }
.comparison-block.scheduled { color: var(--assignment); background: var(--assignment-bg); border-color: var(--assignment-border); }
.comparison-block.actual { color: var(--covered); background: var(--covered-bg); border-color: var(--covered-border); }
.comparison-empty { padding: 10px 12px; color: var(--muted); background: var(--surface); font-size: 11px; }

dialog { border: 1px solid var(--border); border-radius: 12px; padding: 0; color: var(--text); background: var(--surface); box-shadow: var(--dialog-shadow); width: min(450px, 92vw); }
dialog::backdrop { background: rgba(15, 23, 42, .58); }
#deleteWorkerDialog { max-height:calc(100dvh - 24px); overflow:auto; }
#deleteWorkerDialog h2,#deleteWorkerDialog p { overflow-wrap:anywhere; }
#deleteWorkerDialog .dialog-actions { flex-wrap:wrap; }
#generationSettingsDialog,#personScheduleDialog { width:fit-content; min-width:min(360px,calc(100vw - 24px)); max-width:min(560px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; }
#generationSettingsDialog h2,#personScheduleDialog h2 { overflow-wrap:anywhere; }
#personScheduleDialog details { border:1px solid var(--border); border-radius:8px; padding:12px; }
#personScheduleDialog summary { cursor:pointer; font-weight:700; }
#personScheduleDialog .dialog-actions,#generationSettingsDialog .dialog-actions { flex-wrap:wrap; }
.schedule-canvas-person .person-schedule-gear { display:grid; place-items:center; float:right; width:30px; min-width:30px; min-height:30px; margin:-5px -6px 4px 3px; padding:2px; border:0; color:var(--muted-strong); background:transparent; font-size:21px; }
.schedule-canvas-person .person-schedule-gear:hover { color:var(--primary); background:var(--primary-soft); }
.schedule-canvas-person:has(.person-schedule-gear) strong { white-space:normal; overflow-wrap:anywhere; }
dialog form { padding: 22px; display: grid; gap: 12px; }
dialog form > h2 { margin: 0 0 2px; font-size: 20px; }
#shiftDialog { width: min(680px,92vw); max-height: 94vh; overflow: hidden; }
#shiftDialog .shift-dialog-form { max-height: min(720px, 90vh); overflow-y: auto; overscroll-behavior: contain; }
.shift-dialog-heading { min-height: 36px; }
#shiftDialog .shift-dialog-form > .dialog-actions { position: sticky; bottom: 0; z-index: 5; margin: 8px -22px -22px; padding: 12px 22px; border-top: 1px solid var(--border); background: var(--surface); box-shadow: 0 -5px 12px color-mix(in srgb,var(--text) 7%,transparent); }
.shift-time-editor { display: grid; gap: 7px; margin: 2px 0; padding: 14px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-subtle); }
.shift-time-editor-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.shift-time-editor-heading > div { display: grid; gap: 2px; }
.shift-time-editor-heading strong { font-size: 13px; }
.shift-time-editor-heading span { color: var(--muted); font-size: 10px; }
.shift-time-editor-heading output { color: var(--primary-strong); font-size: 13px; font-weight: 800; white-space: nowrap; }
.shift-time-ruler { display: flex; justify-content: space-between; margin: 2px 0 -2px; color: var(--muted); font-size: 8px; }
.shift-time-canvas { position: relative; height: 72px; overflow: hidden; border: 1px solid var(--border); border-radius: 9px; background-color: var(--surface); background-image: linear-gradient(90deg,transparent calc(25% - 1px),var(--border-soft) 25%,transparent calc(25% + 1px),transparent calc(50% - 1px),var(--border) 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),var(--border-soft) 75%,transparent calc(75% + 1px)); cursor: crosshair; touch-action: none; user-select: none; }
.shift-time-context { position: absolute; inset: 0; pointer-events: none; }
.shift-time-availability,.shift-time-existing { position: absolute; left: var(--time-start); width: max(var(--time-width),2px); }
.shift-time-availability { top: 8px; height: 10px; border-radius: 4px; background: color-mix(in srgb,var(--covered-bg) 88%,var(--surface)); box-shadow: inset 0 0 0 1px var(--covered-border); }
.shift-time-availability.preferred { background: var(--partial-bg); box-shadow: inset 0 0 0 1px var(--partial-border); }
.shift-time-existing { bottom: 8px; height: 9px; border-radius: 3px; background: color-mix(in srgb,var(--muted) 36%,transparent); }
.shift-canvas-selection { position: absolute; z-index: 2; top: 22px; left: var(--time-start); width: max(var(--time-width),18px); height: 28px; border: 2px solid var(--primary); border-radius: 7px; background: color-mix(in srgb,var(--primary-soft) 84%,var(--surface)); box-shadow: 0 3px 8px color-mix(in srgb,var(--primary) 18%,transparent); cursor: grab; }
.shift-canvas-selection:active { cursor: grabbing; }
.shift-canvas-selection > span { position: absolute; inset: 0; background: repeating-linear-gradient(135deg,transparent 0 5px,color-mix(in srgb,var(--primary) 8%,transparent) 5px 10px); }
.shift-canvas-selection.conflict { border-color: var(--uncovered); background: var(--uncovered-bg); }
.shift-canvas-selection.locked { border-style: dashed; cursor: not-allowed; opacity: .72; }
.shift-canvas-handle { position: absolute; z-index: 4; top: 14px; left: var(--time-point); width: 44px; min-width: 44px; height: 44px; padding: 0; transform: translateX(-50%); border: 0; color: var(--surface); background: transparent; box-shadow: none; cursor: ew-resize; touch-action: none; }
.shift-canvas-handle::before { position: absolute; top: 9px; left: 19px; width: 6px; height: 26px; border-radius: 5px; background: var(--primary); box-shadow: 0 0 0 2px var(--surface),0 0 0 3px var(--primary); content: ''; }
.shift-canvas-handle:hover,.shift-canvas-handle:focus-visible { transform: translateX(-50%) scale(1.05); box-shadow: none; }
.shift-canvas-handle:focus-visible::before { outline: 3px solid color-mix(in srgb,var(--primary) 34%,transparent); outline-offset: 3px; }
.shift-canvas-handle:disabled { cursor: not-allowed; opacity: .5; }
.shift-time-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.shift-time-conflict { min-height: 16px; color: var(--muted); font-size: 10px; }
.shift-time-conflict.warning { color: var(--uncovered); font-weight: 700; }
.shift-metric-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.shift-form-message { padding: 10px 12px; border: 1px solid var(--uncovered-border); border-radius: 8px; color: var(--uncovered); background: var(--uncovered-bg); font-size: 12px; font-weight: 700; }
.shift-form-message:focus { outline: 3px solid color-mix(in srgb,var(--uncovered) 28%,transparent); outline-offset: 2px; }
.form-help { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 500; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.app-toast { position: fixed; right: 20px; bottom: 20px; z-index: 100; max-width: min(420px,calc(100vw - 40px)); padding: 11px 14px; border: 1px solid var(--covered-border); border-radius: 7px; background: var(--covered-bg); color: var(--covered); box-shadow: var(--dialog-shadow); font-size: 13px; font-weight: 700; }
.app-toast.error { border-color: var(--uncovered-border); background: var(--uncovered-bg); color: var(--uncovered); }
.app-toast button { margin-left: 8px; border-color: currentColor; color: inherit; background: transparent; font-size: 12px; }

@media (max-width: 800px) {
  .summary-grid { grid-template-columns: 1fr; }
  .metrics-summary { grid-template-columns: 1fr 1fr; }
  .panel-actions { width: 100%; justify-content: space-between; }
  .time-off-form { grid-template-columns: 1fr 1fr; }
  .fellow-weekly-hours-form { grid-template-columns: 1fr 1fr; }
  .fellow-weekly-hours-form > div { grid-column: 1 / -1; }
  .time-off-reason { grid-column: 1 / -1; }
  .employee-add-form { grid-template-columns: 1fr 1fr; }
  .analytics-grid { grid-template-columns: 1fr; }
  .schedule-controls { align-items: stretch; flex-direction: column; }
  .schedule-actions { justify-content: space-between; }
  .schedule-settings-form { grid-template-columns: minmax(0,1fr) max-content; }
  .spreadsheet-summary { grid-template-columns: repeat(2,1fr); }
  .spreadsheet-summary > div { border-bottom: 1px solid var(--border); }
}

@media (max-width: 700px) {
  header { align-items: center; flex-direction: row; gap: 10px; padding: 10px 14px; }
  .manager-heading { min-width: 0; flex: 1; }
  header h1 { font-size: 18px; }
  header p { display: none; }
  .status-wrap { width: auto; margin-left: auto; flex-wrap: nowrap; }
  body.organization-admin header { flex-wrap: wrap; gap: 8px; }
  body.organization-admin .manager-heading { flex: 1 0 100%; }
  body.organization-admin .status-wrap { display: grid; grid-template-columns: minmax(0,1fr) auto; width: 100%; margin-left: 0; }
  .organization-admin-controls { width: auto; min-width: 0; align-items: end; flex-wrap: nowrap; }
  .organization-admin-controls label { min-width: 0; flex: 1; }
  .organization-admin-controls select { width: 100%; min-width: 0; }
  .team-switcher-label, .admin-badge { display: none; }
  .theme-toggle { white-space: nowrap; }
  nav { padding: 8px 14px; overflow: visible; }
  .primary-tablist { display: none; }
  .mobile-nav-control { display: flex; width: 100%; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
  .mobile-nav-control select { width: 100%; color: var(--text); font-size: 14px; font-weight: 700; text-transform: none; letter-spacing: 0; }
  main { padding: 14px; }
  .panel { padding: 14px; }
  .gantt-axis, .gantt-day { grid-template-columns: 85px minmax(700px, 1fr); }
  .gantt-day-label { padding-left: 8px; }
  .comparison-axis, .comparison-row { grid-template-columns: 150px minmax(740px,1fr); }
  .availability-editor { padding: 14px; }
  .availability-footer { align-items: stretch; flex-direction: column; }
  .availability-footer > div { justify-content: flex-end; }
  .responsive-card-wrap { overflow: visible; }
  .responsive-card-table { min-width: 0; table-layout: auto; }
  .responsive-card-table thead { display: none; }
  .responsive-card-table, .responsive-card-table tbody, .responsive-card-table tr, .responsive-card-table td { display: block; width: 100%; }
  .responsive-card-table tr { margin-bottom: 12px; padding: 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-subtle); }
  .responsive-card-table tr:last-child { margin-bottom: 0; }
  .responsive-card-table td { display: grid; grid-template-columns: 105px minmax(0,1fr); align-items: center; gap: 10px; padding: 7px 3px; border: 0; white-space: normal; }
  .responsive-card-table td::before { content: attr(data-label); color: var(--muted); font-size: 11px; font-weight: 800; }
  .responsive-card-table td > * { min-width: 0; }
  .responsive-card-table .link-actions { min-width: 0; justify-content: flex-start; }
  .responsive-card-table .availability-request-windows { min-width: 0; }
  .responsive-card-table input, .responsive-card-table select { max-width: 100%; }
  .time-off-summary { display: flex; gap: 8px; margin-bottom: 16px; overflow-x: auto; }
  .time-off-summary .summary-card { display: flex; min-width: 150px; align-items: center; gap: 8px; padding: 9px 11px; border-top-width: 1px; box-shadow: none; }
  .time-off-summary .summary-card.zero { display: none; }
  .time-off-summary .summary-card > span { font-size: 10px; }
  .time-off-summary .summary-card strong { margin: 0 0 0 auto; font-size: 19px; }
  .time-off-summary .summary-card small { display: none; }
  .time-off-form { grid-template-columns: 1fr; }
  .fellow-weekly-hours-form { grid-template-columns: 1fr; }
  .time-off-reason { grid-column: auto; }
  .metrics-summary, .shift-metric-fields { grid-template-columns: 1fr; }
  .employee-add-form { grid-template-columns: 1fr; }
  .employee-filters { width: 100%; align-items: stretch; flex-direction: column; }
  .employee-filters input, .employee-filters select { width: 100%; }
  .employee-row-actions { justify-content: flex-start; }
  .week-navigation { align-items: stretch; flex-wrap: wrap; }
  .week-navigation label { flex: 1 1 150px; }
  .week-navigation #currentWeekBtn { flex: 1 1 100%; }
  .week-publish-controls { width: 100%; justify-content: space-between; margin: 3px 0 0; padding: 10px 0 0; border-top: 1px solid var(--border); border-left: 0; }
  .week-publish-controls > span:first-child { display: none; }
  .schedule-actions { align-items: stretch; flex-direction: column; }
  .fellow-focus-control, .fellow-focus-control select { width: 100%; min-width: 0; }
  .fellow-focus-notice { align-items: stretch; flex-direction: column; }
  .panel-actions { align-items: end; }
  .view-toggle { display: none; }
  .schedule-view-select { display: flex; flex: 1; }
  .schedule-view-select select { width: 100%; }
  .schedule-list-shift { grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; min-height: 66px; }
  .schedule-list-time { grid-column: 1 / -1; color: var(--muted-strong); font-size: 11px; }
  .schedule-list-hours { grid-column: 2; grid-row: 2; }
  .spreadsheet-summary { display: none; }
  .spreadsheet-toolbar { align-items: flex-start; flex-direction: column; }
  .spreadsheet-help { width: 100%; justify-content: space-between; flex-wrap: wrap; }
  .spreadsheet-help > span:last-child { display: none; }
  .schedule-editor-day-heading { align-items: flex-start; flex-direction: column; gap: 8px; padding: 11px 12px; }
  .schedule-editor-day-totals { width: 100%; justify-content: flex-start; gap: 13px; overflow-x: auto; padding-bottom: 2px; }
  .schedule-editor-shifts { padding: 9px; }
  .schedule-editor-shift { padding: 10px; }
  .schedule-editor-shift-fields { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .schedule-editor-field.field-employee_id { grid-column: 1 / -1; }
  .schedule-editor-shift-footer { align-items: flex-end; flex-wrap: wrap; gap: 12px; }
  .schedule-editor-calculations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; gap: 8px; }
  .schedule-editor-calculations .spreadsheet-formula-cell { min-width: 0; padding: 7px 8px; border-radius: 7px; background: var(--surface-subtle); }
  .schedule-editor-field.field-locked { margin-right: auto; }
  .schedule-metrics > .metrics-content { padding: 12px; }
  .schedule-metrics .metrics-controls { padding: 12px; }
  .calendar-panel { overflow: visible; }
  .calendar-toolbar { display: flex; min-width: 0; flex-wrap: wrap; }
  .calendar-toolbar h2 { order: -1; width: 100%; text-align: left; }
  .calendar-navigation { flex: 1; }
  .calendar-navigation #todayMonthBtn { flex: 1; }
  .calendar-weekdays, .events-calendar { display: none; }
  .events-agenda { display: block; overflow: hidden; border: 1px solid var(--border); border-radius: 9px; }
  .schedule-settings-form { grid-template-columns: 1fr; }
  #shiftDialog { width: min(680px, calc(100vw - 20px)); }
  #shiftDialog .shift-dialog-form { max-height: 92dvh; padding: 16px; }
  #shiftDialog .shift-dialog-form > .dialog-actions { margin-right: -16px; margin-bottom: -16px; margin-left: -16px; padding: 11px 16px; }
  .shift-time-editor-heading { align-items: stretch; flex-direction: column; gap: 4px; }
  .shift-time-inputs { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .schedule-canvas-shift,.shift-canvas-handle { transition: none; }
}

/* Public marketing site */
.marketing-page {
  --marketing-ink: #2d1934;
  --marketing-muted: #746676;
  --marketing-purple: #d84f2f;
  --marketing-purple-dark: #9b2e1b;
  --marketing-pink: #f3aa1a;
  --marketing-lilac: #fff0e9;
  --marketing-cream: #fff8ee;
  min-width: 320px;
  color: var(--marketing-ink);
  background: #fff;
  font-size: 16px;
  overflow-x: hidden;
}
.marketing-page * { box-sizing: border-box; }
.marketing-page a { color: inherit; }
.marketing-page main { width: 100%; max-width: none; margin: 0; padding: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.marketing-header {
  position: fixed;
  top: 14px;
  right: 0;
  left: 0;
  z-index: 100;
  display: flex;
  width: min(1180px,calc(100% - 32px));
  min-height: 66px;
  margin: 0 auto;
  padding: 9px 10px 9px 18px;
  align-items: center;
  justify-content: space-between;
  border: 1px solid rgba(82,64,122,.09);
  border-radius: 20px;
  color: var(--marketing-ink);
  background: rgba(255,255,255,.82);
  box-shadow: 0 14px 42px rgba(70,50,110,.08);
  backdrop-filter: blur(18px);
  transition: top .25s,box-shadow .25s,background .25s;
}
.marketing-header.scrolled { top: 8px; background: rgba(255,255,255,.94); box-shadow: 0 16px 50px rgba(55,36,95,.14); }
.marketing-brand { display: inline-flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 820; letter-spacing: -.025em; text-decoration: none; white-space: nowrap; }
.topbar-brand { flex: 0 0 auto; gap: 8px; color: var(--text); }
.topbar-brand .marketing-brand-mark { width: 30px; height: 30px; flex-basis: 30px; }
.topbar-brand .marketing-brand-mark i { width: 13px; height: 13px; }
.topbar-brand > span:last-child { font-size: 14px; }
.marketing-brand-mark { display: block; width: 33px; height: 37px; flex: 0 0 33px; object-fit: contain; }
.marketing-nav { position: static; display: flex; padding: 0; align-items: center; gap: 4px; overflow: visible; border: 0; background: transparent; }
.marketing-nav a { display: inline-flex; min-height: 44px; padding: 0 14px; align-items: center; border-radius: 13px; color: #514960; font-size: 14px; font-weight: 650; text-decoration: none; transition: color .2s,background .2s,transform .2s; }
.marketing-nav a:hover { color: var(--marketing-ink); background: #fff2ec; }
.marketing-nav .marketing-login { margin-left: 8px; }
.marketing-nav .marketing-nav-cta { margin-left: 4px; padding: 0 18px; color: #fff; background: var(--marketing-ink); box-shadow: 0 7px 18px rgba(33,25,54,.16); }
.marketing-nav .marketing-nav-cta:hover { color: #fff; background: var(--marketing-purple-dark); transform: translateY(-1px); }
.marketing-nav-cta span { margin-left: 8px; }
.marketing-menu-toggle { display: none; width: 44px; min-height: 44px; padding: 10px; border: 0; border-radius: 12px; background: #fff0e9; }
.marketing-menu-toggle > span:not(.sr-only) { display: block; width: 20px; height: 2px; margin: 4px auto; border-radius: 4px; background: var(--marketing-ink); }

.marketing-hero {
  position: relative;
  display: grid;
  min-height: 840px;
  padding: 166px max(24px,calc((100vw - 1180px) / 2)) 110px;
  grid-template-columns: minmax(0,.92fr) minmax(510px,1.08fr);
  align-items: center;
  gap: 58px;
  overflow: hidden;
  background:
    radial-gradient(circle at 76% 25%,rgba(244,173,24,.19),transparent 28%),
    radial-gradient(circle at 12% 72%,rgba(228,87,50,.11),transparent 30%),
    linear-gradient(180deg,#fff 0%,#fff 58%,#fff7f2 100%);
}
.marketing-hero::before { content: ""; position: absolute; inset: 100px auto auto 43%; width: 1px; height: 640px; transform: rotate(28deg); background: linear-gradient(transparent,rgba(228,87,50,.2),transparent); }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(1px); pointer-events: none; }
.hero-orb-one { top: 120px; right: -90px; width: 320px; height: 320px; background: radial-gradient(circle at 35% 35%,#ffe1b0,#ffc4b2 60%,rgba(255,225,176,0)); opacity: .68; animation: hero-float 8s ease-in-out infinite; }
.hero-orb-two { bottom: 30px; left: -100px; width: 230px; height: 230px; background: radial-gradient(circle at 60% 40%,#ffd8ca,#fff1e8 68%,rgba(255,241,232,0)); animation: hero-float 10s 1.5s ease-in-out infinite reverse; }
.hero-copy { position: relative; z-index: 2; }
.hero-kicker,.section-kicker { display: inline-flex; margin: 0 0 22px; align-items: center; gap: 8px; color: var(--marketing-purple-dark); font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.hero-kicker { padding: 8px 12px; border: 1px solid #f3c5b7; border-radius: 999px; background: rgba(255,246,241,.92); }
.hero-kicker span { font-size: 15px; animation: sparkle-spin 6s linear infinite; }
.hero-copy h1 { max-width: 670px; margin: 0; font-size: clamp(3.25rem,5.3vw,5.9rem); line-height: .94; letter-spacing: -.072em; }
.hero-copy h1 em,.section-heading h2 em { position: relative; color: var(--marketing-purple); font-family: Georgia,serif; font-weight: 500; letter-spacing: -.045em; }
.hero-copy h1 em::after { content: ""; position: absolute; right: 0; bottom: -7px; left: 2%; height: 10px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='500' height='12' viewBox='0 0 500 12'%3E%3Cpath d='M3 8c105-7 299-7 494 0' fill='none' stroke='%23f4ad18' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat; opacity: .78; }
.hero-lede { max-width: 600px; margin: 32px 0 0; color: var(--marketing-muted); font-size: clamp(1.05rem,1.35vw,1.24rem); line-height: 1.7; }
.hero-actions { display: flex; margin-top: 32px; align-items: center; gap: 12px; flex-wrap: wrap; }
.marketing-button { display: inline-flex; min-height: 55px; padding: 0 23px; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 16px; font-size: 15px; font-weight: 760; text-decoration: none; transition: transform .2s,box-shadow .2s,background .2s; }
.marketing-button:hover { transform: translateY(-2px); }
.marketing-button-primary { color: #fff !important; background: linear-gradient(135deg,#c94426,#e9683f); box-shadow: 0 15px 30px rgba(201,68,38,.26),0 4px 9px rgba(244,173,24,.16); }
.marketing-button-primary:hover { box-shadow: 0 19px 38px rgba(201,68,38,.34); }
.marketing-button-secondary { border-color: #e3deec; background: rgba(255,255,255,.86); box-shadow: 0 8px 22px rgba(36,26,58,.07); }
.play-dot { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; color: var(--marketing-purple); background: #fff0e9; font-size: 9px; }
.hero-proof { display: flex; margin: 27px 0 0; padding: 0; gap: 17px; flex-wrap: wrap; color: #777083; font-size: 12px; font-weight: 650; list-style: none; }
.hero-proof li { display: flex; align-items: center; gap: 6px; }
.hero-proof li span { color: #c94426; font-weight: 900; }
.hero-product { position: relative; z-index: 2; perspective: 1500px; }
.product-window { width: 720px; overflow: hidden; border: 1px solid rgba(90,62,140,.14); border-radius: 22px; background: #fff; box-shadow: 0 40px 90px rgba(60,35,105,.2),0 10px 25px rgba(80,45,120,.09); transform: rotateY(-5deg) rotateX(2deg); transform-origin: left center; }
.product-window-bar { display: flex; height: 48px; padding: 0 16px; align-items: center; border-bottom: 1px solid #ece8f1; color: #7d7588; background: #fbfaff; font-size: 11px; }
.window-dots { display: flex; width: 64px; gap: 5px; }
.window-dots i { width: 8px; height: 8px; border-radius: 50%; background: #ddd5e8; }
.window-dots i:nth-child(1) { background: #ff8d83; }.window-dots i:nth-child(2) { background: #ffd267; }.window-dots i:nth-child(3) { background: #53d3ad; }
.window-title { flex: 1; text-align: center; font-weight: 680; }
.window-live { display: flex; width: 64px; align-items: center; justify-content: flex-end; gap: 5px; color: #159a72; font-weight: 720; }
.window-live i { width: 7px; height: 7px; border-radius: 50%; background: #2bc99a; box-shadow: 0 0 0 4px rgba(43,201,154,.12); }
.product-window-body { display: grid; min-height: 492px; grid-template-columns: 58px 1fr; }
.mock-sidebar { display: flex; padding: 15px 10px; align-items: center; flex-direction: column; gap: 16px; background: #2d1934; }
.mock-logo { margin-bottom: 14px; transform: scale(.74); }.mock-logo .marketing-brand-mark { display: block; }
.mock-sidebar > i { width: 28px; height: 28px; border-radius: 9px; background: rgba(255,255,255,.1); }.mock-sidebar > i.active { background: var(--marketing-purple); box-shadow: 0 7px 14px rgba(201,68,38,.3); }
.mock-dashboard { min-width: 0; padding: 24px; background: #fbfafc; }
.mock-heading { display: flex; align-items: center; justify-content: space-between; }
.mock-heading div { display: grid; gap: 2px; }.mock-heading small { color: #938b9f; font-size: 8px; font-weight: 800; letter-spacing: .09em; }.mock-heading strong { font-size: 20px; letter-spacing: -.035em; }
.mock-heading button,.tour-ui button { min-height: 34px; padding: 7px 11px; border: 0; border-radius: 9px; color: #fff; background: var(--marketing-purple); font-size: 10px; }
.mock-stats { display: grid; margin: 20px 0 16px; grid-template-columns: repeat(3,1fr); gap: 10px; }
.mock-stats article { display: grid; padding: 12px; gap: 3px; border: 1px solid #ece8f1; border-radius: 11px; background: #fff; }
.mock-stats span { color: #837b90; font-size: 9px; }.mock-stats strong { font-size: 19px; }.mock-stats i { color: #766e82; font-size: 8px; font-style: normal; }.mock-stats i.good { color: #0a9b70; }.mock-stats i.warm { color: #d27026; }
.mock-calendar { display: grid; overflow: hidden; grid-template-columns: 100px repeat(5,1fr); border: 1px solid #e8e4ec; border-radius: 12px; background: #fff; font-size: 8px; }
.mock-calendar > * { min-width: 0; min-height: 47px; padding: 6px; border-right: 1px solid #eeeaf1; border-bottom: 1px solid #eeeaf1; }
.calendar-day { display: grid; place-items: center; color: #8a8295; }.calendar-day span { font-size: 7px; font-weight: 800; }.calendar-day strong { font-size: 12px; }.calendar-day.today { color: var(--marketing-purple); background: #f4f1ff; }
.calendar-name { display: flex; align-items: center; gap: 6px; font-weight: 720; }
.avatar { display: grid; width: 25px; height: 25px; place-items: center; flex: 0 0 25px; border-radius: 8px; color: #6b3841; background: #ffd9db; font-size: 7px; font-style: normal; }.avatar.aqua { color: #17695c; background: #c9f4e8; }.avatar.gold { color: #755315; background: #ffebae; }.avatar.violet { color: #55408e; background: #e5dcff; }
.shift { margin: 3px; min-height: 37px; padding: 6px 5px; border-left: 3px solid; border-radius: 5px; font-weight: 750; }.shift small { display: block; margin-top: 3px; font-size: 6px; opacity: .7; }.shift-purple { color: #593fc1; border-color: #7a5ef1; background: #eeeaff; }.shift-blue { color: #236ca9; border-color: #53a5ea; background: #e6f4ff; }.shift-mint { color: #14715a; border-color: #44c8a2; background: #e0f8f1; }
.floating-note { position: absolute; z-index: 4; display: flex; min-width: 206px; padding: 13px; align-items: center; gap: 10px; border: 1px solid rgba(93,66,135,.1); border-radius: 15px; background: rgba(255,255,255,.94); box-shadow: 0 16px 40px rgba(61,38,100,.16); backdrop-filter: blur(10px); animation: note-float 5s ease-in-out infinite; }
.floating-note span:not(.note-icon):not(.avatar-stack) { display: grid; gap: 2px; }.floating-note strong { font-size: 11px; }.floating-note small { color: #7d7588; font-size: 9px; }.note-icon { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 10px; color: #fff; background: #32bf95; }
.floating-note-coverage { right: -22px; bottom: 44px; }.floating-note-update { top: 70px; left: -46px; animation-delay: -2s; }
.avatar-stack { display: flex; width: 68px; }.avatar-stack i { display: grid; width: 29px; height: 29px; margin-right: -7px; place-items: center; border: 2px solid white; border-radius: 50%; color: #513a78; background: #e9e2ff; font-size: 7px; font-style: normal; font-weight: 800; }.avatar-stack i:nth-child(2) { color: #146b5b; background: #c8f4e7; }.avatar-stack i:nth-child(3) { color: #fff; background: #282039; }

.signal-strip { display: grid; padding: 24px 0; grid-template-columns: max-content minmax(0,1fr); align-items: center; gap: 26px; overflow: hidden; border-top: 1px solid #eee9f4; border-bottom: 1px solid #eee9f4; background: #fff; }
.signal-strip > p { margin: 0; padding-left: max(24px,calc((100vw - 1180px) / 2)); color: #827a8e; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.signal-marquee { min-width: 0; overflow: hidden; mask-image: linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.signal-track { display: flex; width: max-content; gap: 12px; animation: signal-scroll 35s linear infinite; }
.signal-track span { display: flex; padding: 9px 14px; align-items: center; gap: 8px; border: 1px solid #eee9f4; border-radius: 999px; color: #4f475b; background: #fcfbfd; font-size: 13px; font-weight: 670; white-space: nowrap; }
.signal-track i { width: 8px; height: 8px; border-radius: 50%; }.signal-purple { background: #8b6fff; }.signal-orange { background: #ff9a62; }.signal-blue { background: #5ab2f3; }.signal-green { background: #3bc99f; }.signal-pink { background: #ed6fc8; }.signal-yellow { background: #f1c84c; }

.marketing-section { width: min(1180px,calc(100% - 48px)); margin: 0 auto; padding: 124px 0; }
.section-heading { max-width: 720px; }.section-heading.centered { margin: 0 auto 58px; text-align: center; }.section-heading.centered .section-kicker { justify-content: center; }
.section-heading h2 { margin: 0; font-size: clamp(2.7rem,5vw,4.8rem); line-height: 1.01; letter-spacing: -.062em; }.section-heading > p:not(.section-kicker) { max-width: 640px; margin: 22px auto 0; color: var(--marketing-muted); font-size: 17px; line-height: 1.7; }
.feature-section { padding-bottom: 145px; }
.feature-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; }
.feature-card { position: relative; min-height: 375px; padding: 34px; overflow: hidden; border: 1px solid rgba(62,42,90,.06); border-radius: 26px; }
.feature-card h3 { max-width: 480px; margin: 17px 0 12px; font-size: clamp(1.5rem,2.2vw,2.25rem); line-height: 1.08; letter-spacing: -.045em; }.feature-card p { max-width: 510px; margin: 0; color: #655d72; line-height: 1.65; }
.feature-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; color: var(--marketing-purple); background: rgba(255,255,255,.72); box-shadow: 0 8px 20px rgba(63,42,94,.08); font-size: 21px; }
.feature-card-lavender { display: grid; min-height: 470px; grid-template-columns: .86fr 1.14fr; align-items: center; gap: 30px; background: #eee9ff; }.feature-card-sun { background: #fff1c9; }.feature-card-mint { background: #dff8ef; }.feature-card-ink { display: grid; min-height: 390px; grid-template-columns: 1fr 1fr; align-items: center; gap: 50px; color: #fff; background: #282039; }.feature-card-wide { grid-column: 1 / -1; }.feature-card-ink p { color: #cbc4d6; }.feature-card-ink .feature-icon { color: #ffe068; background: rgba(255,255,255,.1); }
.coverage-visual { padding: 22px; border: 1px solid rgba(74,50,125,.08); border-radius: 19px; background: rgba(255,255,255,.82); box-shadow: 0 20px 50px rgba(73,47,125,.14); transform: rotate(2deg); }.coverage-top { display: flex; align-items: end; justify-content: space-between; }.coverage-top span { color: #716982; font-size: 11px; font-weight: 700; }.coverage-top strong { font-size: 31px; }.coverage-line { display: grid; margin: 20px 0; grid-template-columns: max-content repeat(5,1fr) max-content; align-items: center; gap: 4px; color: #8a8296; font-size: 8px; }.coverage-line i { height: 13px; border-radius: 4px; background: #ffddd0; }.coverage-line i.full { background: #64d5b2; }.coverage-line i.partial { background: #ffd56f; }.coverage-callout { display: grid; padding: 13px; grid-template-columns: 1fr auto; gap: 2px 10px; border-radius: 12px; background: #fff7e1; }.coverage-callout b { font-size: 11px; }.coverage-callout span { color: #7d725f; font-size: 9px; }.coverage-callout button { grid-column: 2; grid-row: 1 / 3; min-height: 30px; border: 0; border-radius: 8px; color: #fff; background: #282039; font-size: 8px; }
.publish-visual { position: absolute; right: 28px; bottom: 30px; left: 28px; display: flex; align-items: center; justify-content: center; gap: 8px; }.publish-visual span { padding: 9px 12px; border-radius: 10px; color: #766c5b; background: rgba(255,255,255,.65); font-size: 10px; font-weight: 720; }.publish-visual span.active { color: #fff; background: #f0924c; box-shadow: 0 10px 20px rgba(219,126,54,.22); }.publish-visual i { width: 18px; height: 1px; background: rgba(89,75,50,.25); }
.phone-mini { position: absolute; right: 30px; bottom: -20px; left: 30px; padding: 24px 19px 34px; border: 7px solid #fff; border-bottom: 0; border-radius: 27px 27px 0 0; background: #fbfffd; box-shadow: 0 -3px 35px rgba(31,102,80,.11); }.phone-mini div { display: grid; gap: 5px; }.phone-mini small { color: #42a989; font-size: 8px; font-weight: 820; letter-spacing: .08em; }.phone-mini strong { font-size: 16px; }.phone-mini span { color: #6f817a; font-size: 9px; }.phone-mini button { width: 100%; margin-top: 16px; border: 0; color: #176e57; background: #dff8ef; font-size: 9px; }
.metric-visual { align-self: stretch; padding: 30px; border-radius: 22px; background: #352c48; }.metric-bars { display: flex; height: 190px; align-items: end; gap: 10px; }.metric-bars i { width: 100%; height: var(--h); border-radius: 8px 8px 3px 3px; background: linear-gradient(#9f88ff,#7556ed); box-shadow: 0 0 20px rgba(126,95,246,.13); }.metric-bars i:nth-child(5),.metric-bars i:nth-child(7) { background: linear-gradient(#6be1bd,#35b890); }.metric-caption { display: flex; margin-top: 18px; align-items: center; justify-content: space-between; color: #aaa1b8; font-size: 11px; }.metric-caption strong { color: #79e2c1; font-size: 14px; }

.product-tour-section { width: 100%; padding: 0; color: #fff; background: #282039; }
.product-tour-shell { width: min(1180px,calc(100% - 48px)); margin: 0 auto; padding: 120px 0; }
.section-heading.light .section-kicker { color: #b7a6ff; }.section-heading.light > p:not(.section-kicker) { margin-left: 0; color: #bdb5c9; }.section-heading.light h2 em { color: #a88fff; }
.tour-tabs { display: flex; margin: 50px 0 24px; gap: 8px; flex-wrap: wrap; }.tour-tabs button { min-height: 45px; padding: 0 18px; border: 1px solid rgba(255,255,255,.13); border-radius: 13px; color: #bbb2c7; background: transparent; }.tour-tabs button:hover { color: #fff; filter: none; }.tour-tabs button.active { border-color: #9177ff; color: #fff; background: #7657ff; }
.tour-stage { min-height: 470px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 28px; background: #332b45; box-shadow: 0 25px 70px rgba(0,0,0,.22); }.tour-panel { display: grid; min-height: 470px; padding: 52px; grid-template-columns: .62fr 1.38fr; align-items: center; gap: 55px; }.tour-panel.active { animation: panel-in .45s ease-out both; }.tour-copy > span { color: #a993ff; font-size: 12px; font-weight: 850; letter-spacing: .12em; }.tour-copy h3 { margin: 15px 0; font-size: clamp(1.8rem,3vw,2.8rem); line-height: 1.05; letter-spacing: -.05em; }.tour-copy p { margin: 0; color: #bdb5c9; line-height: 1.65; }
.tour-ui { min-height: 330px; padding: 25px; border: 1px solid #e6e0ed; border-radius: 20px; color: var(--marketing-ink); background: #fbfafc; box-shadow: 0 25px 50px rgba(0,0,0,.23); }.tour-ui-head { display: grid; padding-bottom: 18px; grid-template-columns: 1fr auto; gap: 4px; align-items: center; border-bottom: 1px solid #ebe6ef; }.tour-ui-head strong { font-size: 18px; }.tour-ui-head span { grid-row: 2; color: #837b8d; font-size: 10px; }.tour-ui-head button { grid-column: 2; grid-row: 1 / 3; }
.tour-rows { display: grid; gap: 11px; margin-top: 17px; }.tour-rows > div { display: grid; min-height: 62px; padding: 11px; grid-template-columns: 80px 1fr 1fr; align-items: center; gap: 8px; border: 1px solid #eeeaf1; border-radius: 11px; background: #fff; }.tour-rows b { font-size: 10px; }.tour-shift { padding: 10px; border-left: 3px solid; border-radius: 6px; font-size: 9px; font-weight: 720; }.tour-shift.violet { color: #593fc1; border-color: #7a5ef1; background: #eeeaff; }.tour-shift.teal { color: #14715a; border-color: #44c8a2; background: #e0f8f1; }.tour-shift.orange { color: #a65320; border-color: #f09a62; background: #fff0e7; }
.coverage-tour-ui { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 28px; }.coverage-score { display: grid; justify-items: center; }.coverage-score span { color: #81788c; font-size: 11px; }.coverage-score strong { margin: 5px 0; color: var(--marketing-purple); font-size: 68px; letter-spacing: -.07em; }.coverage-score small { color: #159b73; }.coverage-days { display: flex; height: 230px; align-items: end; justify-content: space-between; gap: 12px; }.coverage-days div { display: grid; height: 100%; flex: 1; grid-template-rows: 20px 1fr 20px; gap: 7px; text-align: center; }.coverage-days b,.coverage-days span { color: #81788c; font-size: 9px; }.coverage-days i { position: relative; overflow: hidden; border-radius: 9px; background: #eeeaf3; }.coverage-days i::after { content: ""; position: absolute; inset: auto 0 0; height: var(--fill); border-radius: inherit; background: linear-gradient(#9f89ff,#7052e9); }
.team-tour-ui { display: grid; align-content: center; gap: 20px; }.team-person { display: flex; padding: 19px; align-items: center; gap: 12px; border: 1px solid #ece7f0; border-radius: 14px; background: #fff; }.team-person > i { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 14px; color: #176b5b; background: #d3f6ec; font-size: 11px; font-style: normal; font-weight: 800; }.team-person > span { display: grid; flex: 1; gap: 3px; }.team-person small { color: #847c8f; }.team-person > b { padding: 7px 9px; border-radius: 999px; color: #117556; background: #e0f8ef; font-size: 9px; }.team-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.team-actions span { display: grid; min-height: 100px; padding: 16px 10px; place-items: center; gap: 8px; border: 1px solid #ece7f0; border-radius: 13px; background: #fff; font-size: 9px; text-align: center; }.team-actions i { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; color: var(--marketing-purple); background: #eeeaff; font-style: normal; }
.impact-tour-ui{display:grid;align-content:center;gap:13px}.impact-tour-head{display:grid;margin-bottom:3px;gap:3px}.impact-tour-head>span{color:#c94426;font-size:9px;font-weight:850;letter-spacing:.1em}.impact-tour-head>strong{color:#2d1934;font-size:25px;letter-spacing:-.04em}.impact-tour-head>small{color:#847c8f}.impact-tour-stats{display:grid;margin-bottom:7px;grid-template-columns:repeat(3,1fr);gap:9px}.impact-tour-stats>span{display:grid;padding:11px;border:1px solid #ece7f0;border-radius:11px;background:#fff;gap:2px}.impact-tour-stats b{color:#2d1934;font-size:18px}.impact-tour-stats small{color:#847c8f;font-size:8px}.impact-tour-program{display:grid;grid-template-columns:minmax(130px,.8fr) 1.2fr;align-items:center;gap:12px}.impact-tour-program>span{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#2d1934;font-size:9px}.impact-tour-program small{color:#847c8f}.impact-tour-program>i{position:relative;height:8px;overflow:hidden;border-radius:999px;background:#eeeaf3}.impact-tour-program>i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--tour-impact);border-radius:inherit;background:linear-gradient(90deg,#c94426,#f4ad18)}

.workflow-section { padding-top: 135px; }
.workflow-grid { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3,1fr); gap: 18px; list-style: none; counter-reset: steps; }.workflow-grid li { position: relative; min-height: 330px; padding: 32px; overflow: hidden; border: 1px solid #eee9f3; border-radius: 24px; background: #fff; box-shadow: 0 13px 35px rgba(50,31,80,.055); }.workflow-grid li::after { content: ""; position: absolute; right: -55px; bottom: -55px; width: 170px; height: 170px; border-radius: 50%; background: #f1edff; }.workflow-grid li:nth-child(2)::after { background: #dff8ef; }.workflow-grid li:nth-child(3)::after { background: #fff0d3; }.workflow-grid li > span { color: #9a91a5; font-size: 11px; font-weight: 850; letter-spacing: .1em; }.workflow-icon { display: grid; width: 62px; height: 62px; margin: 42px 0 28px; place-items: center; border-radius: 19px; color: #fff; background: var(--marketing-purple); box-shadow: 0 12px 25px rgba(118,87,255,.25); font-size: 26px; }.workflow-grid li:nth-child(2) .workflow-icon { color: #11654f; background: #64d5b2; box-shadow: 0 12px 25px rgba(60,190,150,.22); }.workflow-grid li:nth-child(3) .workflow-icon { color: #7c5118; background: #ffd36e; box-shadow: 0 12px 25px rgba(235,179,56,.22); }.workflow-grid h3 { margin: 0 0 11px; font-size: 24px; letter-spacing: -.04em; }.workflow-grid p { position: relative; z-index: 2; margin: 0; color: var(--marketing-muted); line-height: 1.65; }
.built-for-section { display: grid; padding-top: 70px; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 90px; }.built-for-copy h2 { margin: 0; font-size: clamp(2.7rem,4.5vw,4.5rem); line-height: 1.02; letter-spacing: -.06em; }.built-for-copy > p:not(.section-kicker) { margin: 24px 0; color: var(--marketing-muted); line-height: 1.7; }.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--marketing-purple-dark) !important; font-weight: 780; text-decoration: none; }.text-link span { transition: transform .2s; }.text-link:hover span { transform: translateX(4px); }
.audience-stack { display: grid; gap: 10px; }.audience-stack article { display: grid; min-height: 122px; padding: 24px; grid-template-columns: 48px 1fr; align-items: center; gap: 5px 15px; border: 1px solid #eee9f3; border-radius: 20px; background: #fbfaff; transition: transform .2s,border .2s,box-shadow .2s; }.audience-stack article:hover { border-color: #cec1ff; transform: translateX(-7px); box-shadow: 0 14px 30px rgba(63,39,100,.08); }.audience-stack span { grid-row: 1 / 3; color: var(--marketing-purple); font-family: Georgia,serif; font-size: 28px; }.audience-stack strong { font-size: 19px; letter-spacing: -.02em; }.audience-stack small { color: var(--marketing-muted); font-size: 13px; line-height: 1.5; }

.marketing-cta { position: relative; width: min(1180px,calc(100% - 32px)); margin: 30px auto 90px; padding: 105px 24px; overflow: hidden; border-radius: 34px; color: #fff; background: radial-gradient(circle at 50% 120%,#ef9a74,transparent 42%),linear-gradient(135deg,#0f6b5e,#168675 58%,#df765e); box-shadow: 0 30px 75px rgba(29,111,96,.26); text-align: center; }.marketing-cta::before,.marketing-cta::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; }.marketing-cta::before { inset: -230px auto auto -100px; width: 520px; height: 520px; }.marketing-cta::after { right: -120px; bottom: -280px; width: 600px; height: 600px; }.marketing-cta p { position: relative; z-index: 2; margin: 0 0 14px; color: #fff; font-size: 12px; font-weight: 820; letter-spacing: .13em; text-transform: uppercase; }.marketing-cta h2 { position: relative; z-index: 2; margin: 0; font-size: clamp(3rem,6vw,6.1rem); line-height: .94; letter-spacing: -.068em; }.marketing-button-light { position: relative; z-index: 2; margin-top: 36px; color: var(--marketing-purple-dark) !important; background: #fff; box-shadow: 0 15px 35px rgba(20,76,66,.2); }.marketing-cta > small { position: relative; z-index: 2; display: block; margin-top: 18px; color: #e8f5f0; font-size: 11px; }.cta-spark { position: absolute; color: rgba(255,255,255,.7); font-size: 42px; animation: sparkle-spin 9s linear infinite; }.cta-spark-one { top: 65px; left: 11%; }.cta-spark-two { right: 12%; bottom: 76px; font-size: 25px; animation-direction: reverse; }
.marketing-footer { display: grid; width: min(1180px,calc(100% - 48px)); margin: 0 auto; padding: 40px 0 55px; grid-template-columns: 1fr auto; align-items: center; gap: 14px 30px; border-top: 1px solid #eee9f3; background: transparent; color: var(--marketing-ink); }.marketing-footer p { grid-column: 1; margin: 0 0 0 43px; color: #8a8294; font-size: 12px; }.marketing-footer > div { display: flex; grid-column: 2; grid-row: 1 / 3; gap: 20px; }.marketing-footer > div a { color: #645c70; font-size: 13px; font-weight: 650; text-decoration: none; }.marketing-footer > div a:hover { color: var(--marketing-purple); }.marketing-footer > small { grid-column: 1 / -1; margin-top: 25px; color: #6d6576; font-size: 11px; }

[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .75s cubic-bezier(.2,.8,.2,1),transform .75s cubic-bezier(.2,.8,.2,1); }.hero-product[data-reveal] { transform: translateY(24px) scale(.97); }.is-visible[data-reveal] { opacity: 1; transform: none; }.feature-grid [data-reveal]:nth-child(2),.workflow-grid [data-reveal]:nth-child(2) { transition-delay: .08s; }.feature-grid [data-reveal]:nth-child(3),.workflow-grid [data-reveal]:nth-child(3) { transition-delay: .16s; }
@keyframes hero-float { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(-16px,18px,0) scale(1.04); } }
@keyframes note-float { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-9px) rotate(1deg); } }
@keyframes sparkle-spin { to { transform: rotate(360deg); } }
@keyframes signal-scroll { to { transform: translateX(-50%); } }
@keyframes panel-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width:1100px) {
  .marketing-hero { min-height: auto; padding-top: 150px; grid-template-columns: 1fr; gap: 68px; }
  .hero-copy { max-width: 800px; text-align: center; justify-self: center; }.hero-kicker { justify-content: center; }.hero-lede { margin-right: auto; margin-left: auto; }.hero-actions,.hero-proof { justify-content: center; }
  .hero-product { width: min(720px,100%); margin: 0 auto; }.product-window { width: 100%; transform: none; }.floating-note-coverage { right: -10px; }.floating-note-update { left: -15px; }
  .feature-card-lavender { grid-template-columns: 1fr 1fr; }
  .built-for-section { gap: 50px; }
}
@media (max-width:820px) {
  .marketing-header { border-radius: 17px; }.marketing-menu-toggle { display: block; }.marketing-nav { position: absolute; top: calc(100% + 8px); right: 0; left: 0; display: none; padding: 12px; align-items: stretch; flex-direction: column; border: 1px solid #ebe5f2; border-radius: 17px; background: rgba(255,255,255,.98); box-shadow: 0 20px 45px rgba(55,36,85,.15); }.marketing-nav.open { display: flex; }.marketing-nav a { justify-content: center; }.marketing-nav .marketing-login,.marketing-nav .marketing-nav-cta { margin-left: 0; }
  .marketing-hero { padding-right: 24px; padding-left: 24px; }.product-window-body { grid-template-columns: 44px 1fr; }.mock-dashboard { padding: 18px; }.mock-sidebar { padding-right: 7px; padding-left: 7px; }.mock-stats { grid-template-columns: repeat(3,1fr); }.mock-calendar { grid-template-columns: 88px repeat(5,1fr); }
  .signal-strip { grid-template-columns: 1fr; gap: 13px; }.signal-strip > p { padding: 0 24px; text-align: center; }
  .feature-grid { grid-template-columns: 1fr; }.feature-card-wide { grid-column: auto; }.feature-card-lavender,.feature-card-ink { grid-template-columns: 1fr; }.feature-card-lavender { min-height: 600px; }.coverage-visual { max-width: 480px; }.feature-card-ink { gap: 25px; }
  .tour-panel { padding: 34px; grid-template-columns: 1fr; gap: 30px; }.tour-ui { min-height: 300px; }.workflow-grid { grid-template-columns: 1fr; }.workflow-grid li { min-height: 270px; }.workflow-icon { margin: 30px 0 22px; }
  .built-for-section { grid-template-columns: 1fr; }.marketing-footer { grid-template-columns: 1fr; text-align: center; }.marketing-footer .marketing-brand { justify-content: center; }.marketing-footer p { margin-left: 0; }.marketing-footer > div { grid-column: 1; grid-row: auto; justify-content: center; flex-wrap: wrap; }
}
@media (max-width:560px) {
  .marketing-header { top: 8px; width: calc(100% - 16px); min-height: 60px; padding-left: 14px; }.marketing-brand { font-size: 15px; }.marketing-brand-mark { width: 29px; height: 29px; flex-basis: 29px; }.marketing-brand-mark i { width: 12px; height: 12px; }
  .marketing-hero { padding: 128px 16px 70px; gap: 52px; }.hero-copy h1 { font-size: clamp(3rem,15vw,4.2rem); }.hero-lede { margin-top: 25px; font-size: 16px; }.hero-actions { flex-direction: column; }.hero-actions .marketing-button { width: 100%; }.hero-proof { gap: 9px 14px; }
  .product-window { border-radius: 15px; }.product-window-body { min-height: 360px; grid-template-columns: 34px 1fr; }.product-window-bar { height: 39px; padding: 0 10px; }.window-title { font-size: 8px; }.window-dots,.window-live { width: 48px; }.mock-sidebar { gap: 10px; }.mock-sidebar > i { width: 20px; height: 20px; border-radius: 6px; }.mock-logo { margin: -2px 0 8px; transform: scale(.52); }.mock-dashboard { padding: 12px; }.mock-heading strong { font-size: 14px; }.mock-heading button { min-height: 26px; padding: 5px 7px; font-size: 7px; }.mock-stats { margin: 12px 0 10px; gap: 5px; }.mock-stats article { padding: 7px; }.mock-stats strong { font-size: 13px; }.mock-stats span,.mock-stats i { font-size: 6px; }.mock-calendar { grid-template-columns: 62px repeat(5,1fr); font-size: 6px; }.mock-calendar > * { min-height: 36px; padding: 3px; }.avatar { width: 18px; height: 18px; flex-basis: 18px; font-size: 5px; }.shift { min-height: 28px; margin: 2px; padding: 4px 2px; border-left-width: 2px; font-size: 6px; }.calendar-name { gap: 3px; }.floating-note { min-width: 0; padding: 9px; }.floating-note strong { font-size: 8px; }.floating-note small { font-size: 7px; }.floating-note-coverage { right: -4px; bottom: 20px; }.floating-note-update { top: 48px; left: -2px; }.note-icon { width: 25px; height: 25px; }.avatar-stack { width: 54px; }.avatar-stack i { width: 24px; height: 24px; font-size: 5px; }
  .marketing-section,.product-tour-shell { width: calc(100% - 28px); padding: 88px 0; }.section-heading.centered { margin-bottom: 38px; }.section-heading h2 { font-size: 2.65rem; }.section-heading > p:not(.section-kicker) { font-size: 15px; }
  .feature-card { min-height: 360px; padding: 25px; border-radius: 21px; }.feature-card-lavender { min-height: 570px; }.feature-card h3 { font-size: 1.65rem; }.feature-card-ink { gap: 20px; }.metric-visual { padding: 19px; }.metric-bars { height: 150px; gap: 6px; }
  .product-tour-shell { width: calc(100% - 28px); }.tour-tabs { display: grid; grid-template-columns: repeat(2,1fr); }.tour-tabs button { padding: 0 7px; font-size: 11px; }.tour-stage,.tour-panel { min-height: 0; }.tour-panel { padding: 24px; }.tour-ui { min-height: 260px; padding: 15px; }.tour-rows > div { min-height: 52px; grid-template-columns: 58px 1fr 1fr; }.coverage-tour-ui { grid-template-columns: 1fr; }.coverage-score strong { font-size: 48px; }.coverage-days { height: 135px; }.team-actions { grid-template-columns: 1fr; }.team-actions span { min-height: 65px; grid-template-columns: 30px 1fr; text-align: left; }.impact-tour-stats{grid-template-columns:1fr}.impact-tour-program{grid-template-columns:1fr}.impact-tour-ui{min-height:360px}
  .workflow-grid li { padding: 26px; }.built-for-section { padding-top: 20px; gap: 48px; }.audience-stack article { padding: 19px; grid-template-columns: 38px 1fr; }.audience-stack span { font-size: 23px; }
  .marketing-cta { width: calc(100% - 16px); margin-bottom: 60px; padding: 75px 18px; border-radius: 25px; }.marketing-cta h2 { font-size: 3.2rem; }.marketing-cta > small { line-height: 1.6; }.marketing-footer { width: calc(100% - 32px); }
}
@media (prefers-reduced-motion:reduce) {
  .marketing-page * { scroll-behavior: auto !important; }
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  .hero-orb,.floating-note,.hero-kicker span,.signal-track,.cta-spark,.loading-mark { animation: none; }
}

@media print {
  :root, :root[data-theme="dark"] { color-scheme: light; }
  body { background: white; color: #111827; }
  header, nav, .page-heading, .schedule-controls, #generateMessage, .panel-title .panel-actions, #ganttView, #scheduledActualView, .schedule-metrics { display: none !important; }
  main { max-width: none; padding: 0; }
  .tab { display: none !important; }
  #dashboard { display: block !important; }
  #dashboard > .panel { border: 0; padding: 0; box-shadow: none; }
  .spreadsheet-wrap { max-height: none; overflow: visible; border: 0; }
  .schedule-spreadsheet { min-width: 0; font-size: 9px; }
  .schedule-spreadsheet th, .schedule-spreadsheet td { position: static !important; min-width: 0 !important; padding: 5px 4px; background: white !important; box-shadow: none !important; }
  .spreadsheet-input-cell input, .spreadsheet-input-cell select { min-height: 0; padding: 0; border: 0; color: #111827; background: transparent; appearance: none; }
  .spreadsheet-summary { break-inside: avoid; }
  .schedule-editor-day, .schedule-editor-shift { break-inside: avoid; box-shadow: none; }
  .schedule-editor-add { display: none; }
}

/* Account management and team self-service portal */
.access-link-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}
.access-link-form label{flex:1;min-width:240px}
.account-invitation-form{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(210px,1fr) minmax(240px,1.3fr) auto;gap:12px;align-items:end}
.invitation-result{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.4fr) auto;gap:12px;align-items:center;margin-top:16px;padding:14px;border:1px solid var(--covered-border);border-radius:9px;background:var(--covered-bg)}
.invitation-result[hidden]{display:none}.invitation-result strong,.invitation-result small{display:block}.invitation-result small{margin-top:3px;color:var(--muted)}.invitation-result input{min-width:0}
.responsive-card-table td small{display:block;margin-top:3px;color:var(--muted)}
.invite-shell .auth-card{display:flex;min-height:520px;flex-direction:column;justify-content:center}
.invite-shell .auth-invite-note a{color:var(--primary);font-weight:750}
.link-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.team-admin-card{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
.team-admin-card:first-child{margin-top:0;padding-top:0;border-top:0}
.team-admin-card .link-actions{margin-bottom:12px}
button.leadership-card,button.org-person-card{font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
button.leadership-card:hover,button.org-person-card:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary-soft) 58%,var(--surface));box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 14%,transparent);transform:translateY(-2px);filter:none}
button.leadership-card:focus-visible,button.org-person-card:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 34%,transparent);outline-offset:3px}
.button-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-weight:650;text-decoration:none;white-space:nowrap}
.button-link:hover{border-color:var(--primary);color:var(--primary)}
.access-landing{min-height:100vh;background:radial-gradient(circle at 12% 12%,rgba(228,87,50,.16),transparent 30%),radial-gradient(circle at 88% 80%,rgba(244,173,24,.14),transparent 34%),var(--bg)}
.access-landing-main{min-height:100vh;display:grid;place-items:center;padding:24px}
.access-landing-card{max-width:560px;text-align:center;padding:44px}
.access-landing-card h1{font-size:2rem;margin:6px 0 12px}
.access-landing-card>p{font-size:1.05rem;line-height:1.65;color:var(--muted)}
.access-landing-icon{display:block;width:70px;height:78px;object-fit:contain}
.auth-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);width:min(100%,980px);overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 28px 80px rgba(15,23,42,.14)}
.auth-intro{display:flex;flex-direction:column;justify-content:center;min-height:610px;padding:58px;color:#fff8fb;background:radial-gradient(circle at 15% 12%,rgba(244,173,24,.26),transparent 34%),linear-gradient(145deg,#2c1634 0%,#4b203e 66%,#c94426 150%)}
.auth-back-link{align-self:flex-start;margin-bottom:38px;color:#ffe1d6;font-size:12px;font-weight:750;text-decoration:none}
.auth-back-link:hover{color:#fff}
.auth-intro .access-landing-icon{margin-bottom:20px}
.auth-eyebrow{margin:0 0 9px;color:#ffd8ca;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.auth-intro h1{max-width:500px;margin:0;font-size:clamp(2rem,4vw,3.15rem);line-height:1.04;letter-spacing:-.045em}
.auth-intro>p:not(.auth-eyebrow){max-width:520px;margin:22px 0;color:#cbd5e1;font-size:16px;line-height:1.7}
.auth-benefits{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none;color:#e2e8f0}
.auth-benefits li{display:flex;align-items:center;gap:10px}
.auth-benefits li::before{content:'✓';display:grid;place-items:center;width:22px;height:22px;border-radius:999px;color:#fff;background:rgba(255,255,255,.17);font-size:12px;font-weight:900}
.auth-card{align-self:center;padding:44px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:32px;padding:4px;border-radius:9px;background:var(--surface-subtle)}
.auth-tabs button{border:0;background:transparent;color:var(--muted);box-shadow:none}
.auth-tabs button.active{color:var(--primary-strong);background:var(--surface);box-shadow:var(--shadow)}
.auth-panel h2{margin:0;font-size:26px;letter-spacing:-.025em}
.auth-panel>p{margin:7px 0 24px;color:var(--muted)}
.auth-form{display:grid;gap:16px}
.auth-form input{min-height:44px}
.auth-form button{min-height:44px;margin-top:3px}
.auth-form+small,.auth-form small{color:var(--muted)}
.auth-google-option{display:grid;gap:16px;margin:0 0 18px}
.auth-form .auth-google-option{margin:0}
.auth-google-button{display:flex;min-height:44px;align-items:center;justify-content:center}
.auth-google-button>div,.auth-google-button iframe{max-width:100%}
.auth-google-gate{width:100%;min-height:44px!important;margin:0!important;border:1px solid var(--border);color:var(--muted);background:var(--surface-subtle);box-shadow:none;cursor:not-allowed}
.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.auth-divider::before,.auth-divider::after{content:'';height:1px;flex:1;background:var(--border-soft)}
.auth-error{margin:18px 0 0;padding:11px 12px;border:1px solid var(--uncovered-border);border-radius:8px;color:var(--uncovered);background:var(--uncovered-bg)}
.auth-invite-note{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--border-soft);color:var(--muted);font-size:12px;line-height:1.55}
.fellow-tab{display:none}
.fellow-tab.active{display:block}
.clock-card{display:grid;min-height:240px;padding:28px;grid-template-columns:minmax(0,1fr) minmax(250px,360px);align-items:center;gap:28px;border-color:var(--primary-border);background:radial-gradient(circle at 92% 12%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 42%),var(--surface)}
.clock-state-copy{display:grid;gap:7px}.clock-state-copy h3{margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1;letter-spacing:-.05em}.clock-state-copy p{margin:4px 0 0;color:var(--muted);font-size:15px}
.clock-kicker{width:max-content;padding:6px 10px;border-radius:999px;color:var(--muted-strong);background:var(--surface-subtle);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.clock-kicker.working{color:var(--primary-strong);background:var(--primary-soft)}.clock-kicker.break{color:var(--partial);background:var(--partial-bg)}
.clock-actions{display:grid;gap:12px}.clock-actions label{display:grid;gap:6px;color:var(--muted-strong);font-size:12px;font-weight:750}.clock-actions select{min-height:48px}.clock-primary{min-height:58px;font-size:17px}.clock-actions-split{grid-template-columns:1fr 1.4fr}.clock-actions-split button{min-height:58px}.clock-actions small{color:var(--muted);text-align:center}
.clock-recent{margin-top:18px}.clock-recent .panel-title>strong{font-size:20px;font-variant-numeric:tabular-nums}.clock-entry-list{display:grid;gap:9px}.clock-entry{display:flex;padding:13px 14px;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface-subtle)}.clock-entry>div{display:grid;gap:3px}.clock-entry>div:last-child{justify-items:end}.clock-entry span:not(.badge),.clock-entry small{color:var(--muted);font-size:12px}.clock-help{display:flex;margin:2px 4px 24px;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.clock-help button{flex:0 0 auto}
.portal-impact-card{margin-top:18px;overflow:hidden;border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:radial-gradient(circle at 95% 8%,color-mix(in srgb,#f4ad18 18%,transparent),transparent 38%),linear-gradient(135deg,var(--primary-soft),var(--surface) 62%)}.portal-impact-form{display:grid;gap:18px}.portal-impact-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.portal-impact-heading span:first-child{display:block;margin-bottom:5px;color:var(--primary);font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.portal-impact-heading h3{margin:0 0 5px;font-size:20px}.portal-impact-heading p{max-width:680px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.portal-impact-spark{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,var(--primary),#f4ad18);font-size:18px;box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 22%,transparent)}.portal-impact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-impact-fields label,.portal-impact-note{display:grid;gap:5px;color:var(--text);font-size:12px;font-weight:750}.portal-impact-fields label>small,.portal-impact-note small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.4}.portal-impact-fields input,.portal-impact-note textarea{width:100%;background:var(--surface)}.portal-impact-note textarea{resize:vertical}.portal-impact-actions{display:flex;justify-content:flex-end;gap:9px}.impact-report-later{min-height:26px;margin-top:3px;padding:3px 7px;border-color:transparent;background:transparent;color:var(--primary-strong);font-size:10px}.impact-report-later:hover{border-color:var(--border);background:var(--surface)}
.portal-impact-pending{margin-top:18px}.impact-pending-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:11px 12px;border:1px solid #f0c9b9;border-radius:12px;background:var(--surface-warm);color:var(--primary-strong)}.impact-pending-error span{font-size:.84rem;line-height:1.4}.impact-pending-error button{min-height:40px;white-space:nowrap}.impact-pending-list{display:grid;gap:8px}.impact-pending-list article{display:flex;padding:12px 13px;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface-subtle)}.impact-pending-list article>div{display:grid;gap:3px}.impact-pending-list article span{color:var(--muted);font-size:11px}.impact-pending-list button{flex:0 0 auto;color:var(--primary-strong)}
.fellow-week-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.fellow-week-controls label{min-width:180px}
.fellow-week-controls .badge{margin-left:auto}
.fellow-event-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.fellow-event-list article{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}
.fellow-event-list span,.fellow-event-list small{color:var(--muted)}
.fellow-schedule-table tr.my-shift td{background:color-mix(in srgb,var(--primary) 10%,var(--surface))}
.fellow-schedule-cards{display:none}
.fellow-shift-card{min-width:0;padding:14px;border:1px solid var(--border);border-left:4px solid var(--assignment-border);border-radius:9px;background:var(--surface-subtle)}
.fellow-shift-card.my-shift{border-left-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.fellow-shift-card-heading{display:grid;gap:3px;padding-bottom:11px;border-bottom:1px solid var(--border-soft)}
.fellow-shift-card-heading time{color:var(--muted-strong);font-size:13px;font-weight:700}
.fellow-shift-card-heading strong{font-size:19px;line-height:1.25}
.fellow-shift-card dl{display:grid;gap:8px;margin:11px 0 0}
.fellow-shift-card dl div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:9px;align-items:start}
.fellow-shift-card dt{color:var(--muted);font-size:11px;font-weight:750}
.fellow-shift-card dd{min-width:0;margin:0;overflow-wrap:anywhere}
.fellow-forms-control{display:flex;min-width:182px;align-items:center;gap:10px;flex-wrap:wrap}
.fellow-forms-control>span{color:var(--muted-strong);font-size:11px;white-space:nowrap}
.fellow-forms-control>span strong{color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}
.fellow-forms-control button{min-height:34px;padding:7px 10px;font-size:11px}
.form-count-dialog{width:min(480px,calc(100vw - 28px))}
.form-count-dialog form{gap:16px}
.form-count-shift{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle)}
.form-count-shift span{color:var(--muted);font-size:12px;font-weight:700}
.form-count-dialog input{font-size:22px;font-weight:750;font-variant-numeric:tabular-nums}
.form-count-result{display:grid;justify-items:center;gap:5px;padding:18px 14px;border:1px solid;border-radius:12px;text-align:center;overflow:hidden}
.form-count-result[hidden]{display:none}
.form-count-result.celebration{border-color:var(--covered-border);background:var(--covered-bg);color:var(--covered)}
.form-count-result.encouragement{border-color:var(--partial-border);background:var(--partial-bg);color:var(--partial)}
.form-count-result strong{font-size:17px}
.form-count-result p{margin:0;color:currentColor;font-size:12px}
.form-count-graphic{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;font-size:22px}
.form-count-graphic b{font-size:38px;line-height:1;animation:form-count-pop .5s cubic-bezier(.2,.85,.3,1.3)}
.form-count-graphic span{animation:form-count-sparkle .9s ease-in-out both}
.form-count-graphic span:last-child{animation-delay:.12s}
@keyframes form-count-pop{from{opacity:0;transform:scale(.35) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes form-count-sparkle{0%{opacity:0;transform:translateY(8px) scale(.5)}55%{opacity:1;transform:translateY(-4px) scale(1.2)}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.form-count-graphic b,.form-count-graphic span{animation:none}}
.fellow-portal main{max-width:1200px}
.fellow-availability-editor .availability-toolbar{margin-top:0}

@media (max-width:700px){
  .clock-card{min-height:0;padding:20px;grid-template-columns:1fr;gap:24px}.clock-state-copy h3{font-size:2.4rem}.clock-actions-split{grid-template-columns:1fr}.clock-primary,.clock-actions-split button{min-height:52px}.clock-entry{align-items:flex-start}.clock-entry>div:last-child{justify-items:end;text-align:right}.clock-help{align-items:stretch;flex-direction:column}.clock-help button{width:100%}.portal-impact-card{padding:18px}.portal-impact-fields{grid-template-columns:1fr}.portal-impact-actions{display:grid;grid-template-columns:1fr 1fr}.portal-impact-actions button{min-height:48px}.impact-pending-list article{align-items:stretch;flex-direction:column}.impact-pending-list button{width:100%;min-height:44px}
  .access-landing-card{padding:28px 20px}
  .access-landing-main{padding:0}
  .auth-shell{grid-template-columns:1fr;min-height:100vh;border:0;border-radius:0}
  .auth-intro{min-height:auto;padding:32px 24px}
  .auth-intro h1{font-size:2rem}
  .auth-intro>p:not(.auth-eyebrow),.auth-benefits{display:none}
  .auth-card{padding:32px 24px}
  .fellow-week-controls .badge{margin-left:0}
  .fellow-schedule-desktop{display:none}
  .fellow-schedule-cards{display:grid;gap:10px;min-width:0}
  .link-actions{min-width:0}
}

/* Manager workspace: framed dashboard shell inspired by the reference UI. */
.manager-portal {
  --bg: #fff7f2;
  --surface-subtle: #fffaf7;
  --border: #e8dcd8;
  --border-soft: #f2e7e3;
  --primary: #c94426;
  --primary-strong: #9b2e1b;
  --primary-soft: #fff0e9;
  --primary-border: #f0b6a5;
  --shadow: 0 3px 12px rgba(66, 32, 55, .055);
  --workspace-gutter: 24px;
  position: relative;
  width: 100%;
  height: 100dvh;
  min-height: 600px;
  margin: 0;
  overflow: hidden;
  border-radius: 0;
  background: var(--bg);
  box-shadow: none;
  isolation: isolate;
}

html:has(.manager-portal) {
  min-height: 100%;
  background: var(--bg);
}

:root[data-theme="dark"]:has(.manager-portal) {
  background: var(--bg);
}

:root[data-theme="dark"] .manager-portal {
  --bg: #160e19;
  --surface-subtle: #2b1b2e;
  --border: #503650;
  --border-soft: #3b293e;
  --primary: #ff7955;
  --primary-strong: #ffa186;
  --primary-soft: #482334;
  --primary-border: #7b3d49;
}

.manager-portal > header {
  position: absolute;
  top: 0;
  right: 0;
  left: 220px;
  z-index: 40;
  height: 64px;
  min-height: 64px;
  padding: 9px var(--workspace-gutter);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 97%, transparent);
  color: var(--text);
  backdrop-filter: blur(12px);
}

.topbar-leading { display: flex; min-width: 0; flex: 1; align-items: center; gap: 18px; }
.topbar-context { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.topbar-context span { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.topbar-context strong { font-size: 15px; }
.workspace-search-wrap { position: relative; width: min(470px, 48vw); }
.workspace-search { position: relative; display: block; color: var(--muted); }
.workspace-search svg { position: absolute; top: 50%; left: 13px; z-index: 2; width: 17px; height: 17px; transform: translateY(-50%); fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.workspace-search input { width: 100%; height: 40px; padding: 8px 74px 8px 40px; border-color: var(--border); border-radius: 8px; background: var(--surface-subtle); font-size: 12px; font-weight: 500; }
.workspace-search input::placeholder { color: color-mix(in srgb, var(--muted) 78%, transparent); }
.workspace-search input:focus { border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 13%, transparent); outline: 0; }
.workspace-search kbd { position: absolute; top: 50%; right: 10px; padding: 3px 6px; transform: translateY(-50%); border: 1px solid var(--border); border-radius: 5px; color: var(--muted); background: var(--surface); font: 600 9px/1.2 inherit; }
.workspace-search-results { position: absolute; top: calc(100% + 7px); right: 0; left: 0; z-index: 80; overflow: hidden; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); box-shadow: 0 18px 45px rgba(15, 23, 42, .18); }
.workspace-search-results button { display: grid; width: 100%; padding: 10px 12px; gap: 1px; border: 0; border-bottom: 1px solid var(--border-soft); border-radius: 0; background: var(--surface); text-align: left; }
.workspace-search-results button:last-child { border-bottom: 0; }
.workspace-search-results button:hover, .workspace-search-results button:focus { background: var(--primary-soft); filter: none; outline: 0; }
.workspace-search-results button span { color: var(--text); font-size: 12px; }
.workspace-search-results button small { overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.workspace-search-results p { margin: 0; padding: 15px 12px; color: var(--muted); font-size: 12px; text-align: center; }
.manager-portal > header .organization-admin-controls label { gap: 0; color: var(--muted); }
.manager-portal > header .team-switcher-label { display: none; }
.manager-portal > header #teamSwitcher { min-height: 40px; }
.manager-portal > header .admin-badge { color: var(--primary-strong); background: var(--primary-soft); }
.manager-logo { display: block; width: clamp(124px, 12vw, 174px); height: auto; max-height: 44px; flex: 0 0 auto; object-fit: contain; }
.organization-menu{position:relative;min-width:0;flex:0 1 auto}.organization-menu-trigger{display:flex;min-width:150px;max-width:250px;min-height:40px;padding:8px 11px;align-items:center;justify-content:space-between;gap:12px;border-color:var(--border);color:var(--text);background:var(--surface-subtle);font-size:12px;font-weight:750}.organization-menu-trigger:hover,.organization-menu-trigger[aria-expanded="true"]{border-color:var(--primary-border);background:var(--primary-soft);filter:none}.organization-menu-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.organization-menu-chevron{flex:0 0 auto;color:var(--muted);font-size:15px;transition:transform .18s ease}.organization-menu-trigger[aria-expanded="true"] .organization-menu-chevron{transform:rotate(180deg)}.organization-menu-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:110;width:min(270px,calc(100vw - 24px));padding:7px;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--surface);box-shadow:0 18px 48px rgba(31,18,34,.2)}.organization-menu-popover[hidden]{display:none}.organization-menu-popover button{display:flex;width:100%;min-height:41px;padding:9px 10px;align-items:center;gap:10px;border:0;color:var(--text);background:transparent;font-size:12px;font-weight:650;text-align:left}.organization-menu-popover button:hover,.organization-menu-popover button:focus{background:var(--primary-soft);filter:none;outline:0}.organization-menu-popover button>span{display:grid;width:20px;height:20px;place-items:center;color:var(--muted);font-size:15px}.organization-menu-popover button:hover>span,.organization-menu-popover button:focus>span{color:var(--primary)}.organization-account-summary{margin:1px 4px 6px;padding:8px 6px 11px}.organization-account-summary span{font-size:12px}.organization-account-summary small{font-size:10px}

.manager-portal > nav {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 50;
  display: flex;
  width: 220px;
  padding: 0 14px 14px;
  flex-direction: column;
  gap: 4px;
  overflow: hidden;
  border: 0;
  border-right: 1px solid var(--border-soft);
  background: var(--surface);
}

.manager-portal > nav .manager-heading {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  min-height: 86px;
  margin: 0 -2px 8px;
  padding: 19px 8px 10px;
  align-content: center;
  column-gap: 10px;
}

.manager-portal > nav .manager-heading h1 {
  align-self: end;
  min-width: 0;
  margin: 0;
  overflow: visible;
  color: var(--text);
  font-size: 16px;
  letter-spacing: -.02em;
  line-height: 1.08;
  white-space: normal;
}

.manager-portal > nav .manager-heading p {
  min-width: 0;
  margin: 1px 0 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.brand-mark {
  grid-row: 1 / 3;
  width: 30px;
  height: 34px;
  align-self: center;
  object-fit: contain;
}

.manager-portal > nav .primary-tablist {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.manager-portal > nav .primary-tablist > button[data-tab] {
  position: relative;
  display: flex;
  min-height: 42px;
  padding: 9px 11px;
  align-items: center;
  gap: 11px;
  flex: 0 0 auto;
  border: 0;
  border-radius: 8px;
  color: var(--muted-strong);
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
}

.manager-portal > nav .primary-tablist > button[data-tab]::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: var(--muted);
  background: currentColor;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: 18px;
}
.manager-portal > nav .primary-tablist > button[data-tab="dashboard"]::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3.5' y='3.5' width='6.5' height='6.5' rx='1'/%3E%3Crect x='14' y='3.5' width='6.5' height='6.5' rx='1'/%3E%3Crect x='3.5' y='14' width='6.5' height='6.5' rx='1'/%3E%3Crect x='14' y='14' width='6.5' height='6.5' rx='1'/%3E%3C/g%3E%3C/svg%3E"); }
.manager-portal > nav .primary-tablist > button[data-tab="impact"]::before { content: "✦"; mask-image: none; background: none; font-size: 18px; }
.manager-portal > nav .primary-tablist > button[data-tab="timeLeave"]::before { content: "◷"; mask-image: none; background: none; font-size: 20px; }
.manager-portal > nav .primary-tablist > button[data-tab="people"]::before { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='8' r='3.5'/%3E%3Cpath d='M5.5 21c.4-4.2 2.6-6.5 6.5-6.5s6.1 2.3 6.5 6.5'/%3E%3C/g%3E%3C/svg%3E"); }
.manager-portal > nav .primary-tablist > button[data-tab="settings"]::before { content: "⚙"; mask-image: none; background: none; font-size: 18px; }

.manager-portal > nav .primary-tablist > button[data-tab]:hover { color: var(--text); background: var(--surface-subtle); filter: none; }
.manager-portal > nav .primary-tablist > button[data-tab].active { color: var(--primary-strong); background: var(--primary-soft); }
.manager-portal > nav .primary-tablist > button[data-tab].active::before { color: var(--primary); }

.sidebar-footer {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--border-soft);
}
.account-summary{display:grid;gap:1px;margin:0 10px 8px;padding-bottom:10px;border-bottom:1px solid var(--border-soft);overflow:hidden}
.account-summary span,.account-summary small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-summary span{font-size:12px;font-weight:750}
.account-summary small{color:var(--muted);font-size:10px}
.manager-portal .sidebar-footer .sign-out-button{width:100%;min-height:38px;border:0;color:var(--muted-strong);background:transparent;text-align:left}
.manager-portal .sidebar-footer .sign-out-button::before{content:'↪';display:inline-block;width:25px;color:var(--muted);font-size:17px}
.manager-portal .sidebar-footer .sign-out-button:hover{color:var(--text);background:var(--surface-subtle);filter:none}
.manager-portal .sidebar-footer .theme-toggle {
  width: 100%;
  min-height: 40px;
  border: 0;
  color: var(--muted-strong);
  background: transparent;
  text-align: left;
}
.manager-portal .sidebar-footer .theme-toggle::before { content: "◐"; display: inline-block; width: 25px; color: var(--muted); font-size: 17px; }
.manager-portal .sidebar-footer .theme-toggle:hover { color: var(--text); background: var(--surface-subtle); filter: none; }

.manager-portal > main {
  position: absolute;
  inset: 0 0 0 220px;
  max-width: none;
  margin: 0;
  padding: 90px var(--workspace-gutter) 40px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: color-mix(in srgb, var(--muted) 35%, transparent) transparent;
}
.manager-portal > main > .tab { max-width: 1540px; margin: 0 auto; }
.manager-portal .page-heading { margin: 0 0 20px; }
.manager-portal .page-heading h2 { font-size: 25px; }
.manager-portal .page-heading p { font-size: 13px; }
.workspace-jump-nav{position:static;z-index:auto;display:flex;width:max-content;max-width:100%;margin:-8px 0 18px;padding:4px;gap:3px;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.workspace-jump-nav a{display:block;padding:7px 11px;border-radius:7px;color:var(--muted-strong);font-size:11px;font-weight:750;text-decoration:none;white-space:nowrap}.workspace-jump-nav a:hover,.workspace-jump-nav a:focus-visible{color:var(--primary-strong);background:var(--surface)}#scheduleAssignments,#workedTimeHeading,#leaveRequestsHeading,#peopleDirectory,#peopleAccess{scroll-margin-top:18px}
.workspace-section-heading{display:flex;margin:32px 0 12px;padding:0 2px;align-items:end;justify-content:space-between;gap:18px}.workspace-section-heading:first-child{margin-top:0}.workspace-section-heading span{display:block;margin-bottom:4px;color:var(--primary);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.workspace-section-heading h2{margin:0;font-size:19px;letter-spacing:-.015em}.workspace-section-heading p{max-width:760px;margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.time-comparison-panel>.gantt-legend{padding:0 18px}.time-comparison-panel>#scheduledActualGantt{padding:0 18px 18px}
.manager-portal .panel { border-radius: 10px; box-shadow: var(--shadow); }
.manager-portal button { border-radius: 7px; }
.manager-portal button.primary { box-shadow: 0 1px 2px color-mix(in srgb, var(--primary) 28%, transparent); }

/* These sections stay visible; there is no disclosure or hide/show control. */
.manager-portal .disclosure-panel { overflow: visible; }
.manager-portal .disclosure-panel > .section-heading {
  display: flex;
  width: 100%;
  max-width: none;
  margin: 0;
  min-height: 66px;
  padding: 15px 18px;
  align-items: center;
  border-bottom: 1px solid var(--border);
}
.manager-portal .disclosure-panel > .section-heading span strong,
.manager-portal .disclosure-panel > .section-heading span small { display: block; }
.manager-portal .disclosure-panel > .section-heading span strong { font-size: 17px; }
.manager-portal .disclosure-panel > .section-heading span small { margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 400; }
.manager-portal .disclosure-panel > .section-heading + div { padding: 16px 18px 18px; }
.manager-portal .nested-disclosure { margin-top: 18px; border: 1px solid var(--border); border-radius: 9px; }
.manager-portal .schedule-metrics { margin-top: 22px; }
.manager-portal .schedule-metrics > .metrics-content { padding: 18px; }
.impact-page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.impact-page-heading>div:first-child{min-width:0}.manager-portal .impact-page-heading .impact-eyebrow{margin:0 0 5px;color:var(--primary);font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.impact-week-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.impact-week-controls label{min-width:158px;color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.impact-week-controls input{margin-top:4px;color:var(--text);font-size:12px;font-weight:650;letter-spacing:0;text-transform:none}.impact-week-controls button{min-height:38px}.impact-intro{display:flex;margin-bottom:18px;padding:18px 20px;align-items:flex-start;gap:14px;border-color:color-mix(in srgb,var(--primary) 30%,var(--border));background:linear-gradient(120deg,var(--primary-soft),var(--surface) 70%)}.impact-intro-mark{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:10px;color:#fff;background:var(--primary);box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 24%,transparent)}.impact-intro strong{display:block;margin:1px 0 4px;font-size:14px}.impact-intro p{max-width:900px;margin:0;color:var(--muted);font-size:12px;line-height:1.55}.impact-summary{grid-template-columns:repeat(3,minmax(170px,1fr));margin-bottom:18px}.impact-summary .summary-card{min-height:126px}.impact-summary .summary-card:nth-child(1){border-top:3px solid var(--primary)}.impact-summary .summary-card:nth-child(2){border-top:3px solid #7457d9}.impact-summary .summary-card:nth-child(3){border-top:3px solid #e3a312}.impact-summary .summary-card:nth-child(4){border-top:3px solid var(--covered)}.impact-grid{display:grid;margin-bottom:18px;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px}.impact-grid>.panel{margin:0}.impact-program-list{display:grid;padding:2px 18px 19px;gap:15px}.impact-program-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,2fr) auto;align-items:center;gap:14px}.impact-program-row>div:first-child{display:grid;gap:2px}.impact-program-row small{color:var(--muted);font-size:10px}.impact-program-row>b{min-width:55px;font-size:12px;text-align:right}.impact-program-track{height:9px;overflow:hidden;border-radius:999px;background:var(--surface-subtle)}.impact-program-track i{display:block;width:var(--impact-width);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#f4ad18)}.impact-empty{margin:0 18px 18px}.impact-empty strong,.impact-empty span{display:block}.impact-empty span{margin-top:4px;color:var(--muted);font-size:11px}.impact-week-chart{display:flex;height:220px;padding:8px 20px 20px;align-items:end;justify-content:space-between;gap:9px}.impact-day{display:grid;height:100%;min-width:0;flex:1;grid-template-rows:24px 1fr 22px;align-items:end;gap:5px;text-align:center}.impact-day span{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.impact-day i{position:relative;width:min(28px,70%);height:var(--impact-height);min-height:3px;margin:0 auto;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#f4ad18,var(--primary));box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 13%,transparent)}.impact-day b{color:var(--muted);font-size:9px;text-transform:uppercase}.impact-narrative-panel{display:grid;margin-bottom:18px;padding:18px 20px;grid-template-columns:minmax(170px,.35fr) minmax(0,1fr);align-items:center;gap:24px}.impact-narrative-panel>div{display:flex;align-items:center;gap:10px}.impact-narrative-panel h2{margin:0;font-size:16px}.impact-narrative-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:var(--primary-strong);background:var(--primary-soft);font-weight:900}.impact-narrative-panel p{margin:0;color:var(--muted-strong);font-size:13px;line-height:1.6}.impact-people-panel{margin-bottom:0}.impact-people-panel>#fellowMetricsTable{padding:0 18px 18px}.impact-people-panel .metrics-table{min-width:700px}
.impact-goals-panel{margin-bottom:18px;overflow:hidden}.impact-goals-heading{align-items:center}.impact-section-kicker{display:block;margin-bottom:4px;color:var(--primary);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.impact-goals-layout{display:grid;padding:0 18px 18px;gap:18px}.impact-goals-layout:has(.impact-goal-form:not([hidden])){grid-template-columns:minmax(0,1fr) 310px}.impact-goal-legend{display:flex;margin:1px 0 13px;justify-content:flex-end;gap:15px;color:var(--muted);font-size:9px;font-weight:700}.impact-goal-legend span{display:flex;align-items:center;gap:6px}.impact-goal-legend i.actual{width:18px;height:7px;border-radius:4px;background:linear-gradient(90deg,var(--primary),#f4ad18)}.impact-goal-legend i.target{width:3px;height:11px;border-radius:2px;background:var(--text)}.impact-goal-list{display:grid;gap:10px}.impact-goal-row{display:grid;padding:15px 16px;grid-template-columns:minmax(150px,.75fr) minmax(250px,1.5fr) auto;align-items:center;gap:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle);transition:opacity .2s,border-color .2s}.impact-goal-row:not(.inactive):hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border))}.impact-goal-row.inactive{opacity:.58}.impact-goal-copy{display:grid;min-width:0;gap:2px}.impact-goal-copy>span{overflow:hidden;color:var(--primary-strong);font-size:9px;font-weight:850;letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.impact-goal-copy>strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.impact-goal-copy>small,.impact-goal-visual>small{color:var(--muted);font-size:9px}.impact-goal-numbers{display:flex;margin-bottom:7px;align-items:baseline;justify-content:space-between;gap:12px}.impact-goal-numbers>strong{font-size:13px}.impact-goal-numbers>strong span{color:var(--muted);font-size:10px;font-weight:650}.impact-goal-numbers>b{color:var(--primary-strong);font-size:11px}.impact-goal-track{position:relative;height:11px;margin-bottom:6px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}.impact-goal-track>i{display:block;width:var(--goal-actual);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#f4ad18);box-shadow:0 4px 10px color-mix(in srgb,var(--primary) 18%,transparent)}.impact-goal-track>em{position:absolute;left:clamp(2px,var(--goal-target),calc(100% - 2px));top:-4px;width:3px;height:19px;transform:translateX(-2px);border-radius:2px;background:var(--text);box-shadow:0 0 0 2px var(--surface)}.impact-goal-visual>small.reached{color:var(--covered);font-weight:800}.impact-goal-actions{display:flex;justify-content:flex-end;gap:4px}.impact-goal-actions button{min-height:30px;padding:5px 8px;border-color:transparent;background:transparent;font-size:10px}.impact-goal-actions button:hover{border-color:var(--border);background:var(--surface)}.impact-goal-actions .danger-link{color:var(--danger)}.impact-history-label{color:var(--muted);font-size:9px;font-weight:750;text-transform:uppercase}.impact-goals-empty{display:flex;min-height:130px;padding:22px;align-items:center;gap:16px;border:1px dashed color-mix(in srgb,var(--primary) 38%,var(--border));border-radius:12px;background:linear-gradient(120deg,var(--primary-soft),transparent)}.impact-goals-empty>span{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:50%;color:var(--primary-strong);background:var(--surface);font-size:22px}.impact-goals-empty>div{flex:1}.impact-goals-empty strong{font-size:14px}.impact-goals-empty p{max-width:620px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.impact-goal-form{display:grid;padding:16px;align-self:start;gap:12px;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:12px;background:var(--surface-subtle);box-shadow:0 15px 35px color-mix(in srgb,var(--text) 7%,transparent)}.impact-goal-form-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.impact-goal-form-heading span,.impact-goal-form-heading strong{display:block}.impact-goal-form-heading span{margin-bottom:3px;color:var(--primary);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.impact-goal-form-heading strong{font-size:13px}.impact-goal-form-heading>button{min-height:28px;padding:2px 8px;border-color:transparent;background:transparent;font-size:20px}.impact-goal-form label{font-size:10px}.impact-goal-form input,.impact-goal-form select{margin-top:4px}.impact-goal-form .form-help{margin:0}.impact-goal-form>button{width:100%}
.impact-metrics-panel{margin-bottom:18px;overflow:hidden}.impact-metrics-layout{display:grid;padding:0 18px 18px;gap:18px}.impact-metrics-layout:has(.impact-metric-form:not([hidden])){grid-template-columns:minmax(0,1fr) 360px}.impact-metric-list{display:grid;gap:9px}.impact-metric-row{display:grid;padding:13px 14px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle)}.impact-metric-row.inactive{opacity:.6}.impact-metric-row>div:nth-child(2){display:grid;min-width:0;gap:3px}.impact-metric-row>div:nth-child(2)>span{color:var(--primary-strong);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.impact-metric-row>div:nth-child(2)>strong{font-size:13px}.impact-metric-row>div:nth-child(2)>small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.impact-metric-order{display:grid;gap:2px}.impact-metric-order button{width:26px;min-height:22px;padding:1px;border-color:transparent;background:transparent;font-size:11px}.impact-metric-total{display:grid;min-width:94px;text-align:right}.impact-metric-total strong{color:var(--primary-strong);font-size:17px}.impact-metric-total span{color:var(--muted);font-size:9px}.impact-metrics-empty{display:grid;min-height:94px;padding:20px;align-content:center;gap:4px;border:1px dashed color-mix(in srgb,var(--primary) 32%,var(--border));border-radius:12px;background:linear-gradient(120deg,var(--primary-soft),transparent)}.impact-metrics-empty span{color:var(--muted);font-size:11px}.impact-metric-form{grid-template-columns:repeat(2,minmax(0,1fr))}.impact-metric-form .impact-goal-form-heading,.impact-metric-form .impact-form-wide,.impact-metric-form>button{grid-column:1/-1}.impact-goal-form textarea{width:100%;margin-top:4px;resize:vertical}.impact-goal-form .checkbox-line{display:flex;align-items:center;gap:8px;font-size:10px}.impact-goal-form .checkbox-line input{width:16px;height:16px;margin:0;flex:0 0 16px}
.time-review-controls{align-items:end}.time-review-controls label{min-width:170px}.time-review-controls button:last-child{margin-left:auto}.time-review-summary{grid-template-columns:repeat(3,minmax(180px,1fr));margin-bottom:18px}.time-review-summary article{min-height:112px}.responsive-card-table td small{display:block;margin-top:3px;color:var(--muted);font-size:11px;text-transform:capitalize}
.clock-location-links{display:flex;align-items:center;gap:9px;white-space:nowrap}.clock-location-link{display:inline-flex;align-items:baseline;gap:3px}.clock-location-link a{color:var(--primary-strong);font-size:11px;font-weight:750;text-decoration:none}.clock-location-link a:hover{text-decoration:underline}.clock-location-link small{display:inline!important;margin:0!important;font-size:9px!important;text-transform:none!important}
.program-form{display:grid;grid-template-columns:2fr 1fr 1.5fr auto;align-items:end;gap:12px}.timezone-form{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,420px) max-content;align-items:end;gap:16px}.timezone-form h2{margin:0 0 2px}.timezone-form>button{align-self:start;margin-top:24px}

/* Keep nested app content on the same inset as its panel heading. */
.manager-portal .impact-program-list { padding: 2px 0 1px; }
.manager-portal .impact-empty { margin: 0; }
.manager-portal .impact-people-panel > #fellowMetricsTable { padding: 0; }

@media (max-width: 1080px) {
  .manager-portal { --workspace-gutter: 20px; }
  .manager-portal > nav { width: 196px; }
  .manager-portal > header { left: 196px; }
  .manager-portal > main { left: 196px; }
  .workspace-search-wrap { width: min(390px, 43vw); }
  .manager-logo { width: 124px; }
  .impact-summary{grid-template-columns:repeat(2,minmax(170px,1fr))}.impact-grid{grid-template-columns:1fr}
  .impact-goals-layout:has(.impact-goal-form:not([hidden])),.impact-metrics-layout:has(.impact-metric-form:not([hidden])){grid-template-columns:1fr}.impact-goal-form{grid-template-columns:repeat(3,minmax(0,1fr))}.impact-goal-form-heading,.impact-goal-form>.form-help,.impact-goal-form>button{grid-column:1/-1}.impact-metric-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width: 860px) {
  html:has(.manager-portal) { background: var(--bg); }
  .manager-portal { --workspace-gutter: 16px; width: 100%; height: auto; min-height: 100dvh; margin: 0; overflow: visible; border-radius: 0; box-shadow: none; }
  .manager-portal > header { position: fixed; left: 0; min-height: 64px; }
  .topbar-context { position: static; display: grid; width: auto; height: auto; overflow: visible; clip-path: none; }
  .workspace-search-wrap { display: none; }
  .manager-portal > nav {
    position: fixed;
    inset: 64px 0 auto;
    width: auto;
    height: 66px;
    padding: 9px 16px;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    overflow: visible;
  }
  .manager-portal > nav .manager-heading,
  .manager-portal > nav .primary-tablist,
  .manager-portal > nav .sidebar-footer { display: none; }
  .manager-portal > nav .mobile-nav-control { display: flex; width: 100%; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
  .manager-portal > nav .mobile-nav-control select { width: 100%; color: var(--text); font-size: 14px; font-weight: 700; text-transform: none; letter-spacing: 0; }
  .manager-portal > main { position: static; min-height: 100dvh; margin-left: 0; padding: 154px 16px 28px; overflow: visible; }
  .mobile-account-actions { display: flex; }
  .topbar-brand > span:last-child { display: none; }
  .organization-menu-trigger{min-width:0;max-width:180px}
}

@media (max-width: 700px) {
  .manager-portal { --workspace-gutter: 14px; }
  .manager-portal > header { flex-direction: row; }
  .manager-portal.organization-admin > header { flex-wrap: nowrap; }
  .manager-portal.organization-admin > header .topbar-leading { flex: 1 1 auto; }
  .manager-portal.organization-admin > header .status-wrap { display: flex; width: auto; min-width: 0; margin-left: auto; flex: 0 1 310px; justify-content:flex-end; }
  .manager-portal.organization-admin > header .organization-admin-controls { width: min(150px,45%); align-items: center; }
  .manager-portal.organization-admin > header .organization-admin-controls label { width: 100%; }
  .manager-portal.organization-admin > header #teamSwitcher { width: 100%; min-width: 0; }
  .manager-portal.organization-admin > header .topbar-brand { display: none; }
  .manager-portal.organization-admin > header .organization-menu{max-width:150px}.manager-portal.organization-admin > header .organization-menu-trigger{max-width:150px}
  .manager-portal.organization-admin > header .admin-badge,.manager-portal.organization-admin > header .team-switcher-label { display: none; }
  .time-review-summary{grid-template-columns:1fr}.time-review-controls button:last-child{margin-left:0}
  .program-form,.timezone-form{grid-template-columns:1fr}
  .schedule-settings-form>button,.timezone-form>button{width:100%;margin-top:0}
  .account-invitation-form{grid-template-columns:1fr}
  .invitation-result{grid-template-columns:1fr}
  .impact-page-heading{align-items:stretch;flex-direction:column}.impact-week-controls{display:grid;grid-template-columns:auto minmax(130px,1fr) auto}.impact-week-controls button:last-child{grid-column:1/-1}.impact-summary{grid-template-columns:1fr}.impact-summary .summary-card{min-height:105px}.impact-intro{padding:15px}.impact-intro-mark{width:30px;height:30px;flex-basis:30px}.impact-goals-heading{align-items:flex-start}.impact-goals-heading>button{margin-top:2px}.impact-goals-layout,.impact-metrics-layout{padding:0 14px 14px}.impact-goal-form,.impact-metric-form{grid-template-columns:1fr}.impact-goal-form-heading,.impact-goal-form>.form-help,.impact-goal-form>button,.impact-metric-form .impact-form-wide{grid-column:auto}.impact-goal-row,.impact-metric-row{padding:14px;grid-template-columns:1fr;gap:11px}.impact-metric-order{display:flex}.impact-metric-total{text-align:left}.impact-metric-row>div:nth-child(2)>small{white-space:normal}.impact-goal-copy>strong{white-space:normal}.impact-goal-actions{justify-content:flex-start;border-top:1px solid var(--border);padding-top:8px}.impact-goal-legend{justify-content:flex-start}.impact-goals-empty{align-items:flex-start;flex-wrap:wrap}.impact-goals-empty>button{width:100%}.impact-grid{gap:14px}.impact-program-row{grid-template-columns:minmax(90px,1fr) minmax(80px,1.2fr) auto;gap:8px}.impact-week-chart{height:190px;padding-right:12px;padding-left:12px;gap:4px}.impact-day i{width:min(20px,76%)}.impact-narrative-panel{padding:16px;grid-template-columns:1fr;gap:11px}.impact-people-panel>#fellowMetricsTable{padding:0 14px 14px}
  .manager-logo { display: none; }
  .manager-portal > nav { padding-right: 14px; padding-left: 14px; }
  .manager-portal > main { padding: 148px 14px 24px; }
  .manager-portal .disclosure-panel > .section-heading { padding: 14px; }
  .manager-portal .disclosure-panel > .section-heading + div { padding: 14px; }
}

/* Unified flame brand system */
.portal-brand-heading{display:flex;min-width:0;align-items:center;gap:11px}
.portal-brand-heading>img{width:34px;height:38px;flex:0 0 34px;object-fit:contain}
.portal-brand-heading>span{min-width:0}
.marketing-page .feature-card-lavender{background:#fff0e9}
.marketing-page .feature-card-sun{background:#fff0c7}
.marketing-page .feature-card-mint{background:#f7e8ef}
.marketing-page .feature-card-ink{background:#2d1934}
.marketing-page .workflow-grid li::after{background:#ffe5dc}
.marketing-page .workflow-grid li:nth-child(2)::after{background:#fff0c7}
.marketing-page .workflow-grid li:nth-child(3)::after{background:#f2e2ed}
.marketing-page .workflow-icon{background:#c94426;box-shadow:0 12px 25px rgba(201,68,38,.24)}
.marketing-page .workflow-grid li:nth-child(2) .workflow-icon{color:#6c3a05;background:#f4ad18;box-shadow:0 12px 25px rgba(244,173,24,.22)}
.marketing-page .workflow-grid li:nth-child(3) .workflow-icon{color:#fff;background:#6b345f;box-shadow:0 12px 25px rgba(83,40,73,.2)}
.marketing-page .marketing-cta{background:radial-gradient(circle at 50% 120%,#ef7a50,transparent 42%),radial-gradient(circle at 82% 18%,rgba(244,173,24,.28),transparent 30%),linear-gradient(135deg,#2d1934,#5d2849 58%,#c94426);box-shadow:0 30px 75px rgba(74,35,60,.28)}
.marketing-page .marketing-button-light{box-shadow:0 15px 35px rgba(50,20,43,.22)}
.marketing-page .marketing-cta>small{color:#ffe7de}
.marketing-page .tour-tabs button.active{color:#fff;background:#c94426}
.marketing-page .audience-stack article:hover{border-color:#efaa96;box-shadow:0 14px 30px rgba(98,42,35,.08)}
