:root{font-family:system-ui,-apple-system,Segoe UI,Noto Sans JP,sans-serif;color:#1d2a3b;background:#f4f6f9;font-size:14px;line-height:1.65}*{box-sizing:border-box}body{margin:0}header{height:78px;background:#10283e;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:16px}.brand{color:#fff;text-decoration:none;font-size:23px;font-weight:750;letter-spacing:.06em}.brand span{font-size:13px;font-weight:400;display:block;letter-spacing:.15em}.account{display:flex;gap:16px;align-items:center}.account button{background:transparent;border-color:#7e96ac;color:#fff}.layout{display:grid;grid-template-columns:190px 1fr;min-height:80vh}aside{padding:24px 14px;background:#19334c;display:flex;flex-direction:column;gap:5px}aside button{text-align:left;color:#d9e4ed;border:0;background:none;padding:12px 16px;border-radius:6px}aside .selected{background:#31506e;color:#fff;font-weight:700}main{padding:28px 36px;min-width:0;max-width:1600px;width:100%;margin:auto}.auth{max-width:600px;margin:56px auto;min-height:60vh}.auth form{display:grid;gap:18px}.auth details{margin-top:24px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}h1{font-size:26px;margin:0 0 18px;font-weight:750}h2{font-size:19px;margin:0 0 14px}h3{font-size:16px}p{margin:10px 0}section,.member{background:#fff;border:1px solid #dde4eb;border-radius:10px;padding:24px;margin:20px 0;box-shadow:0 2px 5px #10283e04}.period{background:#fff;border:1px solid #d8e1e9;border-radius:8px;padding:16px;display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:0 0 24px}label{display:inline-flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}label:has(input[type=checkbox]){flex-direction:row;align-items:center;font-size:14px;font-weight:400}input,select,button{font:inherit;line-height:1.4;border:1px solid #b9c6d2;border-radius:5px;padding:8px 10px;background:#fff;color:#1d2a3b;max-width:100%}input[type=checkbox]{accent-color:#176c80;width:18px;height:18px;padding:0}input[type=number]{width:90px}button{cursor:pointer;white-space:nowrap;font-weight:600;transition:background .12s}button:hover:not(:disabled){background:#edf3f8;border-color:#56839b}button:disabled{opacity:.48;cursor:default}button.primary{background:#176c80;color:#fff;border-color:#176c80}button.primary:hover:not(:disabled){background:#12576a}.danger{color:#a93434}.actions,.inline,.presets{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.actions{margin:14px 0}.inline{margin:16px 0}.presets{gap:6px}.presets button{font-size:12px}.muted{color:#617083;font-size:13px}.banner{padding:12px 28px;background:#e8f3f3;border-bottom:1px solid #a9cfce;color:#164e57;display:flex;justify-content:space-between}.banner.error{background:#fff0ed;color:#982c21;border-color:#f0c0b6}.banner button{padding:0 8px;background:transparent;border:0}.warning{display:block;padding:12px 16px;background:#fff7e4;border-left:4px solid #c78c17;color:#775117;border-radius:3px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metrics section{margin:0;padding:20px}.metrics span{font-size:13px;color:#63768a;display:block}.metrics strong{font-size:32px;color:#1c405e;display:block}.availability{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin:18px 0}.member{padding:16px 20px}.member summary{font-weight:700;cursor:pointer}.member summary span{margin-left:12px;font-weight:400}.scroll{overflow:auto;max-height:70vh;border:1px solid #e1e7ed;border-radius:5px}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{background:#f0f4f8;color:#40566d;font-weight:650;white-space:nowrap;position:sticky;top:0;z-index:1}th,td{padding:11px 13px;border-bottom:1px solid #e3e9ef;vertical-align:top}tr:last-child td{border-bottom:0}td select{min-width:145px;max-width:330px}tr.invalid{background:#fff4ee}.badge{display:block;font-size:12px;color:#b33c25}td details{margin-top:6px;font-size:12px}td ul{padding-left:16px}summary{cursor:pointer}details>summary{list-style-position:inside}footer{text-align:center;color:#708094;font-size:11px;padding:24px}ul{padding-left:22px}li{margin:6px 0}.modal-backdrop{position:fixed;inset:0;background:#10283e99;display:grid;place-items:center;padding:24px;z-index:10}.modal{max-width:950px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 16px 60px #10283e55;margin:0}.modal .scroll{max-height:45vh}.recovery{user-select:all;background:#f1f5f8;font-size:14px;padding:16px;overflow:auto}.audit{list-style:none;padding:0}.audit>li{padding:12px 0;border-bottom:1px solid #e1e7ed}.audit-diff{display:grid;grid-template-columns:1fr 1fr;gap:12px}.audit-diff pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:400px;overflow:auto;background:#f5f7fa;padding:14px}:focus-visible{outline:3px solid #39a6bb;outline-offset:3px}@media(max-width:900px){header{padding:0 16px}.layout{grid-template-columns:1fr}aside{flex-direction:row;overflow:auto;padding:8px}aside button{white-space:nowrap;padding:8px 12px}main{padding:20px 16px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px}.brand{font-size:19px}.account{font-size:12px;gap:8px}.account button{font-size:12px}section{padding:18px}.audit-diff{grid-template-columns:1fr}.modal-backdrop{padding:10px}.period{gap:10px}}:root{--color-canvas: #f6f8fa;--color-surface: #fff;--color-sidebar: #132a35;--color-primary: #147d73;--color-primary-soft: #e9f5f1;--color-text: #172f3c;--color-muted: #607681;--color-border: #e1e8eb;--space-200: 8px;--space-400: 16px;--space-600: 24px;color:var(--color-text);background:var(--color-canvas);font-family:Noto Sans JP,Yu Gothic UI,system-ui,sans-serif;line-height:1.65}.app-shell{min-height:100vh}.topbar{height:76px;padding:0 36px;background:var(--color-surface);color:var(--color-text);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:30}.authenticated-shell .topbar{margin-left:232px}.brand{color:var(--color-text);font-size:22px;letter-spacing:0}.brand span{font-size:11px;letter-spacing:.02em}.authenticated-shell .topbar .brand{display:none}.topbar-title{font-size:13px;font-weight:700}.account{gap:16px;min-width:0}.account-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.account button{color:var(--color-muted);border-color:var(--color-border);background:#fff;font-size:12px}.save-state{font-size:11px;color:var(--color-muted);white-space:nowrap}.save-state:before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--color-primary)}.layout{display:block;min-height:calc(100vh - 134px);padding-left:232px}.navigation{position:fixed;inset:0 auto 0 0;width:232px;z-index:45;overflow-y:auto;background:var(--color-sidebar);padding:24px;display:flex;flex-direction:column;gap:20px}.sidebar-brand{color:#fff;display:flex;flex-direction:column;gap:7px;margin-bottom:0}.sidebar-brand strong{font-size:25px;letter-spacing:.04em}.sidebar-brand span{font-size:10px;letter-spacing:.04em}.nav-group{display:flex;flex-direction:column;gap:5px}.nav-group-title{font-size:10px;color:#b7c9ce;padding:0 2px 6px}.navigation button{border-radius:8px;min-height:40px;text-align:center;width:100%;padding:10px 8px;font-size:13px;color:#e6eff0}.navigation button:hover:not(:disabled){background:#203d47;border-color:transparent}.navigation button.selected{background:var(--color-primary);color:#fff;font-weight:700}.sidebar-help{color:#a8bdc6;margin-top:auto;padding-top:0;font-size:10px;line-height:1.8}.menu-toggle,.nav-close,.nav-shade{display:none}main{margin:0 auto;padding:36px;max-width:1600px}.page-heading{margin-bottom:24px;align-items:center}.page-heading h1{margin:0 0 4px;font-size:28px;letter-spacing:.015em}.page-description{margin:0;font-size:13px;color:var(--color-muted)}.page-heading>button{flex-shrink:0;min-width:148px}h2{font-size:18px;line-height:1.6;margin-bottom:12px}h3{font-size:14px;margin:20px 0 6px}section,.member{border:1px solid var(--color-border);box-shadow:none;border-radius:12px;margin:24px 0;padding:24px}button,input,select{border-color:#cbd6dc;border-radius:8px;color:var(--color-text);padding:10px 12px}button{min-height:40px;font-size:13px;font-weight:600}button:hover:not(:disabled){background:#f1f7f5;border-color:#93b7b2}button.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}button.primary:hover:not(:disabled){background:#106b62;border-color:#106b62}button:disabled{opacity:.5;cursor:not-allowed}input:disabled,select:disabled{background:#f4f6f7}button,input,select,summary{-webkit-tap-highlight-color:transparent}.muted{color:var(--color-muted)}.eyebrow{font-size:11px;font-weight:600;color:var(--color-primary);letter-spacing:.06em;margin-bottom:8px}.actions{align-items:center;gap:10px}.period-picker{background:var(--color-surface);border-radius:10px;border:1px solid var(--color-border);margin-bottom:24px}.period-picker>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;list-style:none}.period-picker>summary::-webkit-details-marker{display:none}.period-picker>summary>span:first-child{min-width:0}.period-picker small{display:block;font-size:11px;font-weight:400;color:var(--color-muted);margin-bottom:3px}.period-picker strong{font-weight:600;font-size:14px}.period-size{display:inline-block;color:var(--color-muted);font-weight:400;font-size:12px;margin-left:16px;white-space:nowrap}.period-change{display:block;border:1px solid #a4b4bc;padding:9px 14px;border-radius:8px;flex-shrink:0;font-size:12px;font-weight:600}.period-picker[open] .period-change{background:var(--color-primary-soft)}.period{background:var(--color-canvas);border:0;border-top:1px solid var(--color-border);border-radius:0 0 10px 10px;margin:0;padding:20px;gap:16px}.period-help{flex-basis:100%;font-size:11px;color:var(--color-muted);margin:0;max-width:760px}.period .presets button{font-size:12px;min-height:40px}.dashboard-stack{display:flex;flex-direction:column;gap:24px}.dashboard-stack>section,.dashboard-columns>section{margin:0}.welcome-card{padding:24px}.welcome-card h2{font-size:24px;margin-bottom:10px}.welcome-card>.muted{margin-top:0}.welcome-card .actions{margin:16px 0 0}.setup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.setup-step{display:flex;flex-direction:column;gap:12px;align-items:start;padding:18px;border:1px solid transparent;text-align:left;white-space:normal;background:var(--color-canvas);border-radius:8px}.setup-step.current{background:var(--color-primary-soft)}.setup-step strong{font-size:14px}.setup-step>span:last-child{color:var(--color-muted);font-size:11px;font-weight:400}.setup-step .step-number{font-size:18px;color:var(--color-primary)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metrics section{padding:24px;min-width:0}.metrics section span{font-size:11px;color:var(--color-muted)}.metrics strong{color:var(--color-text);font-size:32px;margin:6px 0;font-weight:700;font-variant-numeric:tabular-nums}.metrics small{font-size:10px;color:var(--color-muted);display:block}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading .muted{font-size:11px}.month-progress-list{display:flex;flex-direction:column}.month-progress-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;text-align:left;border:0;border-bottom:1px solid #f0f3f5;border-radius:0;gap:16px;padding:10px 0;font-weight:500;background:transparent}.month-progress-list>button:last-child{border-bottom:0}.month-progress-list>button>span:last-child{color:#8497a1;font-size:13px}.status-tag{font-size:11px;font-weight:400;color:var(--color-muted);background:#f1f4f6;border-radius:20px;padding:3px 9px;white-space:nowrap}.status-tag.good{background:var(--color-primary-soft);color:var(--color-primary)}.tips-card p{margin:6px 0 16px;font-size:12px}.tips-card h3{margin-top:18px}.tips-card button{font-size:12px}.schedule-summary{display:flex;flex-direction:column;gap:8px}.schedule-summary h2{font-size:23px;margin-bottom:8px}.completion-track{height:6px;border-radius:6px;background:#e7edef;overflow:hidden;margin-top:8px}.completion-track>span{height:100%;display:block;background:var(--color-primary)}.validation-ok{color:var(--color-primary)}.boundary-note{color:var(--color-muted);font-size:12px}.boundary-note p{padding:12px 16px;background:#fff;border-radius:8px}.roster-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 24px}.roster-toolbar .actions{margin:0;width:100%}.toolbar-actions>button:first-child{margin-right:auto}.roster-board{margin-top:0}.month-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.month-heading h2{font-size:22px;margin:0}.month-arrows{display:flex;gap:8px}.month-arrows button{border-color:transparent;font-size:20px;min-width:40px;padding:4px 10px;color:var(--color-muted)}.month-tabs{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px;scrollbar-width:thin}.month-tabs button{min-width:68px;padding:10px 16px;flex-shrink:0}.roster-subbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 20px}.month-completion{font-size:12px;color:var(--color-primary);font-weight:600}.view-switch{display:inline-flex;padding:3px;background:var(--color-canvas);border:1px solid var(--color-border);border-radius:8px}.view-switch button{border:0;min-height:32px;padding:6px 12px;color:var(--color-muted);font-size:11px;background:transparent}.view-switch button[aria-pressed=true]{color:var(--color-primary);background:#fff;box-shadow:0 1px 3px #132a3512}.calendar-scroll{overflow-x:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:640px}.weekday{text-align:left;font-size:11px;color:var(--color-muted);padding:0 8px 4px}.calendar-day,.calendar-empty{min-height:106px;border:1px solid var(--color-border);border-radius:8px;background:#fff}.calendar-day{display:flex;flex-direction:column;align-items:stretch;gap:7px;text-align:left;padding:10px;white-space:normal;min-width:0}.calendar-day.holiday{background:#f6f8fa}.calendar-day.today{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.calendar-date{font-size:12px;font-weight:700;display:flex;justify-content:space-between;gap:4px;margin-bottom:2px}.calendar-date>span{font-size:9px;color:var(--color-primary)}.calendar-assignment{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:5px;row-gap:0;font-size:11px;min-width:0;line-height:1.6}.calendar-assignment small{font-size:9px;color:var(--color-muted)}.calendar-assignment strong{font-size:11px;font-weight:500;overflow-wrap:anywhere}.calendar-assignment.day-shift small,.calendar-assignment.day-shift strong{color:var(--color-primary)}.invalid-shift{color:#a4482c;background:#fff1e9}.pending-dot{font-size:9px;color:#a4482c}.calendar-hint{font-size:11px;color:var(--color-muted);margin:16px 0 0}.utility-panel{border:1px solid var(--color-border);background:#fff;border-radius:12px;margin:16px 0}.utility-panel>summary{padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;list-style:none}.utility-panel>summary::-webkit-details-marker{display:none}.utility-panel>summary:after{content:"\ff0b";margin-left:auto;color:var(--color-muted);font-size:17px}.utility-panel[open]>summary:after{content:"\2212"}.utility-panel>summary strong{font-size:14px}.utility-panel>summary>span{font-size:11px;color:var(--color-muted)}.panel-content{padding:0 24px 24px}.panel-content>p{color:var(--color-muted);font-size:12px}.panel-content>p.warning{color:#775117}.history-panel .inline{padding:16px;border-radius:8px;background:var(--color-canvas);margin-top:0}.date-filter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px;margin-bottom:12px;border-radius:8px;background:var(--color-primary-soft);font-size:12px}.date-filter button{font-size:11px;min-height:32px;padding:6px 10px}.roster-list-scroll{max-height:65vh;border-radius:8px}.roster-table td{vertical-align:middle}.roster-table th{font-size:11px}.roster-date-cell time{font-size:16px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.roster-date-cell small{display:block;color:var(--color-muted);font-size:10px;font-weight:400}.assignee-name{font-size:13px;font-weight:600}.roster-table td details{color:var(--color-muted);font-size:11px}.roster-table td details[open]{min-width:180px}.roster-table td details ul{max-height:360px;overflow-y:auto;padding:0;list-style:none}.roster-table td details li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--color-border);padding:8px 0}.shift-label{font-size:10px;white-space:nowrap;padding:3px 7px;background:#f0f4f6;border-radius:5px;display:inline-block}.shift-label.day{background:var(--color-primary-soft);color:var(--color-primary)}.roster-table td:last-child>button{font-size:11px;min-height:32px;padding:6px 9px}.member{padding:18px 20px}.member[open]{border-color:#a3c9c0}.member summary{font-size:14px}.availability label{padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-canvas)}.availability select{width:100%;background:#fff;font-size:12px}.warning{background:#fff6e7;color:#92601d;border-left-color:#dca652;border-radius:6px;font-size:12px}.banner{border:0;font-size:13px;gap:16px;padding:14px 36px}.authenticated-shell>.banner{margin-left:232px}.banner.error{background:#fff0eb}.auth{max-width:540px;background:#fff;border:1px solid var(--color-border);border-radius:16px;padding:36px;margin:64px auto;min-height:0}.auth h1{font-size:26px;margin-bottom:8px}.auth>p{font-size:13px;color:var(--color-muted);margin-bottom:24px}.auth>.primary{width:100%;min-height:48px;margin-bottom:8px}.auth>details{border-top:1px solid var(--color-border);padding-top:20px}.auth form{padding-top:20px}.auth .auth-methods{display:flex;gap:8px;margin-bottom:0}.auth-methods button{flex:1}.auth-methods button[aria-pressed=true]{background:var(--color-primary-soft);color:var(--color-primary);border-color:#9dcac1}.auth form .form-help{color:var(--color-muted);font-size:11px;margin:-8px 0 0;font-weight:400}.modal-backdrop{z-index:100;backdrop-filter:blur(3px)}.modal{border-radius:16px}.modal .actions{position:sticky;bottom:-24px;background:#fff;border-top:1px solid var(--color-border);padding:16px 0;margin-bottom:0}.modal h2{font-size:22px}.modal p{font-size:13px}.recovery{line-height:1.8}footer{font-size:10px;padding:20px 24px;color:#748993}.authenticated-shell>footer{margin-left:232px}.skip-link{position:fixed;top:-70px;left:16px;z-index:200;background:#fff;padding:12px;border:2px solid var(--color-primary)}.skip-link:focus{top:12px}:focus-visible{outline:3px solid #57aaa1;outline-offset:3px}@media(max-width:1160px){.setup-step{padding:14px}.setup-step strong{font-size:12px}.metrics section{padding:18px}.dashboard-columns{grid-template-columns:1.3fr 1fr}.topbar-title{font-size:11px}}@media(max-width:980px){.authenticated-shell .topbar,.authenticated-shell>.banner,.authenticated-shell>footer{margin-left:0}.topbar{height:64px;padding:0 20px;gap:10px}.topbar-title,.save-state{display:none}.authenticated-shell .topbar .brand{display:block;font-size:19px}.authenticated-shell .topbar .brand span{display:none}.account{gap:8px}.account-name{max-width:95px;font-size:11px}.menu-toggle{display:block;min-height:36px}.layout{padding-left:0}.navigation{transform:translate(-100%);visibility:hidden;transition:transform .16s ease,visibility .16s;width:260px}.navigation.open{transform:translate(0);visibility:visible}.nav-close{display:block}.nav-shade{display:block;position:fixed;inset:64px 0 0;z-index:40;border:0;border-radius:0;background:#132a3580}main{padding:28px 24px}.page-heading h1{font-size:26px}.setup-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.banner{padding:12px 24px}}@media(max-width:760px){main{padding:24px 20px}.page-heading{gap:12px;margin-bottom:20px}.page-heading h1{font-size:25px}.page-heading>button{display:none}.page-description{font-size:12px;line-height:1.7}.period-picker{margin-bottom:20px}.period-picker>summary{padding:14px;gap:10px}.period-picker strong{font-size:11px;display:block}.period-size{display:block;margin:3px 0 0;font-size:10px}.period-change{font-size:11px;padding:9px 10px}.period{padding:16px}.period>label{flex:1;min-width:120px}.period .primary{width:100%}.dashboard-stack{gap:16px}.welcome-card{display:flex;flex-direction:column;padding:20px}.welcome-card h2{font-size:20px}.welcome-card .muted{font-size:12px}.welcome-card .actions{order:2;margin:10px 0 0}.welcome-card .actions button{width:100%}.setup-steps{grid-template-columns:1fr;gap:8px;order:3}.setup-step{display:grid;grid-template-columns:26px minmax(0,1fr);gap:2px 12px;padding:12px}.setup-step .step-number{grid-row:span 2;font-size:16px;align-self:center}.setup-step strong{font-size:12px}.setup-step>span:last-child{font-size:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metrics section{padding:16px}.metrics strong{font-size:28px;margin:4px 0}.metrics small{font-size:9px}.dashboard-columns{grid-template-columns:1fr;gap:16px}section{padding:20px}.dashboard-columns>section{padding:20px}.schedule-summary h2{font-size:20px}.roster-toolbar{margin-bottom:20px}.toolbar-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.toolbar-actions>button{font-size:11px;padding:9px 10px;white-space:normal}.toolbar-actions>button:first-child{margin:0}.roster-board{padding:18px 14px}.month-heading{margin-bottom:14px}.month-heading h2{font-size:18px}.month-tabs{gap:8px;margin-bottom:12px}.month-tabs button{min-width:66px;font-size:12px;padding:9px 16px}.roster-subbar{gap:8px;margin:10px 0 16px}.month-completion{font-size:10px}.view-switch button{padding:6px 9px;font-size:10px}.calendar-grid{min-width:650px}.calendar-hint{font-size:10px}.roster-list-scroll{max-height:66vh;border:0;border-radius:0;overflow-x:hidden}.roster-table thead{display:none}.roster-table tbody{display:block}.roster-table tr{display:grid;grid-template-columns:24px 50px minmax(0,1fr) 65px;gap:0 5px;padding:14px 0;border-bottom:1px solid var(--color-border)}.roster-table td{display:block;border:0;padding:0;min-width:0}.roster-table td:nth-child(1){grid-column:1;grid-row:1 / span 2;align-self:center}.roster-table td:nth-child(2){grid-column:2;grid-row:1 / span 2}.roster-table td:nth-child(3){grid-column:3;grid-row:1;margin-bottom:3px}.roster-table td:nth-child(4){grid-column:3;grid-row:2}.roster-table td:nth-child(5){grid-column:4;grid-row:1 / span 2;align-self:center}.roster-date-cell time{font-size:17px}.roster-date-cell small{font-size:9px}.roster-table td:last-child>button{font-size:10px;padding:6px 7px;white-space:normal}.roster-table td details{margin-top:5px;font-size:10px}.roster-table td details[open]{min-width:0}.roster-table td details li{font-size:11px;overflow-wrap:anywhere}.roster-table td details button{white-space:normal;font-size:10px;min-height:32px;padding:6px}.shift-label{font-size:9px;padding:2px 5px}.assignee-name{font-size:12px;overflow-wrap:anywhere}.utility-panel>summary{padding:18px;gap:6px}.utility-panel>summary strong{font-size:13px}.utility-panel>summary>span{flex-basis:100%;font-size:10px}.utility-panel>summary:after{position:absolute;right:18px}.utility-panel>summary{position:relative;padding-right:40px}.panel-content{padding:0 16px 18px}.panel-content .actions button{white-space:normal;font-size:11px}.member summary span{display:block;margin-left:18px;font-size:11px}.availability{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.availability label{font-size:11px;padding:9px}.availability select{font-size:11px}.auth{margin:32px 16px;padding:24px}.auth h1{font-size:24px}.modal{padding:20px}.modal .actions{bottom:-20px}.modal .actions>button{flex:1;white-space:normal}.modal h2{font-size:20px}footer{padding:16px 20px;font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}.preference-title,.preference-month,.preference-savebar{display:flex;align-items:center;justify-content:space-between;gap:12px}.preference-title{align-items:flex-start}.preference-title h2{margin-top:0}.preference-title p{color:var(--muted, #607681)}.preference-unsaved{white-space:nowrap;border-radius:8px;padding:6px 10px;background:#edf5f3;font-size:.8rem}.preference-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.7fr) minmax(190px,1.4fr);gap:12px}.preference-controls label{min-width:0}.preference-controls input,.preference-controls select{width:100%}.preference-tools{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.preference-tools button.selected{outline:2px solid #147d73;outline-offset:1px;font-weight:700}.preference-month{margin:18px 0 12px}.preference-month h3{margin:0;font-size:1.1rem}.preference-month small{display:inline-block;margin-left:8px;font-weight:400;color:#607681}.preference-month>div{display:flex;gap:6px}.preference-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.preference-weekday{text-align:center;padding:5px;font-size:.85rem;color:#607681}.preference-weekday.sunday{color:#b64752}.preference-weekday.saturday{color:#356eab}.preference-grid .preference-day{min-width:0;min-height:116px;display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:9px;color:#172f3c;background:#fff;border:1px solid #dce5e8;border-radius:9px;text-align:left;cursor:pointer}.preference-day.holiday{background:#faf7f5}.preference-grid .preference-day.preference-no{background:#fff0f0;border-color:#edc4c7}.preference-grid .preference-day.preference-avoid{background:#fff8e7;border-color:#ead8a2}.preference-grid .preference-day.preference-ok{background:#edf7f2;border-color:#b8dacd}.preference-grid .preference-day.pending{outline:2px solid #147d73;outline-offset:-2px}.preference-day.today .preference-date{text-decoration:underline;text-underline-offset:3px}.preference-date{display:flex;justify-content:space-between;font-size:.9rem;font-weight:700}.preference-date>span{color:#147d73}.preference-day strong{align-self:center;font-size:1.25rem;line-height:1.3}.preference-individual{text-align:center;font-size:.67rem;color:#607681}.preference-day small{font-size:.67rem;text-align:center;white-space:nowrap}.preference-holiday-label{font-size:.65rem;overflow-wrap:anywhere;color:#8e5259}.preference-hint{font-size:.8rem;color:#607681;line-height:1.7}.preference-savebar{margin-top:15px;padding:12px;border:1px solid #dce5e8;border-radius:10px;background:#f5f8f9;flex-wrap:wrap}.preference-savebar>div{display:flex;flex-wrap:wrap;gap:8px}.preference-savebar>span{font-size:.9rem}.preference-message{background:#eaf4f0;border-radius:8px;padding:12px}.preference-details{margin-top:18px}.preference-details li{overflow-wrap:anywhere}@media(max-width:760px){.preference-title{flex-wrap:wrap}.preference-controls{grid-template-columns:1fr 1fr}.preference-reason{grid-column:1/-1}.preference-tools{gap:6px}.preference-tools button{padding:9px 10px;font-size:.8rem}.preference-grid{gap:3px}.preference-grid .preference-day{padding:5px 2px;min-height:92px;border-radius:6px}.preference-date{padding:0 3px;font-size:.8rem}.preference-day strong{font-size:1.15rem}.preference-day small,.preference-individual{font-size:.57rem}.preference-month h3 small{display:block;margin:4px 0 0}.preference-savebar>div{width:100%}.preference-savebar>div>button{flex:1}}.title-with-help{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}.title-with-help h1,.title-with-help h2{margin-bottom:0}.help-inline{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}button.help-trigger{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;padding:6px 9px;border:1px solid #d7e4e3;background:#f4f8f7;color:#28685f;font-size:.8rem;font-weight:500;white-space:normal;line-height:1.5}.help-mark{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border:1px solid currentColor;border-radius:50%;font-size:.74rem;font-weight:700}.help-trigger:hover{background:#e6f1ec}.help-search label{display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:640px}.help-search input{width:100%}.help-search p{margin-bottom:0;color:#607681;font-size:.86rem}.help-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.help-toc{min-width:0;display:flex;flex-direction:column;gap:14px;border:1px solid #e1e8eb;border-radius:12px;background:#fff;padding:16px}.help-toc h2{font-size:.78rem;color:#607681;margin:0 0 7px}.help-toc button{min-width:0;white-space:normal;overflow-wrap:anywhere;display:block;width:100%;margin:3px 0;text-align:left;border:0;background:transparent;font-size:.88rem;padding:9px 10px}.help-toc button.selected{background:#e8f4ef;color:#126c62;font-weight:700}.help-article{min-width:0;background:#fff;padding:26px;border:1px solid #e1e8eb;border-radius:12px}.help-category{font-size:.78rem;color:#607681}.help-article h2{margin:6px 0 18px;font-size:1.4rem}.help-article h3,.help-dialog-body h3{margin-top:22px;font-size:1rem}.help-lead{font-size:1rem;font-weight:600;color:#213f4a;line-height:1.85}.help-example{padding:14px 16px;border-left:3px solid #147d73;background:#eef7f3;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.85}.help-article li,.help-dialog-body li{margin:9px 0;padding-left:3px;overflow-wrap:anywhere}.help-related{border-top:1px solid #e1e8eb;margin-top:24px;padding-top:5px}.help-related button{display:block;margin:7px 0;font-size:.86rem}.help-dialog{width:min(700px,calc(100vw - 28px));max-width:none;max-height:86vh;margin:auto;padding:0;background:#fff;color:#172f3c;border:1px solid #dce5e8;border-radius:16px;box-shadow:0 24px 80px #0c26354d}.help-dialog::backdrop{background:#12263280}.help-dialog-panel{display:flex;flex-direction:column;max-height:84vh;min-height:0}.help-dialog-heading{background:#fff;color:#172f3c;flex-shrink:0;display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:19px 22px 15px;border-bottom:1px solid #e1e8eb}.help-dialog-heading span{color:#607681;font-size:.75rem}.help-dialog-heading h2{margin:5px 0 0;font-size:1.25rem}.help-dialog-heading button{flex-shrink:0;font-size:1.2rem;padding:4px 12px}.help-dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:5px 24px 15px;line-height:1.85}.help-dialog-footer{flex-shrink:0;padding:13px 20px;border-top:1px solid #e1e8eb;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.help-dialog-footer button{font-size:.86rem}@media(max-width:760px){.help-layout{grid-template-columns:minmax(0,1fr);gap:14px}.help-toc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px}.help-toc button{font-size:.8rem;padding:8px}.help-article{padding:18px}.help-article h2{font-size:1.2rem}.help-dialog{max-height:90dvh}.help-dialog-panel{max-height:88dvh}.help-dialog-heading{padding:14px 15px 12px}.help-dialog-heading h2{font-size:1.1rem}.help-dialog-body{padding:4px 17px 12px;font-size:.92rem}.help-dialog-footer{padding:12px}.title-with-help{gap:8px}.title-with-help button.help-trigger{font-size:.74rem}}.scheduling-settings .interval-input{display:flex;align-items:center;gap:10px;margin-top:6px}.scheduling-settings .interval-input input{width:100px}.interval-example{padding:13px 16px;background:#edf7f2;border-left:3px solid #147d73;border-radius:0 8px 8px 0}.interval-presets{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.interval-presets button[aria-pressed=true]{background:#e1f2eb;color:#126c62;border-color:#147d73}.interval-badge{align-self:center;padding:6px 10px;border-radius:8px;background:#edf4f2;font-size:.85rem}.duty-limits{margin:20px 0;border:1px solid #cfdbd6;border-radius:10px;padding:16px;min-width:0}.limit-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:14px 0}.limit-row input[type=number]{width:96px}.limit-row label{display:flex;gap:8px;align-items:center}.limit-warning{background:#fff8e9;border:1px solid #e8ce98;border-radius:10px;padding:16px;margin:16px 0;overflow-wrap:anywhere}.limit-warning p{margin:8px 0}@media(max-width:600px){.limit-row{gap:10px}.limit-row>label:first-child{width:100%}}:root{--roster-sat-ink:#1d4ed8;--roster-sat-bg:#eff6ff;--roster-sun-ink:#b42336;--roster-sun-bg:#fff1f2;--duty-day-ink:#0f766e;--duty-day-bg:#ecfdf5;--duty-night-ink:#6d28d9;--duty-night-bg:#f5f3ff}.calendar-day.date-saturday,.roster-table tr.date-saturday,.roster-legend .date-saturday{background:var(--roster-sat-bg)}.calendar-day.date-sunday,.roster-table tr.date-sunday,.roster-legend .date-sunday{background:var(--roster-sun-bg)}.date-saturday .calendar-date,.date-saturday .roster-date-cell time,.date-saturday .roster-date-cell small,.weekday-saturday,.roster-legend .date-saturday{color:var(--roster-sat-ink)}.date-sunday .calendar-date,.date-sunday .roster-date-cell time,.date-sunday .roster-date-cell small,.weekday-sunday,.roster-legend .date-sunday{color:var(--roster-sun-ink)}.duty-day{--duty-ink:var(--duty-day-ink);--duty-bg:var(--duty-day-bg)}.duty-night{--duty-ink:var(--duty-night-ink);--duty-bg:var(--duty-night-bg)}.calendar-assignment.duty-day,.calendar-assignment.duty-night,.shift-label.duty-day,.shift-label.duty-night,.roster-legend .duty-day,.roster-legend .duty-night{color:var(--duty-ink);background:var(--duty-bg);border:1px solid currentColor;border-radius:5px}.calendar-assignment.duty-day,.calendar-assignment.duty-night{padding:3px 5px}.calendar-assignment.duty-day small,.calendar-assignment.duty-night small,.calendar-assignment.duty-day strong,.calendar-assignment.duty-night strong{color:inherit}.calendar-assignment.invalid-shift{outline:2px solid #a4482c;outline-offset:1px}.pending-dot{background:#fff1e9;border-radius:3px;padding:1px 3px;font-weight:700}.roster-table tr.invalid td:nth-child(4){box-shadow:inset 3px 0 #a4482c;padding-left:8px}.roster-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;font-size:11px}.roster-legend>span{padding:4px 8px;border-radius:5px}.date-note{font-size:10px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}.priority-settings{margin:28px 0;padding-top:20px;border-top:1px solid var(--color-border)}.priority-row{display:grid;grid-template-columns:minmax(0,1fr) auto 115px;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--color-border)}.priority-row label{font-weight:600}.priority-row .help-trigger>span:last-child{display:none}.duty-share-field input{width:110px}.optimization-comparison{margin:16px 0}.optimization-comparison table{font-size:12px}@media(max-width:600px){.priority-row{grid-template-columns:minmax(0,1fr) auto}.priority-row select{grid-column:1 / -1;width:100%}.priority-row label{font-size:13px}.roster-table tr.date-saturday,.roster-table tr.date-sunday{border-radius:8px;padding-left:6px;padding-right:6px}.roster-table .date-note{font-size:9px}.roster-legend{font-size:10px}}.department-switch{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}.department-switch label{min-width:200px}.department-settings{display:grid;gap:20px}.department-settings .name-editor{padding:12px 0;border-bottom:1px solid var(--border,#e5e7eb)}.group-options{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0}.group-options label{display:flex;align-items:center;gap:8px}.group-options input{width:auto}.group-rule{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 0;border-bottom:1px solid #e5e7eb}.group-rule>div{flex:1;min-width:160px}.group-rule p{margin:6px 0}.group-help{margin:16px 0;padding:12px;background:#f8fafc}.group-help summary,.joint-adjustments>summary{cursor:pointer;font-weight:600}.joint-table{max-height:420px;overflow:auto}.joint-table table{min-width:760px}.calculation-scope{margin-bottom:20px}.calculation-scope h2{font-size:18px}fieldset{min-width:0;border:1px solid #e2e8f0;border-radius:10px;margin:16px 0;padding:16px}.group-rule-list{margin-bottom:20px}@media(max-width:600px){.department-switch{align-items:stretch;flex-direction:column}.department-settings .inline{align-items:stretch}.department-settings .name-editor label{width:100%}.group-options{gap:12px 18px}.department-settings select{max-width:100%}.department-settings .panel{padding:16px}.group-rule>div{flex-basis:100%}.joint-adjustments{padding:12px!important}}.shift-settings{display:grid;gap:20px;margin-bottom:28px;min-width:0}.shift-settings form{display:grid;gap:20px}.shift-settings fieldset{min-width:0;padding:18px;border:1px solid #d8e0e7;border-radius:14px}.shift-type-card,.shift-pattern-card{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:16px;margin-bottom:14px;background:#f6f8fb;border:1px solid #e0e6ee;border-radius:12px}.shift-type-card label,.shift-counts label{flex:1 1 130px;min-width:0}.shift-settings input,.shift-settings select{max-width:100%;width:100%}.shift-settings input[type=checkbox]{width:auto}.shift-counts,.shift-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;width:100%}.shift-time{display:block;font-size:11px;line-height:1.5;color:#5e6c7d;white-space:normal}.shift-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:16px 0}.shift-date-grid button{min-width:0;min-height:48px;padding:6px}.shift-date-grid button[aria-pressed=true]{outline:2px solid #317b85}.shift-date-grid small{display:block;font-size:10px}.shift-date-editor,.shift-activation{padding:18px;background:#f3f8f7;border:1px solid #cbded9;border-radius:12px}.shift-green{background:#e7f5ee;color:#246343}.shift-purple{background:#f0eafa;color:#65408d}.shift-blue{background:#e8f2fd;color:#265d96}.shift-orange{background:#fff0df;color:#92551e}.shift-settings .help-popover{position:relative}.shift-settings .help-popover p{max-width:500px;padding:12px;background:#fff;border:1px solid #ccd8de}.shift-settings label{display:grid;gap:6px}.shift-settings .actions label{display:flex}.shift-activation table{font-size:12px}.shift-settings h2{margin:0}@media(max-width:600px){.shift-type-card,.shift-pattern-card,.shift-settings fieldset{padding:12px}.shift-settings .shift-week{grid-template-columns:repeat(2,minmax(0,1fr))}.shift-type-card label{flex-basis:42%}.shift-type-card label:first-child{flex-basis:100%}.shift-settings h2{font-size:20px}.shift-date-grid{gap:3px}.shift-date-grid button{padding:3px}.shift-settings .primary{white-space:normal}}.shift-date-grid .date-saturday{background:#edf4fd;color:#265d96}.shift-date-grid .date-sunday{background:#fff0f0;color:#a13745}.shift-date-grid strong.date-saturday,.shift-date-grid strong.date-sunday{background:transparent}.shift-settings input[type=time]{min-width:0}
