/* Warm, consistent working surfaces across both roles. Status always retains its label. */
body.immersive{--surface:#ffffff07;--surface-raised:#ffffff0d;--edge:#ffffff20;--ink:#f5e8e4;--soft:#d0b9c2;--accent:#f0c6ab;--positive:#c2e2cd;--warning:#f5d5a1;--negative:#ffbdc6;color-scheme:dark}
.immersive :is(.primary,dialog .primary){background:var(--accent);color:#452839;border:1px solid transparent;border-radius:99px;font-weight:650}
.immersive :is(.primary,dialog .primary):hover{background:#ffdcc4}
.immersive :is(.secondary,.small-btn,.subtle,.week-nav button,.absence-month-nav button){background:var(--surface);border:1px solid var(--edge);color:#f1d3c7;border-radius:12px}
.immersive .secondary{border-radius:99px}.immersive :is(.secondary,.small-btn,.subtle,.week-nav button,.absence-month-nav button):hover{background:#ffffff14;border-color:#ffffff40}
.immersive :is(button,input,select,textarea,a,summary):focus-visible{outline:3px solid #f4c9ac;outline-offset:3px}
.immersive .heading h1{font-size:clamp(30px,3vw,40px);font-weight:450}.immersive .heading .subtitle{font-size:13px;line-height:1.65;color:var(--soft);max-width:680px}
.immersive :is(.stat,.destination,.open-card,.template-card,.staffing-metric,.absence-metric,.autoplan-row,.staffing-day,.calendar-day,.absence-cell){background:var(--surface);border-color:var(--edge);color:var(--ink);box-shadow:none}
.immersive :is(.stat strong,.staffing-metric strong,.absence-metric strong){color:var(--ink);font-weight:450;font-variant-numeric:tabular-nums}
.immersive :is(.stat small,.stat .hint,.staffing-metric small,.absence-metric small,.absence-metric span,.muted,.destination small,.open-details p,.template-card-head p,.template-slot small,.staffing-day-details>p,.staffing-day-top>div span,.staffing-rule-row small,.staffing-footnote,.calendar-feed-row small,.calendar-security,.calendar-provider small,.calendar-provider p,.notification-option small,.worktime-disclaimer,.worktime-row-content small,.worktime-row-content p,.autoplan-disclaimer,.autoplan-date small,.week-publish-copy p,.template-slot>span:not(.template-weekday)){color:var(--soft)}
.immersive :is(.destination strong,.template-slot strong,.staffing-rule-row strong,.staffing-gap strong,.autoplan-date strong,.worktime-row-content strong,.week-publish-copy strong,.dayhead b,.absence-number){color:var(--ink)}
.immersive :is(.destination-icon,.open-date,.template-decoration,.template-weekday,.calendar-provider-icon,.push-bell,.staffing-callout-icon,.week-publish-icon){background:#efbea817;color:#f3c8ae}
.immersive :is(.destination,.open-card,.template-card){border-radius:20px}.immersive .destination:hover{background:var(--surface-raised);border-color:#e9bbab65}
.immersive :is(.template-intro,.calendar-live-intro,.open-intro,.push-help,.staffing-setup-info,.staffing-callout.setup,.week-publish-card,.push-setup,.autoplan-panel){background:linear-gradient(125deg,#efbea814,#ffffff04);border:1px solid var(--edge);color:var(--ink);box-shadow:none}
.immersive :is(.template-intro p,.calendar-live-intro p,.staffing-callout p){color:var(--soft)}
.immersive :is(.autoplan-heading h2,.template-type,.worktime-title .kicker,.absence-panel-header .kicker,.week-publish-kicker,.calendar-live-panel h3,.worktime-extra>summary,.autoplan-role,.account-signout){color:#e9bdc9}
.immersive :is(.template-slot-list,.template-slot,.staffing-rule-row,.calendar-feed-row,.calendar-security,.notification-option,.worktime-row,.worktime-disclaimer,.autoplan-disclaimer,.dayhead){border-color:var(--edge)}
.immersive :is(.event-chip,.open-tag,.open-tag.light,.day-tag,.staffing-event-tag,.autoplan-type,.autoplan-stats span,.autoplan-steps span){background:#ffffff09;border-color:var(--edge);color:var(--soft)}
.immersive .autoplan-stats b{color:var(--accent)}.immersive .autoplan-steps span.current{background:var(--accent);color:#452839;border-color:var(--accent)}
.immersive .progress{background:#ffffff14}.immersive .progress i{background:linear-gradient(90deg,#aa7386,#edc29f)}.immersive .progress i.warn{background:#edba85}
.immersive :is(.calendar-day.today,.absence-cell.selected){background:#efbea810;border-color:#edc2ae;box-shadow:inset 0 0 0 1px #edc2ae33}
.immersive .dayhead{color:var(--soft)}.immersive .shift{background:#e8b0ad1c;color:#f2ddd6;border-left-color:#e9bba4}
.immersive .shift.draft{background:#ffffff09;border-left-color:#b5a3b1;color:#d7c6cf}
.immersive .shift.open{background:#e9bb7918;border-left-color:#e6bd85;color:var(--warning)}
.immersive .shift-ack{color:var(--soft)}.immersive .shift-applicants{background:#e9bb7918;color:var(--warning)}
.immersive .shift.conflict,.immersive .shift.worktime-warning{background:#d9a7621b;border-left-color:#e9bb79;box-shadow:inset 0 0 0 1px #e9bb7930}
.immersive .shift.worktime-critical{background:#e7768b20;border-left-color:#ffa2b2;box-shadow:inset 0 0 0 1px #ffa2b230}
.immersive :is(.shift .shift-conflict,.shift-risk.warning,.open-warning,.autoplan-candidate-note.check){color:var(--warning)}
.immersive :is(.shift-risk.critical,.autoplan-candidate-note.blocked){color:var(--negative)}
.immersive .ops-ack{color:var(--warning)!important}.immersive .ops-ack.done{color:var(--positive)!important}.immersive .ops-sick-state{color:var(--negative)!important}
.immersive :is(.staffing-callout,.staffing-day-status,.approve-btn,.absence-chip.approved,.absence-metric.approved,.day-tag.vacation,.worktime-overall.good,.worktime-all-clear,.worktime-stat.green,.autoplan-empty,.autoplan-steps span.done,.calendar-new-link,.week-publish-card.is-published){background:#85b69916;color:var(--positive);border-color:#acd5bb38}
.immersive :is(.staffing-callout.short,.staffing-day.short,.staffing-gap,.staffing-day.short .staffing-day-status,.absence-metric.pending,.absence-chip.pending,.monthly-warning,.autoplan-alert,.worktime-overall.warning,.worktime-stat.amber,.week-publish-card.has-risks){background:#d7a35916;color:var(--warning);border-color:#e5ba7c40}
.immersive :is(.day-tag.closed,.autoplan-alert.danger,.worktime-overall.critical,.worktime-stat.red){background:#d7677f1c;color:var(--negative);border-color:#e7a0af40}
.immersive :is(.worktime-stat.green>span,.worktime-stat.green strong,.calendar-new-link>strong,.calendar-new-link p,.autoplan-candidate-note){color:var(--positive)}
.immersive :is(.worktime-stat.amber>span,.worktime-stat.amber strong,.staffing-gap small b){color:var(--warning)}
.immersive :is(.worktime-stat.red>span,.worktime-stat.red strong){color:var(--negative)}
.immersive :is(.worktime-stat small,.staffing-gap small,.absence-weekdays span){color:var(--soft)}
.immersive :is(.staffing-day.closed,.staffing-day.closed .staffing-day-status,.absence-cell.outside){background:#ffffff05;color:var(--soft)}
.immersive .absence-cell:hover{background:#ffffff10;border-color:#ffffff45}.immersive .absence-cell.today .absence-number{background:var(--accent);color:#452839}
.immersive .absence-cell>small{color:var(--soft)}.immersive .day-tag.availability{background:#b3bbeb1a;color:#d8dcfa}
.immersive .worktime-dot.critical{background:#ffadbd;box-shadow:0 0 0 4px #ffadbd12}.immersive .worktime-dot.warning{background:#efc58c;box-shadow:0 0 0 4px #efc58c12}
.immersive .week-scroll:before{color:var(--soft)}.immersive .notification-option input{background:#97818d}.immersive .notification-option input:checked{background:#efc4a9}.immersive .notification-option input:before{background:#392734}
.immersive :is(.monthly-select input,.calendar-copy input,.autoplan-person select){color-scheme:dark;background:#30232f;border:1px solid #ffffff35;color:var(--ink);border-radius:12px;min-height:46px}
.immersive .monthly-table{font-variant-numeric:tabular-nums}.immersive .monthly-table th{color:var(--soft);background:#322530}.immersive .monthly-table tbody tr:hover{background:#ffffff05}
.immersive .monthly-table-scroll{border:1px solid var(--edge);border-radius:12px}.immersive .monthly-table th,.immersive .monthly-table td{padding:14px 12px}
/* Dialogs are opaque for comfortable reading while retaining the same palette. */
.immersive dialog{background:#352733;color:var(--ink);border:1px solid #ffffff30;--line:#ffffff20;--wine:#f0c6ab;--muted:#d0b9c2;box-shadow:0 30px 100px #120c1870}
.immersive dialog::backdrop{background:#130d1cb3;backdrop-filter:blur(8px)}
.immersive dialog :is(.editor-actions,header){background:#352733}.immersive dialog .close{background:#ffffff0d;color:var(--soft)}
.immersive dialog :is(.note,.list-main small,header small){color:var(--soft)}.immersive dialog .list-main strong{color:var(--ink)}
.immersive dialog :is(input,select,textarea){background:#291e2a;color:var(--ink);border-color:#ffffff30;color-scheme:dark;accent-color:var(--accent)}
.immersive dialog :is(input,select,textarea):focus{background:#2e222e;border-color:var(--accent);outline:2px solid #efc4a940;outline-offset:2px}
.immersive dialog :is(input,textarea)::placeholder{color:#bba3b0}.immersive dialog .secondary{color:#f1d3c7}
.immersive dialog .danger{background:#b657701c;border-color:#ffb1c044;color:var(--negative)}
.immersive :is(.availability-preview,.worktime-preview.warning,.week-release-state.warning,.week-release-warning,.smart-staff-preview,.template-editor-summary){background:#d7a35912;border-color:#e5ba7c40;color:var(--warning)}
.immersive :is(.availability-preview.clear,.worktime-preview.good,.week-release-state){background:#85b69914;border-color:#acd5bb38;color:var(--positive)}
.immersive :is(.worktime-preview.critical,.week-release-state.critical,.editor-error){background:#d7677f1c;border-color:#e7a0af40;color:var(--negative)}
.immersive :is(.week-release-summary>div,.week-release-confirm){background:#ffffff06;border-color:var(--edge);color:var(--ink)}
.immersive :is(.week-release-summary b,.template-editor-summary strong){color:var(--accent)}
.immersive :is(.week-release-summary span,.week-release-description,.week-release-issues,.smart-staff-heading p,.smart-staff-empty,.smart-staff-reasons,.template-editor-summary span){color:var(--soft)}
.immersive .week-release-issues li.critical{color:var(--negative)}.immersive .week-release-issues li.warning{color:var(--warning)}
.immersive .smart-staff-choices span{background:#85b69914;border-color:#acd5bb38;color:var(--positive)}
@media(min-width:741px){.immersive .rail{overflow-y:auto}.immersive .rail nav{gap:4px}.immersive .rail-bottom{padding-top:15px}.immersive .heading{margin-bottom:28px}}
@media(max-width:740px){.immersive .heading h1{font-size:30px}.immersive .heading .subtitle{font-size:12px}.immersive .heading .toolbar{gap:8px}.immersive .heading .toolbar button{font-size:12px;flex:1;white-space:normal}.immersive .absence-month-nav button{min-height:44px;min-width:40px}.immersive .calendar-day{min-width:145px}.immersive .page{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.immersive dialog input,.immersive dialog select,.immersive dialog textarea{font-size:16px}}
@media(prefers-contrast:more){body.immersive{--surface:#362734;--surface-raised:#45323f;--edge:#d1adbb;--soft:#edd8e0}.immersive :is(.panel,.stat,.open-card,.template-card,.calendar-day,.staffing-day,.absence-cell){background:#362734}.immersive dialog{border-color:#e7c3d1}}
.immersive .invite-hint{background:#efbea80a;border-color:var(--edge)}.immersive .invite-hint strong{color:var(--ink)}.immersive .invite-hint p{color:var(--soft)}.immersive .invite-hint button{background:var(--surface)}
.immersive :is(.absence-person-row,.absence-request){border-color:var(--edge)}.immersive :is(.absence-person-row strong,.absence-request-info strong){color:var(--ink)}
.immersive :is(.absence-legend,.absence-person-row small,.absence-request-info span,.absence-request-info p){color:var(--soft)}.immersive .absence-request-info p.absence-conflict{color:var(--warning);background:#d7a35916}
.immersive :is(.template-more,.absence-own-row small){color:var(--soft)}
.immersive .template-card-actions .template-delete,.immersive .leave-own-actions .danger-text,.immersive .staffing-rule-row>div:last-child .small-btn:last-child{color:var(--negative);border-color:#e7a0af40}
.immersive .absence-pill{background:#ffffff0c;color:var(--soft)}.immersive .absence-pill.pending,.immersive .leave-change-pending{background:#d7a35916;color:var(--warning)}.immersive .absence-pill.approved{background:#85b69916;color:var(--positive)}.immersive .absence-pill.declined{background:#d7677f1c;color:var(--negative)}.immersive .absence-pill.withdrawn,.immersive .absence-pill.cancelled{background:#ffffff08;color:var(--soft)}
.immersive .leave-change-conflict{color:var(--warning)!important}.immersive .absence-metric.today{background:#efbea810;border-color:var(--edge)}
.immersive .staffing-callout.short .staffing-callout-icon{background:#d7a35920;color:var(--warning)}.immersive .staffing-gap .small-btn.approve-btn{background:#85b69916;color:var(--positive);border-color:#acd5bb38}
.immersive dialog .danger:hover{background:#d7677f30}
