:root{--color-primary:#3182f6;--color-primary-hover:#2272eb;--color-canvas:#ffffff;--color-foreground:#191f28;--color-body:#4e5968;--color-muted:#8b95a1;--color-surface:#f2f4f6;--color-border:#e5e8eb;--color-on-primary:#ffffff;--color-weak-bg:#e8f3ff;--color-weak-fg:#1b64da;--color-danger:#e42939;--color-success:#0f7b3a;--color-warning:#b45309;--color-weekend-bg:#f7f3ea;--color-holiday-bg:#f6eef0;--color-error-border:#ffd4d8;--color-request:#4e5968;--color-preview-outline:#191f28;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:4px;--radius-md:6px;--radius-control:8px}body,html{margin:0;padding:0;font-family:system-ui,Malgun Gothic,Apple SD Gothic Neo,sans-serif;color:var(--color-foreground);background:var(--color-surface)}.wrap{max-width:28rem;margin:4rem auto;padding:var(--space-lg);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.wrap h1{margin:0 0 var(--space-md);font-size:1.5rem;line-height:1.4;font-weight:700}label{display:block;margin:12px 0 var(--space-xs);font-size:14px;color:var(--color-body)}input,select,textarea{width:100%;box-sizing:border-box;padding:var(--space-sm) 12px;font-size:16px;line-height:24px;color:var(--color-foreground);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-canvas)}textarea{min-height:4.5rem;resize:vertical}button:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}.btn,button{margin-top:var(--space-md);padding:8px 16px;min-height:38px;font-size:14px;font-weight:600;line-height:1;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-canvas);color:var(--color-body)}.btn-primary,button[type=submit]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled),button[type=submit]:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-primary)}.btn-danger:hover:not(:disabled){filter:brightness(.94)}.btn-utility{border-color:var(--color-border);color:var(--color-body)}.btn-utility,.btn:hover:not(:disabled):not(.btn-primary):not(.btn-danger):not([type=submit]),button.btn:hover:not(:disabled):not(.btn-primary):not(.btn-danger){background:var(--color-surface)}.btn-sm{margin-top:0;padding:4px 8px;min-height:32px;font-size:13px}.action-tooltip{position:relative;display:inline-flex;align-items:center}.action-tooltip-panel{position:absolute;top:calc(100% + 6px);left:50%;z-index:40;min-width:11rem;max-width:min(18rem,calc(100vw - 2rem));padding:6px 8px;border-radius:var(--radius-sm);background:var(--color-foreground);color:var(--color-on-primary);font-size:12px;font-weight:500;line-height:1.4;white-space:normal;box-shadow:0 8px 20px rgba(25,31,40,.12);transform:translateX(-50%);opacity:0;visibility:hidden;pointer-events:none}.action-tooltip.is-open .action-tooltip-panel{opacity:1;visibility:visible}.action-tooltip.is-suppressed .action-tooltip-panel{opacity:0;visibility:hidden}.workspace-actions-main .toolbar-group:first-child .action-tooltip:first-child .action-tooltip-panel{left:0;transform:none}.workspace-actions-state .action-tooltip-panel{left:auto;right:0;transform:none}.btn:disabled,button:disabled{opacity:.45;cursor:not-allowed}.error{color:var(--color-danger)}.error,.timeout{margin-top:12px;font-size:14px}.timeout{color:var(--color-warning)}nav.top{display:flex;gap:var(--space-md);padding:12px var(--space-lg);background:var(--color-canvas);border-bottom:1px solid var(--color-border)}nav.top a,nav.top button{margin:0;padding:4px 8px;min-height:auto;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-body);text-decoration:none;font-size:14px;font-weight:500}nav.top a.on{color:var(--color-foreground);font-weight:700;background:var(--color-surface);box-shadow:inset 0 -2px 0 var(--color-foreground)}main.page{padding:var(--space-lg)}.page-header{margin:0 0 var(--space-lg)}.page-header h1,main.page h1{margin:0;font-size:24px;line-height:36px;font-weight:600}.page-header h1{font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.03em}.page-header .page-lead,.page-lead,main.page>p{margin:var(--space-xs) 0 0;color:var(--color-body);font-size:16px;line-height:24px;max-width:52rem}.page-header .page-lead{font-size:14px;line-height:1.5;max-width:40rem}.section-title{margin:var(--space-lg) 0 var(--space-sm);font-size:18px;line-height:1.4;font-weight:600}main.page.wide{max-width:1100px}main.page.medium{max-width:52rem}.page-body.settings-body,main.page.narrow{max-width:40rem}.page-body.form-narrow{max-width:28rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md);margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.toolbar .btn,.toolbar button{margin-top:0}.page-toolbar{padding:0;background:transparent;border:0;border-radius:0}.ops-tabs,.page-toolbar{margin:0 0 var(--space-md)}.ops-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md)}.ops-tab{margin:0;padding:4px 2px 6px;min-height:auto;border:0;border-radius:0;background:transparent;color:var(--color-body);font-size:14px;font-weight:500}.ops-tab.is-on{color:var(--color-foreground);font-weight:700;box-shadow:inset 0 -2px 0 var(--color-foreground)}.ops-tab.is-compat{color:var(--color-muted)}.ops-tab.is-compat-on{color:var(--color-body);font-weight:600;box-shadow:inset 0 -2px 0 var(--color-border)}.ops-name{font-weight:600;color:var(--color-foreground)}.ops-meta,.ops-type{color:var(--color-body);font-weight:400}table.grid .is-do,table.grid td.is-do{color:var(--color-warning);font-weight:600}.ops-aside{margin-top:var(--space-xl)}.ops-aside .section-title{margin-top:0;font-size:14px;color:var(--color-body)}.toolbar-debug{background:var(--color-surface)}.toolbar-group{display:inline-flex;align-items:center;gap:var(--space-sm)}.toolbar-sep{display:inline-block;width:1px;height:22px;background:var(--color-border)}label.inline{display:flex;align-items:center;gap:var(--space-xs);margin:12px 0}label.inline input{width:auto}table.grid{width:100%;border-collapse:collapse;background:var(--color-canvas)}table.grid td,table.grid th{border:1px solid var(--color-border);padding:8px 10px;text-align:left;font-size:14px}table.grid tr.inactive td{color:var(--color-muted)}table.grid td.drag{cursor:-webkit-grab;cursor:grab;width:1.5rem;letter-spacing:.08em}.ops-memo,.ops-status,table.grid td.drag{color:var(--color-muted);font-weight:400}table.grid td .btn,table.grid td button{margin:0 6px 0 0;padding:4px 8px;min-height:32px}.panel{margin:var(--space-lg) 0}.table-scroll{overflow:auto;max-width:100%}table.req td,table.req th{min-width:4.8rem;vertical-align:top;font-size:.8rem}table.req tbody th.sticky,table.req td.sticky,table.req th.sticky{position:-webkit-sticky;position:sticky;left:0;background:var(--color-canvas);min-width:5.5rem;z-index:1}table.req th.weekend{background:var(--color-weekend-bg)}table.req span.hol{display:block;color:var(--color-danger);font-weight:400;font-size:.7rem}table.req td.locked{background:var(--color-weak-bg)}table.req select{padding:.15rem;font-size:.8rem}table.req label.lock{display:flex;align-items:center;gap:.2rem;margin:.2rem 0 0;font-size:.7rem}table.req label.lock input{width:auto}.violations{background:var(--color-canvas);border:1px solid var(--color-error-border);padding:12px var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.violations li{margin:var(--space-xs) 0;color:var(--color-body)}.request-conflict{background:var(--color-canvas);border:1px solid var(--color-error-border);padding:12px var(--space-md);border-radius:var(--radius-md);margin:var(--space-md) 0;color:var(--color-body);font-size:14px}.request-conflict>strong{display:block;color:var(--color-danger)}.request-conflict-title{margin:8px 0 4px;font-weight:600}.request-conflict p{margin:6px 0}.request-conflict ul{margin:6px 0 6px 1.2em}.request-conflict a{color:var(--color-weak-fg)}.partial-failure.alert-warning{border-color:var(--color-warning)}.partial-failure.alert-warning>strong{color:var(--color-warning)}.partial-failure-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.ok{color:var(--color-success);font-size:14px}.preview-banner{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-sm) var(--space-md);margin:0 0 var(--space-sm);padding:8px 0 10px;background:transparent;border:0;border-bottom:1px solid var(--color-border);border-radius:0}.preview-strip-copy{min-width:0;flex:1 1 16rem}.preview-strip-actions{display:flex;align-items:center;gap:var(--space-sm)}.preview-strip-actions .btn{margin-top:0;min-height:32px}.preview-banner .ok{margin:0}.preview-banner-title{display:block;margin:0 0 var(--space-xs);color:var(--color-foreground);font-size:14px;font-weight:700}.preview-metrics{display:grid;grid-gap:4px;gap:4px;margin-top:var(--space-xs);font-size:14px;line-height:21px}.preview-metrics[hidden]{display:none}.field-help,.hint,.muted{color:var(--color-muted);font-size:14px;line-height:21px}.hint{max-width:70rem}.field-help{display:block;margin-top:4px;font-size:12px}.empty{color:var(--color-muted);padding:var(--space-md) 0}main.page.full{max-width:none;min-width:1280px}main.page.schedule-page{padding-top:var(--space-md)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.schedule-workspace,.workspace-head{display:flex;flex-direction:column;gap:var(--space-sm)}.workspace-title-row{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-sm);flex-wrap:wrap}.workspace-month{margin:0;font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.03em}.workspace-month-nav{display:flex;align-items:center;gap:6px}.workspace-month-nav .btn,.workspace-month-nav button{margin-top:0;min-height:32px;height:32px;line-height:1}.workspace-month-nav .btn-utility{padding:0 10px;font-size:13px}.workspace-nav-btn{margin:0;width:32px;min-height:32px;padding:0;border-radius:var(--radius-md);font-size:20px;font-weight:500;color:var(--color-foreground);background:transparent}.workspace-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--space-sm);margin:0;color:var(--color-body);font-size:13px;line-height:1.4}.workspace-meta .grant{font-weight:600;color:var(--color-foreground)}.workspace-commands{justify-content:space-between}.workspace-actions-main,.workspace-commands{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md)}.workspace-actions-state{display:flex;align-items:center;gap:var(--space-sm);margin-left:auto}.workspace-commands .btn,.workspace-commands button{margin-top:0;min-height:32px;padding:6px 12px;border-radius:var(--radius-control)}.workspace-commands .btn:not(.btn-primary):not(.btn-danger){background:transparent}.workspace-commands .preview-actions .btn-primary{min-width:7rem}.workspace-commands .workspace-partial-toggle{min-height:auto;padding:0;background:transparent}.workspace-status-strip .status-badge.status-confirmed{color:var(--color-success)}.workspace-partial{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md)}.workspace-partial:not(.is-open){display:none}.workspace-partial-toggle{margin:0;padding:0;min-height:auto;border:0;background:transparent;color:var(--color-body);font-size:13px;font-weight:600}.workspace-partial-body{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.workspace-partial-body[hidden]{display:none}.workspace-partial-body label{margin:0;font-size:13px}.workspace-partial-body input[type=date]{width:auto;min-height:32px;padding:4px 8px;font-size:13px}.workspace-partial-body .btn{margin-top:0;min-height:32px}.toolbar input[type=date],.toolbar input[type=month],.toolbar input[type=number]{width:auto}.schedule-grid{width:100%;height:calc(100vh - 13rem);min-height:28rem;background:var(--color-canvas);position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:none}.schedule-grid .ag-cell,.schedule-grid .ag-header-cell{border-right-color:#eceff2}.schedule-grid .ag-row{border-bottom-color:#eceff2}.schedule-grid .busy-mask{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.82);font-weight:600}.day-head,.schedule-grid .ag-header-cell .ag-header-cell-comp-wrapper{width:100%;height:100%}.day-head{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;box-sizing:border-box;line-height:1.15;text-align:center}.day-head-status{flex:0 0 1.55rem;flex-direction:row;flex-wrap:nowrap;gap:2px;min-height:1.55rem;overflow:hidden}.day-head-hit,.day-head-status{display:flex;align-items:center;justify-content:center}.day-head-hit{flex:1 0 auto;flex-direction:column;margin:0;padding:1px 0 0;min-height:1.85rem;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.day-head-hit strong{font-size:.85rem;font-weight:700}.day-head.today .day-head-hit strong{font-weight:800;text-decoration:none}.day-today-dot{display:inline-block;width:4px;height:4px;margin-left:3px;vertical-align:.45em;border-radius:50%;background:var(--color-foreground);font-style:normal}.day-head-hit span,.day-head-sep,.day-head-status .hol{font-weight:400;font-size:.7rem;color:var(--color-muted)}.day-head-status .hol{max-width:100%;overflow:hidden;color:var(--color-danger);font-size:11px;font-weight:600;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.day-head-sep,.min-badge{flex:0 0 auto}.min-badge{margin:0;padding:0 3px;min-height:18px;border:0;border-radius:3px;background:transparent;color:var(--color-muted);font-size:.62rem;font-weight:600;line-height:1.25;cursor:pointer}.min-badge.is-override{background:var(--color-surface);color:var(--color-foreground);font-weight:700}.schedule-grid .emp-col{padding-left:10px}.schedule-grid .ag-header-cell.emp-col .ag-header-cell-label{padding-left:2px}.schedule-grid .summary-col{text-align:center;justify-content:center}.schedule-grid .ag-header-cell.summary-col .ag-header-cell-label{justify-content:center}.schedule-grid .agg-cell{justify-content:center;text-align:center}.emp-name,.schedule-grid .agg-cell{display:flex;align-items:center;width:100%}.emp-name{justify-content:space-between;gap:.35rem;min-width:0}.emp-name-block{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;line-height:1.15}.emp-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.emp-role{color:var(--color-muted);font-size:11px;font-weight:500}.night-badge{flex:0 0 auto;margin:0;padding:1px 4px;min-height:18px;border:0;border-radius:3px;background:transparent;color:var(--color-body);font-size:.62rem;font-weight:600;line-height:1.3;white-space:nowrap;cursor:pointer}.night-badge.is-off{color:var(--color-warning);font-weight:700}.status-chip{display:inline-flex;align-items:center;justify-content:center;padding:1px 4px;font-size:.6rem}.status-chip:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--color-border)}.schedule-grid .wkd,.schedule-grid .wkd-h{background-color:var(--color-weekend-bg)}.schedule-grid .hol,.schedule-grid .hol-h{background-color:var(--color-holiday-bg)}.schedule-grid .today,.schedule-grid .today-h{background-image:linear-gradient(rgba(25,31,40,.035),rgba(25,31,40,.035));box-shadow:none}.schedule-grid .is-do{color:var(--color-warning);font-weight:650}.schedule-grid .preview-changed{outline:2px solid var(--color-preview-outline);outline-offset:-2px}.schedule-grid .manual-edit{font-weight:600}.shift-cell{display:flex;align-items:center;justify-content:center;gap:.15rem;width:100%}.shift-cell .shift-code{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shift-cell .mark.override{display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:var(--color-primary)}.shift-cell .mark.request{font-size:.65rem;font-weight:700;color:var(--color-request)}.cell-picker{min-width:14rem;padding:.5rem .55rem;background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px rgba(25,31,40,.12)}.cell-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin:0 0 .4rem}.cell-picker-title{margin:0;font-size:.8rem;font-weight:700}.cell-picker-close{margin:0;padding:0;min-width:28px;min-height:28px;line-height:1;font-size:18px;font-weight:400;color:var(--color-muted);background:transparent;border:0}.cell-picker-note{margin:0 0 .35rem;font-size:.72rem;color:var(--color-body)}.cell-picker-release-block{margin:0 0 .4rem;padding-bottom:.4rem;border-bottom:1px solid var(--color-border)}.cell-picker-release{display:block;width:100%;margin:0;padding:6px 8px;min-height:0;text-align:left;background:var(--color-surface)}.cell-picker-list{display:grid;grid-template-columns:1fr 1fr;grid-gap:.25rem;gap:.25rem}.cell-picker-list button{margin:0;min-height:32px;border-radius:var(--radius-md)}.cell-picker-list button:hover:not(:disabled){background:var(--color-surface)}.cell-picker-list button.is-current{background:var(--color-surface);color:var(--color-foreground);font-weight:700;box-shadow:inset 0 0 0 1px var(--color-foreground)}.cell-picker-custom{margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.cell-picker-custom-title{margin:0 0 .3rem;font-size:.78rem;font-weight:700}.cell-picker-custom-field{display:flex;flex-direction:column;gap:.2rem;margin:0 0 .4rem;font-size:.72rem}.cell-picker-custom-field select{min-height:32px}.cell-picker-custom-error{margin:0 0 .35rem;font-size:.72rem;color:var(--color-danger,#d32f2f)}.cell-picker-custom-actions{display:flex;gap:.35rem}.cell-picker-custom-actions button{margin:0;min-height:32px}.custom-range-heading{margin:2rem 0 .75rem;font-size:1.15rem}.shift-settings{max-width:100%}.shift-settings-group{margin:0 0 var(--space-md)}.shift-settings-group+.shift-settings-group{margin-top:var(--space-sm)}.shift-settings-title{margin:0 0 var(--space-xs);font-size:16px;font-weight:700}.shift-settings-rows{display:grid;grid-gap:var(--space-xs);gap:var(--space-xs)}.shift-setting-row{display:grid;grid-template-columns:4.75rem 2.75rem minmax(0,1fr);align-items:center;grid-column-gap:var(--space-md);column-gap:var(--space-md);grid-row-gap:var(--space-xs);row-gap:var(--space-xs);min-height:32px;margin:0}.shift-setting-label{font-size:13px;color:var(--color-muted)}.canonical-shift{font-size:14px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shift-setting-empty{font-size:12px}.custom-range-grid{display:grid;grid-gap:.55rem;gap:.55rem;margin:0 0 1rem}.custom-range-head{font-size:.75rem;font-weight:700;color:var(--color-muted)}.custom-range-grid .custom-range-head:first-child{display:none}.custom-range-row{display:grid;grid-template-columns:3rem 1fr;align-items:center;grid-gap:.75rem;gap:.75rem;margin:0}.custom-range-inputs{display:grid;grid-template-columns:6.75rem 6.5rem auto 6.5rem minmax(5.5rem,1fr);align-items:center;grid-column-gap:.4rem;column-gap:.4rem}.custom-range-field{display:block}.custom-range-inputs input{width:6.5rem;margin:0}.shift-settings .btn{margin-top:var(--space-sm)}.board-popover-mask{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:rgba(25,31,40,.28)}.board-popover{width:min(22rem,calc(100vw - 2rem));padding:var(--space-md);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 12px 32px rgba(25,31,40,.16)}.board-popover h2{margin:0 0 var(--space-sm);font-size:1.05rem;font-weight:700}.board-popover-label{margin:0 0 var(--space-xs);font-weight:700}.board-radio{display:flex;align-items:center;gap:.4rem;margin:.35rem 0}.board-radio input[type=radio]{width:auto}.board-inline-num{width:4.5rem;margin:0}.schedule-grid .agg-cell{font-size:.68rem;white-space:nowrap}.status-badge,.toolbar .grant{font-weight:600}.status-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-body);font-size:12px}.status-badge.status-confirmed{background:var(--color-surface);color:var(--color-foreground)}.status-badge.status-manually_edited{background:var(--color-weekend-bg)}.badge-weak{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--radius-sm);background:var(--color-weak-bg);color:var(--color-weak-fg);font-size:12px;font-weight:600}.busy-label{color:var(--color-primary);font-weight:600}.schedule-grid .role-band{border-top:2px solid var(--color-foreground)}.schedule-grid .agg-footer{background-color:var(--color-surface);font-weight:600}.schedule-grid .agg-total{background-color:var(--color-border)}.month-inputs{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-md);gap:var(--space-md)}.month-inputs,.panel-card{margin-top:var(--space-lg)}.panel-card{padding:var(--space-md);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.panel-card h2{margin:0 0 var(--space-sm);font-size:18px;line-height:1.4}.inline-add{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-md) 0}.inline-add input{width:auto}.snapshot-list{list-style:none;margin:0;padding:0}.snapshot-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.snapshot-main{min-width:0;flex:1 1}.snapshot-list .muted,.snapshot-main strong{display:block}.snapshot-memo{display:block;margin-top:2px;color:var(--color-body);font-size:13px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snapshot-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-xs)}.snapshot-actions .btn{margin-top:0}.snapshot-replace{border-color:var(--color-primary);color:var(--color-primary)}.dialog-mask{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(25,31,40,.32)}.dialog{width:min(28rem,calc(100vw - 32px));padding:var(--space-lg);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.dialog h2{margin:0 0 var(--space-sm);font-size:18px}.dialog p{margin:0 0 var(--space-md);color:var(--color-body)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.dialog-actions .btn{margin-top:0}.form-dialog{width:min(26rem,calc(100vw - 32px))}.form-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.form-dialog-head h2{margin:0;font-size:18px;font-weight:600}.form-dialog-close{margin:0;padding:0;min-width:32px;min-height:32px;line-height:1;font-size:20px;font-weight:400;color:var(--color-muted)}.form-dialog-desc{margin:0 0 var(--space-md);color:var(--color-body);font-size:14px;line-height:21px}.form-dialog-body .field,.login-page .field{display:block;margin:0 0 var(--space-md)}.form-dialog-body .field:last-child,.login-page .field:last-child{margin-bottom:0}.form-dialog-body label{margin-top:var(--space-md)}.form-dialog-body .field:first-child,.form-dialog-body label:first-child,.login-page .field:first-child{margin-top:0}.form-dialog-body .inline{margin-top:var(--space-md)}.form-dialog .dialog-actions{margin-top:var(--space-lg)}.popover-divider{height:1px;margin:var(--space-sm) 0;background:var(--color-border)}.alert{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.alert-error{border-color:var(--color-error-border);border-left:3px solid var(--color-danger)}.alert-warning{border-left:3px solid var(--color-warning)}.login-shell{max-width:28rem;margin:4rem auto;padding:var(--space-xl) var(--space-lg);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.login-shell h1{margin:0;font-size:24px;line-height:36px;font-weight:600}.login-shell .page-lead{margin:var(--space-xs) 0 var(--space-lg)}.login-page{max-width:26rem;padding:var(--space-lg)}.login-page h1{font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.03em}.login-page .page-lead{font-size:14px}.login-page .btn-primary{width:100%;margin-top:var(--space-md)}.login-shell-wide{max-width:36rem}.cell-picker{padding:var(--space-sm) var(--space-md)}@media (max-width:1100px){.month-inputs{grid-template-columns:1fr}}main.page.dashboard-page{max-width:1440px;margin:0 auto}.dashboard{display:flex;flex-direction:column;gap:var(--space-xl)}.dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md)}.dashboard-title{margin:0;font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.03em}.dashboard-focus-meta{margin:0;color:var(--color-muted);font-size:13px}.dashboard-section-title{margin:0 0 var(--space-sm);font-size:16px;line-height:1.4;font-weight:700}.dashboard-block-head{margin:0 0 var(--space-md);padding:0 0 var(--space-sm);border-bottom:1px solid var(--color-border)}.dashboard-block-head .dashboard-section-title{margin:0}.dashboard-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md)}.dashboard-section-head a{color:var(--color-body);font-size:13px}.month-status-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-md);gap:var(--space-md)}.month-status{display:flex;flex-direction:column;justify-content:space-between;min-height:148px;padding:var(--space-md);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.month-status.focus{border-color:var(--color-foreground)}.month-status-select{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;text-align:left;color:inherit}.month-status-select h2{margin:0;font-size:20px;line-height:1.3;font-weight:700}.month-status-state{margin:6px 0 0;font-size:14px;font-weight:600}.month-status.confirmed .month-status-state{color:var(--color-success)}.month-status.unconfirmed .month-status-state{color:var(--color-warning)}.month-status-note,.month-status-role{margin:4px 0 0;color:var(--color-body);font-size:13px}.month-status-action{margin-top:var(--space-md);color:var(--color-foreground);font-size:13px;font-weight:600}.dashboard-main{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.35fr);grid-gap:var(--space-lg);gap:var(--space-lg);align-items:start}.dashboard-pane{min-width:0}.attention-list,.condition-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border)}.attention-item,.condition-list li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding:10px 0;border-bottom:1px solid var(--color-border)}.attention-item p,.attention-item strong{margin:0}.attention-item p{margin-top:2px;color:var(--color-body);font-size:14px}.attention-item.integrity p{color:var(--color-danger)}.attention-item a,.condition-list a{flex:0 0 auto;color:var(--color-body);font-size:13px}.condition-counts{margin:0 0 var(--space-sm);font-size:13px;color:var(--color-body)}.condition-employees{list-style:none;margin:0;padding:0}.condition-employee{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}.condition-employee:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.condition-employee h3{margin:0 0 4px;font-size:13px;font-weight:700;line-height:1.3}.condition-chips{display:flex;flex-wrap:wrap;gap:6px}.condition-chip{display:inline-flex;align-items:baseline;gap:4px;padding:2px 6px;background:var(--color-surface);border:0;border-radius:var(--radius-sm);box-shadow:none}.condition-chip-day{color:var(--color-muted);font-size:12px;font-weight:400}.condition-chip-shift{color:var(--color-foreground);font-size:13px;font-weight:600}.condition-chip-shift.is-do{color:var(--color-warning)}.condition-source-mark{margin-left:1px;font-size:9px;font-weight:600;line-height:1;color:var(--color-body)}.balance-wrap{overflow-x:auto}.balance-table{width:100%;border-collapse:collapse;font-size:13px}.balance-table td,.balance-table th{padding:8px 10px;border-bottom:1px solid var(--color-border);text-align:right;white-space:nowrap}.balance-table td.name,.balance-table th.name{text-align:left;width:8rem}.balance-table thead button{display:flex;flex-direction:column;align-items:flex-end;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700}.balance-table tbody small,.balance-table thead small{display:block;color:var(--color-muted);font-size:11px;font-weight:500}.balance-table .metric-head th{color:var(--color-muted);font-size:12px;font-weight:500}.balance-table .focus-col{background:var(--color-surface)}.balance-table td[data-missing]{color:var(--color-muted)}.balance-table td[data-warn]{color:var(--color-warning);font-weight:600}@media (max-width:1279px){.dashboard-main,.month-status-row{grid-template-columns:1fr}.shift-setting-row{grid-template-columns:4.75rem 2.75rem 1fr}.custom-range-inputs{grid-template-columns:6.75rem 6.5rem auto 6.5rem}.workspace-actions-state{width:100%;justify-content:flex-end;margin-left:0}}