:root{--ink:#102338;--navy:#0d1b2a;--paper:#f4f6f8;--muted:#586c7c;--line:#dfe5ea;--accent:#e55737;--soft:#fff1eb;--mint:#19795e;--mint-soft:#edf7f2;--blue:#365e92;--blue-soft:#edf3fa}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5}button,input,select{font:inherit;color:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer;min-height:44px}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:3px solid #365e92;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;line-height:1.2;letter-spacing:-.04em;margin-bottom:0}h2{font-size:1.2rem}small{font-size:.8rem;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:0}
.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:var(--navy);padding:28px 18px;color:#dce6ef;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font-size:1.5rem;font-weight:800;color:white;text-decoration:none;padding:0 10px 28px}.brand-mark{width:35px;height:35px;background:var(--accent);border-radius:10px;text-align:center}.restaurant{display:flex;gap:10px;padding:16px 8px 26px}.restaurant small{display:block;color:#a6b7c8}.avatar{width:36px;height:36px;flex-shrink:0;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:.875rem;font-weight:700}.restaurant .avatar{background:#243c52;color:white}.sidebar nav{display:grid;gap:8px}.nav-item{display:flex;align-items:center;gap:12px;border:0;background:transparent;border-radius:10px;color:#a6b7c8;padding:12px;text-align:left;font-weight:600}.nav-item.active{background:#1c3044;color:white;box-shadow:inset 3px 0 var(--accent)}.future{margin-top:auto;background:#182c40;border-radius:14px;padding:18px}.future small{color:#ffb4a3;font-size:.75rem}.future strong{display:block;margin:10px 0}.future p{font-size:.875rem;color:#a6b7c8;margin:0}main{margin-left:224px;padding:28px 30px 40px;max-width:1700px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.eyebrow{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:5px}.primary-button,.secondary-button,.arrow-button,.close-button,.danger-button{border:1px solid var(--line);border-radius:10px;background:white;padding:9px 15px;font-weight:650}.primary-button{background:var(--accent);border-color:var(--accent);color:#fff}.primary-button:hover{background:#c84729}.arrow-button{min-width:44px;padding:8px}.demo-note{font-size:.8rem;color:var(--muted);margin-bottom:18px}.demo-note>span{display:inline-block;background:var(--soft);color:#a5381e;padding:2px 8px;border-radius:5px;font-weight:700;margin-right:5px}.workspace-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 32px #10233805}.calendar-controls{padding:18px 20px;display:grid;gap:16px}.period-row{display:flex;align-items:center;gap:10px}.period-row h2{flex:1;margin:0}.filter-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.segmented{display:flex;gap:3px;padding:4px;background:#eef1f5;border-radius:11px}.segmented button{border:0;background:transparent;padding:8px 17px;border-radius:8px;font-size:.875rem;white-space:nowrap}.segmented button[aria-pressed=true]{background:var(--navy);color:white;box-shadow:0 3px 6px #10233815}select,input{min-height:44px;border:1px solid #c9d3dc;background:#fff;border-radius:9px;padding:8px 10px;max-width:100%;min-width:0}.period-summary{display:flex;flex-wrap:wrap;gap:8px 24px;padding:12px 20px;background:#fafbfd;border-block:1px solid var(--line);font-size:.875rem;color:var(--muted)}.period-summary strong{color:var(--ink)}#calendar{padding:20px;outline:none}.calendar-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:space-between;color:var(--muted);font-size:.75rem}
.days{display:grid;gap:14px}.days.three{grid-template-columns:repeat(3,minmax(0,1fr))}.day-card{border:1px solid var(--line);border-radius:12px;min-width:0;overflow:hidden}.day-title{background:#f8fafc;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.day-title h3{font-size:1rem;margin:0}.day-title small{display:block}.day-content{padding:12px}.station-group{margin-bottom:14px}.station-group:last-child{margin-bottom:0}.station-label{text-transform:uppercase;font-size:.75rem;letter-spacing:.07em;color:var(--muted);margin:4px 0 8px;font-weight:700}.shift-card{display:flex;justify-content:space-between;align-items:center;width:100%;gap:10px;background:var(--blue-soft);border:0;border-left:3px solid var(--blue);padding:12px;border-radius:9px;text-align:left;margin-bottom:7px;min-width:0}.shift-card.bar{background:var(--mint-soft);border-left-color:var(--mint)}.shift-card strong{display:block;font-size:.875rem;overflow-wrap:anywhere}.shift-card small{display:block;font-size:.75rem}.shift-time{text-align:right;flex-shrink:0;font-size:.875rem;font-weight:650}.next-day{font-size:.75rem;color:var(--muted);margin-left:3px}.add-day{width:100%;border:1px dashed #c2ccd5;border-radius:8px;background:white;padding:7px;color:var(--muted);font-size:.875rem}.add-day:hover{background:#f5f8fa}.empty-day{padding:10px 2px;color:var(--muted);font-size:.875rem}.week-list{display:grid;gap:10px}.week-day{border:1px solid var(--line);border-radius:12px;overflow:hidden}.week-day summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;min-height:62px}.week-day summary::after{content:'+';color:var(--muted)}.week-day[open] summary::after{content:'−'}.week-day summary small{display:block}.week-day[open] summary{background:#f8fafc;border-bottom:1px solid var(--line)}.week-day .day-content{padding:14px}.desktop-week{display:grid;grid-template-columns:130px repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden}.week-head,.person-cell,.week-cell{padding:7px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-width:0}.week-head{background:#f8fafc;font-size:.875rem;text-align:center}.week-head button{border:0;background:transparent;color:inherit;width:100%;padding:0;font-weight:700}.person-cell{display:flex;flex-direction:column;justify-content:center;font-size:.875rem}.week-cell .shift-card{display:block;padding:8px 5px;min-height:62px}.week-cell .shift-time{text-align:left;font-size:.875rem;white-space:normal}.week-cell .shift-card small{font-size:.75rem;overflow-wrap:anywhere}.week-cell .add-day{min-height:62px;border:0;background:transparent}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;color:var(--muted);font-size:.75rem;padding:6px 0}.month-day{min-width:0;min-height:90px;background:#fff;border:1px solid var(--line);border-radius:9px;text-align:left;padding:8px;display:flex;flex-direction:column;gap:7px}.month-day.has-shifts{background:var(--mint-soft)}.month-day small{font-size:.75rem}.month-day.today{outline:2px solid var(--accent);outline-offset:-2px}.month-day.muted{opacity:.45}.month-caption{font-size:.875rem;color:var(--muted);margin:12px 0 0}.checks{margin-top:16px;background:white;border:1px solid var(--line);border-radius:12px;padding:16px}.checks summary{cursor:pointer;font-size:.875rem;font-weight:700}.checks summary span{color:#a94727;margin-left:8px}.checks p{font-size:.8rem;color:var(--muted);margin:12px 0}.issue-row{display:block;width:100%;text-align:left;border:0;background:var(--soft);padding:12px;border-radius:9px;margin:6px 0;font-size:.875rem}.secondary-page{padding:24px}.secondary-page p{max-width:700px;color:var(--muted)}.team-member{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.team-member>div{flex:1}.team-member strong,.team-member small{display:block}.team-member>span:last-child{font-size:.875rem}.empty-icon{font-size:2rem;color:var(--accent)}.mobile-nav{display:none}
dialog{padding:0;border:0;border-radius:18px;width:calc(100% - 24px);max-width:460px;max-height:calc(100dvh - 24px);box-shadow:0 24px 80px #10233840}dialog::backdrop{background:#0d1b2a88}.dialog-card{padding:22px;display:grid;gap:14px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.dialog-head h2{margin:0}.close-button{font-size:1.5rem;padding:2px 13px}.dialog-card label{font-size:.875rem;font-weight:650;display:grid;gap:6px}.dialog-card input,.dialog-card select{width:100%;font-size:1rem}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.estimate{padding:12px;background:var(--mint-soft);border-radius:9px;font-size:.875rem;margin:0}.error{color:#ae2e28;margin:0;font-size:.875rem}.error:empty{display:none}.dialog-actions{display:flex;justify-content:space-between;gap:10px}.danger-button{color:#ae2e28;border:0;background:transparent;padding-inline:0}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);background:var(--navy);color:white;padding:12px 18px;border-radius:12px;font-size:.875rem;z-index:20;display:none}.toast.show{display:block}
@media(max-width:1279px){.sidebar{width:190px}main{margin-left:190px;padding:22px}.days.three{grid-template-columns:1fr}.days.three .day-content{display:grid;grid-template-columns:1fr 1fr;gap:12px}.days.three .add-day{grid-column:1/-1}}
@media(max-width:760px){.sidebar{display:none}main{margin:0;padding:18px 12px calc(90px + env(safe-area-inset-bottom))}.topbar{margin-bottom:12px}h1{font-size:1.65rem}.demo-note{font-size:.75rem;line-height:1.6;margin-bottom:12px}.calendar-controls{padding:12px;gap:12px}.period-row{gap:6px;flex-wrap:wrap}.period-row h2{font-size:1rem;min-width:110px}.period-row #todayButton{font-size:.8rem;padding-inline:8px}.filter-row{display:grid;gap:10px}.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.segmented button{padding:7px 2px;font-size:.875rem}.department select{width:100%;font-size:.875rem}.period-summary{padding:10px 12px;gap:5px 14px;font-size:.8rem}#calendar{padding:12px}.days.three .day-content{display:block}.calendar-foot{padding:10px 12px}.day-title{padding:10px 12px}.shift-card{padding:11px 10px}.checks{padding:13px}.month-grid{gap:3px}.month-day{padding:6px 2px;min-height:72px;gap:5px;text-align:center;align-items:center}.secondary-page{padding:18px}.team-member{flex-wrap:wrap}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:5;display:grid;grid-template-columns:repeat(3,1fr);background:white;border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.mobile-nav button{background:transparent;border:0;color:var(--muted);display:grid;place-items:center;gap:1px;font-size:1.1rem;min-height:48px}.mobile-nav span{font-size:.75rem}.mobile-nav .active{color:var(--accent);font-weight:700}.toast{bottom:calc(80px + env(safe-area-inset-bottom));width:max-content}.dialog-card{padding:18px}dialog{margin:auto auto 10px;border-radius:18px}.dialog-actions{position:sticky;bottom:0;background:white;padding:6px 0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
 .quick-times{display:flex;gap:8px}.finance-structure{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.finance-structure article{padding:16px;border:1px solid #e2e8ed;border-radius:14px}.shift-card.floor{background:#f3edff;border-color:#dacbf4}.shift-time small{display:block;font-size:10px;white-space:normal}.team-member small{display:block}#sourceNote{color:#637383;overflow-wrap:anywhere}@media(max-width:760px){.finance-structure{grid-template-columns:1fr}}
.settings-intro,.setup-section-head,.rule-title,.rule-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-intro p,.setup-section-head p{margin-bottom:0}.setting-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.setting-stats article{display:grid;gap:4px;padding:15px;border:1px solid var(--line);border-radius:12px}.setting-stats strong{font-size:1.15rem}.rule-summary{padding:13px 0;border-top:1px solid var(--line)}.rule-summary small{display:block}.warning-box{padding:13px;background:#fff7e6;border:1px solid #f4d99c;border-radius:10px;margin-top:18px}.setup-dialog{max-width:880px}.setup-dialog .dialog-card{max-height:calc(100dvh - 24px);overflow:auto}.setup-general,.rule-grid,.employee-rule{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.department-rule,.employee-rule{padding:16px;border:1px solid var(--line);border-radius:13px;margin-bottom:12px}.rule-title{margin-bottom:14px}.rule-title label:first-child{flex:1}.rule-title label:nth-child(2){min-width:160px}.day-picks{border:0;padding:12px 0 4px;display:flex;flex-wrap:wrap;gap:7px}.day-picks legend{font-size:.8rem;font-weight:700}.day-picks label,.check-line{display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:5px!important}.day-picks label{padding:7px 10px;background:#f4f6f8;border-radius:8px}.day-picks input,.check-line input{width:auto!important;min-height:auto}.employee-rule{grid-template-columns:1.2fr 1fr 1fr 1fr 1fr 1fr auto;align-items:end}.employee-rule .danger-button{padding:8px}.issue-row.gap{background:#fff7e6}.desktop-week{min-width:920px}#calendar:has(.desktop-week){overflow-x:auto}.desktop-week .person-cell{position:sticky;left:0;z-index:2;background:white}
@media(max-width:760px){.setting-stats,.setup-general,.rule-grid,.employee-rule{grid-template-columns:1fr 1fr}.settings-intro,.setup-section-head{align-items:flex-start;flex-direction:column}.rule-title{align-items:flex-end;flex-wrap:wrap}.employee-rule .danger-button{grid-column:1/-1}.mobile-nav{grid-template-columns:repeat(4,1fr)}.desktop-week{min-width:760px}.desktop-week .person-cell{max-width:110px}.setup-dialog{margin:auto 6px 6px;width:calc(100% - 12px)}}

/* Working surfaces: one scroll container per panel; intrinsic controls never widen a grid. */
body:has(dialog[open]){overflow:hidden}
main{width:calc(100% - 224px)}
input,select,button,label,fieldset,summary,.form-card,.form-grid>*{min-width:0}
button{overflow-wrap:anywhere}
small,.hint,.demo-note,.checks p{font-size:.875rem}
.restaurant strong,.person-cell strong{overflow-wrap:anywhere}
.shift-person{min-width:0}
.shift-time small,.shift-card small{font-size:.75rem}
.shift-time{white-space:normal}
.schedule-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.status-chip{font-size:.875rem;padding:6px 10px;background:#eaf0f5;border-radius:7px}
.text-button{border:0;background:transparent;color:var(--blue);padding:8px}
.table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:10px}
.desktop-week{width:100%;min-width:0;border:0;border-radius:0;overflow:visible}
.desktop-week .person-cell{max-width:none;position:sticky;left:0;z-index:2;background:#fff;box-shadow:2px 0 0 var(--line)}
#calendar:has(.desktop-week){overflow:visible}
.week-cell .add-day{min-height:44px;font-size:.75rem}
.station-label{font-size:.875rem;cursor:pointer;min-height:36px;padding:6px 0}
.shift-card{min-height:54px}
.issue-row.excess{background:#edf3fa}
.issue-row.shortage{background:#fff0ed;border-left:4px solid #c93f2e}
.status-chip.changed{background:#fff1d7;color:#8b5900}
.team-pay{align-items:flex-start}
.team-pay>div:last-child{max-width:210px}
.team-pay label{display:grid;font-size:.875rem;gap:6px;margin-top:10px}
.team-pay p{font-size:.875rem;margin:10px 0 0}
.file-label{display:grid;gap:8px;max-width:400px;margin:18px 0}
.wizard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.wizard-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0 22px}
.wizard-steps button{border:1px solid var(--line);padding:10px 8px;border-radius:8px;background:#f7f9fb;font-size:.875rem}
.wizard-steps [aria-current=step]{background:var(--navy);color:white;border-color:var(--navy)}
.wizard-body{min-width:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid label,.inline-fields label,.daily-body label{display:grid;gap:6px;font-size:.875rem;font-weight:600}
.form-grid input,.form-grid select,.rule-grid input{width:100%;font-size:1rem}
.form-card{padding:18px;border:1px solid var(--line);border-radius:12px;margin:16px 0;background:white}
.form-card .check-line{margin:12px 0}
.form-card>button{margin-top:10px}
.inline-fields{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:10px 0}
.inline-fields label{flex:1}
.inline-fields button,.form-card button:not(.primary-button):not(.danger-button){border:1px solid var(--line);background:#f7f9fb;border-radius:8px;padding:9px 12px}
.daily-rule{margin-top:9px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.daily-rule>summary,.employee-details>summary{padding:12px;font-weight:700;cursor:pointer;min-height:48px;overflow-wrap:anywhere}
.daily-rule>summary small,.employee-details>summary small{display:block;font-weight:400;letter-spacing:0}
.daily-rule[open]>summary{border-bottom:1px solid var(--line);background:#f7f9fb}
.daily-body{padding:14px}
.daily-body .rule-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}
.station-count{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0 0}
.station-count legend{font-size:.875rem;font-weight:600}
.advanced{margin-top:16px}
.advanced>summary{cursor:pointer;padding:12px 0;font-weight:600}
.employee-details{padding:0}
.employee-details>.form-grid,.employee-details>.hint,.employee-details>.check-line{margin:16px}
.employee-details>.danger-button{margin:0 16px 12px}
.wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding:16px 0;background:white;border-top:1px solid var(--line)}
.wizard-actions button{min-width:100px}
.check-line input{min-height:24px;width:24px!important;flex-shrink:0}
.check-line{font-size:.875rem}
.extra-peak,.unavailable,.transfer-panel{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.extra-peak>label{display:inline-grid;margin:8px 10px 0 0}
.date-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.date-chips button{min-height:36px;border:1px solid #ebc8be;background:#fff1eb;color:#8b3322;border-radius:18px;padding:5px 10px}
.transfer-panel{border-color:#f0be75;background:#fff8e9;margin-bottom:18px}
.transfer-panel label{display:grid;gap:6px;max-width:420px;font-weight:600}
.transfer-panel .dialog-actions{margin-top:14px;justify-content:flex-start}
.actual-details{border:1px solid var(--line);border-radius:9px;padding:10px 12px}
.actual-details summary{cursor:pointer;font-weight:650;font-size:.875rem}
.actual-details .time-fields{margin-top:12px}
.welcome-card{text-align:left}.welcome-card>button{width:100%}.welcome-brand{color:var(--ink);padding:0}.welcome-card p{color:var(--muted)}
#printRoot{display:none}
dialog{position:fixed;inset:0;margin:auto;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;width:min(460px,calc(100% - 24px))}
.dialog-card{min-width:0}
.dialog-actions{position:static;align-items:center}
.quick-times{flex-wrap:wrap}
.quick-times button{flex:1;font-size:.875rem}
@media(max-width:1279px){main{width:calc(100% - 190px)}}
@media(max-width:760px){
 main{width:100%;padding-inline:12px}
 .filter-row{width:100%;min-width:0}
 .segmented{width:100%}
 .schedule-actions button{flex:1 1 140px;font-size:.875rem}
 .settings-intro{gap:12px}
 .wizard-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .form-grid,.daily-body .rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .form-card{padding:12px}
 .employee-details{padding:0}
 .inline-fields{display:grid;grid-template-columns:1fr}
 .table-scroll{max-width:100%}
 .desktop-week{min-width:0}
 .team-pay{display:grid;grid-template-columns:1fr}
 .team-pay>div:last-child{max-width:none}
 dialog{inset:0;margin:auto;max-height:calc(100dvh - 24px)}
 .dialog-card{padding:16px}
 .mobile-nav span{font-size:.75rem}
 .period-row h2{min-width:0;font-size:.95rem}
 .period-row #todayButton{flex-basis:100%}
}
@media(max-width:380px){.form-grid,.daily-body .rule-grid,.time-fields{grid-template-columns:1fr}.wizard-head{flex-wrap:wrap}}
.venue-hours{display:grid;grid-template-columns:40px 110px minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#dfe5ea)}
.venue-hours label{min-width:0}.venue-hours input{max-width:100%;min-width:0}
.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.month-day{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-width:0;min-height:165px;height:auto;padding:10px;text-align:left}
.month-day-head{display:flex;justify-content:space-between;gap:4px}.month-people{display:grid;gap:7px;margin-top:9px;min-width:0}
.month-people>span{display:grid;gap:2px;border-left:2px solid #cfdae4;padding-left:5px;min-width:0}
.month-people b,.month-people small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.72rem}
.month-people small{color:#627385;font-size:.66rem}.month-more{margin-top:6px;font-size:.7rem}
.month-alert{font-size:.66rem;color:#905608;background:#fff1d7;border-radius:4px;padding:3px;margin-top:auto;white-space:normal}
.month-alert.shortage{color:#a92b32;background:#fcebed}
.export-actions{display:grid;gap:8px;margin-top:16px}.export-image-link{display:block;padding:14px 0;color:#183e65;font-weight:600}.export-image-link img{display:block;width:100%;height:auto;border:1px solid #dce4eb;margin-top:8px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #5788ac;outline-offset:3px}
@media(max-width:1100px){.month-people>span>small:last-child{display:none}.month-day{padding:6px}}
@media(max-width:760px){
 .venue-hours{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr);gap:8px}.venue-hours>.check-line{grid-column:2/4}.venue-hours>label:not(.check-line){grid-row:auto}.venue-hours>label:nth-last-child(2){grid-column:2}
 .month-grid{gap:3px}.month-day{min-height:78px;padding:4px;gap:3px}.month-day-head{flex-direction:column;gap:2px}.month-day-head small{font-size:.65rem}
 .month-people,.month-more{display:none}.month-alert{font-size:0;padding:0;background:transparent}.month-alert:after{content:'!';font-size:.75rem;font-weight:800}.month-alert.shortage{background:transparent}
 .month-day.muted{opacity:.45}
}
@media print{@page{size:A4 landscape;margin:5mm}#printRoot{padding:0!important}.export-print-page{display:block;width:100%;height:auto;break-after:page;break-inside:avoid}.export-print-page:last-child{break-after:auto}}
@media print{
 body{background:#fff}.sidebar,main,.mobile-nav,dialog,.toast{display:none!important}#printRoot{display:block!important;padding:12mm;color:#102338;font-family:system-ui}#printRoot header{border-bottom:2px solid #102338;margin-bottom:8mm}#printRoot h1{font-size:24pt}#printRoot h2{font-size:13pt;margin:6mm 0 2mm;text-transform:capitalize}#printRoot section div{display:grid;grid-template-columns:1.3fr 1fr auto;gap:8mm;padding:2.5mm 0;border-bottom:1px solid #dfe5ea;font-size:10pt}#printRoot section span{color:#586c7c}#printRoot section b{text-align:right}
}

/* Fendir Team — tasks */
.tasks-page{padding:0}.tasks-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:14px}.task-tabs button[aria-selected=true]{background:var(--navy);color:#fff}.task-filter select{min-width:190px}.carry-note{margin:0 0 14px;padding:11px 14px;border:1px solid #f0d7a6;background:#fff8e9;border-radius:10px;color:#7b5919;font-size:.875rem}.tasks-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:16px;align-items:start}.tasks-grid>section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{margin:0;font-size:1.05rem}.section-title small{color:var(--muted)}.task-row{display:flex;align-items:flex-start;gap:10px;border-top:1px solid var(--line);padding:12px 2px;min-width:0}.task-row:first-of-type{border-top:0}.task-check{width:28px;height:28px;min-width:28px;padding:0;border:2px solid #b7c4ce;background:#fff;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:800;margin-top:1px}.task-check:hover{border-color:var(--blue)}.task-row.done .task-check,.list-item.done .task-check{background:var(--mint);border-color:var(--mint)}.task-main{flex:1;display:block;text-align:left;border:0;background:transparent;padding:0;min-width:0}.task-main strong{display:block;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}.task-main small{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px;color:var(--muted);font-size:.78rem}.task-main small span+span:before{content:'·';margin-right:10px;color:#aab4bc}.task-row.done .task-main strong{text-decoration:line-through;color:var(--muted);text-decoration-thickness:1.5px}.task-list-card{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;width:100%;border:1px solid var(--line);background:#fff;padding:14px;border-radius:12px;text-align:left;margin-bottom:9px}.task-list-card:hover{border-color:#a9bac8;background:#fafcfd}.task-list-card>span:nth-child(2){display:grid;gap:3px;min-width:0}.task-list-card strong{overflow-wrap:anywhere}.task-list-card small{font-size:.78rem;color:var(--muted)}.list-card-icon,.kind-icon{width:34px;height:34px;border-radius:9px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800}.kind-icon.list{background:var(--mint-soft);color:#28745e}.mini-progress,.progress-track{display:block;height:5px;background:#e7edf1;border-radius:99px;overflow:hidden}.mini-progress i,.progress-track span{display:block;height:100%;background:var(--mint);border-radius:inherit;transition:width .2s ease}.task-list-card.done strong{text-decoration:line-through;color:var(--muted)}.task-empty-line,.list-empty{color:var(--muted);font-size:.875rem;padding:16px 2px}.tasks-empty{text-align:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:54px 22px}.tasks-empty>span{display:grid;place-items:center;margin:0 auto 14px;width:52px;height:52px;border-radius:50%;background:var(--mint-soft);color:var(--mint);font-size:1.6rem}.tasks-empty h2{margin:0 0 6px}.tasks-empty p{max-width:480px;margin:0 auto 18px;color:var(--muted)}.completed-block{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.completed-block>summary{min-height:44px;padding:10px 2px;cursor:pointer;color:var(--muted);font-size:.875rem;font-weight:650}.kind-dialog{gap:10px}.kind-choice{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px}.kind-choice span:nth-child(2){display:grid;gap:2px}.kind-choice small{color:var(--muted);font-size:.8rem}.task-title-field textarea{width:100%;resize:vertical;min-height:82px;border:1px solid #c9d3dc;border-radius:10px;padding:12px;font:inherit;font-size:1rem;line-height:1.45}.task-date-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}.task-extra{border:1px solid var(--line);border-radius:10px;padding:0 12px}.task-extra>summary{padding:12px 0;cursor:pointer;font-weight:650;font-size:.875rem}.task-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:2px 0 14px}.task-weekdays{grid-column:1/-1;border:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}.task-weekdays legend{font-size:.8rem;font-weight:650;margin-bottom:6px}.task-weekdays label{display:flex;align-items:center;gap:4px;padding:7px 8px;background:#f2f5f7;border-radius:8px}.task-weekdays input{width:auto;min-height:auto}.task-form .hint{margin:-6px 0 0;color:var(--muted);font-size:.78rem}.list-dialog{max-width:680px}.list-editor{gap:13px}.list-heading{flex:1;min-width:0}.list-heading input{border:0;padding:0;min-height:0;width:100%;font-weight:750;font-size:1.35rem;color:var(--ink);background:transparent}.list-progress-text{margin:4px 0 0!important;font-size:.875rem;color:var(--muted)!important}.progress-track{height:7px}.list-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.list-meta label{font-size:.78rem}.quick-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;background:#f6f8fa;border-radius:12px}.quick-item input{border-color:transparent;background:#fff}.list-item{display:grid;grid-template-columns:28px 28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px 0;border-bottom:1px solid var(--line)}.list-item input{border:0;min-height:40px;padding:6px;background:transparent;font-size:.95rem}.list-item.done input{text-decoration:line-through;color:var(--muted)}.drag-handle{border:0;background:transparent;color:#8c9aa5;padding:6px 2px;cursor:grab;font-size:1rem}.item-move{display:flex;gap:2px}.item-move button{width:30px;height:34px;padding:0;border:0;background:transparent;color:var(--muted);border-radius:7px}.item-move button:hover{background:#eef2f5;color:var(--ink)}.list-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.list-actions .danger-button{margin-left:auto}.scope-actions{display:grid;gap:8px}.scope-actions .text-button{justify-self:center}
@media(max-width:900px){.tasks-grid{grid-template-columns:1fr}.tasks-grid>section{padding:15px}}
@media(max-width:760px){.tasks-toolbar{padding:10px;display:grid}.task-tabs{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.task-tabs button{padding-inline:4px;font-size:.82rem}.task-filter select{width:100%;min-width:0}.tasks-grid{gap:10px}.tasks-grid>section{border-radius:12px}.task-row{padding:11px 0}.task-main strong{font-size:.95rem}.task-list-card{padding:12px}.task-date-row,.task-extra-grid,.list-meta{grid-template-columns:1fr}.list-dialog{margin:auto 6px 6px;width:calc(100% - 12px);max-height:calc(100dvh - 12px)}.list-editor{padding:14px}.quick-item{position:sticky;top:0;z-index:2;padding:8px}.quick-item button{padding-inline:12px}.list-item{grid-template-columns:24px 28px minmax(0,1fr) auto}.item-move button{width:27px}.list-actions{display:grid;grid-template-columns:1fr 1fr}.list-actions .danger-button{margin:0;grid-column:1/-1;justify-self:start}.mobile-nav{grid-template-columns:repeat(5,1fr);padding-inline:2px}.mobile-nav button{font-size:1rem}.mobile-nav span{font-size:.65rem}.tasks-empty{padding:42px 18px}}
@media(prefers-reduced-motion:reduce){.mini-progress i,.progress-track span{transition:none}.task-row.done .task-main strong{transition:none}}
/* Schedule v2: restrained department groups and complete month composition. */
.auth-card .brand{color:var(--ink);padding:0 0 20px}.auth-card .brand-mark{color:white}
.month-day{display:block;min-height:150px;cursor:default;padding:9px}.month-day-head{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:9px}.month-day-head small{font-size:10px;text-align:right;line-height:1.25}.month-date{border:0;background:transparent;color:var(--ink);font:inherit;font-weight:750;min-width:30px;min-height:30px;padding:3px;text-align:left}.month-department{border-top:1px solid #e9edf1;padding-top:7px;margin-top:7px}.month-department h4{font-size:11px;margin:0 0 4px;color:var(--ink);overflow-wrap:anywhere}.month-time-group{font-size:11px;line-height:1.5;margin:4px 0}.month-time{display:block;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.month-names button{font:inherit;color:var(--ink);border:0;background:transparent;padding:1px 0;text-align:left;overflow-wrap:anywhere}.month-names button:hover{text-decoration:underline;color:var(--accent)}.month-expand,.month-add{border:0;background:transparent;color:var(--blue);font:inherit;font-size:11px;padding:8px 0;text-align:left;display:block}.month-alert{border:0;text-align:left;padding:6px;border-radius:6px;margin-top:6px;width:100%;font-size:10px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}.month-caption{font-size:12px;color:var(--muted)}
.team-department{margin:20px 0 30px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.team-department-head{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f4f7fa;border-bottom:1px solid var(--line);padding:14px 18px}.team-department-head h3{margin:0;font-size:17px}.team-department-head h3 small{font-size:12px;color:var(--muted);margin-left:6px}.team-department-head[draggable=true]{cursor:grab}.department-order{display:flex;gap:4px}.department-order button{border:1px solid var(--line);background:white;border-radius:8px;padding:7px 10px;min-height:36px;font-size:12px}.department-order button:disabled{opacity:.35;cursor:default}.team-department .team-member{border-radius:0;border:0;border-bottom:1px solid var(--line);margin:0}.team-department .team-member:last-child{border-bottom:0}.team-empty{padding:0 18px;color:var(--muted)}.budget-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.budget-stats article strong{font-size:1.2rem}.employee-constraints{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.employee-constraints summary{font-weight:600;cursor:pointer}.timezone-caption{font-size:12px;color:var(--muted);margin:8px 0}.budget-settings{margin-top:20px}.budget-settings>summary{font-size:17px;font-weight:650;cursor:pointer}.budget-note{font-size:12px;color:var(--muted)}
@media(min-width:1500px){.month-department h4,.month-time-group{font-size:12px}}
@media(max-width:760px){.month-grid{grid-template-columns:repeat(7,minmax(155px,1fr));min-width:1120px}.month-day{padding:10px}.month-time-group,.month-department h4{font-size:12px}.month-names button{min-height:28px}.month-date,.month-expand,.month-add{min-height:36px}.month-caption{position:sticky;left:0;width:calc(100vw - 75px)}#calendar:has(.month-grid){overflow-x:auto}.team-department-head{padding:12px}.team-department-head h3{font-size:16px}.department-order button{min-height:44px}.department-order span{display:none}.team-pay{gap:12px}.budget-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.month-time-group,.month-department h4{font-size:12px}.month-day-head small,.month-alert,.month-expand,.month-add{font-size:12px}.month-names button:focus-visible,.month-date:focus-visible,.month-add:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
