:root{color-scheme:light;--background:#f3f6fa;--surface:#ffffff;--surface-soft:#f8fafc;--text:#172033;--muted:#667085;--line:#dce3ec;--primary:#1767c0;--primary-soft:#eaf3ff;--warning:#a64b10;--warning-soft:#fff5e9;--operation:#2f73c9;--transfer:#3f8f64;--work:#7c62b8;--break:#b47c24}*{box-sizing:border-box}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}body,html{margin:0;min-height:100%}body{color:var(--text);background:var(--background);font-family:Yu Gothic UI,Noto Sans JP,system-ui,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}.app-frame{min-width:1180px;min-height:100vh}.topbar{display:grid;grid-template-columns:auto 1fr;gap:12px;min-height:62px;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--line)}.brand,.topbar{align-items:center}.brand{display:flex;gap:9px;font-weight:700;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:30px;height:30px;color:white;background:var(--primary);border-radius:8px}.topbar-project-controls{display:flex;align-items:center;gap:12px;min-width:0;overflow-x:auto}.topbar-project-controls>*{flex-shrink:1;min-width:0}.topbar-project-controls .top-select{max-width:220px}.topbar-admin-link{position:fixed;top:14px;right:22px;z-index:10;padding:8px 12px;color:var(--text);background:var(--surface);white-space:nowrap;border-radius:7px;box-shadow:0 0 0 1px var(--line)}.topbar-admin-link.is-active,.topbar-admin-link:hover{color:var(--primary);background:var(--primary-soft)}.admin-nav{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--line)}.admin-nav-item{padding:9px 14px;color:var(--muted);border-bottom:2px solid transparent}.admin-nav-item.is-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.project-table tr.is-inactive{color:var(--muted)}.project-table tr.is-inactive td{background:var(--surface-soft)}.danger-button{min-height:38px;padding:8px 14px;color:white;background:#b42318;border:1px solid #b42318}.danger-button:disabled{opacity:.5;cursor:not-allowed}.show-inactive-toggle{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.admin-detail-section{margin-top:24px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.admin-detail-section h2{margin:0;font-size:16px}.admin-detail-section p.section-note{margin:0 0 14px;color:var(--muted);font-size:12px}.admin-detail-section summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.admin-detail-section summary::-webkit-details-marker{display:none}.admin-detail-caret{display:inline-block;color:var(--muted);font-size:12px;transition:transform .15s}.admin-detail-section[open] summary .admin-detail-caret{transform:rotate(90deg)}.admin-detail-count{padding:2px 8px;color:var(--muted);background:var(--surface-soft);border-radius:999px;font-size:12px;font-weight:600}.admin-detail-body{margin-top:14px}.admin-inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}.admin-inline-form .field{min-width:180px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.pill-primary{color:#7a4d00;background:#fff3d6}.pill-secondary{color:#475467;background:#f2f4f7}.top-date,.top-select{min-height:38px;padding:7px 10px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px}.primary-button,.secondary-button{min-height:38px;padding:8px 14px;border-radius:7px;cursor:pointer}.primary-button{color:white;background:var(--primary);border:1px solid var(--primary)}.secondary-button{color:var(--text);background:var(--surface);border:1px solid var(--line)}.workflow{display:grid;grid-template-columns:repeat(8,1fr);gap:0;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}.workflow-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px;min-height:48px;padding:7px 8px;color:var(--muted);border-radius:8px;border:0;background:transparent;text-align:left;cursor:pointer;position:relative}.workflow-item.is-active{color:var(--primary);background:var(--primary-soft)}.workflow-item.is-disabled{opacity:.68}.workflow-number{display:grid;place-items:center;width:27px;height:27px;border:1px solid;border-radius:50%;font-size:12px}.workflow-label{min-width:0}.workflow-label strong{display:block;font-size:12px;line-height:1.3}.workflow-label small{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35}.content{padding:20px 24px 32px}.content-narrow{max-width:1180px;margin:0 auto}.breadcrumb{margin-bottom:8px;color:var(--muted);font-size:12px}.breadcrumb a{color:var(--primary);text-decoration:underline}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}.page-title{margin:0;font-size:24px}.page-subtitle{margin:5px 0 0;color:var(--muted)}.project-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.project-table td,.project-table th{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}.project-table th{color:var(--muted);background:var(--surface-soft);font-size:12px;font-weight:600}.project-table tr:last-child td{border-bottom:0}.project-name{color:var(--primary);font-weight:700}.status{display:inline-block;padding:3px 8px;color:var(--primary);background:var(--primary-soft);border-radius:999px;font-size:11px}.view-actions{display:flex;align-items:center;gap:9px}.view-tabs{display:flex;gap:3px;padding:3px;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px}.view-tab{padding:7px 14px;color:var(--muted);background:transparent;border:0;border-radius:6px;cursor:pointer}.view-tab.is-active{color:var(--primary);background:var(--surface);box-shadow:0 1px 4px #0000001a}.timeline-zoom-control{display:inline-flex;padding:2px;background:#eef2f6;border:1px solid #d0d5dd;border-radius:7px}.timeline-zoom-control button{min-height:28px;padding:4px 8px;color:#667085;background:transparent;border:0;border-radius:5px;cursor:pointer;font-size:10px;font-weight:700}.timeline-zoom-control button.is-active{color:#175cd3;background:white;box-shadow:0 1px 3px #1018281a}.alertbar{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:14px;color:var(--warning);background:var(--warning-soft);border-left:4px solid var(--warning);border-radius:6px}.metrics{display:flex;gap:26px;margin-bottom:12px;color:var(--muted);font-size:12px}.metrics strong{margin-left:5px;color:var(--text);font-size:17px}.timeline{background:var(--surface);border:1px solid var(--line);border-radius:9px;overflow:hidden}.timeline.timeline-zoomed{overflow-x:auto}.timeline.timeline-zoomed .lane-group,.timeline.timeline-zoomed .legend,.timeline.timeline-zoomed .plan-timeline-row,.timeline.timeline-zoomed .timeline-axis,.timeline.timeline-zoomed .vehicle-timeline-group{width:var(--timeline-canvas-width);min-width:var(--timeline-canvas-width)}.timeline-head{display:flex;justify-content:space-between;padding:12px 14px;background:var(--surface-soft);border-bottom:1px solid var(--line);font-weight:700}.timeline-head span:last-child{color:var(--muted);font-size:11px;font-weight:400}.timeline-axis{display:grid;grid-template-columns:165px minmax(0,1fr) 100px;padding:9px 14px 6px;color:var(--muted);font-size:10px;text-align:center}.timeline-axis span:first-child{text-align:left}.timeline-axis-scale{position:relative;height:14px}.timeline-axis-scale span{position:absolute;transform:translateX(-50%);white-space:nowrap}.timeline-axis-scale span.is-first{transform:none}.timeline-axis-scale span.is-last{transform:translateX(-100%)}.lane-group{padding:7px 14px;color:var(--primary);background:var(--primary-soft);font-size:11px;font-weight:700}.lane-group,.timeline-row{border-top:1px solid var(--line)}.timeline-row{display:grid;grid-template-columns:165px 1fr 100px;min-height:65px;padding:0 14px;align-items:center}.lane-name strong{display:block}.lane-name small,.lane-total small{color:var(--muted);font-size:10px}.lane-track{position:relative;height:40px;background-color:transparent;background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--line) calc(100% - 1px));background-repeat:repeat-x}.lane-content{min-width:0;padding:8px 0}.lane-segment-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:5px;padding-top:7px}.lane-detail-card{display:grid;grid-template-columns:20px 7px minmax(75px,1fr) auto auto;gap:5px;align-items:center;min-height:32px;padding:5px 7px;color:#344054;background:#f8fafc;border:1px solid #e4e7ec;border-radius:6px;font-size:9px}.lane-detail-card>strong{display:inline-grid;place-items:center;width:19px;height:19px;color:white;background:#667085;border-radius:50%;font-size:8px}.lane-detail-card i{width:7px;height:7px;background:var(--operation);border-radius:50%}.lane-detail-card b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-detail-card time{color:#175cd3;font-weight:700;white-space:nowrap}.lane-detail-card em{padding-left:5px;color:#475467;border-left:1px solid #d0d5dd;font-style:normal;font-weight:700;white-space:nowrap}.lane-detail-card.detail-transfer i{background:var(--transfer)}.lane-detail-card.detail-work i{background:var(--work)}.lane-detail-card.detail-person i{background:#9e77ed}.lane-detail-card[class*=detail-gap-] i{background:#98a2b3}.lane-detail-card.detail-gap-standby i{background:#53b1fd}.lane-detail-card.detail-gap-break i{background:#32d583}.lane-detail-card.detail-gap-split i{background:#667085}.timeline-segment{position:absolute;top:7px;height:26px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 5px;color:white;border:0;border-radius:4px;white-space:nowrap;font-size:10px;cursor:pointer}.adaptive-timeline-segment{container-name:timeline-lane-segment;container-type:inline-size}.timeline-gap>b,.timeline-segment>b{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 3px;margin-right:4px;color:#101828;background:#ffffffe6;border-radius:999px;font-size:8px}.timeline-gap.is-compact-segment>b,.timeline-segment.is-compact-segment>b{margin-right:0}.timeline-gap.is-compact-segment>span,.timeline-segment.is-compact-segment>span{display:none}.adaptive-timeline-segment .timeline-label-full,.adaptive-timeline-segment .timeline-label-full-time,.adaptive-timeline-segment .timeline-label-short{display:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@container timeline-lane-segment (min-width: 42px){.adaptive-timeline-segment .timeline-label-short{display:inline}}@container timeline-lane-segment (min-width: 92px){.adaptive-timeline-segment .timeline-label-full{display:inline}.adaptive-timeline-segment .timeline-label-short{display:none}}@container timeline-lane-segment (min-width: 165px){.adaptive-timeline-segment .timeline-label-full-time{display:inline}.adaptive-timeline-segment .timeline-label-full{display:none}}.timeline-gap{position:absolute;z-index:1;top:10px;height:20px;overflow:hidden;padding:0 3px;border-radius:3px;white-space:nowrap;font-size:9px;cursor:pointer}.gap-unclassified{color:#7a2e0e;background:#fef0c7;border:1px dashed #f79009}.gap-standby{color:#1849a9;background:#d1e9ff;border:1px solid #53b1fd}.gap-break{color:#05603a;background:#d1fadf;border:1px solid #32d583}.gap-split{color:#475467;background:repeating-linear-gradient(135deg,#e4e7ec,#e4e7ec 5px,#f8fafc 0,#f8fafc 10px);border:1px solid #98a2b3}.segment-operation{background:var(--operation)}.segment-transfer{background:var(--transfer)}.segment-work{background:var(--work)}.segment-person{z-index:3;color:#4a1f78;background:#e9d7fe;border:1px solid #b692f6}.segment-break{background:var(--break)}.segment-task{z-index:2;box-shadow:inset 0 0 0 1px #ffffff45}.lane-total{text-align:right}.lane-total strong{font-size:15px}.vehicle-timeline{overflow-x:auto}.vehicle-timeline>.lane-group,.vehicle-timeline>.legend,.vehicle-timeline>.timeline-axis,.vehicle-timeline>.timeline-head,.vehicle-timeline>.vehicle-timeline-group{min-width:1080px}.operation-axis,.vehicle-axis{grid-template-columns:220px minmax(560px,1fr) 170px}.operation-axis>span:first-child,.vehicle-axis>span:first-child{position:sticky;left:0;z-index:7;background:white}.vehicle-timeline-group{background:white;border-top:1px solid #cfd8e5}.vehicle-timeline-group>header{display:grid;grid-template-columns:220px minmax(560px,1fr) 170px;align-items:center;min-height:43px;padding:0 14px;background:#eef4fb;border-bottom:1px solid #d7e2ef}.vehicle-timeline-group>header>div{position:sticky;left:14px;z-index:6;display:flex;align-items:baseline;gap:8px;padding:8px 0;background:#eef4fb}.vehicle-timeline-group>header h2{margin:0;color:#174b82;font-size:16px}.vehicle-timeline-group>header span{color:#667085;font-size:9px;white-space:nowrap}.vehicle-timeline-group>header>strong{grid-column:3;justify-self:end;color:#175cd3;font-size:11px;white-space:nowrap}.vehicle-pattern{border-top:1px solid #e4e7ec}.vehicle-pattern.has-warning{box-shadow:inset 4px 0 0 #f79009}.vehicle-pattern-row{display:grid;grid-template-columns:220px minmax(560px,1fr) 170px;align-items:stretch;min-height:91px;padding:0 14px}.vehicle-pattern-meta{position:sticky;left:0;z-index:5;display:grid;align-content:center;gap:3px;padding:7px 12px 7px 0;background:white;border-right:1px solid #edf0f4}.vehicle-pattern.has-warning .vehicle-pattern-meta{background:#fffcf5}.vehicle-pattern-meta>strong{font-size:14px;line-height:18px}.vehicle-pattern-counts{display:flex;flex-wrap:wrap;gap:4px 10px;color:#667085;font-size:11px;line-height:15px}.vehicle-pattern-counts span{white-space:nowrap}.vehicle-pattern-counts b{color:#344054;font-size:11px}.vehicle-pattern-meta>small{overflow:hidden;color:#667085;font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.vehicle-pattern-actions{display:flex;align-items:center;gap:10px}.vehicle-detail-toggle,.vehicle-warning-link{justify-self:start;padding:2px 0;background:transparent;border:0;cursor:pointer;font-size:10px;line-height:14px;font-weight:700}.vehicle-detail-toggle{color:#175cd3}.vehicle-warning-link{color:#b54708}.vehicle-pattern-track{position:relative;align-self:center;height:52px;margin:0 12px;background-color:#fbfcfe;background-image:linear-gradient(90deg,transparent calc(100% - 1px),#dce3ec calc(100% - 1px));background-repeat:repeat-x;background-size:14.2857142857% 100%;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}.vehicle-operation-gap{z-index:1;padding:4px 3px;color:#475467;background:repeating-linear-gradient(135deg,#d0d5dd,#d0d5dd 3px,#f8fafc 0,#f8fafc 6px);border:1px dashed #667085}.vehicle-operation-gap,.vehicle-person-gap{position:absolute;top:14px;height:24px;overflow:hidden;border-radius:3px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700}.vehicle-person-gap{z-index:3;padding:3px;cursor:pointer}.operation-lane-gap{position:absolute;z-index:1;top:10px;height:20px;overflow:hidden;padding:2px 3px;color:#475467;background:repeating-linear-gradient(135deg,#d0d5dd,#d0d5dd 3px,#f8fafc 0,#f8fafc 6px);border:1px dashed #667085;border-radius:3px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700}.vehicle-segment{position:absolute;top:7px;height:38px;container-name:vehicle-segment;container-type:inline-size;display:grid;place-content:center;gap:1px;overflow:hidden;padding:3px 5px;color:white;border:0;border-radius:4px;text-align:center;cursor:pointer}.vehicle-segment.segment-operation{z-index:2;background:#1769c2;box-shadow:0 1px 3px #175cd340}.vehicle-segment.segment-transfer{background:#4b946b}.vehicle-segment.segment-work{color:#53389e;background:#eee9f8;border:1px solid #c7b9e8}.vehicle-segment b{overflow:hidden;font-size:11px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.vehicle-segment small{overflow:hidden;font-size:9px;line-height:11px;white-space:nowrap;opacity:.95}.vehicle-segment .vehicle-label-full,.vehicle-segment .vehicle-label-short,.vehicle-segment small{display:none}.vehicle-segment .vehicle-label-ellipsis{display:block}@container vehicle-segment (min-width: 42px){.vehicle-segment .vehicle-label-short{display:block}.vehicle-segment .vehicle-label-ellipsis{display:none}}@container vehicle-segment (min-width: 78px){.vehicle-segment .vehicle-label-full{display:block}.vehicle-segment .vehicle-label-short{display:none}}@container vehicle-segment (min-width: 120px){.vehicle-segment small{display:block}}.vehicle-pattern-summary{display:grid;align-content:center;gap:8px;padding:10px 0 10px 14px;margin:0;border-left:1px solid #edf0f4}.vehicle-pattern-summary div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.vehicle-pattern-summary dt{color:#667085;font-size:11px;font-weight:700;white-space:nowrap}.vehicle-pattern-summary dd{margin:0;color:#172033;font-size:13px;font-weight:800;white-space:nowrap}.vehicle-pattern-detail{padding:0 14px 12px 234px;background:#fbfcfe}.vehicle-pattern-detail table{width:100%;border-collapse:collapse;background:white;border:1px solid #dce3ec;font-size:10px}.vehicle-pattern-detail td,.vehicle-pattern-detail th{padding:7px 9px;border-bottom:1px solid #e4e7ec;text-align:left}.vehicle-pattern-detail th{color:#667085;background:#f8fafc;font-size:9px}.vehicle-pattern-detail td:nth-child(n+3){white-space:nowrap}.vehicle-kind{display:inline-block;min-width:52px;padding:2px 5px;border-radius:999px;text-align:center;font-size:8px;font-weight:800}.vehicle-kind.kind-operation{color:white;background:#1769c2}.vehicle-kind.kind-transfer{color:white;background:#4b946b}.vehicle-kind.kind-work{color:#53389e;background:#eee9f8}.vehicle-kind.kind-person{color:#4a1f78;background:#e9d7fe}.vehicle-kind[class*=kind-gap-]{color:#475467;background:#e4e7ec}.vehicle-kind.kind-gap-standby{color:#1849a9;background:#d1e9ff}.vehicle-kind.kind-gap-break{color:#05603a;background:#d1fadf}.vehicle-kind.kind-gap-split{color:#475467;background:#e4e7ec}.vehicle-pattern-warnings{display:grid;gap:5px;margin-top:7px}.vehicle-pattern-warnings button{display:grid;gap:2px;padding:7px 9px;color:#7a2e0e;background:#fff5e9;border:1px solid #fdb022;border-radius:6px;text-align:left;cursor:pointer;font-size:9px}.vehicle-pattern-warnings span{color:#93370d}@media (max-width:900px){body:has(.vehicle-timeline) .app-frame{min-width:0}body:has(.vehicle-timeline) .content{min-width:0;padding-inline:12px}body:has(.vehicle-timeline) .workflow{overflow-x:auto}body:has(.vehicle-timeline) .vehicle-timeline{max-width:calc(100vw - 24px)}.vehicle-timeline>.lane-group,.vehicle-timeline>.legend,.vehicle-timeline>.timeline-axis,.vehicle-timeline>.timeline-head,.vehicle-timeline>.vehicle-timeline-group{min-width:1040px}}.legend{display:flex;gap:16px;padding:11px 14px;color:var(--muted);border-top:1px solid var(--line);font-size:10px}.legend i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:2px}.legend .legend-standby{background:#53b1fd}.legend .legend-break{background:#32d583}.legend .legend-split{background:#98a2b3}.legend .legend-vehicle-gap{background:repeating-linear-gradient(135deg,#d0d5dd,#d0d5dd 3px,#f8fafc 0,#f8fafc 6px);border:1px dashed #667085}.empty-state{padding:50px;color:var(--muted);text-align:center}.driver-hours-section{margin-top:14px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:9px}.driver-hours-head h2{margin:0;font-size:16px}.driver-hours-head p{margin:4px 0 13px;color:var(--muted);font-size:11px}.driver-hours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.driver-hours-card{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:12px 18px;align-items:center;padding:13px 14px;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px}.driver-hours-card>div:first-child span,.driver-hours-card>div:first-child strong{display:block}.driver-hours-card>div:first-child span{margin-top:3px;color:var(--muted);font-size:10px}.driver-hours-value{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 6px;text-align:right}.driver-hours-value small{grid-column:1/-1;color:var(--muted);font-size:9px}.driver-hours-value b{color:var(--primary);font-size:21px}.driver-hours-value em{padding:2px 5px;color:#b54708;background:#fef0c7;border-radius:999px;font-size:9px;font-style:normal;font-weight:700}.driver-hours-card dl{grid-column:1/-1;display:flex;gap:18px;padding-top:8px;margin:0;border-top:1px solid var(--line)}.driver-hours-card dl div{display:flex;gap:5px}.driver-hours-card dt{color:var(--muted);font-size:10px}.driver-hours-card dd{margin:0;font-size:10px;font-weight:700}.driver-hours-note{margin:10px 0 0;color:#b54708;font-size:10px}.person-activity-panel{overflow:hidden;margin-top:14px;background:white;border:1px solid var(--line);border-radius:9px}.person-activity-panel>header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;background:#faf5ff;border-bottom:1px solid #e9d7fe}.person-activity-panel h2{margin:0;font-size:16px}.person-activity-panel header p{margin:4px 0 0;color:var(--muted);font-size:10px}.person-activity-panel table{width:100%;border-collapse:collapse;font-size:11px}.person-activity-panel td,.person-activity-panel th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}.person-activity-panel tr:last-child td{border-bottom:0}.person-activity-panel th{color:var(--muted);background:#fbfcfe;font-size:9px}.person-activity-panel td small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.workspace-bar{display:flex;justify-content:space-between;align-items:center;min-height:26px}.save-state{color:var(--muted);font-size:11px}.save-state.is-saved{color:#18794e}.save-state.is-error{color:#b42318}.step-badge{position:absolute;top:4px;right:5px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;color:white;background:#c2410c;border-radius:999px;font-size:10px}.project-summary-card{display:grid;grid-template-columns:2fr 1.4fr 1fr 1fr;gap:12px;padding:14px;margin-bottom:14px;background:var(--surface);border:1px solid var(--line);border-radius:9px}.heading-actions{display:flex;gap:8px;align-items:center}.initial-setup-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;margin-bottom:12px;color:#344054;background:#f8fafc;border:1px solid var(--line);border-radius:8px}.initial-setup-bar>div{display:flex;align-items:center;gap:18px}.initial-setup-bar>div>strong{color:#175cd3}.initial-setup-bar span{color:var(--muted);font-size:11px}.initial-setup-bar span b{margin-left:4px;color:var(--text);font-size:13px}.initial-setup-bar>button{color:var(--primary);background:transparent;border:0;cursor:pointer;font-weight:700}.master-guidance{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;margin-bottom:12px;color:#6941c6;background:#f4f3ff;border:1px solid #d9d6fe;border-radius:8px}.master-guidance button{color:#6941c6;background:transparent;border:0;cursor:pointer;font-weight:700}.field{display:grid;gap:6px}.compact-field>span,.field>span{color:#475467;font-size:12px;font-weight:600}.data-table select,.field input,.field select,.field textarea,.money-input input,.resource-row input{width:100%;min-height:38px;padding:8px 10px;color:var(--text);background:white;border:1px solid #cfd8e5;border-radius:6px}.field textarea{resize:vertical}.data-table select:focus,.field input:focus,.field select:focus,.field textarea:focus,.resource-row input:focus{outline:2px solid #9cc7f5;border-color:var(--primary)}.successbar{display:flex;gap:10px;align-items:center;padding:11px 13px;margin-bottom:14px;color:#18794e;background:#ecfdf3;border-left:4px solid #22a06b;border-radius:6px}.alert-button{width:100%;border-top:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer}.data-table-wrap{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:10px}.data-table{width:100%;border-collapse:collapse}.data-table td,.data-table th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.data-table th{color:var(--muted);background:var(--surface-soft);font-size:11px}.data-table tr:last-child td{border-bottom:0}.data-table td small{display:block;margin-top:3px;color:var(--muted)}.route-arrow{margin:0 7px;color:var(--muted)}.row-actions{white-space:nowrap;text-align:right!important}.resource-head button,.row-actions button{padding:5px 7px;color:var(--primary);background:transparent;border:0;cursor:pointer}.row-actions .danger-link{color:#b42318}.empty-panel{padding:38px;color:var(--muted);background:var(--surface);border:1px dashed #cbd5e1;border-radius:10px;text-align:center}.empty-panel strong{display:block;margin-bottom:6px;color:var(--text);font-size:17px}.empty-panel p{margin:0}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#10182880}.modal{width:min(480px,100%);padding:22px;background:white;border-radius:12px;box-shadow:0 24px 60px #10182833}.modal-wide{width:min(660px,100%)}.master-modal{width:min(1120px,100%);max-height:calc(100vh - 48px);overflow:auto}.modal-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:18px}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:5px 0 0;color:var(--muted)}.modal form{display:grid;gap:14px}.icon-button{width:32px;height:32px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:7px;cursor:pointer;font-size:20px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:5px}.form-error{margin:0;color:#b42318;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field-span{grid-column:1/-1}.master-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.master-columns-three{grid-template-columns:repeat(3,minmax(0,1fr))}.master-section{overflow:hidden;border:1px solid var(--line);border-radius:9px}.master-section>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.master-section h3,.master-section p{margin:0}.master-section h3{font-size:15px}.master-section header p{margin-top:3px;color:var(--muted);font-size:10px}.master-section header button{color:var(--primary);background:white;border:1px solid #b2ddff;border-radius:6px;padding:6px 9px;cursor:pointer;font-weight:700}.master-list,.master-row{display:grid}.master-row{grid-template-columns:minmax(120px,1fr) 66px 68px 28px;gap:7px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line)}.master-vehicle-row{grid-template-columns:minmax(120px,1fr) 66px 28px}.master-row:last-child{border-bottom:0}.master-row.is-inactive{background:#f8fafc;opacity:.72}.master-row input{min-width:0;min-height:34px;padding:6px 8px;border:1px solid #cfd8e5;border-radius:6px}.master-row>span{color:var(--muted);font-size:9px;text-align:right}.master-status-button{padding:5px 4px;color:#18794e;background:#ecfdf3;border:1px solid #abefc6;border-radius:999px;cursor:pointer;font-size:9px;font-weight:700}.master-row.is-inactive .master-status-button{color:#475467;background:#f2f4f7;border-color:#d0d5dd}.master-remove-button{width:28px;height:28px;color:#b42318;background:transparent;border:0;border-radius:5px;cursor:pointer;font-size:17px}.master-remove-button:disabled{color:#d0d5dd;cursor:not-allowed}.master-empty{padding:22px;color:var(--muted);text-align:center}.master-note{margin:12px 0 4px;color:var(--muted);font-size:10px}.task-grid{display:grid;gap:10px}.task-card{display:grid;grid-template-columns:minmax(260px,1fr) 150px 150px 170px;align-items:center;gap:18px;padding:15px;background:white;border:1px solid var(--line);border-radius:9px}.task-card>div:first-child small{display:block;margin-top:4px;color:var(--muted)}.compact-field{display:grid;grid-template-columns:1fr 60px auto;align-items:center;gap:6px}.compact-field input{width:60px;min-height:34px;padding:5px;border:1px solid #cfd8e5;border-radius:6px;text-align:right}.compact-field em{color:var(--muted);font-style:normal}.task-total{color:var(--muted);text-align:right}.task-total strong{display:block;margin-top:3px;color:var(--text)}.task-guide{display:flex;gap:12px;align-items:center;padding:11px 14px;margin-bottom:12px;color:#175cd3;background:#eff8ff;border:1px solid #b2ddff;border-radius:8px}.task-guide strong{white-space:nowrap}.task-card.task-card-detailed{display:block;padding:0;overflow:hidden}.task-card-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.task-card-head small{display:block;margin-top:4px;color:var(--muted)}.task-columns{display:grid;grid-template-columns:1fr 1fr}.task-phase{padding:15px 16px 17px}.task-phase+.task-phase{border-left:1px solid var(--line)}.task-phase-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.task-phase-head h2{margin:0;font-size:14px}.task-phase-head span{color:var(--muted);font-size:11px}.task-phase-head button{padding:6px 9px;color:var(--primary);background:var(--primary-soft);border:1px solid #b2ddff;border-radius:6px;cursor:pointer;font-size:11px;font-weight:700}.task-item{display:grid;grid-template-columns:minmax(105px,1fr) 78px 76px 55px 25px;gap:6px;align-items:center;margin-top:7px;padding:4px;border:1px solid transparent;border-radius:7px}.task-item.is-person-only{background:#faf5ff;border-color:#d6bbfb}.task-item .task-minutes,.task-item>input{min-height:36px;border:1px solid #cfd8e5;border-radius:6px;background:white}.task-item>input{min-width:0;padding:7px 9px}.task-item .task-minutes{display:grid;grid-template-columns:1fr auto;align-items:center;overflow:hidden}.task-item .task-minutes input{min-width:0;width:100%;padding:7px 4px 7px 8px;border:0;text-align:right}.task-item .task-minutes span{padding-right:8px;color:var(--muted)}.task-person-only{display:flex;align-items:center;justify-content:center;gap:5px;min-height:36px;color:#6941c6;background:#f4ebff;border:1px solid #d6bbfb;border-radius:6px;cursor:pointer;font-size:10px;font-weight:700}.task-person-only input{width:15px;height:15px;accent-color:#7f56d9}.task-order-controls{display:grid;grid-template-columns:1fr 1fr;gap:3px}.task-order-controls button{width:26px;height:30px;padding:0;color:#344054;background:white;border:1px solid #cfd8e5;border-radius:5px;cursor:pointer;font-size:13px;font-weight:800}.task-order-controls button:hover:not(:disabled){color:var(--primary);border-color:#84adf4;background:var(--primary-soft)}.task-order-controls button:disabled{color:#d0d5dd;background:#f9fafb;cursor:not-allowed}.task-remove{width:28px;height:30px;color:#b42318;background:transparent;border:0;cursor:pointer;font-size:18px}.task-empty{padding:13px;margin:0;color:var(--muted);background:var(--surface-soft);border:1px dashed var(--line);border-radius:6px;text-align:center;font-size:11px}.assignment-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}.resource-panel{padding:14px;background:white;border:1px solid var(--line);border-radius:9px}.resource-head{display:flex;justify-content:space-between;align-items:center}.resource-head h2{margin:0;font-size:14px}.driver-head{padding-top:16px;margin-top:14px;border-top:1px solid var(--line)}.resource-row{display:grid;grid-template-columns:1fr 30px;gap:5px;margin-top:7px}.resource-row input{min-height:34px;padding:6px 8px}.resource-row button{color:#b42318;background:transparent;border:0;cursor:pointer}.ok-chip,.warning-chip{display:inline-block;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700}.ok-chip{color:#18794e;background:#dcfae6}.warning-chip{color:#b54708;background:#fef0c7}.gap-panel{margin-top:18px;background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.gap-panel-head{padding:15px 16px 11px}.gap-panel-head h2{margin:0;font-size:16px}.gap-panel-head p{margin:5px 0 0;color:var(--muted)}.gap-guide{display:flex;gap:18px;padding:9px 16px;color:var(--muted);background:var(--surface-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px}.gap-guide strong{color:var(--text)}.gap-panel .data-table-wrap{border:0;border-radius:0}.gap-table select{min-width:120px}.warning-list{display:grid;gap:10px}.warning-card{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:14px;background:white;border:1px solid var(--line);border-left-width:4px;border-radius:8px}.warning-card>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800}.warning-card h2{margin:0 0 4px;font-size:14px}.warning-card p{margin:0;color:var(--muted)}.warning-card.is-danger{border-left-color:#d92d20}.warning-card.is-danger>span{color:#b42318;background:#fee4e2}.warning-card.is-warning{border-left-color:#f79009}.warning-card.is-warning>span{color:#b54708;background:#fef0c7}.all-clear{padding:70px 20px;background:white;border:1px solid var(--line);border-radius:10px;text-align:center}.all-clear>span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto;color:white;background:#22a06b;border-radius:50%;font-size:26px}.all-clear h2{margin:14px 0 5px}.all-clear p{margin:0;color:var(--muted)}.cost-total{display:grid;text-align:right}.cost-total small{color:var(--muted)}.cost-total strong{color:var(--primary);font-size:26px}.money-input{display:grid;grid-template-columns:90px auto;align-items:center;gap:4px}.money-input input{min-height:34px;padding:5px 7px;text-align:right}.work-hours-cell{color:var(--primary);font-size:15px;white-space:nowrap}.provisional-label{display:inline-block!important;padding:2px 5px;margin:4px 0 0!important;color:#b54708!important;background:#fef0c7;border-radius:999px;font-size:9px!important;font-weight:700}.calculation-note{color:var(--muted);font-size:11px}.time-breakdown{margin-top:16px}.time-breakdown-head h2{margin:0;font-size:16px}.time-breakdown-head p{margin:4px 0 11px;color:var(--muted);font-size:11px}.time-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:12px}.time-breakdown-card{overflow:hidden;background:white;border:1px solid var(--line);border-radius:9px}.time-breakdown-card header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.time-breakdown-card header small,.time-breakdown-card header span{display:block;margin-top:2px;color:var(--muted);font-size:9px}.time-breakdown-card header>div:last-child{text-align:right}.time-breakdown-card header b{color:var(--primary);font-size:17px}.time-breakdown-card table{width:100%;border-collapse:collapse;font-size:11px}.time-breakdown-card td,.time-breakdown-card th{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}.time-breakdown-card th{color:var(--muted);font-size:9px}.time-breakdown-card td:nth-child(3){font-weight:700;white-space:nowrap}.time-breakdown-card tfoot td{color:var(--primary);background:#eff8ff;border-bottom:0;font-weight:800}.excluded-chip,.included-chip{display:inline-block;padding:2px 6px;border-radius:999px;font-size:9px;font-weight:700}.included-chip{color:#18794e;background:#dcfae6}.excluded-chip{color:#475467;background:#e4e7ec}.workforce-guide{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin-bottom:14px;color:#175cd3;background:#eff8ff;border:1px solid #b2ddff;border-radius:8px}.workforce-guide strong{white-space:nowrap}.workforce-guide span{color:#344054;line-height:1.6}.assignment-mode-panel{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 16px;margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px}.assignment-mode-panel h2{margin:0;font-size:16px}.assignment-mode-panel p{margin:4px 0 0;color:var(--muted);font-size:10px}.assignment-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:590px}.assignment-mode-options button{display:grid;gap:3px;padding:10px 12px;color:var(--text);background:#f8fafc;border:1px solid var(--line);border-radius:7px;text-align:left;cursor:pointer}.assignment-mode-options button.is-active{color:#175cd3;background:#eff8ff;border-color:#53b1fd;box-shadow:inset 0 0 0 1px #53b1fd}.assignment-mode-options span{color:var(--muted);font-size:9px}.weekly-axis-panel{overflow:hidden;margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px}.weekly-axis-panel.is-expanded{overflow-x:auto}.weekly-axis-panel.is-expanded .weekly-axis-head,.weekly-axis-panel.is-expanded .weekly-axis-scale,.weekly-axis-panel.is-expanded .weekly-derived-row{width:1500px;min-width:1500px}.weekly-axis-head{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 12px 8px;background:white;border-bottom:1px solid var(--line)}.weekly-axis-head h2{margin:0;font-size:16px}.weekly-axis-head p{margin:4px 0 0}.weekly-axis-head p,.weekly-axis-head>span{color:var(--muted);font-size:10px}.weekly-axis-actions{display:flex;align-items:center;gap:10px}.weekly-axis-actions>span{color:var(--muted);font-size:10px}.weekly-axis-row,.weekly-axis-scale{display:grid;grid-template-columns:50px minmax(280px,1fr) 640px;gap:8px;align-items:center;padding:0 10px}.weekly-axis-scale-simple,.weekly-derived-row{grid-template-columns:50px minmax(0,1fr) 82px}.weekly-derived-row{display:grid;gap:8px;align-items:center;min-height:36px;padding:3px 10px;border-bottom:1px solid var(--line)}.weekly-derived-row>strong{font-size:11px}.weekly-derived-row.is-off{min-height:30px;padding-block:2px;color:var(--muted);background:#fafbfc}.weekly-derived-row.is-weekend.is-off{min-height:27px}.weekly-derived-total{display:grid;gap:2px;justify-items:end}.weekly-derived-total small{color:var(--muted);font-size:8px}.weekly-derived-total strong{font-size:11px}.weekly-axis-scale{height:30px;color:var(--muted);background:#fbfcfe;border-bottom:1px solid var(--line);font-size:9px}.weekly-axis-scale>div{position:relative;height:100%}.weekly-axis-scale i{position:absolute;bottom:5px;transform:translateX(-50%);font-style:normal}.weekly-axis-scale i:first-child{transform:none}.weekly-axis-scale i:last-child{transform:translateX(-100%)}.weekly-axis-scale>span:last-child{text-align:right}.weekly-axis-row{min-height:61px;border-bottom:1px solid var(--line)}.weekly-axis-row.is-off{color:var(--muted);background:#f8fafc}.weekly-axis-day{display:flex;align-items:center;gap:7px}.weekly-axis-day input{width:17px;height:17px;accent-color:var(--primary)}.weekly-axis-track{position:relative;height:34px;background-color:#f8fafc;background-image:linear-gradient(90deg,transparent calc(100% - 1px),#dce3ec calc(100% - 1px));background-repeat:repeat-x;background-size:16.666% 100%;border:1px solid #e4e7ec;border-radius:5px}.weekly-axis-bar{position:absolute;top:4px;height:24px;display:flex;align-items:center;justify-content:center;gap:6px;overflow:hidden;padding:0 7px;color:white;background:var(--operation);border-radius:4px;white-space:nowrap;font-size:9px}.weekly-axis-bar strong{font-size:10px}.weekly-operation-bar{position:absolute;height:23px;display:flex;align-items:center;gap:5px;overflow:hidden;padding:0 7px;color:white;border-radius:4px;white-space:nowrap;font-size:9px}.weekly-operation-bar strong{overflow:hidden;font-size:9px;text-overflow:ellipsis}.weekly-operation-bar span{opacity:.9}.weekly-operation-bar em{padding-left:5px;border-left:1px solid #ffffff66;font-style:normal;font-weight:800}.weekly-operation-bar.color-0{background:#2f73c9}.weekly-operation-bar.color-1{background:#3f8f64}.weekly-operation-bar.color-2{background:#7c62b8}.weekly-operation-bar.color-3{background:#b47c24}.weekly-axis-controls{display:grid;grid-template-columns:160px 82px 82px 76px 76px 1fr;gap:6px;align-items:center}.weekly-axis-controls label{display:grid;grid-template-columns:1fr auto;align-items:center;overflow:hidden;min-height:37px;background:white;border:1px solid #cfd8e5;border-radius:5px}.weekly-axis-controls label>span{grid-column:1/-1;padding:2px 6px 0;color:var(--muted);font-size:8px;line-height:10px}.weekly-axis-controls input,.weekly-axis-controls select{min-width:0;width:100%;padding:1px 5px 4px;border:0;background:transparent;font-size:10px}.weekly-axis-controls select{grid-column:1/-1}.weekly-axis-controls b{padding-right:5px;color:var(--muted);font-size:9px}.weekly-axis-total{display:grid;justify-items:end}.weekly-axis-total small{color:var(--muted);font-size:8px}.weekly-axis-total strong{font-size:12px}.weekly-custom-blocks{grid-column:2/4;padding:0 0 10px}.weekly-custom-head{display:flex;justify-content:space-between;align-items:center;padding:7px 9px;color:#175cd3;background:#eff8ff;border:1px solid #b2ddff;border-radius:6px 6px 0 0;font-size:10px}.weekly-custom-head button{padding:3px 6px;color:#175cd3;background:white;border:1px solid #b2ddff;border-radius:4px;cursor:pointer;font-size:9px}.weekly-custom-row{display:grid;grid-template-columns:minmax(130px,1fr) 110px 110px 80px 90px 28px;gap:6px;align-items:center;padding:6px 8px;background:#fbfcfe;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.weekly-custom-row label,.weekly-custom-row>input{min-height:34px;background:white;border:1px solid #cfd8e5;border-radius:5px}.weekly-custom-row>input{min-width:0;padding:5px 7px}.weekly-custom-row label{display:grid;grid-template-columns:1fr;padding:2px 5px}.weekly-custom-row label span{color:var(--muted);font-size:8px}.weekly-custom-row label input{min-width:0;width:100%;padding:0;border:0;font-size:10px}.weekly-custom-row>strong{text-align:right;font-size:10px}.weekly-axis-legend{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;color:var(--muted);background:#fbfcfe;font-size:9px}.weekly-axis-legend i{display:inline-block;width:10px;height:8px;margin-right:5px;background:var(--operation);border-radius:2px}.workforce-settings{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;align-items:end;padding:10px 12px;margin-bottom:10px;background:white;border:1px solid var(--line);border-radius:8px}.workforce-settings>h2{align-self:center;margin:0;font-size:13px}.workforce-basic-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.workforce-basic-grid .field{gap:3px}.workforce-basic-grid .field>span:first-child{font-size:9px}.inline-unit{display:grid;grid-template-columns:1fr auto;align-items:center;overflow:hidden;min-height:38px;background:white;border:1px solid #cfd8e5;border-radius:6px}.inline-unit input{min-width:0;width:100%;min-height:36px;padding:7px 8px;border:0}.inline-unit b{padding-right:9px;color:var(--muted);font-size:11px}.weekday-shift-table input[type=number],.weekday-shift-table input[type=time]{min-height:34px;padding:5px 7px;background:white;border:1px solid #cfd8e5;border-radius:6px}.weekday-shift-table input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary)}.weekday-shift-table .is-disabled-row{color:var(--muted);background:#f8fafc}.compact-unit{display:grid;grid-template-columns:68px auto;align-items:center;gap:4px}.compact-unit input{width:68px;text-align:right}.compact-unit span{color:var(--muted);font-size:10px}.workforce-metrics{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;margin:12px 16px;border:1px solid var(--line);border-radius:7px}.workforce-metrics article{display:grid;gap:3px;padding:10px 12px;background:white;border-right:1px solid var(--line)}.workforce-metrics article:last-child{border-right:0}.workforce-metrics span{color:var(--muted);font-size:10px}.workforce-metrics strong{font-size:17px}.workforce-metrics small{color:var(--muted);font-size:9px}.headcount-explanation{overflow:hidden;margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:8px}.headcount-explanation>summary{display:flex;align-items:center;gap:12px;padding:10px 13px;cursor:pointer;list-style:none}.headcount-explanation>summary::-webkit-details-marker{display:none}.headcount-explanation>summary:before{content:"＋";color:#667085;font-size:13px;font-weight:800}.headcount-explanation[open]>summary:before{content:"−"}.headcount-explanation>summary>span{color:#344054;font-size:11px;font-weight:700}.headcount-explanation>summary>strong{margin-left:auto;font-size:15px}.headcount-explanation>summary>small{color:var(--muted);font-size:9px}.headcount-explanation-body{padding-bottom:1px;border-top:1px solid var(--line)}.headcount-formula{display:grid;grid-template-columns:minmax(155px,1fr) auto minmax(210px,1.25fr) auto minmax(155px,1fr) auto minmax(155px,1fr);gap:8px;align-items:stretch;padding:15px 17px 12px}.headcount-formula>article{position:relative;display:grid;align-content:center;gap:4px;min-height:102px;padding:12px 12px 11px 42px;background:#fbfcfe;border:1px solid #dce3ec;border-radius:8px}.headcount-formula>article>i{position:absolute;top:12px;left:11px;display:grid;place-items:center;width:22px;height:22px;color:#175cd3;background:#e7f1ff;border-radius:50%;font-size:11px;font-style:normal;font-weight:800}.headcount-formula>article>span{color:#475467;font-size:11px;font-weight:700}.headcount-formula>article>strong{color:#172033;font-size:22px}.headcount-formula>article>small{color:#667085;font-size:9px;line-height:1.45}.headcount-formula>article.is-base{background:#f5f9ff;border-color:#b2ddff}.headcount-formula>article.is-result{background:#eff8ff;border-color:#53b1fd;box-shadow:inset 0 0 0 1px #b2ddff}.headcount-formula>article.is-result>strong{color:#175cd3}.headcount-formula>b{align-self:center;color:#667085;font-size:10px;text-align:center;white-space:nowrap}.headcount-reason{margin:0 17px 12px;padding:11px 13px;color:#05603a;background:#ecfdf3;border:1px solid #abefc6;border-radius:7px}.headcount-reason.has-adjustment{color:#93370d;background:#fffaeb;border-color:#fedf89}.headcount-reason strong{display:block;font-size:12px}.headcount-reason p{margin:4px 0 0;font-size:10px;line-height:1.6}.headcount-assignment-preview{display:flex;align-items:flex-start;gap:12px;padding:0 17px 12px}.headcount-assignment-preview>span{flex:0 0 auto;padding-top:5px;color:#475467;font-size:10px;font-weight:700}.headcount-assignment-preview>div{display:flex;flex-wrap:wrap;gap:5px}.headcount-assignment-preview b{padding:4px 7px;color:#344054;background:#f2f4f7;border-radius:5px;font-size:10px}.headcount-conditions{padding:10px 17px 12px;border-top:1px solid var(--line)}.headcount-conditions>strong{color:#344054;font-size:10px}.headcount-conditions ul{display:grid;gap:4px;padding:5px 0 0 17px;margin:0;color:#475467;font-size:10px;line-height:1.5}.workforce-result-grid{display:grid;grid-template-columns:.85fr 1.4fr;gap:14px;margin-bottom:14px}.workforce-result-card{overflow:hidden;background:white;border:1px solid var(--line);border-radius:9px}.workforce-result-card>header{padding:13px 15px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.workforce-result-card h2{margin:0;font-size:15px}.workforce-result-card header p{margin:4px 0 0;color:var(--muted);font-size:10px}.compact-result-table{width:100%;border-collapse:collapse;font-size:11px}.compact-result-table td,.compact-result-table th{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.compact-result-table tr:last-child td{border-bottom:0}.compact-result-table td small,.compact-result-table th{color:var(--muted);font-size:9px}.compact-result-table td small{display:block;margin-top:2px}.shift-chip{display:inline-block;padding:3px 6px;margin:0 4px 4px 0;color:#175cd3;background:#eff8ff;border-radius:4px;font-size:9px;white-space:nowrap}.workforce-monthly,.workforce-weekly-result{margin-bottom:14px}.workforce-monthly .data-table-wrap{border:0;border-radius:0}.workforce-cost-summary{display:grid;grid-template-columns:1fr 1fr 1.25fr;overflow:hidden;margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px}.workforce-cost-summary>div{display:grid;gap:5px;padding:15px 17px;border-right:1px solid var(--line)}.workforce-cost-summary>div:last-child{border-right:0}.workforce-cost-summary small,.workforce-cost-summary span{color:var(--muted);font-size:10px}.workforce-cost-summary strong{font-size:18px}.workforce-cost-summary .is-total{color:#175cd3;background:#eff8ff}.workforce-cost-summary .is-total strong{font-size:23px}.weekday-summary{color:#175cd3;background:#eff8ff;border:1px solid #b2ddff;border-radius:999px}.service-group-chip,.weekday-summary{display:inline-block;padding:3px 7px;font-size:10px;font-weight:700;white-space:nowrap}.service-group-chip{color:#6941c6;background:#f4f3ff;border:1px solid #d9d6fe;border-radius:999px}.weekday-selector{padding:12px;border:1px solid #cfd8e5;border-radius:7px}.weekday-selector legend{padding:0 5px;font-size:11px;font-weight:700}.weekday-selector>div{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.weekday-selector label{position:relative;display:grid;place-items:center;min-height:38px;color:#475467;background:#f8fafc;border:1px solid #d0d5dd;border-radius:6px;cursor:pointer;font-weight:700}.weekday-selector label.is-selected{color:#175cd3;background:#eff8ff;border-color:#53b1fd;box-shadow:inset 0 0 0 1px #53b1fd}.weekday-selector input{position:absolute;width:1px;height:1px;opacity:0}.weekday-selector small{display:block;margin-top:8px;color:var(--muted);font-size:9px}.operating-calendar-editor{margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.operating-calendar-editor>header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;background:#f8fafc;border-bottom:1px solid var(--line)}.operating-calendar-editor h2{margin:0;font-size:16px}.operating-calendar-editor header p{margin:3px 0 0;color:var(--muted);font-size:10px}.calendar-editor-head-actions{display:flex;align-items:center;gap:10px}.calendar-editor-head-actions>strong{color:#175cd3;font-size:11px;white-space:nowrap}.calendar-editor-head-actions button{min-height:34px;padding:6px 11px}.calendar-editor-head-actions button.is-active{color:white;background:#175cd3;border-color:#175cd3}.operating-calendar-editor.is-multi-select{border-color:#84adf4;box-shadow:0 0 0 2px #d1e9ff}.calendar-quick-editor{display:grid;grid-template-columns:190px minmax(430px,1fr) auto;gap:12px 16px;align-items:center;padding:15px 16px 12px}.calendar-selected-date{display:grid;gap:3px;align-self:stretch;align-content:center;padding:10px 12px;background:#f8fafc;border:1px solid #d0d5dd;border-radius:7px}.calendar-selected-date small{color:#667085;font-size:10px;font-weight:700}.calendar-selected-date strong{color:#101828;font-size:15px}.calendar-selected-date span{color:#475467;font-size:10px}.calendar-choice-buttons{display:grid;grid-template-columns:repeat(3,minmax(125px,1fr));gap:8px}.calendar-choice-buttons button{display:grid;gap:3px;min-height:59px;padding:9px 11px;color:#344054;background:white;border:1px solid #cfd8e5;border-radius:7px;text-align:left;cursor:pointer}.calendar-choice-buttons button:hover{border-color:#84adf4;background:#f5f9ff}.calendar-choice-buttons button.is-active{color:#1849a9;background:#eff8ff;border-color:#2e90fa;box-shadow:inset 0 0 0 1px #2e90fa}.calendar-choice-buttons button.is-active.is-closed{color:#b42318;background:#fff1f0;border-color:#f04438;box-shadow:inset 0 0 0 1px #f04438}.calendar-choice-buttons button.is-active.is-pattern{color:#027a48;background:#ecfdf3;border-color:#12b76a;box-shadow:inset 0 0 0 1px #12b76a}.calendar-choice-buttons button:disabled{cursor:not-allowed;opacity:.45}.calendar-choice-buttons strong{font-size:12px}.calendar-choice-buttons small{color:inherit;font-size:9px;font-weight:500}.calendar-inline-pattern{grid-column:2;display:flex;align-items:center;gap:10px}.calendar-inline-pattern>span{color:#475467;font-size:10px;font-weight:700;white-space:nowrap}.calendar-inline-pattern select{width:min(260px,100%);min-height:35px;padding:5px 9px;color:var(--text);background:white;border:1px solid #a6d8bd;border-radius:6px}.calendar-apply-one{min-height:42px;padding-inline:19px;white-space:nowrap}.calendar-apply-one:disabled{cursor:not-allowed;opacity:.45}.calendar-clear-selection{grid-column:3;padding:3px 5px;color:#475467;background:transparent;border:0;font-size:9px;text-decoration:underline;cursor:pointer}.calendar-range-editor{border-top:1px solid #eaecf0}.calendar-range-editor summary{padding:10px 16px;color:#344054;background:#fcfcfd;font-size:11px;font-weight:800;cursor:pointer}.calendar-range-editor summary:hover{color:#175cd3;background:#f8fafc}.calendar-range-editor>div{display:grid;grid-template-columns:150px 150px minmax(230px,1fr) auto;gap:10px;align-items:end;padding:12px 16px;background:#fcfcfd;border-top:1px solid #f2f4f7}.calendar-range-editor label{display:grid;gap:4px}.calendar-range-editor label>span{color:#475467;font-size:10px;font-weight:700}.calendar-range-editor input{width:100%;min-height:36px;padding:6px 9px;color:var(--text);background:white;border:1px solid #cfd8e5;border-radius:6px}.calendar-range-editor p{margin:0;color:#667085;font-size:10px;line-height:1.45}.calendar-range-editor button{min-height:36px}.operating-calendar-help{display:flex;align-items:center;gap:13px;padding:0 16px 12px;color:#475467;font-size:9px}.operating-calendar-help span{display:flex;align-items:center;gap:5px;white-space:nowrap}.operating-calendar-help i{width:12px;height:12px;background:white;border:1px solid #d0d5dd;border-radius:3px}.operating-calendar-help i.is-operating{background:#dcfae6;border-color:#12b76a}.operating-calendar-help i.is-closed{background:#fee4e2;border-color:#f04438}.operating-calendar-help small{margin-left:auto;color:var(--muted)}.annual-calendar-section{margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.annual-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.annual-calendar-head h2{margin:0;font-size:16px}.annual-calendar-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.annual-calendar-head>div:last-child{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;white-space:nowrap}.calendar-filter label{display:flex;align-items:center;gap:5px;margin-right:8px}.calendar-filter select{min-height:30px;padding:4px 24px 4px 7px;color:var(--text);background:white;border:1px solid #cfd8e5;border-radius:5px;font-size:10px}.calendar-selection-count{padding:5px 8px;color:#1849a9;background:#d1e9ff;border-radius:999px;font-size:10px}.calendar-legend{width:12px;height:12px;margin-left:7px;border-radius:3px}.calendar-day.is-one,.calendar-legend.is-one{background:#d1e9ff}.calendar-day.is-many,.calendar-legend.is-many{background:#53b1fd}.calendar-legend.is-holiday{background:white;border:2px solid #e5484d}.annual-calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;padding:14px}.calendar-month{overflow:hidden;border:1px solid var(--line);border-radius:7px}.calendar-month>header{display:flex;justify-content:space-between;align-items:center;padding:8px 9px;background:#f8fafc;border-bottom:1px solid var(--line)}.calendar-month>header strong{font-size:13px}.calendar-month>header span{color:var(--muted);font-size:10px}.calendar-days,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays span{padding:4px 0;color:var(--muted);background:#fbfcfe;font-size:10px;font-weight:700;text-align:center}.calendar-blank,.calendar-day{min-height:45px;border-top:1px solid #eef1f5;border-right:1px solid #eef1f5}.calendar-day{position:relative;display:grid;align-content:start;gap:1px;padding:4px;color:#98a2b3;background:white;border-bottom:0;border-left:0;text-align:left;cursor:pointer}.calendar-day:nth-child(7n){border-right:0}.calendar-day.has-shift{color:#1849a9}.calendar-day.is-holiday{box-shadow:inset 0 0 0 2px #e5484d}.calendar-day.is-holiday>b{color:#b42318}.calendar-day.is-calendar-override{box-shadow:inset 0 0 0 2px #12b76a}.calendar-day.is-calendar-closed{color:#b42318;background:#fee4e2;box-shadow:inset 0 0 0 2px #f04438}.calendar-day .calendar-override-mark{justify-self:end;margin-top:-12px;color:#027a48;font-size:7px;font-style:normal;font-weight:900}.calendar-day.is-calendar-closed .calendar-override-mark{color:#b42318}.calendar-day.is-one{background:#d1e9ff}.calendar-day.is-many{color:#0b3b75;background:#53b1fd}.calendar-day.is-selected{position:relative;z-index:1;outline:2px solid #175cd3;outline-offset:-2px}.annual-calendar-section.is-multi-select .calendar-day{padding-left:18px}.calendar-day .calendar-select-mark{position:absolute;top:4px;left:4px;display:grid;place-items:center;width:11px;height:11px;color:white;background:white;border:1px solid #98a2b3;border-radius:3px;font-size:8px;font-style:normal;font-weight:900}.calendar-day.is-batch-selected{z-index:1;outline:3px solid #175cd3;outline-offset:-3px;filter:none;opacity:1}.calendar-day.is-batch-selected .calendar-select-mark{background:#175cd3;border-color:#175cd3}.calendar-day.is-person-muted{filter:grayscale(.8);opacity:.22}.calendar-day:disabled{cursor:default;opacity:1}.calendar-day b{font-size:11px}.calendar-day em{font-size:10px;font-style:normal;font-weight:800}.calendar-day small{overflow:hidden;font-size:8px;line-height:11px;text-overflow:ellipsis;white-space:nowrap}@media (max-width:900px){.calendar-choice-buttons,.calendar-quick-editor{grid-template-columns:1fr}.calendar-inline-pattern{grid-column:1}.calendar-apply-one{width:100%}.calendar-clear-selection{grid-column:1}.calendar-range-editor>div{grid-template-columns:1fr 1fr}.calendar-range-editor p{grid-column:1/-1}.operating-calendar-help{flex-wrap:wrap}.operating-calendar-help small{width:100%;margin-left:0}}.day-shift-detail{overflow:hidden;margin-bottom:14px;background:white;border:1px solid var(--line);border-radius:9px}.day-shift-detail>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#eff8ff;border-bottom:1px solid #b2ddff}.day-shift-detail h2{margin:0;font-size:16px}.day-shift-detail header p{margin:4px 0 0;color:var(--muted);font-size:10px}.day-shift-detail header>strong{color:#175cd3;font-size:21px}.day-shift-detail table{width:100%;border-collapse:collapse;font-size:11px}.day-shift-detail td,.day-shift-detail th{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left}.day-shift-detail tr:last-child td{border-bottom:0}.day-shift-detail th{color:var(--muted);background:#fbfcfe;font-size:9px}.day-shift-detail td small{display:block;margin-top:2px;color:#6941c6;font-size:8px}.day-shift-empty{padding:24px;margin:0;color:var(--muted);text-align:center}.cost-period-section{margin-bottom:14px;padding:15px 16px;background:white;border:1px solid var(--line);border-radius:9px}.cost-period-section>header h2{margin:0;font-size:16px}.cost-period-section>header p{margin:4px 0 12px;color:var(--muted);font-size:10px}.cost-period-grid{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border:1px solid var(--line);border-radius:7px}.cost-period-grid article{display:grid;gap:5px;padding:13px 14px;border-right:1px solid var(--line)}.cost-period-grid article:last-child{border-right:0}.cost-period-grid article.is-total{color:#175cd3;background:#eff8ff}.cost-period-grid small,.cost-period-grid span{color:var(--muted);font-size:9px}.cost-period-grid strong{font-size:19px}.workforce-page-heading{margin-bottom:8px}.work-slot-simulator{display:grid;gap:12px;margin:12px 0}.work-slot-summary-strip{display:grid;grid-template-columns:repeat(5,1fr);overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px}.work-slot-summary-strip>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:9px 11px;border-right:1px solid var(--line)}.work-slot-summary-strip>div:last-child{border-right:0}.work-slot-summary-strip span{color:var(--muted);font-size:11px;font-weight:700}.work-slot-summary-strip strong{font-size:16px}.work-slot-summary-strip .has-warning{color:#b54708;background:#fff7ed}.work-slot-summary-note{margin:4px 0 0;color:var(--muted);font-size:11px}.personnel-pool-editor,.wage-profile-editor{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:9px}.personnel-pool-editor>header,.wage-profile-editor>header,.work-slot-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--line)}.personnel-pool-editor h2,.wage-profile-editor h2,.work-slot-list-head h2{margin:0;font-size:15px}.personnel-pool-editor header p,.wage-profile-editor header p,.work-slot-list-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.personnel-pool-grid{display:grid;gap:8px;padding:10px 12px}.personnel-pool-grid article{display:grid;grid-template-columns:minmax(160px,1.3fr) 90px 125px minmax(150px,1fr) minmax(230px,1.2fr) minmax(140px,auto);gap:9px;align-items:end;padding:9px;border:1px solid #e4e7ec;border-radius:7px}.pool-usage{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:34px}.pool-usage-count{color:var(--muted);font-size:11px;text-align:right}.personnel-pool-grid article>label,.wage-basic-grid label,.work-slot-controls label{display:grid;gap:4px;color:#475467;font-size:11px;font-weight:700}.activity-pay-grid select,.allowance-row input,.gap-decision-row input,.gap-decision-row select,.personnel-pool-grid input,.wage-basic-grid input,.work-slot-controls input,.work-slot-controls select{min-height:34px;padding:5px 8px;color:var(--text);background:#fff;border:1px solid #cfd8e5;border-radius:6px}.pool-weekdays{display:flex;align-items:center;gap:5px;min-height:34px}.pool-weekdays label{display:flex;gap:2px;align-items:center;font-size:11px}.work-slot-list-head{border:1px solid var(--line);border-radius:9px 9px 0 0}.work-slot-list-head>div:last-child{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.work-slot-list{display:grid;gap:10px;margin-top:-12px;padding:10px;background:#f8fafc;border:1px solid var(--line);border-top:0;border-radius:0 0 9px 9px}.work-slot-card{overflow:hidden;background:#fff;border:1px solid #d0d5dd;border-radius:8px}.work-slot-card.has-issue{border-color:#fdb022}.work-slot-card.has-error{border-color:#f04438}.work-slot-card>header{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #eaecf0}.merge-check{display:grid;justify-items:center;gap:2px;color:var(--muted);font-size:11px}.work-slot-name{width:100%;padding:2px 4px;border:0;border-bottom:1px solid transparent;font-size:15px;font-weight:800}.work-slot-name:focus{outline:0;border-bottom-color:#2e90fa}.work-slot-head-note{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 4px 0}.work-slot-head-note span{color:var(--muted);font-size:11px}.work-slot-head-note strong{color:var(--text);font-size:11px}.work-slot-head-metrics{display:flex;flex-wrap:wrap;gap:5px}.work-slot-head-metrics span{display:grid;gap:1px;min-width:72px;padding:5px 8px;color:var(--muted);background:#f8fafc;border-radius:5px;font-size:11px}.work-slot-head-metrics strong{color:var(--text);font-size:15px}.work-slot-head-metrics .has-warning{color:#b54708;background:#fff7ed}.work-slot-source-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:7px 12px;color:var(--muted);font-size:11px}.work-slot-source-row b{padding:3px 6px;color:#175cd3;background:#eff8ff;border-radius:4px}.work-slot-timeline-axis{position:relative;height:14px;margin:0 12px;color:var(--muted);font-size:10px}.work-slot-timeline-axis span{position:absolute;transform:translateX(-50%);white-space:nowrap}.work-slot-timeline-axis span:first-child{transform:translateX(0)}.work-slot-timeline-axis span:last-child{transform:translateX(-100%)}.work-slot-timeline{position:relative;height:54px;margin:2px 12px 0;background:repeating-linear-gradient(90deg,#f8fafc,#f8fafc calc(100% / 12 - 1px),#e4e7ec calc(100% / 12 - 1px),#e4e7ec calc(100% / 12));border:1px solid #e4e7ec;border-radius:6px}.work-slot-event{position:absolute;top:8px;display:grid;align-content:center;overflow:hidden;height:38px;padding:3px 6px;color:#fff;background:#2e90fa;border-radius:4px;white-space:nowrap}.work-slot-event strong{overflow:hidden;font-size:11px;text-overflow:ellipsis}.work-slot-event span{overflow:hidden;font-size:10px;text-overflow:ellipsis}.work-slot-event.is-deadheadDriving{background:#12b76a}.work-slot-event.is-cleaning,.work-slot-event.is-handover,.work-slot-event.is-inspection,.work-slot-event.is-otherWork,.work-slot-event.is-rollCall{background:#7f56d9}.work-slot-event.is-travel{background:#039855}.work-slot-event.is-standby{color:#344054;background:#a6f4c5}.work-slot-event.is-break{color:#344054;background:#b2ddff}.work-slot-event.is-split{color:#475467;background:#eaecf0}.work-slot-gap-region{position:absolute;top:8px;height:38px;overflow:hidden;background:repeating-linear-gradient(45deg,#fff,#fff 4px,#f2f4f7 0,#f2f4f7 8px);border:1px dashed #d0d5dd;border-radius:4px;cursor:pointer}.work-slot-gap-region select{width:100%;height:100%;padding:0 2px;color:#475467;background:transparent;border:0;font-size:10px;font-weight:700;text-align:center;cursor:pointer}.work-slot-gap-region.is-break{background:#eaf6ff;border-color:#b2ddff}.work-slot-gap-region.is-standby{background:#ecfdf3;border-color:#a6f4c5}.work-slot-gap-region.is-split{background:#fef3f2;border-color:#fda29b}.work-slot-gap-region.is-travel{background:#ecfdf3;border-color:#6ce9a6}.work-slot-gap-region.is-unresolved{background:repeating-linear-gradient(45deg,#fffaeb,#fffaeb 4px,#fef0c7 0,#fef0c7 8px);border-color:#fdb022}.work-slot-gap-region.is-unresolved select{color:#b54708;font-weight:800}.work-slot-metrics{display:flex;flex-wrap:wrap;gap:5px;padding:9px 12px}.work-slot-metrics span{padding:4px 8px;color:#667085;background:#f8fafc;border-radius:4px;font-size:11px}.work-slot-metrics strong{color:#344054;font-size:13px;font-weight:800}.work-slot-controls{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 9px}.work-slot-controls label{min-width:130px}.slot-pool-allocation{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;background:#fcfcfd;border-top:1px solid #f2f4f7;border-bottom:1px solid #f2f4f7}.slot-pool-allocation>span{color:#475467;font-size:11px;font-weight:800}.slot-pool-allocation label{display:flex;align-items:center;gap:4px;font-size:11px}.slot-pool-allocation input{width:54px;min-height:30px;padding:4px 6px;border:1px solid #cfd8e5;border-radius:5px}.slot-pool-allocation small{color:var(--muted)}.work-slot-gap-editor{border-top:1px solid #eaecf0}.work-slot-gap-editor summary{padding:8px 12px;color:#344054;background:#fcfcfd;font-size:11px;font-weight:800;cursor:pointer}.work-slot-gap-editor.has-warning summary{color:#b54708;background:#fffaeb}.gap-decision-row{display:grid;grid-template-columns:minmax(260px,1fr) 150px 130px;gap:8px;align-items:center;padding:7px 12px;border-top:1px solid #f2f4f7}.gap-decision-row>span{display:flex;align-items:center;gap:4px;font-size:11px}.gap-decision-row>span small{margin-left:8px;color:var(--muted)}.gap-decision-row>label{display:flex;align-items:center;gap:4px;font-size:11px}.gap-decision-row>label input{width:70px}.work-slot-issues{display:grid;gap:3px;padding:7px 12px}.work-slot-issues:empty{display:none}.work-slot-issues p{margin:0;padding:5px 7px;color:#b54708;background:#fffaeb;border-radius:4px;font-size:11px}.work-slot-issues p.is-error{color:#b42318;background:#fef3f2}.work-slot-issues p.is-review{color:#6941c6;background:#f4f3ff}.work-slot-actions{display:flex;justify-content:flex-end;padding:0 12px 9px}.wage-basic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:11px 13px}.wage-basic-grid label{position:relative}.wage-basic-grid label small{color:var(--muted);font-size:10px}.wage-profile-editor details{border-top:1px solid #eaecf0}.wage-profile-editor details summary{padding:9px 13px;font-size:11px;font-weight:800;cursor:pointer}.activity-pay-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 13px;background:#fcfcfd}.activity-pay-grid label{display:grid;gap:3px;color:#475467;font-size:11px;font-weight:700}.allowance-editor{display:grid;gap:7px;padding:10px 13px;border-top:1px solid #eaecf0}.allowance-editor>div:first-child{display:flex;align-items:center;justify-content:space-between}.allowance-row{display:grid;grid-template-columns:minmax(150px,1fr) 130px minmax(220px,1fr);gap:8px;align-items:center}.allowance-row label{display:flex;align-items:center;gap:5px;color:#475467;font-size:11px}@media (max-width:1000px){.work-slot-summary-strip{grid-template-columns:repeat(2,1fr)}.personnel-pool-grid article{grid-template-columns:1fr 1fr}.activity-pay-grid{grid-template-columns:repeat(2,1fr)}}.workforce-page-heading .page-title span{color:#475467;font-weight:600}.workforce-sticky-header{position:sticky;top:0;z-index:30;margin:0 0 8px;background:white;border:1px solid var(--line);border-radius:7px;box-shadow:0 4px 10px #1720330d}.workforce-common-summary{display:grid;grid-template-columns:1.25fr 1.55fr .7fr .7fr .75fr 1.15fr;overflow:hidden;background:white;border-bottom:1px solid var(--line);border-radius:7px 7px 0 0}.workforce-common-summary>div{display:flex;align-items:baseline;gap:6px;min-width:0;padding:6px 10px;border-right:1px solid var(--line)}.workforce-common-summary>div:last-child{border-right:0}.workforce-common-summary span{flex:0 0 auto;color:var(--muted);font-size:8px;font-weight:700}.workforce-common-summary strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.workforce-common-summary strong small{color:var(--muted);font-size:9px}.workforce-common-summary .has-warning{color:#b54708;background:#fff7ed}.workforce-common-summary .is-complete{color:#344054}.workforce-subnav{display:flex;gap:2px;padding:0 8px;background:white;border-radius:0 0 7px 7px}.workforce-subnav button{position:relative;display:flex;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:5px 16px;color:#667085;background:white;border:0;border-bottom:2px solid transparent;cursor:pointer}.workforce-subnav button strong{font-size:11px}.workforce-subnav button>b{padding:3px 5px;color:#b54708;background:#fffaeb;border-radius:999px;font-size:8px;white-space:nowrap}.workforce-subnav button.is-active{color:#175cd3;border-bottom-color:#2e90fa}.workforce-view-intro{display:flex;align-items:center;gap:12px;padding:12px 15px;margin-bottom:12px;background:white;border:1px solid var(--line);border-left:4px solid #175cd3;border-radius:8px}.workforce-view-intro>span{padding:4px 7px;color:#175cd3;background:#eff8ff;border-radius:5px;font-size:9px;font-weight:800;white-space:nowrap}.workforce-view-intro>div{flex:1 1}.workforce-view-intro h2{margin:0;font-size:15px}.workforce-view-intro p{margin:3px 0 0;color:var(--muted);font-size:10px}.annual-to-daily{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 15px;margin:-3px 0 14px;background:#eff8ff;border:1px solid #b2ddff;border-radius:8px}.annual-to-daily div{display:grid;gap:3px}.annual-to-daily span{color:#475467;font-size:9px}.annual-to-daily strong{font-size:13px}.workforce-fixed-actions{position:sticky;bottom:10px;z-index:35;display:grid;grid-template-columns:auto 1fr auto auto;gap:9px;align-items:center;padding:10px 12px;margin-top:16px;background:#ffffffee;border:1px solid #b2c4dc;border-radius:10px;box-shadow:0 8px 28px #1720332b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.workforce-fixed-actions>div{display:flex;align-items:baseline;justify-content:center;gap:8px}.workforce-fixed-actions>div span{color:var(--muted);font-size:9px}.workforce-fixed-actions>div strong{font-size:12px}@media (max-width:1280px){.workforce-common-summary{grid-template-columns:1.1fr 1.45fr .65fr .65fr .95fr 1.1fr}.workforce-common-summary>div{padding-inline:7px}.workforce-subnav button{padding-inline:13px}}.cost-overview{display:grid;gap:14px}.cost-overview>.page-heading{margin-bottom:0}.cost-scope-block{overflow:hidden;background:white;border:1px solid var(--line);border-radius:9px}.cost-scope-block>header{padding:14px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.cost-scope-block>header h2{margin:0;font-size:16px}.cost-scope-block>header p{margin:4px 0 0;color:var(--muted);font-size:10px}.cost-horizon-grid{display:grid;grid-template-columns:repeat(4,1fr)}.cost-horizon-grid article{display:grid;gap:5px;padding:18px;border-right:1px solid var(--line)}.cost-horizon-grid article:last-child{border-right:0}.cost-horizon-grid article.is-total{color:#175cd3;background:#eff8ff}.cost-horizon-grid small,.cost-horizon-grid span{color:var(--muted);font-size:10px}.cost-horizon-grid strong{font-size:25px}.person-cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(460px,1fr));gap:12px;padding:14px}.person-cost-card{overflow:hidden;border:1px solid var(--line);border-radius:8px}.person-cost-card>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#fbfcfe;border-bottom:1px solid var(--line)}.person-cost-card>header span,.person-cost-card>header strong{display:block}.person-cost-card>header span{margin-top:3px;color:var(--muted);font-size:9px}.person-rate-fields{display:flex;gap:7px}.person-rate-fields label{color:var(--muted);font-size:8px}.person-rate-fields input{display:block;width:90px;min-height:30px;margin-top:2px;padding:4px 6px;background:white;border:1px solid #cfd8e5;border-radius:5px;text-align:right}.person-cost-periods{display:grid;grid-template-columns:repeat(4,1fr)}.person-cost-periods>div{display:grid;gap:4px;padding:12px;border-right:1px solid var(--line)}.person-cost-periods>div:last-child{color:#175cd3;background:#eff8ff;border-right:0}.person-cost-periods span{color:var(--muted);font-size:8px}.person-cost-periods b{font-size:15px}.person-cost-card>footer{display:grid;gap:3px;padding:9px 12px;color:var(--muted);background:#fbfcfe;border-top:1px solid var(--line);font-size:8px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.export-card{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;padding:20px;background:white;border:1px solid var(--line);border-radius:10px}.export-card>button{grid-column:1/-1}.export-card h2{margin:0;font-size:16px}.export-card p{margin:5px 0 0;color:var(--muted);line-height:1.6}.export-icon{display:grid;place-items:center;width:58px;height:58px;color:var(--primary);background:var(--primary-soft);border-radius:10px;font-weight:800}.export-summary{padding:18px;margin-top:16px;background:white;border:1px solid var(--line);border-radius:10px}.export-summary h2{margin:0 0 14px;font-size:15px}.export-summary dl{display:grid;grid-template-columns:repeat(5,1fr);margin:0}.export-summary dl>div{padding:0 15px;border-right:1px solid var(--line)}.export-summary dl>div:first-child{padding-left:0}.export-summary dl>div:last-child{border-right:0}.export-summary dt{color:var(--muted);font-size:11px}.export-summary dd{margin:5px 0 0;font-weight:700}.text-warning{color:#b54708}.text-success{color:#18794e}.print-page{min-height:100vh;padding:18px;background:#e9eef5}.print-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;max-width:1120px;margin:0 auto 14px}.print-toolbar a{color:var(--primary);font-weight:700}.print-toolbar span{color:var(--muted);font-size:12px}.print-toolbar button{justify-self:end;min-height:38px;padding:8px 16px;color:white;background:var(--primary);border:0;border-radius:7px;cursor:pointer;font-weight:700}.print-report{width:1120px;min-height:760px;padding:32px 36px 24px;margin:0 auto;background:white;box-shadow:0 8px 30px #1018281f}.report-header{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:16px;border-bottom:3px solid #175cd3}.report-header p{margin:0 0 5px;color:#175cd3;font-size:12px;font-weight:700;letter-spacing:.08em}.report-header h1{margin:0;font-size:28px;letter-spacing:.08em}.report-date{display:grid;gap:3px;text-align:right}.report-date span,.report-project span{color:var(--muted);font-size:10px}.report-date strong{font-size:18px}.report-project{display:grid;grid-template-columns:2fr 1.4fr .7fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.report-project>div{display:grid;gap:3px}.report-metrics{display:grid;grid-template-columns:repeat(5,1fr);margin:14px 0 18px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.report-metrics>div{display:grid;gap:4px;padding:10px 12px;border-right:1px solid var(--line)}.report-metrics>div:last-child{border-right:0;background:#eff8ff}.report-metrics span{color:var(--muted);font-size:10px}.report-metrics strong{font-size:16px}.report-section{margin-top:16px;page-break-inside:avoid;break-inside:avoid}.report-section>h2{padding-left:9px;margin:0 0 8px;border-left:4px solid #175cd3;font-size:15px}.report-table{width:100%;border-collapse:collapse;font-size:10px}.report-table td,.report-table th{padding:7px 8px;border:1px solid #cfd8e5;text-align:left;vertical-align:middle}.report-table th{color:#344054;background:#f2f4f7;font-weight:700}.report-table td small{display:block;margin-top:2px;color:var(--muted)}.report-table tfoot td{background:#eff8ff;font-weight:800;text-align:right}.report-timeline-frame{overflow:hidden;border:1px solid #cfd8e5;border-radius:6px}.report-timeline-axis{display:grid;grid-template-columns:170px minmax(0,1fr);padding:5px 8px;color:var(--muted);background:#f8fafc;border-bottom:1px solid #cfd8e5;font-size:8px;text-align:center}.report-timeline-axis span:first-child{text-align:left}.report-timeline-axis-scale{position:relative;height:12px}.report-timeline-axis-scale span{position:absolute;transform:translateX(-50%);white-space:nowrap}.report-timeline-axis-scale span.is-first{transform:none}.report-timeline-axis-scale span.is-last{transform:translateX(-100%)}.report-timeline-frame>h3{padding:4px 8px;margin:0;color:#175cd3;background:#eff8ff;border-bottom:1px solid #cfd8e5;font-size:8px}.report-timeline-row{display:grid;grid-template-columns:170px 1fr;align-items:center;min-height:28px;padding:4px 8px;border-bottom:1px solid #e4e7ec}.report-timeline-row>strong{padding-right:6px;font-size:8px;line-height:10px}.report-timeline-track{position:relative;height:20px;background-color:transparent;background-image:linear-gradient(90deg,transparent calc(100% - 1px),#e4e7ec calc(100% - 1px));background-repeat:repeat-x}.report-timeline-segment{position:absolute;top:3px;height:14px;overflow:hidden;padding:2px 3px;color:white;border-radius:2px;font-size:6px;line-height:10px;text-align:center;text-overflow:clip;white-space:nowrap}.report-timeline-legend i.is-operation,.report-timeline-segment.is-operation{background:var(--operation)}.report-timeline-legend i.is-transfer,.report-timeline-segment.is-transfer{background:var(--transfer)}.report-timeline-legend i.is-work,.report-timeline-segment.is-work{background:var(--work)}.report-timeline-legend i.is-person,.report-timeline-segment.is-person{color:#4a1f78;background:#e9d7fe;border:1px solid #b692f6}.report-timeline-legend i.is-gap-unclassified,.report-timeline-segment.is-gap-unclassified{color:#7a2e0e;background:#fef0c7;border:1px dashed #f79009}.report-timeline-legend i.is-gap-standby,.report-timeline-segment.is-gap-standby{color:#1849a9;background:#d1e9ff;border:1px solid #53b1fd}.report-timeline-legend i.is-gap-break,.report-timeline-segment.is-gap-break{color:#05603a;background:#d1fadf;border:1px solid #32d583}.report-timeline-legend i.is-gap-split,.report-timeline-segment.is-gap-split{color:#475467;background:repeating-linear-gradient(135deg,#e4e7ec,#e4e7ec 3px,#f8fafc 0,#f8fafc 6px);border:1px solid #98a2b3}.report-timeline-details{display:flex;flex-wrap:wrap;gap:2px 7px;padding:3px 0 1px;color:#475467;font-size:6px;line-height:9px}.report-timeline-details span{white-space:nowrap}.report-timeline-details i{display:inline-grid;place-items:center;width:9px;height:9px;margin-right:2px;color:white;background:#667085;border-radius:50%;font-size:5px;font-style:normal;font-weight:800}.report-timeline-details b{color:#101828}.report-timeline-details em{color:#175cd3;font-style:normal;font-weight:700}.report-timeline-legend{display:flex;gap:13px;padding:5px 8px;color:var(--muted);font-size:7px}.report-timeline-legend span{display:flex;align-items:center;gap:4px}.report-timeline-legend i{width:7px;height:7px;border-radius:1px}.report-timeline-empty{padding:15px;margin:0;color:var(--muted);text-align:center}.report-task-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.report-task-list>article{border:1px solid #cfd8e5;border-radius:6px;overflow:hidden;page-break-inside:avoid;break-inside:avoid}.report-task-list article>header{display:flex;justify-content:space-between;padding:7px 9px;background:#f2f4f7}.report-task-list article>header span{color:var(--muted);font-size:9px}.report-task-list article>div{display:grid;grid-template-columns:1fr 1fr}.report-task-list section{padding:7px 9px}.report-task-list section+section{border-left:1px solid #cfd8e5}.report-task-list h3{margin:0 0 4px;color:var(--muted);font-size:9px}.report-task-list ul{padding:0;margin:0;list-style:none}.report-task-list li{display:flex;justify-content:space-between;gap:8px;padding:2px 0;font-size:9px}.person-only-badge{display:inline-block;padding:0 3px;margin-left:4px;color:#6941c6;background:#f4ebff;border:1px solid #d6bbfb;border-radius:3px;font-size:6px;font-style:normal}.report-task-list p{margin:0;color:var(--muted);font-size:9px}.report-workforce-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:8px;margin-top:8px}.report-footer{padding-top:10px;margin-top:18px;color:var(--muted);font-size:8px}.bottom-actions,.report-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line)}.bottom-actions{align-items:center;padding-top:24px;margin-top:24px}.bottom-actions>div{display:flex;align-items:center;gap:10px}.danger-button{min-height:36px;padding:7px 11px;color:#b42318;background:white;border:1px solid #fda29b;border-radius:7px;cursor:pointer}.plan-timeline-row{display:grid;grid-template-columns:165px 1fr 100px;min-height:65px;padding:0 14px;border-top:1px solid var(--line);align-items:center}.operation-overview-row{grid-template-columns:220px minmax(560px,1fr) 170px;min-height:91px;align-items:stretch}.operation-lane-meta{position:sticky;left:0;z-index:5;display:grid;align-content:center;gap:3px;padding:7px 12px 7px 0;background:white;border-right:1px solid #edf0f4}.operation-lane-meta>strong{overflow:hidden;font-size:14px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.operation-lane-counts{display:flex;flex-wrap:wrap;gap:4px 10px;color:#667085;font-size:11px;line-height:15px}.operation-lane-counts span{white-space:nowrap}.operation-lane-counts b{color:#344054;font-size:11px}.operation-lane-meta>small{overflow:hidden;color:#667085;font-size:11px;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.operation-lane-summary{display:grid;align-content:center;gap:8px;padding:10px 0 10px 14px;margin:0;border-left:1px solid #edf0f4}.operation-lane-summary div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.operation-lane-summary dt{color:#667085;font-size:11px;font-weight:700;white-space:nowrap}.operation-lane-summary dd{margin:0;color:#172033;font-size:13px;font-weight:800;white-space:nowrap}.operation-overview-row .timeline-segment.segment-operation{background:#1769c2}.operation-overview-row .timeline-segment.segment-work{color:#53389e;background:#eee9f8;border:1px solid #c7b9e8}@media print{@page{size:A4 landscape;margin:8mm}.bottom-actions,.page-heading .secondary-button,.project-summary-card,.topbar,.workflow,.workspace-bar{display:none!important}.app-frame{min-width:0}.content{padding:0}.print-page,body{background:white}.print-page{padding:0}.print-toolbar{display:none!important}.print-report{width:100%;min-height:0;padding:0;margin:0;box-shadow:none}}.rotation-planner{display:grid;gap:14px}.rotation-scope-note{margin:0;padding:13px 15px;background:var(--surface-soft);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:8px;color:var(--muted);font-size:13px;line-height:1.8}.rotation-empty{display:grid;justify-items:center;gap:9px;padding:44px 24px;background:var(--surface);border:1px solid var(--line);border-radius:10px;text-align:center}.rotation-empty h2{margin:0;font-size:18px}.rotation-empty>p{margin:0;color:var(--muted);font-size:13px}.rotation-planned-steps{display:grid;gap:9px;margin:12px 0 0;padding:0;list-style:none;text-align:left}.rotation-planned-steps li{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px}.rotation-planned-steps b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:12px}.rotation-planned-steps span{font-size:13px}.rotation-empty-action{display:grid;justify-items:center;gap:7px;margin-top:10px}.rotation-empty-action small{color:var(--muted);font-size:12px}.rotation-plan-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.rotation-plan-tab{padding:9px 14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px}.rotation-plan-tab.is-active{color:var(--primary);background:var(--primary-soft);border-color:var(--primary);font-weight:600}.rotation-plan-tab-add{padding:9px 14px;color:var(--muted);background:transparent;border:1px dashed var(--line);border-radius:8px;cursor:pointer;font-size:13px}.rotation-plan-tab-add:hover{color:var(--primary);border-color:var(--primary)}.rotation-plan-editor{display:grid;gap:12px}.rotation-plan-section,.rotation-plan-settings{padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.rotation-plan-section h2,.rotation-plan-settings h2{margin:0 0 12px;font-size:15px}.rotation-plan-section>p{margin:0;color:var(--muted);font-size:13px}.rotation-plan-settings-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:16px}.rotation-plan-settings-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.rotation-field-note{color:var(--muted);font-size:12px}.rotation-field-warning{color:var(--warning);font-size:12px}.rotation-cycle-editor{display:grid;gap:12px}.rotation-cycle-editor-head{display:flex;align-items:center;justify-content:space-between}.rotation-cycle-editor-head h2{margin:0;font-size:15px}.rotation-cycle-card{display:grid;gap:10px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.rotation-cycle-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.rotation-cycle-name-input{min-width:220px;padding:7px 10px;color:var(--text);background:white;border:1px solid #cfd8e5;border-radius:6px;font-size:14px;font-weight:600}.rotation-cycle-usage{padding:3px 9px;color:var(--primary);background:var(--primary-soft);border-radius:999px;font-size:12px}.rotation-cycle-length-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.rotation-cycle-length-buttons{display:flex;gap:4px}.rotation-cycle-length-buttons button{width:28px;height:28px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;cursor:pointer;font-size:14px;line-height:1}.rotation-cycle-length-buttons button:disabled{color:#d0d5dd;cursor:not-allowed}.rotation-cycle-actions{display:flex;flex-wrap:wrap;gap:8px}.rotation-cycle-weeks{display:grid;gap:8px}.rotation-cycle-week{display:grid;grid-template-columns:repeat(7,minmax(124px,1fr));gap:6px;overflow-x:auto}.rotation-cycle-day{min-width:0;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px}.rotation-cycle-day.is-working{border-color:#9cc7f5;background:var(--primary-soft)}.rotation-cycle-day.is-editing{box-shadow:0 0 0 2px var(--primary)}.rotation-cycle-day-summary{display:grid;gap:3px;width:100%;padding:9px 10px;color:var(--text);background:transparent;border:0;border-radius:8px;cursor:pointer;text-align:left;font-size:12px}.rotation-cycle-day-number{color:var(--muted);font-size:12px}.rotation-cycle-day-status{font-weight:700}.rotation-cycle-day-slot{display:grid;gap:1px;margin-top:2px;padding-top:4px;border-top:1px dashed var(--line)}.rotation-cycle-day-slot-name{display:block;overflow:hidden;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.rotation-cycle-day-slot-time{display:block;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rotation-cycle-day-editor{display:grid;gap:8px;padding:0 10px 10px}.rotation-cycle-day-close{justify-self:end;padding:4px 10px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:6px;cursor:pointer;font-size:12px}.rotation-workslot-checklist{display:grid;gap:6px;max-height:220px;padding:2px;overflow-y:auto}.rotation-workslot-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:7px 9px;background:white;border:1px solid var(--line);border-radius:6px;cursor:pointer}.rotation-workslot-name{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.rotation-workslot-time{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.rotation-length-change-impact{font-size:13px}.rotation-length-change-impact ul{margin:6px 0 0;padding-left:18px;font-size:12px}.rotation-anchor-change-impact{margin:10px 0 0;padding-left:18px;font-size:12px}.rotation-crew-editor{display:grid;gap:12px}.rotation-crew-editor-head{display:flex;align-items:center;justify-content:space-between}.rotation-crew-editor-head h2{margin:0;font-size:15px}.rotation-crew-card{display:grid;gap:10px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.rotation-crew-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.rotation-crew-name-input{min-width:160px;padding:7px 10px;color:var(--text);background:white;border:1px solid #cfd8e5;border-radius:6px;font-size:14px;font-weight:600}.rotation-crew-assignment-summary{padding:3px 9px;color:var(--primary);background:var(--primary-soft);border-radius:999px;font-size:12px}.rotation-crew-field-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.rotation-crew-field-row .field{min-width:200px;font-size:12px}.rotation-crew-offset-field{display:grid;gap:4px;font-size:12px;color:var(--muted)}.rotation-crew-offset-input-row{display:flex;align-items:center;gap:6px;font-size:12px}.rotation-crew-offset-input-row input{width:64px;padding:6px 8px;color:var(--text);background:white;border:1px solid #cfd8e5;border-radius:6px;font-size:13px}.rotation-crew-assignment{display:grid;gap:8px}.rotation-crew-assignment-kind{display:flex;flex-wrap:wrap;gap:6px}.rotation-crew-assignment-kind label{padding:6px 12px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:12px}.rotation-crew-assignment-kind label.is-selected{color:var(--primary);background:var(--primary-soft);border-color:var(--primary);font-weight:600}.rotation-crew-assignment-kind input{position:absolute;width:1px;height:1px;opacity:0}.rotation-crew-actions,.rotation-crew-pool-position{display:flex;flex-wrap:wrap;gap:8px}.rotation-period-preview{display:grid;gap:12px}.rotation-period-preview-head h2{margin:0;font-size:15px}.rotation-period-summary-card{padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.rotation-period-summary-card h3{margin:0 0 10px;font-size:13px;color:var(--muted)}.rotation-period-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:0}.rotation-period-summary-grid dt{color:var(--muted);font-size:12px}.rotation-period-summary-grid dd{margin:2px 0 0;color:var(--text);font-size:14px;font-weight:700}.rotation-plan-feasibility{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.rotation-feasibility-badge{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600}.rotation-feasibility-badge.is-filled-by-existing{color:#067647;background:#ecfdf3}.rotation-feasibility-badge.is-filled-by-recruitment{color:var(--primary);background:var(--primary-soft)}.rotation-feasibility-badge.is-shortage-with-recruitment{color:#b42318;background:#fef3f2}.rotation-feasibility-badge.is-surplus-with-recruitment{color:var(--warning);background:#fff6ec}.rotation-feasibility-badge.is-structural-issue{color:#6941c6;background:#f4f3ff}.rotation-feasibility-badge.is-no-demand{color:var(--muted);background:var(--surface-soft)}.rotation-shared-warning{padding:8px 12px;color:var(--warning);background:#fff6ec;border-radius:8px;font-size:12px}.rotation-shared-warning p{margin:0 0 4px}.rotation-shared-warning ul{margin:0;padding-left:18px}.rotation-period-diagnostics{display:grid;gap:4px}.rotation-period-diagnostics p{margin:0;padding:6px 10px;border-radius:6px;font-size:12px}.rotation-period-diagnostics p.is-error{color:#b42318;background:#fef3f2}.rotation-period-diagnostics p.is-warning{color:var(--warning);background:#fff6ec}.rotation-period-diagnostics p.is-information{color:#6941c6;background:#f4f3ff}.rotation-week-nav{display:flex;align-items:center;gap:10px}.rotation-week-nav-range{font-size:13px;font-weight:600;color:var(--text)}.rotation-period-table-section{display:grid;gap:8px}.rotation-period-table-section h3{margin:0;font-size:13px;color:var(--muted)}.rotation-period-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.rotation-period-table{width:100%;border-collapse:collapse;font-size:12px}.rotation-period-table td,.rotation-period-table th{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}.rotation-period-table th{color:var(--muted);font-weight:600;text-align:left;background:var(--surface-soft)}.rotation-period-table td.is-outside-period,.rotation-period-table th.is-outside-period{background:#f2f4f7;color:#98a2b3}.rotation-period-table td.is-outside-plan-active,.rotation-period-table th.is-outside-plan-active{background:repeating-linear-gradient(45deg,var(--surface-soft),var(--surface-soft) 6px,#eef1f5 6px,#eef1f5 12px)}.rotation-period-table td.is-outside-period.is-outside-plan-active,.rotation-period-table th.is-outside-period.is-outside-plan-active{background:repeating-linear-gradient(45deg,#f2f4f7,#f2f4f7 6px,#e3e7ee 0,#e3e7ee 12px);color:#98a2b3}.rotation-day-status-label{display:block;margin-top:2px;color:var(--warning);font-size:12px;font-weight:600;white-space:nowrap}.rotation-crew-cell{display:grid;gap:2px;font-size:12px}.rotation-crew-cell-rest{color:var(--muted);font-size:12px}.rotation-crew-cell-slot{display:block;font-size:12px;font-weight:600}.rotation-override-badge{display:inline-block;padding:1px 6px;color:var(--primary);background:var(--primary-soft);border-radius:999px;font-size:12px}.rotation-slot-demand-cell{display:grid;gap:2px;font-size:12px}.rotation-slot-demand-state{font-size:12px;font-weight:600}.rotation-slot-demand-cell.is-shortage-with-recruitment .rotation-slot-demand-state{color:#b42318}.rotation-slot-demand-cell.is-surplus-with-recruitment .rotation-slot-demand-state{color:var(--warning)}.rotation-slot-demand-cell.is-filled-by-recruitment .rotation-slot-demand-state{color:var(--primary)}.rotation-slot-demand-cell.is-filled-by-existing .rotation-slot-demand-state{color:#067647}.rotation-slot-demand-cell.is-no-demand .rotation-slot-demand-state{color:var(--muted)}.rotation-template-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.rotation-template-categories{display:flex;gap:6px;grid-column:1/-1}.rotation-template-categories label{padding:8px 14px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:12px}.rotation-template-categories label.is-selected{color:var(--primary);background:var(--primary-soft);border-color:var(--primary);font-weight:600}.rotation-template-categories input{position:absolute;width:1px;height:1px;opacity:0}.rotation-template-number-grid{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:13px}.rotation-template-toggle{display:flex;align-items:center;gap:8px;grid-column:1/-1;font-size:13px}.rotation-template-preview{margin:0;padding:10px 12px;grid-column:1/-1;color:var(--primary);background:var(--primary-soft);border-radius:8px;font-size:12px}@media (max-width:1280px){.app-frame{min-width:1080px}.workflow-label small{display:none}}.role-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--line)}.role-tabs button{padding:9px 14px;color:var(--muted);background:transparent;border:0;border-bottom:3px solid transparent;cursor:pointer}.role-tabs button.is-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}.role-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}@media (max-width:860px){.role-layout{grid-template-columns:1fr}}.role-list{display:grid;gap:4px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.role-item{display:grid;gap:2px;padding:10px;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer}.role-item:hover{background:var(--surface-soft)}.role-item.is-active{background:var(--primary-soft);border-color:#b9d6f6}.role-item small,.role-sub{color:var(--muted);font-size:12px}.role-add{margin-top:6px;width:100%}.role-editor{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.role-editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.role-editor-head .field{min-width:260px}.role-editor-actions{display:flex;gap:8px}.role-notice{padding:10px 12px;margin:0 0 12px;color:#124a8a;background:var(--primary-soft);border-radius:8px}.perm-table td:first-child{width:46%}.perm-table small{display:block;color:var(--muted);font-size:12px;font-weight:400}.perm-table select{min-width:170px}.role-summary{display:grid;gap:6px;padding:10px 12px;margin-top:12px;background:var(--surface-soft);border:1px dashed var(--line);border-radius:8px}.role-chips{display:flex;flex-wrap:wrap;gap:6px}.role-chip{display:inline-block;padding:2px 9px;font-size:12px;font-weight:700;border-radius:999px;white-space:nowrap}.role-chip.edit{color:#1f7a4d;background:#e8f6ee}.role-chip.view{color:var(--primary);background:var(--primary-soft)}.role-chip.none{color:#b42318;background:#fdecea}.role-chip.scope{color:var(--warning);background:var(--warning-soft)}.role-chip.gray{color:var(--muted);background:#eef1f5}.role-warning-list{display:grid;gap:8px;padding:10px 12px 10px 28px;margin:10px 0 0;color:var(--warning);background:var(--warning-soft);border-radius:8px}.role-assign-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px;margin-bottom:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.role-assign-form>strong{width:100%}.role-assign-form .field{min-width:200px}.role-history ul{margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px}.role-history li{display:flex;flex-wrap:wrap;gap:4px 12px;padding:10px 14px;border-bottom:1px solid var(--line)}.role-history li:last-child{border-bottom:0}.role-history time,.role-history-actor{color:var(--muted);font-size:12px}.workflow-item.is-locked{opacity:.55}.workflow-item.is-locked .workflow-number{border-style:dashed}.locked-panel{padding:46px 16px;margin:18px 0;text-align:center;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:10px}.locked-panel .locked-icon{font-size:30px}.locked-panel p{margin:6px 0}.readonly-banner{padding:9px 12px;margin:0 0 12px;color:#124a8a;background:var(--primary-soft);border-radius:8px;font-size:13px}.step-body.is-readonly input,.step-body.is-readonly select,.step-body.is-readonly textarea{pointer-events:none;color:var(--muted);background:var(--surface-soft)}.step-body.is-readonly .danger-button,.step-body.is-readonly .danger-link,.step-body.is-readonly .heading-actions button,.step-body.is-readonly .initial-setup-bar button,.step-body.is-readonly .primary-button,.step-body.is-readonly .row-actions button{pointer-events:none;opacity:.45}.user-menu{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:110px;white-space:nowrap}.user-menu-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:13px}.user-menu-button{min-height:32px;padding:4px 10px;font-size:12px}