:root{--bg:#f6f7fb;--panel:#fff;--ink:#111827;--muted:#667085;--line:#e6e8ef;--nav:#0e1726;--blue:#2657d8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;display:grid;grid-template-columns:270px 1fr;min-height:100vh}aside{background:var(--nav);color:white;padding:24px;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}aside h1{margin:0}aside p{color:#a8b3c7}.active{outline:2px solid #7aa2ff}aside a{display:block;color:white;background:#1d2b44;border-radius:10px;padding:12px;text-decoration:none;margin:7px 0}main{padding:32px}header{background:linear-gradient(135deg,#173b91,#0e1726);color:white;border-radius:26px;padding:28px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}button,.button{background:var(--blue);color:white;border:0;border-radius:12px;padding:12px 16px;font-weight:800;text-decoration:none;display:inline-block}.secondary{background:#e8efff;color:#173b91}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#bdd3ff}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.cards div,.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 12px 28px #1018280a;margin-bottom:20px}.cards span{display:block;color:var(--muted)}.cards strong{font-size:32px;display:block;margin:6px 0}.cards small{color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:var(--muted)}tr.best{background:#ecfdf3;font-weight:800}p{line-height:1.55;color:#475467}.chip{display:inline-block;border-radius:999px;padding:4px 8px;font-weight:800;font-size:12px;background:#eef2ff;color:#173b91}.chip.green,.status.green{background:#dcfce7;color:#166534}.chip.yellow,.status.yellow{background:#fef3c7;color:#92400e}.chip.red,.status.red{background:#fee2e2;color:#991b1b}.chip.picky{background:#fee2e2;color:#991b1b}.chip.mixed{background:#fef3c7;color:#92400e}.chip.laissezfaire{background:#dcfce7;color:#166534}.chip.builder{background:#dbeafe;color:#1e40af}.chip.reflection{background:#ede9fe;color:#5b21b6}.chip.repair{background:#ffedd5;color:#9a3412}.chip.manual_override{background:#fee2e2;color:#991b1b}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.day{border:1px solid var(--line);border-radius:14px;padding:10px;min-height:96px;background:#f8fafc}.day b{font-size:22px}.day span,.day small,.day em{display:block;color:var(--muted)}.day.high{background:#fee2e2;border-color:#fecaca}.day.medium{background:#fef3c7;border-color:#fde68a}.day.low{background:#ecfdf3;border-color:#bbf7d0}.matrix-wrap{overflow:auto}.matrix th,.matrix td{text-align:center;min-width:36px}.matrix td:first-child,.matrix th:first-child{text-align:left;position:sticky;left:0;background:white;min-width:190px}.status{font-weight:900;border-radius:8px}.certificate{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.certificate div{background:white;border:1px solid var(--line);border-radius:18px;padding:16px}.certificate span{display:block;color:var(--muted);font-size:13px}.certificate strong{display:block;font-size:20px;margin-top:6px}.timeline li{margin-bottom:18px}.timeline span{display:block;color:var(--muted);font-size:13px}pre{background:#0b1220;color:#dbeafe;border-radius:16px;padding:16px;white-space:pre-wrap;overflow:auto}@media(max-width:950px){body{grid-template-columns:1fr}aside{position:relative;height:auto}.cards{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(2,1fr)}header{display:block}}
.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{display:inline-block;text-decoration:none;border-radius:12px;padding:10px 14px;font-weight:800}.secondary{background:#eef2ff;color:#173b91}.muted{color:#667085}.quick-links{display:flex;gap:12px;flex-wrap:wrap}.quick-links a{background:#eef2ff;color:#173b91;text-decoration:none;padding:12px 14px;border-radius:12px;font-weight:800}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:end}.month{table-layout:fixed}.month th,.month td{vertical-align:top}.calendar-day{min-height:105px;background:#fff;border:1px solid #e6e8ef}.calendar-day b{display:block;font-size:18px}.calendar-day span{display:block;font-weight:800;margin:6px 0}.calendar-day small{display:block;color:#667085}.calendar-day.weekend{background:#f8fafc}.calendar-day.holiday{background:#fff7ed}.empty{background:#f3f4f6}.reason-list{line-height:1.8}.debug summary{cursor:pointer;font-weight:800}.repair-form, form label{display:block}input,select{width:100%;padding:10px;border:1px solid #e6e8ef;border-radius:10px;margin:6px 0 12px}button{cursor:pointer}.origin.builder,.origin.optimizer{background:#dcfce7;color:#166534}.origin.reflection{background:#eef2ff;color:#173b91}.origin.repair{background:#fef3c7;color:#92400e}.origin.manual_override{background:#fee2e2;color:#991b1b}
.notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px;font-weight:700}.day.severe{background:#7f1d1d;color:white;border-color:#7f1d1d}.day.severe span,.day.severe small,.day.severe em{color:#fee2e2}.legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.dot{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid #cbd5e1}.dot.low{background:#ecfdf3}.dot.medium{background:#fef3c7}.dot.high{background:#fee2e2}.dot.severe{background:#7f1d1d}.nav-section{font-size:11px;text-transform:uppercase;color:#a8b3c7;margin-top:14px;letter-spacing:.08em}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}.form-actions{align-self:end}.row-form{display:grid;grid-template-columns:minmax(150px,1.2fr) 90px minmax(120px,1fr) minmax(110px,1fr) auto;gap:8px;align-items:center}.row-form input,.row-form select,.toolbar-form select,.status-select{margin:0}.toolbar-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.toolbar-form label{min-width:260px}.table-scroll{overflow:auto}.inactive-row{opacity:.62;background:#f8fafc}.matrix td small{display:block;color:#667085;font-weight:400}.editable-matrix td{padding:6px}.status-select{min-width:44px;width:44px;padding:7px;border-radius:8px;font-weight:900;text-align:center}.status-select.green{background:#dcfce7;color:#166534}.status-select.yellow{background:#fef3c7;color:#92400e}.status-select.red{background:#fee2e2;color:#991b1b}.availability-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.availability-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff}.availability-card.green{background:#f0fdf4}.availability-card.yellow{background:#fffbeb}.availability-card.red{background:#fef2f2}.availability-card span,.availability-card small{display:block}.availability-card small{color:#667085}.availability-card select{width:auto;min-width:96px;margin:0}@media(max-width:1150px){.row-form{grid-template-columns:1fr}.row-form button{width:100%}}

.inline-editor summary { cursor: pointer; color: #1d4ed8; font-weight: 700; }
.stacked-form { display: grid; gap: .65rem; min-width: 260px; padding: .75rem 0; }
.stacked-form label { display: grid; gap: .25rem; font-size: .78rem; color: #475569; }
.participant-table th { white-space: nowrap; }
.day.easy{background:#ecfdf3;border-color:#bbf7d0}.day.mild{background:#f7fee7;border-color:#d9f99d}.day.moderate{background:#fef3c7;border-color:#fde68a}.day.high{background:#ffedd5;border-color:#fdba74}.day.severe{background:#7f1d1d;color:white;border-color:#7f1d1d}.day.severe span,.day.severe small,.day.severe em{color:#fee2e2}.dot.easy{background:#ecfdf3}.dot.mild{background:#f7fee7}.dot.moderate{background:#fef3c7}.dot.high{background:#ffedd5}.dot.severe{background:#7f1d1d}

.heatmap-calendar { table-layout: fixed; border-collapse: separate; border-spacing: 8px; }
.heatmap-calendar th { text-align: center; font-size: 12px; letter-spacing: .06em; }
.heatmap-calendar td { border-bottom: 0; }
.heatmap-calendar .day { min-height: 132px; height: 132px; width: 14.28%; }
.heatmap-calendar .empty { background: #f8fafc; border-radius: 14px; border: 1px dashed #e6e8ef; }
.inline-form{display:inline-block;margin-right:8px}
.brand span{display:block;color:#a8b3c7;margin-top:4px}.role-switcher{border:1px solid #2a3a57;border-radius:14px;padding:12px;margin:16px 0;background:#142039}.role-switcher p{margin:0 0 10px;color:#dbeafe;font-size:13px;line-height:1.35}.role-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.role-buttons a{margin:0;text-align:center;padding:9px;background:#eef2ff;color:#173b91;border-radius:10px}

.session-note{font-size:13px;color:#667085}
.active-session-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:18px}.active-session-bar span,.active-session-bar small{display:block;color:var(--muted);font-size:12px}.active-session-bar strong{display:block;margin:3px 0}.active-session-bar form{display:flex;align-items:end;gap:10px}.active-session-bar label{min-width:260px;font-size:12px;color:var(--muted)}.active-session-bar select{margin:4px 0 0}.checkbox-label{display:flex;align-items:center;gap:8px;white-space:nowrap}.checkbox-label input{width:auto;margin:0}.split-forms{display:grid;grid-template-columns:1fr 1fr;gap:24px}.session-tag{display:inline-block;background:#eef2ff;color:#173b91;border-radius:8px;padding:10px 12px}.session-tag strong{margin-right:6px}td small{display:block;color:var(--muted);margin-top:3px}@media(max-width:950px){.active-session-bar,.active-session-bar form{display:block}.active-session-bar form{margin-top:10px}.active-session-bar label{min-width:0}.split-forms{grid-template-columns:1fr}}
body{grid-template-columns:270px minmax(0,1fr);overflow-x:hidden}main{min-width:0}header p{color:#dbeafe}header .eyebrow{color:#bdd3ff}@media(max-width:950px){body{grid-template-columns:minmax(0,1fr)}aside{position:relative;height:45vh;width:100%;overflow:auto}main{padding:18px}.header-actions{margin-top:14px}.panel{max-width:100%;overflow-x:auto}}
.policy-summary strong{font-size:22px;overflow-wrap:anywhere}.policy-section{overflow:visible}.policy-section .panel-head{align-items:start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}.policy-section h2{margin:2px 0}.policy-section h3{margin:0 0 8px}.section-letter{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0 8px 0 0;background:#173b91;color:#fff;border-radius:6px;font-weight:800;float:left}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-grid>label,.setting-readonly{display:block;border:1px solid var(--line);border-radius:8px;padding:14px;background:#f8fafc;margin:0}.settings-grid label>span,.setting-readonly>span{display:block;font-weight:800;color:#1f2937}.settings-grid small,.setting-readonly small,.policy-save-bar small{display:block;color:var(--muted);line-height:1.4;margin-top:4px}.settings-grid input,.settings-grid select{background:#fff;margin-bottom:0}.setting-readonly strong{display:block;margin-top:12px}.formula-explainer{margin-top:16px;padding:16px;border-left:4px solid #2657d8;background:#eff6ff;border-radius:0 8px 8px 0}.formula-explainer p{margin:5px 0}.toggle-setting{display:flex!important;align-items:flex-start;gap:10px}.toggle-setting input{width:20px;margin:2px 0 0}.toggle-setting span{flex:1}.policy-save-bar{position:sticky;bottom:12px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#0e1726;color:#fff;border-radius:8px;padding:14px 16px;margin:18px 0;box-shadow:0 12px 28px #10182833}.policy-debug summary{cursor:pointer;font-weight:800}.policy-debug pre{margin-top:14px}@media(max-width:760px){.settings-grid{grid-template-columns:1fr}.policy-save-bar{position:static;display:block}.policy-save-bar button{width:100%;margin-top:12px}}
.policy-save-bar{position:static;z-index:auto}
.lifecycle-path{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:8px;overflow-x:auto;padding:4px}.lifecycle-path span{display:flex;align-items:center;justify-content:center;min-height:52px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);font-weight:800;text-align:center}.lifecycle-path span.complete{background:#ecfdf3;color:#166534;border-color:#bbf7d0}.lifecycle-path span.current{background:#173b91;color:#fff;border-color:#173b91}.report-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-pillars>div{border:1px solid var(--line);border-radius:8px;padding:14px;background:#f8fafc}.report-pillars p{margin-bottom:0}.certificate small{display:block;color:var(--muted);margin-top:5px}@media(max-width:760px){.report-pillars{grid-template-columns:1fr}}
.generation-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.generation-form label{min-width:150px;color:inherit;font-size:12px}.generation-form select{margin:4px 0 0;background:#fff;color:var(--ink)}.generation-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:14px 0}.generation-metrics>div{border:1px solid var(--line);border-radius:8px;padding:12px;background:#f8fafc}.generation-metrics span{display:block;color:var(--muted);font-size:12px}.generation-metrics strong{display:block;margin-top:4px;overflow-wrap:anywhere}@media(max-width:760px){.generation-form{display:block}.generation-form button{width:100%;margin-top:8px}}
.calendar-month-heading{margin:22px 0 8px;padding-top:10px;border-top:1px solid var(--line);font-size:20px}.calendar-month-heading:first-of-type{border-top:0;padding-top:0}.calendar-day em,.day em{display:block;font-style:normal;font-weight:800;color:#9a3412;margin:4px 0}.month + .calendar-month-heading{margin-top:30px}aside nav a.active{background:#eef2ff;color:#173b91;outline:0}
.export-grid,.notification-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:20px 0}.export-grid>a{display:block;background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;color:var(--ink);text-decoration:none}.export-grid>a:hover{border-color:#2657d8}.export-grid strong,.export-grid span{display:block}.export-grid span{color:var(--muted);margin-top:6px;line-height:1.4}.notification-grid .panel{margin:0}.notification-preview dl{display:grid;grid-template-columns:180px 1fr;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.notification-preview dt,.notification-preview dd{margin:0;padding:14px;border-bottom:1px solid var(--line)}.notification-preview dt{font-weight:800;background:#f8fafc}.notification-preview .message-body{white-space:pre-wrap;line-height:1.6}.export-body{display:block;background:#fff}.export-main{max-width:1200px;margin:0 auto;padding:28px}.export-toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}.export-heading{border-bottom:2px solid #0e1726;padding-bottom:16px;margin-bottom:20px}.export-heading h1{margin:4px 0}.export-heading p{margin:5px 0}.export-heading .eyebrow{color:#2657d8}.export-heading small{color:var(--muted)}.export-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:18px 0}.export-metrics>div{border:1px solid var(--line);border-radius:8px;padding:14px}.export-metrics span,.export-metrics small{display:block;color:var(--muted);font-size:12px}.export-metrics strong{display:block;font-size:22px;margin-top:5px}.export-section{margin:26px 0}.export-table{font-size:13px}.export-table th{background:#f8fafc}.export-table td,.export-table th{padding:9px}.export-body .panel{box-shadow:none;border-radius:8px}@media(max-width:700px){.notification-preview dl{grid-template-columns:1fr}.notification-preview dt{border-bottom:0}.export-main{padding:16px}}@media print{.export-toolbar{display:none}.export-main{max-width:none;padding:0}.export-body{font-size:10pt}.export-heading{break-after:avoid}.export-table{font-size:8.5pt}.export-table tr{break-inside:avoid}.export-section{break-inside:avoid}a{color:inherit;text-decoration:none}}
.active-session-bar{align-items:stretch}.active-session-identity{min-width:190px}.active-session-facts{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:8px;flex:1}.active-session-facts>div{border-left:1px solid var(--line);padding-left:10px}.active-session-facts strong{font-size:13px;overflow-wrap:anywhere}.global-notice{margin:-8px 0 16px;border-radius:8px;padding:12px 14px}.global-notice ul{margin:6px 0 0;padding-left:20px}.success-notice{background:#ecfdf3;border:1px solid #bbf7d0;color:#166534}.generation-speed-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.generation-speed-guide>div{border:1px solid var(--line);border-radius:8px;padding:12px;background:#f8fafc}.generation-speed-guide strong,.generation-speed-guide span{display:block}.generation-speed-guide span{color:var(--muted);margin-top:4px;font-size:13px}button:disabled{cursor:not-allowed;opacity:.5}@media(max-width:1100px){.active-session-bar{flex-wrap:wrap}.active-session-facts{order:3;flex-basis:100%}}@media(max-width:700px){.active-session-facts,.generation-speed-guide{grid-template-columns:1fr 1fr}.active-session-facts>div{border-left:0;border-top:1px solid var(--line);padding:8px 0 0}}
.check-label{display:flex;gap:9px;align-items:flex-start;margin:12px 0 16px;font-weight:700}.check-label input{width:18px;height:18px;margin:1px 0 0;flex:0 0 auto}.stats b{overflow-wrap:anywhere}
.interface-toggle{border:1px solid #2a3a57;border-radius:14px;padding:12px;margin:16px 0;background:#142039}.interface-toggle p{margin:0 0 10px;color:#dbeafe;font-size:13px;line-height:1.35}.interface-toggle small{display:block;color:#a8b3c7;margin-top:2px}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-buttons a{margin:0;text-align:center;padding:9px;background:#1d2b44;color:#fff;border-radius:10px}.mode-buttons a.current{background:#eef2ff;color:#173b91}.portal-identity-card{border:1px solid #2a3a57;border-radius:14px;padding:12px;margin:12px 0 16px;background:#0b1220}.portal-identity-card span,.portal-identity-card small{display:block;color:#a8b3c7;font-size:12px}.portal-identity-card strong{display:block;margin:4px 0;color:#fff}.user-mode header,.portal-header{background:linear-gradient(135deg,#0f766e,#0e1726)}.user-mode aside{background:#082f49}.user-mode aside a{background:#0f3f5f}.user-mode aside nav a.active{background:#ccfbf1;color:#0f766e}.user-mode .button:not(.secondary),.user-mode button:not(.secondary){background:#0f766e}.portal-bar{background:#f0fdfa;border-color:#99f6e4}.compact-selector{display:flex;align-items:end;gap:8px}.compact-selector label{min-width:220px}.portal-intro h2{margin-top:0}.portal-month .assigned-day{background:#ecfeff;border-color:#67e8f9}.portal-month .assigned-day span{color:#0f766e}.portal-month a{display:inline-block;margin-top:6px;font-weight:800;color:#0f766e}.user-mode .cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.user-mode .cards strong{font-size:26px}.user-mode .notice{background:#f0fdfa;border-color:#99f6e4;color:#115e59}.user-mode .report-pillars>div{background:#fff}.user-mode .active-session-facts{display:none}@media(max-width:900px){.compact-selector{display:block}.compact-selector label{min-width:0}}
/* Pass 17 portal/admin UX hardening */
.availability-entry-head{align-items:flex-start}.availability-legend-card{max-width:520px}.availability-status-legend{justify-content:flex-end;margin-bottom:8px}.legend-pill{display:inline-flex;flex-direction:column;gap:2px;border-radius:14px;padding:10px 14px;border:1px solid var(--line);min-width:118px}.legend-pill b{font-size:14px}.legend-pill small{font-size:12px}.legend-pill.green{background:#dcfce7;color:#166534;border-color:#bbf7d0}.legend-pill.yellow{background:#fef3c7;color:#92400e;border-color:#fde68a}.legend-pill.red{background:#fee2e2;color:#991b1b;border-color:#fecaca}.portal-availability-calendar{table-layout:fixed;border-collapse:separate;border-spacing:8px}.portal-availability-calendar th{text-align:center}.portal-availability-calendar td{border-bottom:0}.availability-day{height:142px;border-radius:16px;border:1px solid var(--line);padding:10px;transition:background .15s ease,border-color .15s ease}.availability-day.green{background:#f0fdf4;border-color:#86efac}.availability-day.yellow{background:#fffbeb;border-color:#fcd34d}.availability-day.red{background:#fef2f2;border-color:#fca5a5}.availability-day b{font-size:20px;display:block}.availability-day select{margin-top:12px;width:100%;font-weight:800}.portal-status-select.green{background:#dcfce7;color:#166534}.portal-status-select.yellow{background:#fef3c7;color:#92400e}.portal-status-select.red{background:#fee2e2;color:#991b1b}.sticky-save-row{position:sticky;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#082f49;color:#fff;border-radius:14px;padding:14px 16px;margin-top:18px;box-shadow:0 12px 28px #10182833}.sticky-save-row small{color:#dbeafe}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.action-card{display:block;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;text-decoration:none;color:var(--ink)}.action-card strong,.action-card span{display:block}.action-card span{color:var(--muted);margin-top:6px;line-height:1.35}.risk-list{display:grid;gap:10px}.risk-item{border-left:4px solid #2657d8;background:#f8fafc;border-radius:8px;padding:12px}.risk-item.notice{border-left-color:#f97316}.nav-subtle{opacity:.88}.same-date-button{margin-top:28px}.combined-engine-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.availability-entry-head{display:block}.availability-status-legend{justify-content:flex-start}.sticky-save-row{position:static;display:block}.sticky-save-row button{width:100%;margin-bottom:8px}}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Pass 18A — Atlas visual polish system and shell hardening.
   Scope: presentation only. Do not use this section for route, workflow, or engine behaviour. */
:root{
  --atlas-bg:#f4f7fb;
  --atlas-bg-soft:#eef4fa;
  --atlas-panel:#ffffff;
  --atlas-panel-muted:#f8fafc;
  --atlas-ink:#0f172a;
  --atlas-text:#334155;
  --atlas-muted:#64748b;
  --atlas-subtle:#94a3b8;
  --atlas-line:#dfe7f1;
  --atlas-line-strong:#cbd5e1;
  --atlas-navy:#071629;
  --atlas-navy-2:#0f2742;
  --atlas-blue:#2563eb;
  --atlas-blue-dark:#1d4ed8;
  --atlas-blue-soft:#dbeafe;
  --atlas-teal:#0f766e;
  --atlas-teal-soft:#ccfbf1;
  --atlas-green:#15803d;
  --atlas-green-soft:#dcfce7;
  --atlas-yellow:#a16207;
  --atlas-yellow-soft:#fef3c7;
  --atlas-red:#b91c1c;
  --atlas-red-soft:#fee2e2;
  --atlas-purple:#6d28d9;
  --atlas-purple-soft:#ede9fe;
  --atlas-radius-xs:8px;
  --atlas-radius-sm:12px;
  --atlas-radius-md:16px;
  --atlas-radius-lg:22px;
  --atlas-shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.08);
  --atlas-shadow-md:0 18px 48px rgba(15,23,42,.10);
  --atlas-focus:0 0 0 3px rgba(37,99,235,.22);
}

html{scroll-behavior:smooth}
body.atlas-app{
  background:
    radial-gradient(circle at 14% 8%, rgba(37,99,235,.08), transparent 28rem),
    linear-gradient(180deg,#f8fbff 0%,var(--atlas-bg) 45%,#eef3f8 100%);
  color:var(--atlas-ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  grid-template-columns:292px minmax(0,1fr);
}
body.atlas-app p{color:var(--atlas-text)}
body.atlas-app a{transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
body.atlas-app a:focus-visible,body.atlas-app button:focus-visible,body.atlas-app select:focus-visible,body.atlas-app input:focus-visible,body.atlas-app textarea:focus-visible{outline:0;box-shadow:var(--atlas-focus)}
.skip-link{position:absolute;left:16px;top:-44px;z-index:50;background:#fff;color:var(--atlas-blue);padding:10px 14px;border-radius:999px;border:1px solid var(--atlas-line);font-weight:900;text-decoration:none}.skip-link:focus{top:14px}

.atlas-sidebar{
  background:
    linear-gradient(180deg,rgba(255,255,255,.06),transparent 16rem),
    linear-gradient(180deg,var(--atlas-navy),#08111f 100%);
  padding:22px 18px;
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:inset -1px 0 rgba(255,255,255,.04);
}
.atlas-brand{display:flex;gap:12px;align-items:center;margin-bottom:18px;padding:2px 2px 12px;border-bottom:1px solid rgba(226,232,240,.12)}
.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#60a5fa,#1d4ed8);box-shadow:0 12px 28px rgba(37,99,235,.28);font-weight:950;letter-spacing:-.05em;color:white}
.atlas-brand b{display:block;font-size:20px;letter-spacing:-.04em;line-height:1;color:#fff}
.atlas-brand span{display:block;margin-top:5px;color:#9fb1c9;font-size:12px;line-height:1.3}

.interface-toggle,.portal-identity-card{
  border:1px solid rgba(148,163,184,.22);
  background:rgba(15,39,66,.82);
  backdrop-filter:blur(12px);
  border-radius:18px;
  box-shadow:0 10px 30px rgba(0,0,0,.14);
}
.interface-toggle{padding:13px;margin:14px 0 18px}.interface-toggle p{color:#e2e8f0}.interface-toggle small{color:#9fb1c9}.mode-buttons a{border:1px solid rgba(226,232,240,.12);font-weight:900}.mode-buttons a.current{background:#fff;color:var(--atlas-blue-dark);box-shadow:var(--atlas-shadow-sm)}
.portal-identity-card{padding:14px}.portal-identity-card span,.portal-identity-card small{color:#a7f3d0}.portal-identity-card strong{font-size:16px;letter-spacing:-.02em}

.atlas-nav{padding-bottom:26px}.atlas-nav .nav-section{margin:20px 8px 8px;color:#8fa3bd;font-size:11px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.atlas-nav a{position:relative;margin:5px 0;padding:10px 12px 10px 14px;border-radius:13px;background:transparent;color:#dbe7f5;border:1px solid transparent;font-weight:800;line-height:1.2}.atlas-nav a:hover{background:rgba(255,255,255,.08);border-color:rgba(226,232,240,.11);transform:translateX(1px)}.atlas-nav a.active{background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#123c80;border-color:rgba(191,219,254,.95);box-shadow:0 12px 26px rgba(37,99,235,.18);outline:0}.atlas-nav a.active::before{content:"";position:absolute;left:-8px;top:12px;bottom:12px;width:4px;border-radius:999px;background:#60a5fa}.nav-subtle{opacity:.82}

.atlas-main{padding:26px clamp(18px,3vw,42px) 44px;min-width:0}.atlas-session-bar{background:rgba(255,255,255,.84);backdrop-filter:blur(14px);border:1px solid rgba(203,213,225,.85);border-radius:22px;padding:16px 18px;margin-bottom:22px;box-shadow:var(--atlas-shadow-sm);gap:16px}.active-session-identity span,.active-session-facts span{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.1em;color:var(--atlas-muted)}.active-session-identity strong{display:block;margin:5px 0 3px;font-size:19px;letter-spacing:-.035em;color:var(--atlas-ink)}.active-session-identity small{color:var(--atlas-muted)}.active-session-facts{gap:10px}.active-session-facts>div{border:1px solid var(--atlas-line);border-radius:14px;background:var(--atlas-panel-muted);padding:11px 12px}.active-session-facts strong{display:block;margin-top:4px;color:var(--atlas-ink);font-size:14px}.portal-bar{background:linear-gradient(135deg,#f0fdfa,#ffffff);border-color:#99f6e4}

header{border-radius:28px;padding:30px;background:linear-gradient(135deg,#153e75 0%,#0b1b31 58%,#06111f 100%);box-shadow:var(--atlas-shadow-md);position:relative;overflow:hidden}.user-mode header,.portal-header{background:linear-gradient(135deg,#0f766e 0%,#0f2742 62%,#06111f 100%)}header::after{content:"";position:absolute;right:-90px;top:-90px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.08)}header>*{position:relative;z-index:1}header h1{letter-spacing:-.045em;margin:4px 0 8px}.eyebrow{color:#bfdbfe;font-size:12px;letter-spacing:.14em}.user-mode .eyebrow{color:#ccfbf1}

.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.cards div,.panel,.action-card,.export-grid>a{border:1px solid rgba(203,213,225,.85);border-radius:22px;background:rgba(255,255,255,.92);box-shadow:var(--atlas-shadow-sm)}.panel{padding:20px}.cards div{padding:18px}.cards strong{font-size:30px;letter-spacing:-.045em}.cards span,.cards small{color:var(--atlas-muted)}.panel h2,.panel h3{letter-spacing:-.03em}.panel h2:first-child,.panel h3:first-child{margin-top:0}

button,.button{border-radius:999px;background:linear-gradient(135deg,var(--atlas-blue),var(--atlas-blue-dark));box-shadow:0 10px 22px rgba(37,99,235,.18);font-weight:900;letter-spacing:-.01em}.button:hover,button:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(37,99,235,.22)}.secondary{background:#eef4ff;color:#1e40af;border:1px solid #bfdbfe;box-shadow:none}.secondary:hover{background:#dbeafe}.user-mode .button:not(.secondary),.user-mode button:not(.secondary){background:linear-gradient(135deg,#0f766e,#0d9488);box-shadow:0 10px 22px rgba(13,148,136,.18)}

input,select,textarea{border:1px solid var(--atlas-line-strong);border-radius:12px;padding:10px 11px;background:#fff;color:var(--atlas-ink)}label{color:var(--atlas-text);font-weight:800}table{background:#fff;border:1px solid var(--atlas-line);border-radius:18px;overflow:hidden;border-collapse:separate;border-spacing:0;box-shadow:var(--atlas-shadow-sm)}th{background:#f8fafc;color:var(--atlas-muted);font-size:11px;letter-spacing:.08em}td,th{border-bottom:1px solid var(--atlas-line)}tr:last-child td{border-bottom:0}

.chip{border-radius:999px;padding:5px 10px;font-weight:950;letter-spacing:-.01em}.chip.green,.status.green{background:var(--atlas-green-soft);color:var(--atlas-green)}.chip.yellow,.status.yellow{background:var(--atlas-yellow-soft);color:var(--atlas-yellow)}.chip.red,.status.red{background:var(--atlas-red-soft);color:var(--atlas-red)}.chip.builder{background:var(--atlas-blue-soft);color:#1e40af}.chip.reflection{background:var(--atlas-purple-soft);color:var(--atlas-purple)}
.global-notice{border-radius:18px;padding:14px 16px;box-shadow:var(--atlas-shadow-sm)}.notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.success-notice{background:var(--atlas-green-soft);border:1px solid #86efac;color:var(--atlas-green)}

.calendar-grid{gap:8px}.day,.calendar-day,.availability-day{border-radius:18px;border:1px solid var(--atlas-line);box-shadow:var(--atlas-shadow-sm)}.day:hover,.calendar-day:hover{border-color:#93c5fd}.portal-availability-calendar{border:0;box-shadow:none;background:transparent}.portal-availability-calendar th{background:transparent;border:0;color:var(--atlas-muted)}.availability-day{box-shadow:none}

.dashboard-grid{align-items:start}.action-card:hover,.export-grid>a:hover{border-color:#93c5fd;box-shadow:0 14px 32px rgba(37,99,235,.12);transform:translateY(-1px)}.risk-item{border:1px solid var(--atlas-line);border-left:5px solid var(--atlas-blue);box-shadow:var(--atlas-shadow-sm)}.risk-item.notice{border-left-color:#f97316}

@media(max-width:980px){body.atlas-app{display:block}.atlas-sidebar{position:relative;height:auto}.atlas-main{padding:18px}.atlas-session-bar{display:block}.active-session-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.atlas-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px}.atlas-nav .nav-section{grid-column:1/-1}}
@media(max-width:620px){header{display:block}.cards{grid-template-columns:1fr}.active-session-facts{grid-template-columns:1fr}.calendar-grid{grid-template-columns:1fr}.portal-availability-calendar{border-spacing:0}.portal-availability-calendar tr,.portal-availability-calendar td,.portal-availability-calendar th{display:block;width:100%}.portal-availability-calendar th{display:none}.availability-day{height:auto;margin:8px 0}}

/* Pass 18B — dashboard/workflow polish. Presentation only. */
.dashboard-hero{align-items:stretch}.dashboard-hero-status{min-width:220px;border:1px solid var(--atlas-line);background:linear-gradient(135deg,#eff6ff,#fff);border-radius:22px;padding:18px;box-shadow:var(--atlas-shadow-sm)}.dashboard-hero-status span,.dashboard-hero-status small{display:block;color:var(--muted)}.dashboard-hero-status strong{display:block;font-size:26px;margin:6px 0;color:var(--atlas-navy)}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin:0 0 22px}.kpi-card{border:1px solid var(--atlas-line);background:#fff;border-radius:20px;padding:18px;box-shadow:var(--atlas-shadow-sm);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--atlas-blue)}.kpi-card.healthy:before{background:#16a34a}.kpi-card.attention:before{background:#f97316}.kpi-card span,.kpi-card small{display:block;color:var(--muted)}.kpi-card strong{display:block;color:var(--atlas-navy);font-size:25px;line-height:1.1;margin:8px 0 5px;overflow-wrap:anywhere}.workflow-panel{background:linear-gradient(180deg,#fff,#f8fafc)}.workflow-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.workflow-strip>div,.workflow-strip>a{border:1px solid var(--atlas-line);background:#fff;border-radius:16px;padding:14px;text-decoration:none;color:var(--ink);box-shadow:var(--atlas-shadow-sm)}.workflow-strip span{display:inline-flex;width:28px;height:28px;border-radius:999px;align-items:center;justify-content:center;background:#e0ecff;color:var(--atlas-navy);font-weight:900;margin-bottom:8px}.workflow-strip strong,.workflow-strip small{display:block}.workflow-strip small{color:var(--muted);line-height:1.3;margin-top:4px}.workflow-strip .current{border-color:#93c5fd;background:#eff6ff}.dashboard-workflow a:hover{border-color:#60a5fa;transform:translateY(-1px);box-shadow:0 14px 32px rgba(37,99,235,.12)}.schedule-generate-actions{align-items:end}.compact-generation-form{background:#eef6ff;border:1px solid #bfdbfe;border-radius:16px;padding:10px 12px}.compact-generation-form button{white-space:nowrap}@media(max-width:900px){.dashboard-hero{display:block}.dashboard-hero-status{margin-top:14px}.schedule-generate-actions{align-items:stretch}.compact-generation-form{width:100%}}

header h1,header h2,header h3{color:#fff}header p,header small{color:#dbeafe}header .eyebrow{color:#dbeafe}.panel-head p,.panel-head span,.panel-head small{color:var(--atlas-muted)}
.atlas-logo-wrap{display:flex;justify-content:center;align-items:center;width:100%}.atlas-logo{display:block;max-width:188px;width:100%;height:auto;filter:drop-shadow(0 10px 24px rgba(15,23,42,.18))}.atlas-brand{display:block}.atlas-brand-meta{margin-top:8px;text-align:center}.atlas-brand-meta span{display:block;color:#9fb1c9;font-size:12px;line-height:1.35}
.inline-link{color:inherit;font-weight:800;text-decoration:underline;text-underline-offset:2px}.notice .inline-link{color:inherit}
.availability-counter-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.availability-counter{border:1px solid var(--atlas-line);border-radius:16px;background:#f8fafc;padding:14px 16px}.availability-counter span,.availability-counter small{display:block;color:var(--atlas-muted)}.availability-counter strong{display:block;font-size:26px;line-height:1.1;margin:6px 0;color:var(--atlas-navy)}.availability-counter.yellow{background:#fffbeb;border-color:#fde68a}.availability-counter.red{background:#fef2f2;border-color:#fecaca}.availability-message{min-height:24px;margin:0 0 16px;color:var(--atlas-muted);font-weight:700}.availability-message.info{color:#1d4ed8}.availability-message.error{color:#b91c1c}.portal-availability-calendar + .calendar-month-heading{margin-top:22px}
@media(max-width:700px){.availability-counter-strip{grid-template-columns:1fr}}


/* Pass 18C-fix: make dark headers and sidebar logo production-safe. */
.atlas-main header,
.atlas-main .portal-header {
  background: linear-gradient(135deg,#123c80,#071827);
}

.atlas-main header p,
.atlas-main header small,
.atlas-main header span,
.atlas-main header .eyebrow,
.atlas-main .portal-header p,
.atlas-main .portal-header small,
.atlas-main .portal-header span,
.atlas-main .portal-header .eyebrow {
  color: #eaf2ff !important;
  opacity: 1 !important;
}

.atlas-main header .eyebrow,
.atlas-main .portal-header .eyebrow {
  color: #bfdbfe !important;
}

.atlas-main header h1,
.atlas-main header h2,
.atlas-main header h3,
.atlas-main .portal-header h1,
.atlas-main .portal-header h2,
.atlas-main .portal-header h3 {
  color: #ffffff !important;
}

.atlas-brand {
  gap: 0;
  margin-bottom: 18px;
  padding: 0 0 14px;
}

.atlas-logo-wrap {
  width: 100%;
  min-height: 0;
  padding: 2px 8px 4px;
  border: 0;
  background: transparent;
}

.atlas-logo {
  width: min(132px, 78%);
  max-width: 132px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  background: transparent !important;
  border-radius: 0;
  box-shadow: none;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,.22));
}

.atlas-brand-meta {
  margin-top: 8px;
  text-align: center;
}


/* Pass 18C-fix2-minimal: actual logo sizing and Master Participants header contrast. */
.atlas-brand{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin-bottom:18px !important;
  padding:0 2px 14px !important;
  border-bottom:1px solid rgba(226,232,240,.12) !important;
}
.atlas-brand > img.atlas-logo{
  flex:0 0 42px !important;
  width:42px !important;
  max-width:42px !important;
  height:42px !important;
  max-height:42px !important;
  object-fit:contain !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  filter:drop-shadow(0 4px 9px rgba(0,0,0,.22)) !important;
}
.atlas-brand-copy b{
  display:block !important;
  color:#fff !important;
  font-size:19px !important;
  line-height:1 !important;
  letter-spacing:-.04em !important;
}
.atlas-brand-copy span{
  display:block !important;
  margin-top:5px !important;
  color:#b8c7dc !important;
  font-size:12px !important;
  line-height:1.25 !important;
}
.atlas-main header p.page-subtitle,
header p.page-subtitle{
  color:#eef6ff !important;
  opacity:1 !important;
  font-weight:500 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.18) !important;
}


/* Pass 18D/18E: calendar/report-card and Engine & Insights visual polish. */
/* 18D — calendar polish */
.month{
  border-collapse:separate !important;
  border-spacing:8px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.month th{
  background:transparent !important;
  border:0 !important;
  color:var(--atlas-muted) !important;
  font-size:11px !important;
  letter-spacing:.12em !important;
  text-align:center !important;
  padding:4px 6px 8px !important;
}
.month td{
  border:0 !important;
}
.calendar-month-heading{
  display:flex;
  align-items:center;
  gap:10px;
  margin:20px 0 10px;
  color:var(--atlas-navy);
  letter-spacing:-.03em;
}
.calendar-month-heading::after{
  content:"";
  height:1px;
  background:var(--atlas-line);
  flex:1;
}
.calendar-day{
  position:relative;
  min-height:128px;
  background:#fff !important;
  border:1px solid var(--atlas-line) !important;
  border-radius:18px !important;
  padding:12px !important;
  box-shadow:var(--atlas-shadow-sm) !important;
}
.calendar-day b{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:28px;
  border-radius:999px;
  background:#f1f5f9;
  color:var(--atlas-navy);
  font-size:15px !important;
  margin-bottom:6px;
}
.calendar-day span{
  color:var(--atlas-ink) !important;
  font-weight:900 !important;
  line-height:1.2;
}
.calendar-day small{
  color:var(--atlas-muted) !important;
  line-height:1.35;
}
.calendar-day em{
  display:inline-block !important;
  margin:0 0 6px 4px !important;
  padding:3px 7px !important;
  border-radius:999px;
  background:#fff7ed;
  color:#9a3412 !important;
  font-style:normal;
  font-size:11px;
  font-weight:900;
}
.calendar-day.weekend,
.calendar-day.weekday.weekend{
  background:#f8fafc !important;
}
.calendar-day.weekend::before,
.calendar-day.holiday::before,
.calendar-day.assigned-day::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:18px 0 0 18px;
  background:#bfdbfe;
}
.calendar-day.holiday::before{background:#f97316;}
.calendar-day.assigned-day::before{background:#16a34a;}
.calendar-day a{
  display:inline-block;
  margin-top:8px;
  color:#1d4ed8;
  font-weight:900;
  text-decoration:none;
}
.calendar-day a:hover{text-decoration:underline;}
.month .empty{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

/* 18D — report card polish */
.report-pillars{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:16px;
}
.report-pillars > div{
  position:relative;
  overflow:hidden;
  border:1px solid var(--atlas-line) !important;
  border-radius:22px !important;
  background:linear-gradient(180deg,#fff,#f8fafc) !important;
  box-shadow:var(--atlas-shadow-sm) !important;
  padding:20px !important;
}
.report-pillars > div::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:5px;
  background:var(--atlas-blue);
}
.report-pillars > div:nth-child(2)::before{background:#f97316;}
.report-pillars > div:nth-child(3)::before{background:#16a34a;}
.report-pillars h2{
  margin-top:0;
  color:var(--atlas-navy);
  font-size:22px;
}
.report-pillars p{
  color:var(--atlas-text);
}
.report-pillars .notice{
  margin-top:12px;
}

/* 18E — Engine & Insights polish */
.generation-status{
  background:linear-gradient(180deg,#ffffff,#f8fbff) !important;
}
.generation-metrics{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:12px;
}
.generation-metrics > div{
  border:1px solid var(--atlas-line);
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow:var(--atlas-shadow-sm);
}
.generation-metrics span{
  display:block;
  color:var(--atlas-muted);
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.generation-metrics strong{
  display:block;
  color:var(--atlas-navy);
  font-size:22px;
  line-height:1.1;
  margin-top:7px;
}
.engine-quality-panel,
.engine-diagnostic-panel{
  background:linear-gradient(180deg,#fff,#f8fafc) !important;
}
.engine-diagnostic-panel ul{
  margin:0;
  padding-left:20px;
  color:var(--atlas-text);
}
.engine-diagnostic-panel li{
  margin:8px 0;
}
.combined-engine-links .button.secondary{
  background:rgba(239,246,255,.96);
  border:1px solid rgba(191,219,254,.9);
}

/* Tables in report/engine areas should feel less raw. */
.participation-table table,
.table-scroll table{
  border-radius:18px;
}
.table-scroll tr:hover td{
  background:#f8fbff;
}

/* Pass 19C pre-packaging cleanup: dashboard status contrast and holiday form alignment. */
.dashboard-hero-status span,
.dashboard-hero-status small{
  color:#334155 !important;
  opacity:1 !important;
}
.dashboard-hero-status strong{
  color:var(--atlas-navy) !important;
}
.observed-date-field .same-date-button{
  width:max-content;
  margin-top:8px;
}

/* Pass 21 — admin workflow tightening and constrained-result explanations. */
.admin-review-panel{
  background:linear-gradient(180deg,#ffffff,#f8fbff) !important;
}
.review-list{
  display:grid;
  gap:12px;
}
.review-item{
  display:grid;
  gap:6px;
  padding:14px 16px;
  border:1px solid var(--atlas-line);
  border-left:6px solid #94a3b8;
  border-radius:18px;
  background:#fff;
  color:var(--atlas-text);
  text-decoration:none;
  box-shadow:var(--atlas-shadow-sm);
}
.review-item:hover{
  transform:translateY(-1px);
  box-shadow:var(--atlas-shadow-md);
}
.review-item strong{
  color:var(--atlas-navy);
  font-size:16px;
}
.review-item span{
  color:var(--atlas-text);
}
.review-item small{
  color:var(--atlas-muted);
  line-height:1.35;
}
.review-item.blocked{border-left-color:#dc2626;background:#fff7f7;}
.review-item.review{border-left-color:#f97316;background:#fffaf5;}
.review-item.watch{border-left-color:#facc15;background:#fffdf0;}
.review-item.explained{border-left-color:#2563eb;background:#f8fbff;}
.review-item.ok{border-left-color:#16a34a;background:#f7fff9;}
.publication-readiness-panel table td:nth-child(2){white-space:nowrap;}


/* Pass 22: export/print polish. */
.export-body{
  color:#111827;
}
.export-main{
  max-width:1180px;
}
.export-heading{
  display:block;
  border-bottom:3px solid #0f172a;
}
.export-heading h1{
  color:#0f172a;
  font-size:32px;
  letter-spacing:-.04em;
}
.export-heading p,
.export-heading small{
  color:#334155;
}
.export-footer{
  margin-top:36px;
  padding-top:12px;
  border-top:1px solid #cbd5e1;
  display:flex;
  justify-content:space-between;
  gap:18px;
  color:#475569;
  font-size:12px;
}
.export-inline-actions{
  margin-top:12px;
}
.export-readiness-panel table td,
.export-readiness-panel table th{
  vertical-align:top;
}
.export-table{
  width:100%;
  border-collapse:collapse;
  border:1px solid #cbd5e1;
}
.export-table th{
  background:#eaf2ff;
  color:#0f172a;
  font-weight:900;
}
.export-table td,
.export-table th{
  border-bottom:1px solid #dbe4f0;
  border-right:1px solid #e2e8f0;
  vertical-align:top;
}
.export-table tr:nth-child(even) td{
  background:#f8fafc;
}
.export-schedule-table td:nth-child(5){
  font-weight:800;
}
@media print{
  @page{margin:14mm}
  body.export-body{background:#fff !important;color:#000 !important}
  .export-heading{border-bottom:2px solid #000}
  .export-heading h1{font-size:22pt;color:#000}
  .export-metrics{
    grid-template-columns:repeat(4,1fr);
    gap:6px;
  }
  .export-metrics>div{
    padding:8px;
    border-color:#999;
    break-inside:avoid;
  }
  .export-table{
    width:100%;
    border-color:#999;
  }
  .export-table th{
    background:#eee !important;
    color:#000 !important;
  }
  .export-table td,
  .export-table th{
    padding:5px 6px;
    border-color:#bbb;
  }
  .export-footer{
    break-inside:avoid;
    color:#333;
  }
}


/* Pass 24: production readiness checklist UI. */
.production-readiness-cards strong{
  font-size:20px !important;
}
.production-readiness-table td,
.production-readiness-table th{
  vertical-align:top;
}
.production-readiness-table code{
  white-space:normal;
  color:#1d4ed8;
  font-weight:800;
}


/* Pass 24A: alpha cleanup contrast and brand polish. */
.dashboard-hero-status{
  background:#ffffff !important;
  border:1px solid #93b4e8 !important;
  color:#0f172a !important;
}
.dashboard-hero-status span,
.dashboard-hero-status small{
  color:#1e3a5f !important;
  opacity:1 !important;
  font-weight:800 !important;
}
.dashboard-hero-status strong{
  color:#0f172a !important;
}
.atlas-brand-copy b{
  letter-spacing:-.02em;
}


/* Pass 24C: workflow navigation polish. */
.temporary-nav small{
  display:block;
  color:#94a3b8;
  font-size:10px;
  letter-spacing:normal;
  text-transform:none;
  margin-top:2px;
}
.next-step-panel,
.schedule-next-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:#f8fafc;
  border:1px solid #bfd1f2;
}
.next-step-panel h2,
.schedule-next-action h2{
  margin:2px 0 6px;
  color:#0f172a;
}
.next-step-panel p,
.schedule-next-action p{
  margin:0;
  color:#334155;
}
.next-step-panel .eyebrow,
.schedule-next-action .eyebrow{
  color:#1d4ed8;
}
.schedule-generate-actions{
  background:#ffffff;
  border:1px solid #93b4e8;
  border-radius:18px;
  padding:14px;
  color:#0f172a;
}
.schedule-generate-actions label,
.schedule-generate-actions span,
.schedule-generate-actions small{
  color:#1e3a5f !important;
  opacity:1 !important;
  font-weight:800;
}
.schedule-generate-actions select{
  background:#ffffff;
  color:#0f172a;
  border:1px solid #93b4e8;
}
@media(max-width:760px){
  .next-step-panel,
  .schedule-next-action{
    display:block;
  }
  .next-step-panel .button,
  .schedule-next-action .button{
    margin-top:12px;
  }
}


/* Pass 24C-fix: hard dashboard lifecycle status contrast.
   Scoped to the right-side dashboard status card so global dark header styles
   cannot make the text low-contrast again. */
header.dashboard-hero .dashboard-hero-status,
header.dashboard-hero div.dashboard-hero-status{
  background:#ffffff !important;
  background-image:none !important;
  border:2px solid #1d4ed8 !important;
  color:#0f172a !important;
  opacity:1 !important;
  text-shadow:none !important;
}
header.dashboard-hero .dashboard-hero-status *,
header.dashboard-hero div.dashboard-hero-status *{
  color:#0f172a !important;
  opacity:1 !important;
  text-shadow:none !important;
}
header.dashboard-hero .dashboard-hero-status span,
header.dashboard-hero .dashboard-hero-status small{
  color:#1e293b !important;
  font-weight:900 !important;
}
header.dashboard-hero .dashboard-hero-status strong{
  color:#020617 !important;
  font-weight:900 !important;
}


/* Pass 24D — Visual Master Polish.
   Presentation only: no routing, scheduler, lifecycle, or data behavior changes. */
:root{
  --atlas-ink:#0f172a;
  --atlas-ink-soft:#334155;
  --atlas-muted-2:#64748b;
  --atlas-surface:#ffffff;
  --atlas-surface-soft:#f8fafc;
  --atlas-surface-tint:#f1f5ff;
  --atlas-border:#d8e2f0;
  --atlas-border-strong:#b7c7e4;
  --atlas-blue-700:#1d4ed8;
  --atlas-blue-600:#2563eb;
  --atlas-blue-100:#dbeafe;
  --atlas-orange:#f97316;
  --atlas-radius-xl:24px;
  --atlas-radius-lg:18px;
  --atlas-radius-md:13px;
  --atlas-shadow-panel:0 18px 45px rgba(15,23,42,.07);
  --atlas-shadow-soft:0 8px 22px rgba(15,23,42,.06);
}
*{box-sizing:border-box}
html{
  background:#eef3fb;
}
body.atlas-app{
  background:
    radial-gradient(circle at 16% -10%, rgba(37,99,235,.16), transparent 30%),
    radial-gradient(circle at 92% 4%, rgba(249,115,22,.08), transparent 24%),
    linear-gradient(180deg,#f7faff 0%,#eef3fb 48%,#f8fafc 100%);
  color:var(--atlas-ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.atlas-main{
  max-width:1480px;
  margin:0 auto;
}
.atlas-sidebar{
  background:linear-gradient(180deg,#0b1220 0%,#101b31 52%,#0b1220 100%);
  border-right:1px solid rgba(255,255,255,.06);
}
.atlas-brand{
  padding:14px 12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  border-radius:18px;
}
.atlas-brand-copy b{
  font-size:19px;
  letter-spacing:-.035em;
}
.atlas-brand-copy span{
  color:#bfd1ea;
  font-size:12px;
}
.interface-toggle{
  background:rgba(255,255,255,.045) !important;
  border:1px solid rgba(255,255,255,.09) !important;
  border-radius:18px !important;
}
.mode-buttons a{
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
}
.atlas-nav{
  margin-top:16px;
}
.nav-section{
  margin:20px 8px 8px;
  padding:0 4px;
  color:#8fb0da;
  font-size:10.5px;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:900;
}
.atlas-nav a{
  min-height:39px;
  border-radius:13px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  margin:4px 0;
  line-height:1.2;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
  border:1px solid transparent;
}
.atlas-nav a:hover{
  transform:translateX(2px);
  background:#1b2a47;
  border-color:rgba(255,255,255,.08);
}
.atlas-nav a.active{
  background:linear-gradient(135deg,#eaf2ff,#ffffff);
  color:#102a5c;
  border-color:#9db9ee;
  box-shadow:0 8px 18px rgba(37,99,235,.18);
}
.atlas-session-bar{
  border:1px solid var(--atlas-border);
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  border-radius:22px;
  box-shadow:var(--atlas-shadow-soft);
}
.active-session-identity span,
.active-session-facts span{
  color:var(--atlas-muted-2);
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:900;
}
.active-session-identity strong,
.active-session-facts strong{
  color:var(--atlas-ink);
}
header{
  border-radius:30px;
  padding:30px;
  box-shadow:0 24px 55px rgba(15,23,42,.16);
  overflow:hidden;
  position:relative;
}
header:before{
  content:"";
  position:absolute;
  inset:auto -80px -120px auto;
  width:260px;
  height:260px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  pointer-events:none;
}
header>div{
  position:relative;
  z-index:1;
}
header h1{
  letter-spacing:-.055em;
  line-height:1.02;
}
header p,
header .page-subtitle{
  color:#d8e6ff;
  max-width:860px;
}
header .eyebrow{
  color:#c8dcff;
}
.header-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
}
button,.button{
  min-height:42px;
  border-radius:13px;
  box-shadow:0 8px 18px rgba(37,99,235,.18);
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
  white-space:nowrap;
}
button:hover,.button:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(37,99,235,.22);
}
button:disabled,.button.disabled{
  transform:none;
  box-shadow:none;
}
.secondary{
  background:#eaf2ff !important;
  color:#163b7a !important;
  border:1px solid #bed3f8 !important;
  box-shadow:none !important;
}
.panel,
.cards div,
.kpi-card,
.export-grid>a,
.workflow-strip>div,
.workflow-strip>a{
  border:1px solid var(--atlas-border);
  border-radius:var(--atlas-radius-xl);
  background:rgba(255,255,255,.96);
  box-shadow:var(--atlas-shadow-panel);
}
.panel{
  padding:21px;
}
.panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.panel-head h2{
  margin:0 0 4px;
  letter-spacing:-.025em;
  color:var(--atlas-ink);
}
.panel-head p{
  margin:0;
  color:var(--atlas-muted-2);
}
.panel-head>span{
  border-radius:999px;
  background:#eef5ff;
  color:#1e3a8a;
  border:1px solid #c7d9f8;
  padding:7px 11px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.notice,
.panel.notice,
p.notice{
  background:#fff8ed;
  border:1px solid #fed7aa;
  color:#7c2d12;
  border-radius:18px;
  padding:14px 16px;
}
.notice strong{
  color:#7c2d12;
}
.cards{
  gap:18px;
}
.cards div{
  padding:18px;
}
.cards span,
.kpi-card span,
.export-metrics span{
  color:var(--atlas-muted-2);
  font-size:11px;
  letter-spacing:.07em;
  text-transform:uppercase;
  font-weight:900;
}
.cards strong,
.kpi-card strong{
  color:var(--atlas-ink);
  letter-spacing:-.04em;
}
.cards small,
.kpi-card small{
  color:var(--atlas-muted-2);
  line-height:1.35;
}
.dashboard-kpi-grid{
  gap:18px;
}
.kpi-card{
  border-radius:22px;
  min-height:132px;
}
.kpi-card:before{
  width:6px;
}
.next-step-panel,
.schedule-next-action{
  border:1px solid #b8cbed;
  background:linear-gradient(135deg,#ffffff 0%,#f3f7ff 100%);
  box-shadow:var(--atlas-shadow-panel);
}
.next-step-panel h2,
.schedule-next-action h2{
  letter-spacing:-.035em;
}
.workflow-strip{
  gap:12px;
}
.workflow-strip>div,
.workflow-strip>a{
  padding:16px;
  min-height:110px;
}
.workflow-strip span{
  box-shadow:0 8px 16px rgba(37,99,235,.18);
}
.workflow-strip strong{
  letter-spacing:-.02em;
}
form{
  margin:0;
}
label{
  color:var(--atlas-ink-soft);
  font-weight:850;
}
label span{
  color:var(--atlas-ink);
}
label small{
  color:var(--atlas-muted-2);
  line-height:1.35;
}
input,
select,
textarea{
  width:100%;
  min-height:42px;
  border:1px solid #bfcee5;
  border-radius:12px;
  background:#fff;
  color:var(--atlas-ink);
  padding:10px 12px;
  font:inherit;
  line-height:1.2;
  box-shadow:inset 0 1px 0 rgba(15,23,42,.03);
}
input[type="checkbox"],
input[type="radio"]{
  width:auto;
  min-height:0;
  box-shadow:none;
}
input[type="date"],
input[type="number"],
input[type="time"]{
  max-width:220px;
}
input:focus,
select:focus,
textarea:focus{
  outline:3px solid rgba(37,99,235,.16);
  border-color:#2563eb;
}
textarea{
  min-height:92px;
  resize:vertical;
}
.form-grid,
.settings-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:16px;
  align-items:end;
}
.form-grid label,
.settings-grid label,
.stacked-form label{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:0;
}
.form-actions{
  display:flex;
  gap:10px;
  align-items:flex-end;
  justify-content:flex-start;
}
.elegant-form{
  align-items:end;
}
.inline-form{
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:12px;
}
.inline-form label{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:0;
}
.compact-date-form input[type="date"]{
  width:190px;
  max-width:190px;
}
.compact-date-form button{
  min-width:130px;
}
.generation-form{
  gap:12px;
  align-items:end;
}
.compact-generation-form{
  display:grid;
  grid-template-columns:minmax(180px,230px) auto;
}
.schedule-generate-actions{
  min-width:360px;
  align-items:stretch;
}
.schedule-generate-actions .secondary,
.schedule-generate-actions button{
  width:100%;
  text-align:center;
}
table{
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
}
.table-scroll{
  border:1px solid var(--atlas-border);
  border-radius:18px;
  overflow:auto;
  background:#fff;
}
.table-scroll table{
  margin:0;
}
th{
  background:#f6f9fe;
  color:#475569;
  font-size:11px;
  letter-spacing:.06em;
  font-weight:900;
}
td,th{
  padding:12px 13px;
}
td{
  color:#27364a;
}
tr:last-child td{
  border-bottom:0;
}
tbody tr:hover td{
  background:#f8fbff;
}
.inline-editor{
  min-width:190px;
}
.inline-editor summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 11px;
  border-radius:10px;
  background:#eef5ff;
  border:1px solid #c8d8f4;
  color:#173b91;
  font-weight:900;
}
.inline-editor[open]{
  background:#f8fbff;
  border:1px solid var(--atlas-border);
  border-radius:16px;
  padding:12px;
  box-shadow:var(--atlas-shadow-soft);
}
.stacked-form{
  display:grid;
  gap:12px;
  margin-top:12px;
}
.chip{
  border-radius:999px;
  padding:5px 9px;
  font-size:11px;
  letter-spacing:.01em;
}
.month,
.calendar-grid,
.portal-availability-calendar{
  border-radius:20px;
}
.month{
  border-collapse:separate;
  border-spacing:7px;
  background:#f2f6fc;
  padding:8px;
}
.month th{
  background:transparent;
  color:#64748b;
  text-align:center;
  border:0;
  padding:6px;
}
.month td{
  background:#fff;
  border:1px solid #dce6f4;
  border-radius:16px;
  padding:11px;
  box-shadow:0 5px 14px rgba(15,23,42,.045);
}
.month td.empty{
  background:transparent;
  border:0;
  box-shadow:none;
}
.calendar-day b,
.day b{
  font-size:17px;
  color:#0f172a;
}
.calendar-day span,
.day span{
  display:block;
  margin-top:5px;
  font-weight:850;
}
.calendar-day small,
.day small{
  display:block;
  color:#64748b;
  line-height:1.35;
  margin-top:4px;
}
.calendar-day a{
  display:inline-flex;
  margin-top:8px;
  font-weight:900;
}
.calendar-month-heading{
  color:#0f172a;
  letter-spacing:-.035em;
  border-top:1px solid #d8e2f0;
}
.availability-counter-strip{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
}
.availability-counter{
  border-radius:20px;
  border:1px solid var(--atlas-border);
  box-shadow:var(--atlas-shadow-soft);
}
.availability-legend-card{
  background:#f8fbff;
  border:1px solid var(--atlas-border);
  border-radius:20px;
  padding:14px;
}
.legend-pill{
  border-radius:14px;
}
.export-grid{
  gap:16px;
}
.export-grid>a{
  padding:20px;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.export-grid>a:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 38px rgba(15,23,42,.09);
}
.export-grid strong{
  color:var(--atlas-ink);
  letter-spacing:-.02em;
}
.export-grid span{
  color:var(--atlas-muted-2);
}
.policy-section{
  position:relative;
  overflow:hidden;
}
.section-letter{
  width:34px;
  height:34px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eaf2ff;
  color:#173b91;
  font-weight:900;
  margin:0 0 8px;
}
.formula-explainer{
  margin-top:18px;
  border-radius:20px;
  border:1px solid #c9daf8;
  background:#f8fbff;
  padding:18px;
}
.formula-explainer h3{
  margin-top:0;
}
header.dashboard-hero .dashboard-hero-status,
header.dashboard-hero div.dashboard-hero-status{
  min-width:250px;
  background:#ffffff !important;
  background-image:none !important;
  border:2px solid #1d4ed8 !important;
  color:#0f172a !important;
  opacity:1 !important;
  text-shadow:none !important;
  box-shadow:0 18px 35px rgba(15,23,42,.16);
}
header.dashboard-hero .dashboard-hero-status *,
header.dashboard-hero div.dashboard-hero-status *{
  color:#0f172a !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.schedule-generate-actions{
  background:#ffffff !important;
  border:2px solid #1d4ed8 !important;
  box-shadow:0 18px 35px rgba(15,23,42,.14);
}
.schedule-generate-actions label{
  color:#0f172a !important;
}
.schedule-generate-actions select{
  min-width:180px;
}
@media(max-width:1100px){
  header{
    display:block;
  }
  .header-actions{
    justify-content:flex-start;
    margin-top:16px;
  }
  .schedule-generate-actions{
    min-width:0;
  }
  .compact-generation-form{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  main{
    padding:20px;
  }
  header{
    padding:23px;
    border-radius:24px;
  }
  header h1{
    font-size:30px;
  }
  .panel{
    padding:17px;
  }
  .panel-head{
    display:block;
  }
  .panel-head>span{
    display:inline-flex;
    margin-top:10px;
  }
  .form-grid,
  .settings-grid{
    grid-template-columns:1fr;
  }
  input[type="date"],
  input[type="number"],
  input[type="time"],
  .compact-date-form input[type="date"]{
    width:100%;
    max-width:none;
  }
  .inline-form{
    display:grid;
    grid-template-columns:1fr;
  }
  .month{
    border-spacing:4px;
    padding:4px;
  }
  .month td{
    padding:9px;
  }
}
@media print{
  body.atlas-app{
    background:#fff !important;
  }
  .panel,.cards div,.kpi-card{
    box-shadow:none !important;
  }
}


/* Pass 24D-fix — Horizontal Overflow Recovery.
   Visual/layout only. Restores access to wide tables/forms without changing
   routes, fields, schedule behavior, or data semantics. */
html,
body.atlas-app{
  max-width:100%;
  overflow-x:auto !important;
}
body{
  overflow-x:auto !important;
}
.atlas-main,
main,
.panel,
.cards,
.dashboard-grid,
.dashboard-kpi-grid,
.workflow-strip,
.export-grid,
.active-session-bar{
  min-width:0;
  max-width:100%;
}
.panel{
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
}
.table-scroll{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto !important;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
}
.table-scroll table{
  width:max-content;
  min-width:100%;
}
.panel > table,
.panel > form + table,
.panel .month{
  width:max-content;
  min-width:100%;
}
.month{
  max-width:none;
}
.schedule-generate-actions,
.header-actions,
.form-grid,
.settings-grid,
.inline-form,
.row-form,
.toolbar-form,
.compact-selector,
.generation-form{
  min-width:0;
  max-width:100%;
}
.form-grid,
.settings-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));
}
input,
select,
textarea,
button,
.button{
  max-width:100%;
}
input[type="date"],
input[type="number"],
input[type="time"],
.compact-date-form input[type="date"]{
  width:100%;
  max-width:210px;
}
.compact-date-form{
  max-width:100%;
}
.compact-date-form label{
  max-width:230px;
}
.inline-editor[open]{
  min-width:min(440px, calc(100vw - 80px));
  max-width:100%;
  overflow-x:auto;
}
.stacked-form{
  min-width:0;
}
.stacked-form input,
.stacked-form select,
.stacked-form textarea{
  width:100%;
  max-width:100%;
}
.participant-table,
.availability-calendar,
.editable-matrix,
.matrix{
  min-width:max-content;
}
.availability-calendar,
.editable-matrix,
.matrix{
  width:max-content;
}
.calendar-day,
.day{
  min-width:118px;
}
@media(max-width:950px){
  .panel{
    overflow-x:auto !important;
  }
  .table-scroll{
    overflow-x:auto !important;
  }
  .panel > table,
  .panel .month{
    min-width:720px;
  }
  .schedule-generate-actions{
    width:100%;
  }
}
@media(max-width:760px){
  body.atlas-app{
    overflow-x:auto !important;
  }
  .panel{
    margin-left:0;
    margin-right:0;
  }
  .panel > table,
  .panel .month,
  .table-scroll table{
    min-width:680px;
  }
  .compact-date-form label,
  input[type="date"],
  input[type="number"],
  input[type="time"],
  .compact-date-form input[type="date"]{
    max-width:100%;
  }
}


/* Pass 24D-fix2 — Sidebar & Calendar Layout Recovery.
   Visual/layout only. Keeps the desktop sidebar anchored while forcing calendar
   views to fit the available content width. Wide data tables still scroll
   internally inside their table containers. */
html,
body.atlas-app{
  max-width:100%;
  overflow-x:hidden !important;
}
body.atlas-app{
  grid-template-columns:292px minmax(0,1fr);
}
.atlas-sidebar{
  position:sticky !important;
  top:0 !important;
  align-self:start;
  height:100vh;
  max-height:100vh;
  overflow-y:auto;
  overflow-x:hidden;
  z-index:20;
  scrollbar-gutter:stable;
}
.atlas-main,
main{
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
}
.panel{
  max-width:100%;
  overflow-x:visible;
}
.table-scroll{
  max-width:100%;
  overflow-x:auto !important;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
}
.table-scroll table{
  width:max-content;
  min-width:100%;
}

/* Calendar-style views should fit one screen width: schedule, scarcity heat map,
   availability heat map, and participant portal calendars. */
.month,
.panel .month,
table.month,
.calendar-grid,
.portal-availability-calendar{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  table-layout:fixed !important;
  border-spacing:clamp(2px,.45vw,7px) !important;
}
.month th,
.month td,
.calendar-grid > *,
.portal-availability-calendar th,
.portal-availability-calendar td{
  min-width:0 !important;
  max-width:none !important;
  overflow-wrap:anywhere;
  word-break:normal;
}
.month td{
  padding:clamp(6px,.75vw,11px) !important;
}
.calendar-day,
.day,
.availability-day{
  min-width:0 !important;
  max-width:100% !important;
}
.calendar-day b,
.day b{
  font-size:clamp(13px,1.15vw,17px);
}
.calendar-day span,
.day span{
  font-size:clamp(11px,.95vw,14px);
  line-height:1.22;
}
.calendar-day small,
.day small,
.portal-availability-calendar small{
  font-size:clamp(9px,.82vw,12px);
  line-height:1.22;
}
.calendar-day a{
  font-size:clamp(10px,.86vw,12px);
}
.panel > table:not(.month){
  width:max-content;
  min-width:100%;
}
.panel:has(> table:not(.month)){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.participant-table,
.editable-matrix,
.matrix{
  width:max-content;
  min-width:100%;
}
.availability-calendar{
  width:100% !important;
  min-width:0 !important;
}
@media(max-width:950px){
  body.atlas-app{
    grid-template-columns:minmax(0,1fr);
    overflow-x:hidden !important;
  }
  .atlas-sidebar{
    position:relative !important;
    height:auto;
    max-height:45vh;
    width:100%;
  }
  .atlas-main,
  main{
    overflow-x:hidden;
  }
  .panel .month,
  .panel > table.month,
  .month{
    min-width:0 !important;
    width:100% !important;
  }
  .table-scroll{
    overflow-x:auto !important;
  }
}
@media(max-width:680px){
  .month,
  .panel .month,
  table.month{
    border-spacing:2px !important;
  }
  .month td{
    padding:5px !important;
    border-radius:10px !important;
  }
  .calendar-day span,
  .calendar-day small,
  .day span,
  .day small{
    line-height:1.15;
  }
  .calendar-day small:nth-of-type(n+3),
  .day small:nth-of-type(n+3){
    display:none;
  }
}


/* Pass 24D-fix3 — Fixed Sidebar Shell.
   Visual/layout only. The desktop sidebar is fixed to the viewport. The page
   itself cannot horizontally scroll away from it; only intentional wide table
   containers may scroll horizontally. */
@media(min-width:951px){
  html,
  body,
  body.atlas-app{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }
  body.atlas-app{
    display:block !important;
    grid-template-columns:none !important;
  }
  aside.atlas-sidebar,
  .atlas-sidebar{
    position:fixed !important;
    left:0 !important;
    top:0 !important;
    bottom:0 !important;
    width:292px !important;
    height:100vh !important;
    max-height:100vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    z-index:1000 !important;
  }
  main.atlas-main,
  .atlas-main{
    display:block !important;
    margin-left:292px !important;
    width:calc(100vw - 292px) !important;
    max-width:calc(100vw - 292px) !important;
    min-width:0 !important;
    overflow-x:hidden !important;
    box-sizing:border-box !important;
  }
  .atlas-session-bar,
  header,
  .panel,
  .cards,
  .dashboard-grid,
  .dashboard-kpi-grid,
  .workflow-strip,
  .export-grid{
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  .panel{
    overflow-x:visible !important;
  }
  .table-scroll,
  .panel:has(> table:not(.month)){
    overflow-x:auto !important;
    max-width:100% !important;
    -webkit-overflow-scrolling:touch;
  }
  .table-scroll table,
  .panel > table:not(.month){
    width:max-content;
    min-width:100%;
  }
  table.month,
  .month,
  .panel .month,
  .availability-calendar,
  .calendar-grid,
  .portal-availability-calendar{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }
}

@media(max-width:950px){
  body.atlas-app{
    display:block !important;
    grid-template-columns:none !important;
    overflow-x:hidden !important;
  }
  aside.atlas-sidebar,
  .atlas-sidebar{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    height:auto !important;
    max-height:45vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }
  main.atlas-main,
  .atlas-main{
    margin-left:0 !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }
}

/* Pass 28 — UI Refinement Layer.
   Presentation only: typography rhythm, table/form polish, focus and motion
   refinement, sign-in experience, and print quality. No routing, scheduler,
   lifecycle, or data behaviour changes. Appended after Pass 24D-fix3 so the
   fixed-sidebar shell and overflow-recovery rules above remain authoritative
   for layout. */

/* ---- Typographic rhythm ---------------------------------------------- */
body.atlas-app{
  font-size:14.5px;
  line-height:1.55;
  font-feature-settings:"cv02","cv03","cv04","tnum" 0;
}
.atlas-main h1{font-size:clamp(24px,2.4vw,31px);line-height:1.12;letter-spacing:-.045em;margin:4px 0 8px}
.atlas-main h2{font-size:20px;letter-spacing:-.03em}
.atlas-main h3{font-size:16px;letter-spacing:-.02em}
.atlas-main p{max-width:88ch}
.panel-head p{margin:4px 0 0}
.eyebrow{font-size:11.5px}
::selection{background:#bfdbfe;color:#0f2742}

/* ---- Panels and cards -------------------------------------------------- */
.panel{border-radius:22px}
.panel > h2:first-child,.panel > h3:first-child{margin-top:0}
.kpi-card strong,.cards strong,.generation-metrics strong,.export-metrics strong,
.availability-counter strong,.dashboard-hero-status strong{
  font-variant-numeric:tabular-nums;
}
.kpi-card,.action-card,.export-grid>a,.workflow-strip>a{
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

/* ---- Tables ------------------------------------------------------------ */
.atlas-main table:not(.month):not(.portal-availability-calendar):not(.heatmap-calendar) th{
  font-weight:900;
  letter-spacing:.07em;
  padding:11px 12px;
}
.atlas-main table:not(.month):not(.portal-availability-calendar):not(.heatmap-calendar) td{
  padding:11px 12px;
}
.atlas-main table:not(.month):not(.portal-availability-calendar):not(.heatmap-calendar):not(.editable-matrix) tbody tr:hover td,
.atlas-main table:not(.month):not(.portal-availability-calendar):not(.heatmap-calendar):not(.editable-matrix) tr:hover td{
  background:#f5f8ff;
}
.atlas-main .matrix tr:hover td{background:inherit}
.atlas-main table a{color:#1d4ed8;font-weight:800;text-decoration:none}
.atlas-main table a:hover{text-decoration:underline;text-underline-offset:2px}
td .chip{white-space:nowrap}

/* ---- Forms and controls ------------------------------------------------ */
input,select,textarea{
  min-height:40px;
  transition:border-color .14s ease,box-shadow .14s ease,background .14s ease;
}
input:hover,select:hover,textarea:hover{border-color:#94a3b8}
input::placeholder,textarea::placeholder{color:#94a3b8}
input[type="checkbox"],input[type="radio"]{min-height:0;accent-color:#2563eb}
select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1.5 1.75 6 6.25l4.5-4.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  padding-right:34px;
}
.status-select,.portal-status-select{background-image:none;padding-right:7px}
button,.button{
  min-height:40px;
  transition:transform .14s ease,box-shadow .14s ease,background .14s ease,opacity .14s ease;
}
button:active,.button:active{transform:translateY(0);box-shadow:0 4px 12px rgba(37,99,235,.18)}
button.is-submitting{opacity:.65;cursor:progress}
.header-actions .button,.header-actions button{white-space:nowrap}

/* ---- Sidebar refinement ------------------------------------------------ */
.atlas-nav a{font-size:13.5px}
.atlas-nav a.active::before{display:none}
.temporary-nav small{
  display:inline-block;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(249,115,22,.16);
  color:#fdba74;
  font-size:9.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.atlas-sidebar{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.45) transparent}
.atlas-sidebar::-webkit-scrollbar{width:8px}
.atlas-sidebar::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px}
.atlas-sidebar::-webkit-scrollbar-track{background:transparent}

/* ---- Scroll surfaces --------------------------------------------------- */
.table-scroll{scrollbar-width:thin;scrollbar-color:#b7c7e4 transparent}
.table-scroll::-webkit-scrollbar{height:9px}
.table-scroll::-webkit-scrollbar-thumb{background:#c7d5ec;border-radius:999px}
.table-scroll::-webkit-scrollbar-thumb:hover{background:#a9bee2}
.table-scroll::-webkit-scrollbar-track{background:transparent}

/* ---- Notices ------------------------------------------------------------ */
.global-notice{transition:opacity .4s ease,transform .4s ease}
.global-notice.notice-dismissing{opacity:0;transform:translateY(-6px)}
details summary{border-radius:10px;padding:4px 2px}
details summary:hover{color:#1d4ed8}

/* ---- Sign-in experience ------------------------------------------------- */
body.atlas-auth-body,
body.atlas-app.atlas-auth-body{
  display:grid !important;
  grid-template-columns:none !important;
  place-items:center;
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 18% 12%, rgba(37,99,235,.22), transparent 34%),
    radial-gradient(circle at 84% 88%, rgba(13,148,136,.14), transparent 36%),
    linear-gradient(160deg,#0b1220 0%,#101b31 55%,#0b1220 100%) !important;
}
.login-shell{
  width:100%;
  max-width:440px;
  margin:0;
  padding:24px 18px;
}
.login-card{
  padding:30px 28px 24px;
  border-radius:26px;
  border:1px solid rgba(203,213,225,.9);
  box-shadow:0 30px 80px rgba(2,6,23,.5);
  background:rgba(255,255,255,.97);
}
.login-brand{text-align:center;margin-bottom:18px}
.login-brand img{
  width:64px;
  height:64px;
  object-fit:contain;
  margin:0 auto 10px;
  filter:drop-shadow(0 10px 20px rgba(15,23,42,.2));
}
.login-brand h1{margin:0 0 6px;font-size:24px;letter-spacing:-.04em}
.login-brand p{margin:0}
.login-form button{width:100%;margin-top:6px}
.login-footnote{margin:16px 0 0;text-align:center;line-height:1.5}
.login-version{margin:16px 0 0;text-align:center;color:#8fa3bd;font-size:12px;font-weight:700}
@media(max-width:520px){.login-card{padding:24px 18px 18px;border-radius:20px}}

/* ---- Motion and accessibility ------------------------------------------ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ---- Print -------------------------------------------------------------- */
@media print{
  .atlas-sidebar,.atlas-session-bar,.global-notice,.skip-link{display:none !important}
  main.atlas-main,.atlas-main{margin-left:0 !important;width:100% !important;max-width:none !important;padding:0 !important}
  .panel,table{box-shadow:none !important}
  button,.button{display:none !important}
}

/* Pass 28B — Layout Rhythm, Form System, and Mobile Navigation.
   Presentation only. Establishes one consistent vertical rhythm, a proper
   form-field system for Session Builder and other setup panels, compact
   in-table editing controls, an aligned dashboard grid, and a discoverable
   horizontally scrolling top navigation on mobile. */

/* ---- One vertical rhythm: 18px between sections, none inside grids ------ */
.atlas-main .panel,.atlas-main .cards,.atlas-main header,
.dashboard-kpi-grid,.export-grid,.notification-grid{margin-bottom:18px}
.cards>div,
.dashboard-grid>.panel,.dashboard-grid>section,
.grid.two>.panel,.grid.two>section,.grid.two>div,
.split-forms>*,.notification-grid>.panel,
.report-pillars>div,.certificate>div{margin-bottom:0}
.atlas-main > :last-child{margin-bottom:0}

/* ---- Missing layout primitive: .grid.two (Accounts, Local backup) ------- */
.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px;align-items:stretch}
.grid.two .panel{height:100%}
@media(max-width:900px){.grid.two{grid-template-columns:1fr}}

/* ---- Dashboard: aligned two-column row, full-width queue below ---------- */
.dashboard-grid{
  grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:18px;
  align-items:stretch;
  margin-bottom:18px;
}
.dashboard-grid>.panel{height:100%;display:flex;flex-direction:column}
.dashboard-grid .risk-list,.dashboard-grid .generation-metrics{flex:1;align-content:start}
.review-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.review-list .review-item{margin:0}

/* ---- Form system: aligned fields, calm labels, no stray margins --------- */
.form-grid,.elegant-form.form-grid{gap:14px 16px;align-items:stretch}
.elegant-form label,.form-grid label,.stacked-form label{
  display:grid;
  align-content:start;
  gap:6px;
  margin:0;
  font-size:12px;
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--atlas-muted);
}
/* Controls share one baseline even when label text wraps to two lines */
.form-grid label{grid-template-rows:1fr auto;align-content:stretch}
.form-grid label > input,
.form-grid label > select,
.form-grid label > textarea{align-self:end}
.elegant-form label small,.form-grid label small,.stacked-form label small{
  text-transform:none;
  letter-spacing:0;
  font-weight:600;
  color:var(--atlas-subtle);
  line-height:1.35;
}
.elegant-form input,.elegant-form select,.elegant-form textarea,
.form-grid input,.form-grid select,.form-grid textarea,
.stacked-form input,.stacked-form select,.stacked-form textarea{
  margin:0;
  font-size:14px;
  font-weight:600;
  letter-spacing:normal;
  text-transform:none;
  color:var(--atlas-ink);
}
.form-grid .form-actions{
  display:flex;
  align-items:flex-end;
  gap:10px;
  margin:0;
  padding-bottom:1px;
}
.form-actions small{color:var(--atlas-muted);font-weight:600;line-height:1.35}
.checkbox-label{font-size:13px;font-weight:700;text-transform:none;letter-spacing:normal;color:var(--atlas-text)}
.observed-date-field .same-date-button,.same-date-button{
  margin:2px 0 0;
  justify-self:start;
  min-height:32px;
  padding:6px 12px;
  font-size:12px;
  font-weight:800;
}

/* ---- Sub-panels: Shift exceptions and similar paired forms -------------- */
.sub-panel{
  border:1px solid var(--atlas-line);
  border-radius:16px;
  background:var(--atlas-panel-muted);
  padding:16px;
  min-width:0;
}
.sub-panel h3{margin:0 0 12px;font-size:15px;letter-spacing:-.02em;color:var(--atlas-ink)}
.sub-panel button{justify-self:start;margin-top:2px}
.split-forms{gap:16px;align-items:stretch}

/* ---- Compact in-table editing (holiday lists, roster) -------------------- */
.atlas-main table input:not(.status-select):not([type="checkbox"]),
.atlas-main table select:not(.status-select):not(.portal-status-select){
  margin:0;
  min-height:35px;
  padding:6px 9px;
  font-size:13px;
  border-radius:9px;
  width:100%;
  min-width:110px;
}
.atlas-main table select:not(.status-select):not(.portal-status-select){padding-right:30px;background-position:right 9px center}
.atlas-main table input[type="number"]{min-width:76px;max-width:110px}
.atlas-main table button{
  min-height:32px;
  padding:6px 12px;
  font-size:12.5px;
  border-radius:999px;
  box-shadow:none;
}
.atlas-main table button:hover{transform:none;box-shadow:var(--atlas-shadow-sm)}
.atlas-main td .inline-form{margin:0}
.atlas-main td form + button,
.atlas-main td button + .inline-form,
.atlas-main td .inline-form + .inline-form{margin-left:0}
/* Action cells: lay every control out on one tidy row that wraps cleanly */
.atlas-main td:has(> .inline-form),
.atlas-main td:has(> button[form]){
  white-space:normal;
}
.atlas-main td:has(> .inline-form) > *,
.atlas-main td:has(> button[form]) > *{
  display:inline-flex;
  vertical-align:middle;
  margin:2px 6px 2px 0;
}
.atlas-main td .inline-form button{margin:0}
.atlas-main td small.muted{font-weight:700}

/* ---- Session Builder header form on the dark hero ----------------------- */
header .generation-form label{color:#dbeafe;text-transform:uppercase;font-size:11px;letter-spacing:.08em}
header .generation-form select{margin-top:4px}

/* ---- Sidebar brand with the new white Atlas mark ------------------------ */
.atlas-brand > img.atlas-logo{
  flex:0 0 44px !important;
  width:44px !important;
  max-width:44px !important;
  height:44px !important;
  max-height:44px !important;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.35)) !important;
}

/* ---- Sign-in lockup ------------------------------------------------------ */
.login-lockup{
  width:168px;
  height:auto;
  margin:0 auto 6px;
  display:block;
  filter:none;
}
.login-brand h1{font-size:21px;color:var(--atlas-ink)}

/* ---- Mobile: sidebar becomes a compact, clearly scrollable top bar ------- */
.nav-scroll-hint{display:none}
@media(max-width:950px){
  aside.atlas-sidebar,
  .atlas-sidebar{
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    padding:12px 14px 6px !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
  }
  .atlas-brand{margin-bottom:10px !important;padding:8px 10px !important}
  .interface-toggle{margin:0 0 10px;padding:10px 12px}
  .interface-toggle p{margin:0 0 8px;font-size:12.5px}
  .interface-toggle p small{display:none}
  .portal-identity-card{margin:0 0 10px;padding:10px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .portal-identity-card span,.portal-identity-card small{font-size:11px}
  .portal-identity-card strong{margin:0;font-size:14px}
  .atlas-nav{
    display:flex !important;
    grid-template-columns:none !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    gap:8px;
    padding:2px 28px 10px 2px;
    margin:0;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(148,163,184,.55) transparent;
  }
  .atlas-nav::-webkit-scrollbar{height:6px}
  .atlas-nav::-webkit-scrollbar-thumb{background:rgba(148,163,184,.5);border-radius:999px}
  .atlas-nav::-webkit-scrollbar-track{background:transparent}
  .atlas-nav .nav-section{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    margin:0;
    padding:0 8px 0 12px;
    border-left:2px solid rgba(148,163,184,.4);
    white-space:nowrap;
    font-size:10px;
  }
  .atlas-nav .nav-section:first-child{border-left:0;padding-left:2px}
  .atlas-nav a{
    flex:0 0 auto;
    white-space:nowrap;
    scroll-snap-align:start;
    min-height:36px;
    margin:0;
    padding:8px 13px;
    font-size:13px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(226,232,240,.12);
  }
  .atlas-nav a:hover{transform:none}
  .temporary-nav small{display:inline-block;margin:0 0 0 6px}
  .nav-scroll-hint{
    display:flex;
    align-items:center;
    gap:6px;
    padding:0 2px 10px;
    color:#8fa3bd;
    font-size:11.5px;
    font-weight:800;
    letter-spacing:.04em;
  }
  .nav-scroll-hint span{animation:atlas-nudge 1.6s ease-in-out infinite}
  .nav-scroll-hint.is-hidden{display:none}
  @keyframes atlas-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}

  /* Content rhythm on small screens */
  .form-grid{grid-template-columns:1fr}
  .form-grid .form-actions{padding-bottom:0}
  .form-actions button{width:100%}
  .dashboard-grid{grid-template-columns:1fr}
  .dashboard-grid>.panel{height:auto}
  .review-list{grid-template-columns:1fr}
  .atlas-main .panel,.atlas-main .cards,.atlas-main header{margin-bottom:14px}
  .login-shell{padding:18px 14px}
}

/* Pass 28C — Session Builder & Schedule follow-ups.
   Holiday form actions row, aligned holiday-table action cells, and the
   quiet "Outside active range" state. Presentation only. */
.form-grid .holiday-form-actions,
.holiday-form-actions{
  grid-column:1 / -1;
  flex-wrap:wrap;
  align-items:center;
  row-gap:8px;
  padding-bottom:0;
}
.holiday-form-actions .same-date-button{margin:0;min-height:40px;padding:9px 14px;font-size:13px}
.holiday-form-actions small{flex-basis:100%;margin:0}
.atlas-main td small.muted{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:5px 12px;
  border:1px dashed var(--atlas-line);
  border-radius:999px;
  background:var(--atlas-panel-muted);
  color:var(--atlas-subtle);
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}
/* Keep every holiday action row on one line at desktop widths so Save /
   Include-or-state / Delete columns align across rows */
#master-holidays td:last-child{white-space:nowrap;min-width:270px}
#master-holidays td:last-child > *{margin:2px 6px 2px 0}

/* Pass 28C-fix: the middle slot of each master-holiday action row (either the
   Include button or the "Outside active range" state) gets one fixed width so
   the Delete column aligns on every row. */
#master-holidays td:last-child form[action*="/holidays/include"],
#master-holidays td:last-child small.muted{
  display:inline-flex;
  justify-content:center;
  min-width:168px;
}

/* ============================================================================
   Pass 29 — Atlas Design Language
   Concept: classical cartography meets clinical software. A display serif
   echoes the Roman capital A of the Atlas mark; surfaces are warm porcelain;
   the shell is deep atlas navy; a restrained brass accent carries eyebrows,
   section labels, and the active-navigation marker. Semantic colour
   (Green/Yellow/Red availability, scarcity heat, severity washes) is
   deliberately untouched. Presentation only — appended last so every pinned
   layout/overflow rule above remains authoritative.
   ========================================================================== */

:root{
  --font-display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --atlas-navy-950:#081120;
  --atlas-navy-900:#0a1626;
  --atlas-navy-850:#0d1c31;
  --atlas-navy-800:#102340;
  --atlas-navy-700:#16305a;
  --atlas-brass:#8a6626;
  --atlas-brass-bright:#c9a25a;
  --atlas-brass-soft:#e7d3ab;
  --atlas-porcelain:#f3f5f8;
  --atlas-hairline:#e2e7ef;
  --atlas-shadow-panel-2:0 1px 2px rgba(10,22,38,.05),0 10px 30px rgba(10,22,38,.06);
}

/* ---- Canvas -------------------------------------------------------------- */
body.atlas-app{
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(22,48,90,.05), transparent 60%),
    radial-gradient(900px 460px at -10% 108%, rgba(138,102,38,.04), transparent 55%),
    var(--atlas-porcelain);
  color:#182338;
}
::selection{background:#14305a;color:#f4ecd9}

/* ---- Typography ----------------------------------------------------------- */
.atlas-main h1,
.atlas-main .panel > h2,
.atlas-main .panel-head h2,
.atlas-main header h1,
.login-brand h1{
  font-family:var(--font-display);
  font-weight:650;
  letter-spacing:-.015em;
}
.atlas-main h1{font-size:clamp(26px,2.5vw,33px)}
.atlas-main .panel > h2,.atlas-main .panel-head h2{font-size:21px;color:#122036}
.eyebrow{
  color:var(--atlas-brass);
  font-size:11px;
  font-weight:850;
  letter-spacing:.17em;
}
.atlas-main header .eyebrow,header .eyebrow{color:var(--atlas-brass-soft)}
.user-mode .eyebrow{color:#a7e6dc}
.page-subtitle{color:#5a6880}

/* ---- Shell: sidebar ------------------------------------------------------- */
aside.atlas-sidebar,.atlas-sidebar{
  background:
    radial-gradient(420px 260px at 24% -4%, rgba(83,124,196,.16), transparent 62%),
    radial-gradient(560px 320px at 110% 112%, rgba(201,162,90,.07), transparent 60%),
    linear-gradient(178deg,var(--atlas-navy-900) 0%,var(--atlas-navy-850) 54%,var(--atlas-navy-950) 100%) !important;
  border-right:1px solid rgba(231,211,171,.08) !important;
}
.atlas-brand{border-bottom:1px solid rgba(231,211,171,.16)}
.atlas-brand b{
  font-family:var(--font-display);
  font-weight:650;
  font-size:23px;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:#f3ede1;
}
.atlas-brand span{color:#8fa0ba;font-size:11.5px;letter-spacing:.01em}
.atlas-nav .nav-section{
  color:var(--atlas-brass-bright);
  font-size:10.5px;
  letter-spacing:.19em;
  font-weight:850;
  opacity:.92;
}
.atlas-nav a{color:#c3d0e4;font-weight:700;border-radius:11px}
.atlas-nav a:hover{background:rgba(255,255,255,.06);border-color:rgba(231,211,171,.12);color:#fff;transform:none}
.atlas-nav a.active{
  background:rgba(255,255,255,.075);
  color:#ffffff;
  border-color:rgba(231,211,171,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.atlas-nav a.active::before{
  display:block;
  content:"";
  position:absolute;
  left:-1px;top:9px;bottom:9px;width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--atlas-brass-soft),var(--atlas-brass-bright));
}
.temporary-nav small{background:rgba(201,162,90,.16);color:var(--atlas-brass-soft)}
.interface-toggle{background:rgba(255,255,255,.045);border-color:rgba(231,211,171,.14)}
.mode-buttons a{background:rgba(255,255,255,.06);border-color:rgba(226,232,240,.10)}
.mode-buttons a.current{background:#f3ede1;color:var(--atlas-navy-800)}
.portal-identity-card{background:rgba(8,17,32,.55);border-color:rgba(231,211,171,.14)}
.user-mode aside.atlas-sidebar,.user-mode .atlas-sidebar{
  background:
    radial-gradient(420px 260px at 24% -4%, rgba(45,159,143,.18), transparent 62%),
    linear-gradient(178deg,#07202f 0%,#092a3c 54%,#051821 100%) !important;
}

/* ---- Shell: session bar ---------------------------------------------------- */
.atlas-session-bar{
  background:rgba(255,255,255,.9);
  border:1px solid var(--atlas-hairline);
  box-shadow:var(--atlas-shadow-panel-2);
}
.active-session-identity strong{font-family:var(--font-display);font-weight:650;font-size:20px;letter-spacing:-.01em}
.active-session-identity span,.active-session-facts span{color:var(--atlas-brass);letter-spacing:.13em}
.portal-bar .active-session-identity span{color:#0f766e}

/* ---- Hero headers ----------------------------------------------------------- */
.atlas-main header{
  background:
    radial-gradient(520px 300px at 88% -30%, rgba(201,162,90,.13), transparent 60%),
    radial-gradient(700px 400px at -10% 130%, rgba(64,110,190,.20), transparent 62%),
    linear-gradient(140deg,var(--atlas-navy-700) 0%,var(--atlas-navy-800) 44%,var(--atlas-navy-950) 100%);
  border:1px solid rgba(231,211,171,.13);
}
.atlas-main header::after{
  right:-70px;top:-70px;width:230px;height:230px;
  background:transparent;
  border:1.5px solid rgba(231,211,171,.16);
  box-shadow:inset 0 0 0 26px rgba(231,211,171,.045);
}
.user-mode .atlas-main header,.portal-header{
  background:
    radial-gradient(520px 300px at 88% -30%, rgba(167,230,220,.10), transparent 60%),
    linear-gradient(140deg,#0d5c52 0%,#0b3a46 48%,#06131f 100%);
}
.atlas-main header h1{font-weight:600}

/* ---- Panels ------------------------------------------------------------------ */
.cards div,.panel,.action-card,.export-grid>a{
  border:1px solid var(--atlas-hairline);
  background:#fff;
  box-shadow:var(--atlas-shadow-panel-2);
  border-radius:20px;
}
.panel-head{border:0}
.panel-head p{color:#5a6880}
.next-step-panel,.schedule-next-action{
  background:linear-gradient(180deg,#fdfcf9,#f7f5ef);
  border:1px solid #e6ddc8;
}
.next-step-panel .eyebrow,.schedule-next-action .eyebrow{color:var(--atlas-brass)}
.next-step-panel h2,.schedule-next-action h2{font-family:var(--font-display);font-weight:650}

/* ---- KPI + stat cards --------------------------------------------------------- */
.kpi-card{border-radius:18px}
.kpi-card:before{width:0}
.kpi-card::after{
  content:"";
  position:absolute;left:18px;top:16px;width:26px;height:3px;border-radius:99px;
  background:var(--atlas-brass-bright);
}
.kpi-card.healthy::after{background:#16a34a}
.kpi-card.attention::after{background:#ea7317}
.kpi-card span{margin-top:12px;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#5c6b85}
.kpi-card strong{font-size:27px;color:#111d33}
.cards span{font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#5c6b85}
.cards strong{color:#111d33}
.generation-metrics>div,.export-metrics>div,.active-session-facts>div{
  background:#fbfcfe;border-color:var(--atlas-hairline);
}
.generation-metrics span{letter-spacing:.1em;text-transform:uppercase;font-weight:800;font-size:10.5px}

/* ---- Workflow strip -------------------------------------------------------------- */
.workflow-strip span{
  background:#fff;
  border:1.5px solid var(--atlas-brass-bright);
  color:var(--atlas-navy-800);
}
.workflow-strip .current{background:#f7f5ef;border-color:#dfd3b4}
.workflow-strip .current span{background:var(--atlas-navy-800);border-color:var(--atlas-navy-800);color:#f3ede1}

/* ---- Buttons ------------------------------------------------------------------------ */
button,.button{
  background:linear-gradient(140deg,var(--atlas-navy-700),var(--atlas-navy-800) 55%,var(--atlas-navy-900));
  box-shadow:0 8px 20px rgba(13,28,52,.24),inset 0 1px 0 rgba(255,255,255,.14);
  letter-spacing:.005em;
}
button:hover,.button:hover{box-shadow:0 12px 26px rgba(13,28,52,.30),inset 0 1px 0 rgba(255,255,255,.14)}
button:active,.button:active{box-shadow:0 4px 10px rgba(13,28,52,.24)}
.secondary,button.secondary,.button.secondary{
  background:#fff;
  color:var(--atlas-navy-700);
  border:1px solid #ccd6e4;
  box-shadow:0 1px 2px rgba(10,22,38,.06);
}
.secondary:hover,button.secondary:hover{background:#f5f8fc;border-color:#a9bbd4}
.user-mode .button:not(.secondary),.user-mode button:not(.secondary){
  background:linear-gradient(140deg,#0f6e60,#0b4c4e 60%,#083242);
  box-shadow:0 8px 20px rgba(9,58,58,.26),inset 0 1px 0 rgba(255,255,255,.12);
}
.quick-links a{background:#f3f0e7;color:var(--atlas-navy-700);border:1px solid #e2d9c2}

/* ---- Forms ----------------------------------------------------------------------------- */
input,select,textarea{border-color:#d5dce8;border-radius:11px;background:#fff}
input:hover,select:hover,textarea:hover{border-color:#b3c0d4}
input:focus,select:focus,textarea:focus{border-color:var(--atlas-navy-700);box-shadow:0 0 0 3px rgba(22,48,90,.14)}
.elegant-form label,.form-grid label,.stacked-form label{color:#5c6b85;letter-spacing:.09em}
.sub-panel{background:#fbfcfe;border-color:var(--atlas-hairline)}
.settings-grid>label,.setting-readonly{background:#fbfcfe;border-radius:12px}
.formula-explainer{border-left-color:var(--atlas-brass-bright);background:#faf7f0}
.policy-save-bar{background:var(--atlas-navy-900);border:1px solid rgba(231,211,171,.16);border-radius:14px}
.sticky-save-row{background:var(--atlas-navy-900);border:1px solid rgba(231,211,171,.16)}

/* ---- Tables ------------------------------------------------------------------------------- */
.atlas-main table th{
  color:#5c6b85;
  font-size:10.5px;
  letter-spacing:.13em;
  border-bottom:1px solid #c9d2e0;
  background:transparent;
}
.atlas-main table td{border-bottom:1px solid #edf0f5}
.atlas-main table:not(.month):not(.portal-availability-calendar):not(.heatmap-calendar):not(.editable-matrix) tbody tr:hover td,
.atlas-main table:not(.month):not(.portal-availability-calendar):not(.heatmap-calendar):not(.editable-matrix) tr:hover td{
  background:#f8f9fc;
}
.atlas-main table a{color:var(--atlas-navy-700)}
tr.best{background:#f4faf4}

/* ---- Focus, notices, misc ------------------------------------------------------------------- */
:focus-visible{outline:2px solid var(--atlas-navy-700);outline-offset:2px}
.global-notice.success-notice{border-color:#bfe3c8}
.review-item{border-left-width:3px;border-radius:12px}
.risk-item{border-left-width:3px;border-radius:12px}
details summary:hover{color:var(--atlas-navy-700)}
.calendar-month-heading{font-family:var(--font-display);font-weight:650;letter-spacing:.01em}
.calendar-day.holiday{background:#fdf6ec}
pre{background:var(--atlas-navy-950);border:1px solid rgba(231,211,171,.14)}
.export-heading{border-bottom-color:var(--atlas-navy-800)}

/* ---- Scroll surfaces -------------------------------------------------------------------------- */
.table-scroll{scrollbar-color:#c3cdda transparent}
.table-scroll::-webkit-scrollbar-thumb{background:#cbd5e2}
.atlas-sidebar{scrollbar-color:rgba(201,162,90,.35) transparent}
.atlas-sidebar::-webkit-scrollbar-thumb{background:rgba(201,162,90,.30)}

/* ---- Sign-in ------------------------------------------------------------------------------------ */
body.atlas-auth-body,
body.atlas-app.atlas-auth-body{
  background:
    radial-gradient(circle at 16% 10%, rgba(64,110,190,.22), transparent 36%),
    radial-gradient(circle at 86% 90%, rgba(201,162,90,.12), transparent 40%),
    linear-gradient(165deg,var(--atlas-navy-900) 0%,var(--atlas-navy-800) 55%,var(--atlas-navy-950) 100%) !important;
}
.login-card{border:1px solid rgba(231,211,171,.5);border-radius:24px}
.login-brand h1{font-size:25px;font-weight:650;color:#122036}
.login-footnote{border-top:1px solid #eee6d3;padding-top:14px}
.login-version{color:#93a5c0}
.login-form button{background:linear-gradient(140deg,var(--atlas-navy-700),var(--atlas-navy-900))}

/* ---- Mobile refinements --------------------------------------------------------------------------- */
@media(max-width:950px){
  .atlas-nav a{background:rgba(255,255,255,.055);border:1px solid rgba(231,211,171,.12)}
  .atlas-nav a.active{background:#f3ede1;color:var(--atlas-navy-800);border-color:#f3ede1}
  .atlas-nav a.active::before{display:none}
  .atlas-nav .nav-section{border-left-color:rgba(201,162,90,.4)}
  .nav-scroll-hint{color:var(--atlas-brass-bright)}
  .atlas-brand b{font-size:19px}
}

/* Pass 29-fix: three earlier hard-contrast rules (Pass 18C-fix / 18C-fix2)
   pinned the brand wordmark and hero eyebrow with !important. Re-pin them to
   the Pass 29 design language at equal importance, later in the cascade.
   Contrast stays AA+ (brand 15.6:1 on navy; brass-soft eyebrow 10.7:1 on
   hero navy; soft teal 11+:1 on portal teal). */
.atlas-brand-copy b{
  font-family:var(--font-display) !important;
  font-weight:650 !important;
  font-size:22px !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  color:#f3ede1 !important;
}
.atlas-brand-copy span{color:#8fa0ba !important}
.atlas-main header .eyebrow{color:var(--atlas-brass-soft) !important}
.user-mode .atlas-main header .eyebrow,
.atlas-main .portal-header .eyebrow{color:#c6ece3 !important}
@media(max-width:950px){
  .atlas-brand-copy b{font-size:18px !important;letter-spacing:.14em !important}
}

/* Pass 27 Fix 2 workflow/engine hygiene */
.status-select.earmark, .chip.earmark { background: #dbeafe; color: #1d4ed8; border-color: #93c5fd; }
.status-select.avoid, .chip.avoid { background: #e5e7eb; color: #374151; border-color: #9ca3af; }
.arrow-copy-button { min-width: 2.25rem; padding-inline: .65rem; font-weight: 800; }
.date-copy-inline { display: flex; align-items: center; gap: .4rem; }
.schedule-generate-card { align-items: flex-end; gap: .75rem; padding: .9rem; border: 1px solid var(--border, #d8dee9); border-radius: 16px; background: var(--panel, #fff); box-shadow: 0 6px 18px rgba(15,23,42,.06); }
.schedule-generate-card label { margin: 0; }
.workflow-status-panel { display: flex; gap: .6rem; align-items: center; }
.open-swap-note { display: inline-flex; margin-top: .25rem; font-size: .82rem; }
.lifecycle-action-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem; }

/* ============================================================================
   Pass 30 — Workflow Stepper, Header Control Contrast, Date-Bridge Copy.
   Presentation only.
   ========================================================================== */

/* ---- 30A: controls placed inside dark hero headers ------------------------
   Pass 18C-fix forces header span/small/p to near-white with !important, which
   made status chips (e.g. the green "Availability Complete") unreadable, and
   Pass 29's navy primary buttons vanish against the navy hero. Chips get
   their semantic colours back at equal importance; buttons on the dark hero
   get an on-dark treatment (solid parchment primary, ghost secondary), while
   buttons inside light cards embedded in headers are restored to normal. */
.atlas-main header .chip{background:#edf1f9 !important;color:#16345c !important;border:1px solid rgba(255,255,255,.55)}
.atlas-main header .chip.green{background:#d8f3e0 !important;color:#14532d !important;border-color:#8fdcab}
.atlas-main header .chip.yellow{background:#fbeecb !important;color:#7a4a04 !important;border-color:#ecd18a}
.atlas-main header .chip.red{background:#fbe2e2 !important;color:#8f1d1d !important;border-color:#f0b2b2}
.atlas-main header .chip.earmark{background:#dbeafe !important;color:#1d4ed8 !important}

.atlas-main header .header-actions button:not(.secondary),
.atlas-main header .header-actions .button:not(.secondary){
  background:#f3ede1;
  color:#122036;
  box-shadow:0 8px 20px rgba(4,10,20,.35),inset 0 1px 0 rgba(255,255,255,.6);
}
.atlas-main header .header-actions button:not(.secondary):hover,
.atlas-main header .header-actions .button:not(.secondary):hover{background:#fff}
.atlas-main header .header-actions button:not(.secondary)[disabled]{
  background:rgba(255,255,255,.14);
  color:rgba(255,255,255,.6);
  box-shadow:none;
  cursor:not-allowed;
}
.atlas-main header .header-actions .secondary{
  background:rgba(255,255,255,.07) !important;
  color:#ecf2fb !important;
  border:1px solid rgba(255,255,255,.30) !important;
  box-shadow:none;
}
.atlas-main header .header-actions .secondary:hover{background:rgba(255,255,255,.16) !important;border-color:rgba(255,255,255,.5) !important}
/* Light cards embedded in headers keep normal button styling */
.atlas-main header .header-actions .compact-generation-form button:not(.secondary),
.atlas-main header .header-actions .schedule-generate-card button:not(.secondary){
  background:linear-gradient(140deg,var(--atlas-navy-700),var(--atlas-navy-800) 55%,var(--atlas-navy-900));
  color:#fff;
  box-shadow:0 8px 20px rgba(13,28,52,.24),inset 0 1px 0 rgba(255,255,255,.14);
}
.atlas-main header .header-actions .compact-generation-form button:not(.secondary)[disabled],
.atlas-main header .header-actions .schedule-generate-card button:not(.secondary)[disabled]{
  background:#dfe5ee;color:#8b97ab;box-shadow:none;cursor:not-allowed;
}

/* ---- 30B: date-bridge copy arrow (Master hospital holiday add form) ------- */
.holiday-add-form{
  grid-template-columns:minmax(170px,1.15fr) minmax(140px,1fr) auto minmax(140px,1fr) minmax(160px,1fr);
}
.holiday-add-form .date-bridge-copy{
  align-self:end;
  margin:0;
  min-height:40px;
  min-width:40px;
  width:40px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  font-size:16px;
  line-height:1;
}
@media(max-width:950px){
  .holiday-add-form{grid-template-columns:1fr}
  .holiday-add-form .date-bridge-copy{justify-self:center;transform:rotate(90deg)}
  .holiday-add-form .date-bridge-copy:hover{transform:rotate(90deg)}
}

/* ---- 30C: lifecycle-aware sidebar ------------------------------------------
   The sidebar itself carries session progress. The six workflow links
   (Session Builder, Policy, Availability, Schedule, Engine & Insights,
   Lifecycle) each show a stage marker on the right: filled for completed
   stages, brass-ringed for the session's current stage, hollow for upcoming.
   This is distinct from the .active page highlight — one says "you are
   viewing this page", the other says "the session is at this stage". */
.atlas-nav a{display:flex;align-items:center;gap:8px}
.wf-mark{
  margin-left:auto;
  flex:0 0 auto;
  width:8px;
  height:8px;
  border-radius:50%;
  border:1.5px solid rgba(148,163,184,.55);
  background:transparent;
}
.atlas-nav a.wf-done .wf-mark{
  background:#7f93b1;
  border-color:#7f93b1;
}
.atlas-nav a.wf-current .wf-mark{
  background:var(--atlas-brass-bright);
  border-color:var(--atlas-brass-soft);
  box-shadow:0 0 0 3px rgba(201,162,90,.25);
}
.atlas-nav a.wf-current{color:#fff}
.atlas-nav a.wf-upcoming .wf-mark{opacity:.55}
.atlas-nav a.active .wf-mark{border-color:rgba(148,163,184,.7)}
@media(max-width:950px){
  .wf-mark{margin-left:6px}
}

/* ---- 30D: phase pipeline sidebar + review checklist ------------------------ */
.nav-phase{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
}
.phase-num,.phase-check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:19px;
  height:19px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  letter-spacing:0;
  border:1.5px solid rgba(148,163,184,.5);
  color:#9fb0c8;
  background:transparent;
}
.phase-check{display:none}
.nav-phase.done .phase-num{display:none}
.nav-phase.done .phase-check{display:inline-flex;background:#31456b;border-color:#31456b;color:#e8eef8}
.nav-phase.done{color:#94a7c2}
.nav-phase.current{color:#f3ede1}
.nav-phase.current .phase-num{
  border-color:var(--atlas-brass-bright);
  color:var(--atlas-brass-soft);
  box-shadow:0 0 0 3px rgba(201,162,90,.22);
}
.phase-here{
  width:6px;height:6px;border-radius:50%;
  background:var(--atlas-brass-bright);
  margin-left:2px;
}
.nav-phase.upcoming{opacity:.72}

.phase-gate-button{white-space:nowrap}
.review-checklist .gate-group-title{margin:18px 0 8px;font-size:13.5px;letter-spacing:.01em}
.review-checklist .gate-group-title small{color:var(--atlas-subtle);font-weight:700;margin-left:6px}
.gate-rows{display:grid;gap:6px}
.gate-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border:1px solid var(--atlas-hairline);
  border-radius:11px;
  background:#fbfcfe;
  font-size:13px;
  font-weight:650;
  color:#2c3b55;
  text-decoration:none;
}
a.gate-row:hover{border-color:#b7c4d8;background:#f4f7fc}
.gate-row i{
  flex:0 0 16px;
  width:16px;height:16px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  font-style:normal;font-size:9.5px;font-weight:900;
}
.gate-row.pass i{background:#d8f3e0;color:#14532d}
.gate-row.pass i::before{content:"\2713"}
.gate-row.fail{border-color:#f0c8c8;background:#fdf7f7}
.gate-row.fail i{background:#fbe2e2;color:#8f1d1d}
.gate-row.fail i::before{content:"!"}
.gate-row.warn{border-color:#ecd9a8;background:#fdfaf1}
.gate-row.warn i{background:#fbeecb;color:#7a4a04}
.gate-row.warn i::before{content:"\2022"}
.gate-row.neutral i{border:1.5px solid #c3cdda}
.gate-clear{color:#3d6b46;background:#f2faf3;border:1px solid #cde8d3;border-radius:11px;padding:10px 12px;font-size:13px;font-weight:650}
.review-gate-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--atlas-hairline)}
.review-gate-actions small{color:var(--atlas-muted);font-weight:650}
button.gate-warn{background:linear-gradient(140deg,#9a6a10,#7a4a04 60%,#5d3803);box-shadow:0 8px 20px rgba(122,74,4,.28),inset 0 1px 0 rgba(255,255,255,.18)}
.gate-warn-note{color:#7a4a04 !important}


/* Pass 27 Fix 8: account actions must be visible in the Master Participants row. */
.account-row-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr));
  gap:10px;
  align-items:start;
  min-width:560px;
}
.account-action-slot{
  display:grid;
  gap:6px;
  align-content:start;
}
.account-action-label{
  display:block;
  color:#5c6b85;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.compact-inline-editor{
  min-width:0;
}
.account-delete-form{
  display:grid;
  gap:7px;
  align-items:start;
}
.confirm-check{
  display:inline-flex !important;
  gap:7px !important;
  align-items:center;
  color:#5c6b85;
  font-size:12px;
  font-weight:800;
  letter-spacing:0;
  text-transform:none;
}
.confirm-check input{
  width:auto !important;
}
.danger-secondary{
  border-color:#fecaca;
  color:#991b1b;
  background:#fff7f7;
}
.danger-secondary:hover{
  border-color:#fca5a5;
}
@media(max-width:1200px){
  .account-row-actions{grid-template-columns:1fr;min-width:260px;}
}


/* Pass 30 Fix 2 — dashboard, table density, and participant-facing polish. */
.schedule-generate-card{background:#f8fbff;border-color:#c7d5e8;min-width:360px}
.schedule-generate-card label{color:#53627a !important}
.schedule-generate-card select{background:#fff;color:#1f2f46}
.atlas-main header .header-actions .schedule-generate-card button:not(.secondary)[disabled]{
  background:#e4e9f1 !important;
  color:#5f6f86 !important;
  border:1px solid #c8d1df !important;
  opacity:1;
}
.operations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.operation-card{position:relative;display:grid;gap:6px;min-width:0;padding:16px 16px 15px;border:1px solid var(--atlas-border);border-radius:16px;background:#fff;color:var(--atlas-ink);text-decoration:none;box-shadow:var(--atlas-shadow-sm);overflow:hidden}
.operation-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#5f789c}
.operation-card.healthy::before{background:#2f855a}.operation-card.attention::before{background:#c47b1a}
.operation-card:hover{border-color:#a9bdd8;transform:translateY(-1px);box-shadow:0 12px 26px rgba(18,38,66,.10)}
.operation-card span{font-size:11px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#607089}
.operation-card strong{font-size:23px;line-height:1.05;color:#183252;overflow-wrap:anywhere}
.operation-card small{color:#68778d;line-height:1.35}
.participant-master-table table{min-width:1120px;table-layout:auto}
.participant-master-table th:nth-child(7),.participant-master-table td:nth-child(7){min-width:210px;max-width:260px}
.compact-account-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:flex-start;min-width:0}
.compact-account-actions form{margin:0}
.compact-account-actions button{padding:7px 10px;font-size:12px;white-space:nowrap}
.account-delete-details{width:100%;max-width:190px;margin-top:1px}
.account-delete-details summary{font-size:12px;font-weight:800;color:#8f1d1d;cursor:pointer;list-style-position:inside}
.account-delete-details[open]{padding:8px;border:1px solid #f0caca;border-radius:10px;background:#fff8f8}
.account-delete-details .account-delete-form{margin-top:8px}
.polished-notification-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));align-items:stretch}
.notification-card{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.notification-card .inline-actions{margin-top:auto;padding-top:10px}
.notification-body-preview{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;color:#44536a;line-height:1.45}
.notification-readiness-table table{min-width:720px;table-layout:fixed}
.notification-readiness-table th:nth-child(1){width:22%}.notification-readiness-table th:nth-child(2){width:28%}.notification-readiness-table th:nth-child(3){width:14%}
.notification-readiness-table td,.notification-log-table td{overflow-wrap:anywhere}
.notification-log-table table{min-width:1040px;table-layout:fixed}
.notification-log-table th:nth-child(1){width:145px}.notification-log-table th:nth-child(2){width:140px}.notification-log-table th:nth-child(3){width:180px}.notification-log-table th:nth-child(5){width:92px}.notification-log-table th:nth-child(6){width:150px}
.user-mode .atlas-brand-copy span{color:#b9c9dc !important}
@media(max-width:900px){.schedule-generate-card{min-width:0;width:100%}.operations-grid{grid-template-columns:1fr}.participant-master-table table,.notification-log-table table{min-width:900px}}

/* Pass 30 Fix 3 — dashboard workflow and notification workflow repair. */
.admin-operations-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.admin-operation-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:220px;
  padding:18px;
  border:1px solid var(--atlas-line);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fbfcfe);
  box-shadow:var(--atlas-shadow-sm);
  overflow:hidden;
}
.admin-operation-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:#64748b;
}
.admin-operation-card.healthy::before{background:#16a34a}
.admin-operation-card.attention::before{background:#f59e0b}
.admin-operation-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.admin-operation-card-head>span:first-child{
  color:var(--atlas-muted);
  font-size:11px;
  font-weight:950;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.admin-operation-card strong{
  display:block;
  margin:18px 0 7px;
  color:var(--atlas-navy);
  font-size:24px;
  line-height:1.08;
  overflow-wrap:anywhere;
}
.admin-operation-card p{
  margin:0 0 16px;
  color:var(--atlas-muted);
  line-height:1.45;
}
.admin-operation-card>.button{
  align-self:flex-start;
  margin-top:auto;
}
.seven-step-workflow{
  grid-template-columns:repeat(7,minmax(125px,1fr));
  overflow-x:auto;
  padding-bottom:4px;
}
.dashboard-workflow>a{min-width:0}
.dashboard-workflow>a.complete{
  border-color:#bbdfc7;
  background:#f4fbf6;
}
.dashboard-workflow>a.complete span{
  background:#dcfce7;
  color:#166534;
}
.dashboard-workflow>a.upcoming{
  background:#f8fafc;
  opacity:.82;
}
.dashboard-workflow>a.current{
  border-color:#7ea8dc;
  background:#eef6ff;
  box-shadow:0 12px 26px rgba(37,99,235,.12);
}

.email-delivery-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.email-summary-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:150px;
  padding:16px;
  border:1px solid var(--atlas-line);
  border-radius:16px;
  background:#f8fafc;
}
.email-summary-card>span{
  color:var(--atlas-muted);
  font-size:11px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.email-summary-card strong{
  display:block;
  margin:16px 0 7px;
  color:var(--atlas-navy);
  font-size:19px;
  line-height:1.18;
  overflow-wrap:anywhere;
}
.email-summary-card small{
  display:block;
  margin-top:auto;
  color:var(--atlas-muted);
  line-height:1.4;
}
.notification-test-form{margin-top:18px}
.notification-section{margin:24px 0}
.notification-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 12px}
.notification-section-head h2{margin:3px 0 5px}
.notification-section-head p{margin:0;color:var(--atlas-muted)}
.polished-notification-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  margin-top:0;
}
.notification-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:430px;
  overflow:hidden;
}
.notification-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  min-width:0;
  padding-bottom:13px;
  border-bottom:1px solid var(--atlas-line);
}
.notification-card-head>div{min-width:0}
.notification-card-head h3{margin:0 0 5px;color:var(--atlas-navy);font-size:18px}
.notification-card-head p{margin:0;color:var(--atlas-muted);line-height:1.35}
.notification-status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  max-width:145px;
  padding:6px 9px;
  border:1px solid var(--atlas-line);
  border-radius:10px;
  background:#f1f5f9;
  color:#475569;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  text-align:center;
  white-space:normal;
}
.notification-status-badge.green{background:#ecfdf3;border-color:#bbf7d0;color:#166534}
.notification-status-badge.yellow{background:#fffbeb;border-color:#fde68a;color:#92400e}
.notification-status-badge.red{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.notification-status-badge.neutral{background:#f1f5f9;border-color:#dbe3ec;color:#475569}
.notification-recipient-summary{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
}
.notification-recipient-summary strong{color:var(--atlas-navy)}
.notification-recipient-summary span{color:var(--atlas-muted);font-size:12px;text-align:right}
.notification-message-summary{
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  gap:7px 10px;
  margin:0 0 12px;
  font-size:13px;
}
.notification-message-summary dt{font-weight:900;color:var(--atlas-muted)}
.notification-message-summary dd{margin:0;color:var(--atlas-ink);overflow-wrap:anywhere}
.notification-availability-note{
  margin:12px 0 0;
  padding:10px 12px;
  border-radius:12px;
  background:#f8fafc;
  color:var(--atlas-muted);
  line-height:1.4;
}
.notification-card-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  margin-top:auto;
  padding-top:16px;
}
.notification-card-actions form{margin:0}
.notification-card-actions .button,.notification-card-actions button{white-space:normal;text-align:center}

@media(max-width:1250px){
  .admin-operations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seven-step-workflow{grid-template-columns:repeat(7,minmax(150px,1fr))}
}
@media(max-width:900px){
  .admin-operations-grid,.polished-notification-grid,.email-delivery-summary-grid{grid-template-columns:1fr}
  .admin-operation-card,.notification-card,.email-summary-card{min-height:0}
  .notification-recipient-summary{display:block}
  .notification-recipient-summary span{display:block;margin-top:4px;text-align:left}
}

/* Pass 30 Fix 4 — durable asset refresh and header-integrated schedule controls. */
.schedule-build-controls{
  display:grid;
  grid-template-columns:minmax(155px,185px) auto;
  align-items:end;
  gap:10px;
  min-width:365px;
  padding:12px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:16px;
  background:rgba(3,13,28,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
}
.schedule-build-controls label{
  min-width:0;
  margin:0;
  color:#f8fafc !important;
  font-size:12px !important;
  font-weight:850;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.schedule-build-label{display:block;color:#f8fafc !important}
.schedule-build-controls select{
  width:100%;
  margin:5px 0 0;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#122036;
  box-shadow:none;
}
.atlas-main header .header-actions .schedule-build-controls button:not(.secondary){
  background:#f3ede1;
  color:#122036;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:none;
}
.atlas-main header .header-actions .schedule-build-controls button:not(.secondary):hover{background:#fff}
.atlas-main header .header-actions .schedule-build-controls button:not(.secondary)[disabled]{
  background:#d8dee8 !important;
  color:#526176 !important;
  border-color:#b9c3d1 !important;
  opacity:1;
}
.email-delivery-summary-grid.cards{margin:16px 0 18px}
.email-delivery-summary-grid.cards>.email-summary-card{margin:0;box-shadow:var(--atlas-shadow-sm)}
@media(max-width:900px){
  .schedule-build-controls{grid-template-columns:1fr;min-width:0;width:100%}
  .schedule-build-controls button{width:100%}
}

/* Pass 30 Fix 4 — notification composer. */
.notification-compose-grid{
  display:grid;
  grid-template-columns:minmax(330px,.9fr) minmax(420px,1.1fr);
  gap:18px;
  align-items:start;
}
.notification-compose-form-panel{position:sticky;top:18px}
.notification-compose-form{display:grid;gap:14px;margin-top:16px}
.notification-compose-form label{font-weight:850;color:var(--atlas-navy)}
.notification-compose-form label small{display:block;margin:4px 0 7px;color:var(--atlas-muted);font-weight:500;line-height:1.4}
.notification-compose-form input,.notification-compose-form textarea{margin-bottom:0}
.notification-compose-form textarea{width:100%;resize:vertical;min-height:150px;line-height:1.5}
.notification-compose-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.availability-email-note-panel textarea{width:100%;resize:vertical;min-height:96px}
.availability-email-note-panel label small{display:block;margin:4px 0 7px;color:var(--atlas-muted);font-weight:500}
@media(max-width:1050px){
  .notification-compose-grid{grid-template-columns:1fr}
  .notification-compose-form-panel{position:static}
}
.email-delivery-summary-grid{display:block}
.email-delivery-summary-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
  margin:16px 0 18px;
}
.email-delivery-summary-cards>.email-summary-card{margin:0;box-shadow:var(--atlas-shadow-sm)}
@media(max-width:900px){.email-delivery-summary-cards{grid-template-columns:1fr}}
.lifecycle-email-note-panel textarea{width:100%;resize:vertical;min-height:96px}
.lifecycle-email-note-panel label small{display:block;margin:4px 0 7px;color:var(--atlas-muted);font-weight:500}


/* Pass 30 Fix 5 — prime-time Atlas brand lockup and release identity. */
.atlas-prime-brand{
  position:relative;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  align-items:center;
  gap:14px;
  margin:0 0 20px;
  padding:4px 2px 18px;
  border-bottom:1px solid rgba(226,232,240,.14);
  isolation:isolate;
}
.atlas-prime-brand::before{
  content:"";
  position:absolute;
  left:10px;
  top:8px;
  width:46px;
  height:46px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(96,165,250,.20),rgba(96,165,250,0) 70%);
  filter:blur(5px);
  z-index:-1;
}
.atlas-prime-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:62px;
}
.atlas-prime-mark img{
  display:block;
  width:58px;
  height:60px;
  object-fit:contain;
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.30));
}
.atlas-prime-copy{
  min-width:0;
  padding-top:1px;
}
.atlas-prime-name{
  display:block;
  margin:0;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  font-weight:700;
  line-height:.92;
  letter-spacing:.18em;
  text-indent:.18em;
  text-shadow:0 2px 12px rgba(0,0,0,.28);
}
.atlas-prime-tagline{
  display:block;
  margin-top:8px;
  color:#d5e2f3;
  font-size:10px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.105em;
  text-transform:uppercase;
  white-space:normal;
}
.atlas-prime-release{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:7px;
  color:#8fa3bd;
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.025em;
}
.atlas-prime-release i{
  display:block;
  width:3px;
  height:3px;
  border-radius:50%;
  background:#b69a67;
  box-shadow:0 0 0 3px rgba(182,154,103,.10);
}
.user-mode .atlas-prime-brand{
  padding-bottom:17px;
}
.user-mode .atlas-prime-tagline{
  color:#ccebe7;
}
@media(max-width:980px){
  .atlas-prime-brand{
    max-width:280px;
    margin-bottom:12px;
  }
}

/* Pass 30 Fix 6: participant day reference and simplified prime brand metadata. */
.availability-date-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:2px}
.availability-date-head b{margin:0}
.availability-weekday{font-size:11px;font-weight:900;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--atlas-muted)}
.availability-day.green .availability-weekday{color:#166534}
.availability-day.yellow .availability-weekday{color:#92400e}
.availability-day.red .availability-weekday{color:#991b1b}
.atlas-prime-release i{display:none}
@media(max-width:620px){.availability-weekday{font-size:12px}}


/* Pass 30 Fix 7 — pilot-safe bootstrap and iOS horizontal overflow containment. */
html,body{max-width:100%;overflow-x:hidden}
.atlas-app,.atlas-main,main,.panel,.policy-section,.settings-grid,.settings-grid>*{min-width:0}
.policy-section{max-width:100%;overflow-wrap:anywhere}
.policy-section input,.policy-section select,.policy-section textarea{max-width:100%;min-width:0}
.atlas-environment-badge{display:inline-flex;width:max-content;margin-top:7px;padding:3px 7px;border:1px solid rgba(251,191,36,.45);border-radius:999px;background:rgba(146,64,14,.28);color:#fde68a;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
@supports (-webkit-touch-callout:none){
  .atlas-app{width:100%;position:relative}
  .atlas-main,main{width:100%;max-width:100vw;overflow-x:clip}
  .policy-save-bar{max-width:100%}
}
@media(max-width:760px){
  main,.atlas-main{padding-left:16px!important;padding-right:16px!important}
  .policy-section,.settings-grid,.settings-grid>label,.setting-readonly{width:100%;max-width:100%}
}

/* Pass 30 Fix 9 — session-scaled targets, aligned Policy cards, and accessible help. */
.policy-section .panel-head>div{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  width:100%;
  min-width:0;
}
.policy-section .panel-head .section-letter{
  grid-column:1;
  grid-row:1 / span 2;
  float:none;
  margin:0;
}
.policy-section .panel-head h2{
  grid-column:2;
  grid-row:1;
  margin:0;
}
.policy-section .panel-head h2+p{
  grid-column:2;
  grid-row:2;
  width:100%;
  max-width:none;
  margin:3px 0 0;
}
.settings-grid>label,.setting-readonly{
  display:flex;
  flex-direction:column;
  min-height:205px;
  position:relative;
}
.settings-grid>label>input,.settings-grid>label>select{
  min-height:44px;
  margin-top:auto;
}
.setting-readonly>strong{margin-top:auto}
.setting-title{display:flex!important;align-items:flex-start;gap:7px;padding-right:2px}
.info-tip{
  flex:0 0 20px;
  width:20px!important;
  min-width:20px;
  height:20px;
  min-height:20px;
  padding:0!important;
  margin:0!important;
  border:1px solid #a9b8cc!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#29486f!important;
  box-shadow:none!important;
  font:800 12px/18px system-ui,sans-serif!important;
  text-transform:none!important;
  letter-spacing:0!important;
  position:relative;
  z-index:3;
}
.info-tip::after{
  content:attr(data-tooltip);
  display:none;
  position:absolute;
  left:50%;
  top:calc(100% + 9px);
  transform:translateX(-50%);
  width:min(310px,72vw);
  padding:10px 12px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#0f213b;
  color:#fff;
  box-shadow:0 12px 28px rgba(15,33,59,.25);
  font:500 12px/1.45 system-ui,sans-serif;
  text-align:left;
  white-space:normal;
  z-index:40;
}
.info-tip:hover::after,.info-tip:focus-visible::after,.info-tip.is-open::after{display:block}
.session-preference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.representative-preview-note{border-left:4px solid var(--atlas-brass-bright);background:#faf7f0}
.representative-preview-label{margin:10px 0 5px;color:#667085;font-size:10.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:760px){
  .settings-grid>label,.setting-readonly{min-height:0}
  .session-preference-grid{grid-template-columns:1fr}
  .info-tip::after{position:fixed;left:16px;right:16px;top:auto;bottom:18px;transform:none;width:auto}
}

/* Pass 30 Fix 10 — deliberate stage-action notification composer */
.stage-notification-dialog{width:min(1040px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:0;border-radius:18px;box-shadow:0 28px 80px rgba(15,23,42,.32);color:var(--atlas-ink,#172033)}
.stage-notification-dialog::backdrop{background:rgba(15,23,42,.58);backdrop-filter:blur(2px)}
.stage-dialog-shell{padding:24px;background:var(--atlas-surface,#fff);overflow:auto;max-height:calc(100dvh - 28px);border-radius:18px}
.stage-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.stage-dialog-head h2{margin:2px 0 6px}.stage-dialog-head p{margin-bottom:0}
.stage-dialog-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:18px}
.stage-dialog-compose,.stage-dialog-preview{min-width:0;border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff}
.stage-dialog-compose label{display:block;margin-top:16px;font-weight:700}.stage-dialog-compose label small{display:block;margin:4px 0 7px;color:var(--atlas-muted);font-weight:500}.stage-dialog-compose textarea{width:100%;resize:vertical}
.recipient-readiness{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.recipient-readiness>div{padding:10px;border-radius:10px;background:#f4f7fb}.recipient-readiness span{display:block;color:var(--atlas-muted);font-size:.78rem}.recipient-readiness strong{font-size:1.25rem}
.stage-dialog-preview dl{margin:0}.stage-dialog-preview dt{margin-top:12px;color:var(--atlas-muted);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.stage-dialog-preview dd{margin:4px 0 0}.stage-dialog-preview .message-body{white-space:pre-wrap;max-height:330px;overflow:auto;padding:12px;background:#f7f9fc;border-radius:10px}
.stage-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:760px){.stage-notification-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.stage-dialog-shell{padding:16px;max-height:calc(100dvh - 16px)}.stage-dialog-grid{grid-template-columns:1fr}.recipient-readiness{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-dialog-actions{display:grid;grid-template-columns:1fr}.stage-dialog-actions button{width:100%}.stage-dialog-head{display:block}.stage-dialog-head .dialog-close{margin-top:12px}}

/* Pass 30 Fix 11 — governed administrative blocks */
.status-select.block,.portal-status-select.block,.chip.block{background:#e0e7ff;color:#3730a3;border-color:#a5b4fc}
.availability-day.block{background:#eef2ff;border-color:#a5b4fc}
.availability-day.block .availability-weekday{color:#3730a3}
.legend-pill.block{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}
.availability-counter-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.availability-counter.block{background:#eef2ff;border-color:#c7d2fe}
.block-reason-chip{display:block;margin-top:4px;color:#3730a3;font-size:10px;font-weight:800;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portal-block-reason{display:block;margin-top:8px;color:#3730a3;line-height:1.35}
.administrative-block-dialog{width:min(560px,calc(100vw - 24px));border:0;border-radius:22px;padding:0;box-shadow:0 28px 80px rgba(15,23,42,.28)}
.administrative-block-dialog::backdrop{background:rgba(15,23,42,.56);backdrop-filter:blur(2px)}
.administrative-block-dialog form{padding:22px}
.administrative-block-dialog .dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.administrative-block-dialog .dialog-head h2{margin:.1rem 0 .4rem}
.administrative-block-dialog textarea{width:100%;resize:vertical}
.administrative-block-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--atlas-line,var(--line))}
.administrative-block-dialog .icon-button{background:transparent;color:var(--atlas-muted,#667085);font-size:26px;line-height:1;padding:4px 8px}
@media(max-width:760px){.availability-counter-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.administrative-block-dialog .dialog-actions{display:grid;grid-template-columns:1fr}.administrative-block-dialog .dialog-actions button{width:100%}}
.block-reason-chip{background:transparent;border:0;padding:2px 0;color:#3730a3;text-decoration:underline;text-underline-offset:2px;cursor:pointer}


/* Pass 30 Fix 13 — participant account contrast and session navigation.
   Final specificity intentionally overrides inherited shell rules. */
.interface-toggle.auth-status-panel .auth-status-label {
  color:#ffffff !important;
  opacity:1 !important;
  font-weight:850 !important;
}
.interface-toggle.auth-status-panel .auth-status-detail {
  display:block !important;
  margin-top:4px !important;
  color:#d7e5f7 !important;
  opacity:1 !important;
  font-weight:650 !important;
  line-height:1.35 !important;
}
.interface-toggle.auth-status-panel form { margin:0; }
.interface-toggle.auth-status-panel .secondary {
  width:100%;
  background:#f3f7fd !important;
  color:#173b64 !important;
  border-color:#c8d8eb !important;
}
.portal-session-switch {
  align-self:center;
  white-space:nowrap;
}
@media(max-width:950px){
  .portal-session-switch{display:inline-flex;margin-top:10px;}
}

/* Pass 30 Fix 14 — hosted pilot polish, contact synchronization, and availability clarity. */
.admin-mode .interface-toggle.auth-status-panel,
.user-mode .interface-toggle.auth-status-panel{
  background:#13243b !important;
  border:1px solid #3a526f !important;
  box-shadow:0 8px 20px rgba(0,0,0,.16) !important;
}
.admin-mode .interface-toggle.auth-status-panel .auth-status-label,
.user-mode .interface-toggle.auth-status-panel .auth-status-label{
  color:#ffffff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.35) !important;
}
.admin-mode .interface-toggle.auth-status-panel .auth-status-detail,
.user-mode .interface-toggle.auth-status-panel .auth-status-detail{
  color:#e4eef9 !important;
}
.availability-status-legend{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  width:min(100%,620px);
  margin-left:auto;
}
.availability-status-legend .legend-pill{
  width:100%;
  min-width:0;
  min-height:72px;
  justify-content:center;
  box-sizing:border-box;
}
.session-target-summary{
  display:block;
  margin:6px 0 8px;
  color:var(--atlas-text,#344054) !important;
  font-weight:650 !important;
  line-height:1.4;
}
.portal-admin-block-status{
  display:flex;
  align-items:center;
  width:100%;
  min-height:44px;
  margin-top:12px;
  padding:8px 10px;
  border:1px solid #a5b4fc;
  border-radius:10px;
  box-sizing:border-box;
  font-weight:800;
  line-height:1.2;
}
@media(max-width:760px){
  .availability-status-legend{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0}
  .availability-status-legend .legend-pill{min-height:68px}
}

/* Pass 30 Fix 15: participant availability visual clarity. */
.user-mode .atlas-main table a.button.portal-session-action,
.user-mode .atlas-main table a.button.portal-session-action:visited{
  color:#fff !important;
  text-decoration:none !important;
}
.user-mode .atlas-main table a.button.portal-session-action:hover,
.user-mode .atlas-main table a.button.portal-session-action:focus-visible{
  color:#fff !important;
  text-decoration:none !important;
}
.availability-status-guidance{
  display:grid;
  gap:6px;
  margin-top:10px;
  max-width:620px;
}
.availability-status-guidance span{
  display:block;
  padding:7px 10px;
  border-left:4px solid currentColor;
  border-radius:0 9px 9px 0;
  background:#f8fafc;
  line-height:1.35;
  font-weight:650;
}
.availability-status-guidance .green{color:#166534;background:#f0fdf4}
.availability-status-guidance .yellow{color:#92400e;background:#fffbeb}
.availability-status-guidance .red{color:#991b1b;background:#fef2f2}
.availability-status-guidance strong{font-weight:900}

/* Pass 30 Fix 16: participant calendar subscription */
.calendar-subscription-card{display:grid;gap:1rem}
.calendar-subscription-card .panel-head{align-items:flex-start}
.calendar-feed-secret{padding:1rem;border:1px solid #b7c7d9;border-radius:14px;background:#f4f8fc}
.calendar-feed-secret>p{margin:.35rem 0 .8rem;color:#465a70}
.calendar-feed-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.65rem;align-items:center}
.calendar-feed-url-row input{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.calendar-feed-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.calendar-feed-actions form{margin:0}
.calendar-feed-help{border-top:1px solid #d8e1eb;padding-top:.8rem}
.calendar-feed-help summary{cursor:pointer;font-weight:700;color:#203a58}
.calendar-feed-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.8rem}
.calendar-feed-help-grid>div{padding:.8rem;border:1px solid #d8e1eb;border-radius:12px;background:#fff}
.calendar-feed-help-grid p{margin:.3rem 0 0;color:#53677d;font-size:.9rem}
@media(max-width:760px){
  .calendar-feed-url-row{grid-template-columns:1fr}
  .calendar-feed-url-row .button,.calendar-feed-url-row button{width:100%}
  .calendar-feed-help-grid{grid-template-columns:1fr}
}
