:root{color-scheme:light;font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;background:#f4f5f1;color:#20241f;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);align-items:start}.sidebar{background:#1f2a24;color:#f9fbf5;padding:24px 18px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand-block{display:flex;gap:12px;align-items:center}.brand-mark,.metric-icon{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;background:#e8b86d;color:#1f2a24}.brand-block h1,.brand-block p,h2,h3,p{margin:0}.brand-block h1{font-size:20px}.brand-block p,.support-panel p{color:#b9c1b5;font-size:13px}.nav-list{display:grid;gap:8px}.nav-item{width:100%;min-height:44px;display:grid;grid-template-columns:22px 1fr 18px;align-items:center;gap:10px;color:#f9fbf5;background:transparent;border:0;border-radius:8px;padding:10px 12px;text-align:left}.nav-item.active,.nav-item:hover{background:#314137}.support-panel{margin-top:auto;border:1px solid #445146;border-radius:8px;padding:16px;display:grid;gap:12px}.support-panel strong{font-size:16px}.workspace{min-width:0;padding:24px;display:grid;gap:18px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center}.eyebrow,.panel-title span{color:#667064;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.topbar h2{font-size:28px;margin-top:4px;letter-spacing:0}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.select-label,.segmented,.ghost,.solid,.outline{min-height:40px;border-radius:8px;display:inline-flex;align-items:center;gap:8px}.select-label{background:#fff;border:1px solid #d9ddd4;padding:0 10px}select{border:0;background:transparent;color:#20241f;outline:0}.month-input{min-height:36px;border:0;background:transparent;color:#20241f;outline:0;width:82px}.segmented{background:#e1e5dc;padding:4px}.segmented button{border:0;background:transparent;border-radius:6px;min-height:32px;padding:0 12px;color:#475047}.segmented .active{background:#fff;color:#20241f;box-shadow:0 1px 5px #1d241e1f}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.toast{min-height:42px;display:flex;align-items:center;border:1px solid #d8ddd3;border-left:5px solid #5f8f70;background:#fff;color:#2d392f;border-radius:8px;padding:10px 14px;font-weight:700}.metric-card,.panel,.planner-panel{background:#fff;border:1px solid #dde1d8;border-radius:8px;box-shadow:0 12px 30px #242d260f;min-width:0}.metric-card{min-height:144px;padding:16px;display:grid;align-content:space-between;gap:8px}.metric-card span,.metric-card p{color:#657061;font-size:13px}.metric-card strong{font-size:27px;letter-spacing:0}.metric-card.danger .metric-icon{background:#f4c7b7;color:#862f1d}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.main-grid.month-mode{grid-template-columns:1fr}.main-grid.month-mode .insight-column{grid-template-columns:repeat(3,minmax(0,1fr))}.planner-panel{min-width:0;padding:16px;overflow:hidden}.panel-head,.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.panel-head h3,.panel-title h3{font-size:19px;margin-top:3px}.ghost,.outline{border:1px solid #d8ddd3;background:#fff;color:#253026;padding:0 12px}.solid{border:0;background:#e8b86d;color:#1f2a24;padding:0 13px;font-weight:800}.small{justify-content:center;width:100%}.schedule-grid{display:grid;grid-template-columns:112px repeat(7,minmax(112px,1fr));overflow-x:auto;border:1px solid #e0e4db;border-radius:8px}.month-overview{display:grid;gap:6px}.month-weekdays,.month-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.month-weekdays strong{min-height:26px;display:grid;place-items:center;border-radius:7px;background:#edf2e8;color:#52604f;font-size:12px}.month-day-card{min-height:132px;display:grid;grid-template-rows:auto auto 1fr auto;gap:4px;padding:7px;border:1px solid #e1e6dd;border-radius:8px;background:#fffdfa;overflow:hidden}.month-day-card.blank{background:transparent;border:0}.month-day-card.closed{background:#f4f1ec;border-color:#d8d0c7}.month-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:5px}.month-day-head div{display:grid;gap:1px}.month-day-head strong{font-size:14px}.month-day-head span,.month-day-head small,.month-day-foot,.month-shift-pill small{color:#687266;font-size:10px;font-weight:800}.month-day-flags{min-height:18px;display:flex;gap:3px;flex-wrap:wrap;align-items:center}.month-day-flags .holiday-chip{padding:1px 4px;font-size:9px}.month-shift-stack{display:grid;gap:3px}.month-shift-pill{min-height:28px;display:grid;grid-template-columns:minmax(34px,1fr) auto auto;gap:4px;align-items:center;border:1px solid #dfe5dc;border-radius:7px;background:#fbfcf8;color:#233127;padding:3px 5px;text-align:left}.month-shift-pill span{font-size:11px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-shift-pill b{font-size:11px}.month-shift-pill.under{background:#fff4ed;border-color:#efd7c7}.month-shift-pill.staffed{background:#f2f8f0;border-color:#d8e5d4}.month-shift-pill.closed{background:#e8e1d8;border-color:#d5c9bd}.month-shift-pill.selected{outline:2px solid #e8b86d}.month-mini-avatars{grid-column:1 / -1;display:flex;gap:3px;min-height:16px}.month-mini-avatars abbr{width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:#28473d;color:#fff;font-size:10px;text-decoration:none;font-weight:900}.month-day-foot{display:flex;justify-content:flex-end}.month-roster-board{display:grid;gap:10px}.roster-week{border:1px solid #dde3d8;border-radius:8px;overflow:hidden;background:#fff}.roster-grid{display:grid;align-items:stretch}.roster-head{position:sticky;top:0;z-index:2;background:#f2f4ef}.roster-staff-head,.roster-date-head,.roster-employee,.roster-cell{border-right:1px solid #e4e7df;border-bottom:1px solid #e4e7df}.roster-staff-head,.roster-date-head{min-height:44px;display:grid;place-items:center;padding:5px;font-weight:900}.roster-date-head{gap:1px}.roster-date-head strong{font-size:13px}.roster-date-head span{color:#4f9a65;font-size:11px}.roster-date-head small{color:#7a4a18;font-size:10px;font-weight:800}.roster-date-head em{color:#9a341d;font-size:11px;font-style:normal}.roster-date-head.closed{background:#eee9e2}.roster-row{height:72px;min-height:72px}.roster-employee{display:grid;grid-template-columns:38px 1fr 24px;gap:8px;align-items:center;padding:6px;background:#fbfcf8;height:72px;box-sizing:border-box;overflow:hidden}.roster-employee abbr{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#c8cbc4;color:#fff;text-decoration:none;font-weight:900}.roster-employee div{min-width:0;display:grid;gap:1px}.roster-employee strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-employee span,.roster-employee small{color:#687266;font-size:11px}.roster-alert{width:22px;height:22px;border:1px solid #d9b7ad;border-radius:50%;background:#fff4ee;color:#9a341d;font-weight:900;padding:0}.roster-cell{height:72px;min-height:72px;display:grid;grid-auto-rows:minmax(0,1fr);gap:4px;padding:4px;background:#f8f8f5;box-sizing:border-box;overflow:hidden}.roster-cell.closed{background:#e5e0d9}.roster-rest{height:100%;min-height:0;display:grid;place-items:center;align-content:center;gap:4px;border-radius:7px;background:#d6d6d3;color:#fff;font-weight:900;cursor:pointer}.roster-rest.marked{background:#f2e4df;color:#8a351f;border:1px solid #dfb6aa}.roster-rest span{line-height:1.1}.roster-rest:hover,.roster-rest:focus-visible{outline:2px solid #e8b86d;outline-offset:-2px}.daytype-actions{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap}.daytype-actions button{min-width:25px;min-height:23px;border:1px solid rgba(127,87,68,.28);border-radius:6px;background:#ffffffc2;color:#7c3d25;font-size:11px;font-weight:900;padding:0 5px}.daytype-actions button.active{background:#8a3f25;border-color:#8a3f25;color:#fff}.daytype-actions button.edit-daytype{background:#28473d;border-color:#28473d;color:#fff}.roster-shift{height:100%;min-height:0;display:grid;grid-template-columns:1fr auto;gap:1px 6px;align-items:center;border:2px dashed rgba(255,255,255,.65);border-radius:8px;color:#fff;padding:5px 7px;text-align:left;box-shadow:inset 0 0 0 1px #00000014;box-sizing:border-box}.roster-shift strong{grid-row:1 / span 2;font-size:12px}.roster-shift span{font-size:12px;font-weight:900;text-align:right}.roster-shift.blue{background:#6fc1e3}.roster-shift.green{background:#69d1a2}.roster-shift.mint{background:#81d8b8}.roster-shift.purple{background:#665bd2}.roster-shift.yellow{background:#f0c51c}.roster-shift.pink{background:#cf174f}.roster-shift.selected{outline:3px solid #e8b86d;outline-offset:-2px}.grid-corner,.grid-day,.slot-label,.shift-cell{min-width:112px;border-right:1px solid #e6e9e1;border-bottom:1px solid #e6e9e1}.grid-corner,.grid-day{min-height:42px;display:grid;place-items:center;background:#f5f7f2;font-weight:800}.grid-day span{color:#687266;font-size:11px;font-weight:700}.grid-day.with-cost{gap:2px}.grid-day.with-cost strong{font-size:13px}.grid-day.with-cost small{color:#376646;font-size:10px;line-height:1.2;text-align:center}.grid-day.with-cost .revenue-source{color:#94612f}.holiday-chip{padding:2px 5px;border-radius:999px;background:#fff4d9;color:#7b5315;font-size:10px;font-style:normal;font-weight:900}.holiday-chip.national,.holiday-chip.special{background:#ffe8df;color:#9a341d}.holiday-chip.weekend{background:#edf2e8;color:#52604f}.holiday-chip.closure{background:#6c6258;color:#fff}.grid-day.with-cost .cost-danger{color:#9a341d;font-weight:900}.grid-day.closed-day{background:#f4f1ec;color:#6c6258}.slot-label{min-height:104px;padding:12px;background:#fbfcf8;display:grid;align-content:center;gap:4px}.slot-label span{color:#6b7568;font-size:12px}.shift-cell{min-height:104px;padding:9px;display:grid;gap:8px;align-content:space-between;border-top:0;border-left:0;background:transparent;color:inherit;text-align:left}.shift-cell.staffed{background:#fbfcf8}.shift-cell.closed{background:#f4f1ec;border-color:#d8d0c7;color:#6c6258}.closed-cell-label{min-height:36px;display:grid;place-items:center;border-radius:8px;background:#e8e1d8;font-weight:900}.shift-cell.under{background:#fff4ed}.shift-cell.selected{outline:3px solid #e8b86d;outline-offset:-3px;background:#fff9eb}.shift-cell:hover{box-shadow:inset 0 0 0 2px #5f8f7047}.shift-top{display:flex;justify-content:space-between;align-items:center;gap:6px;color:#5f695e;font-size:12px}.shift-top span{display:inline-flex;gap:4px;align-items:center}.avatars{display:flex;min-height:30px}.avatars abbr{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#314137;color:#fff;font-size:13px;font-weight:800;text-decoration:none;border:2px solid #fff;margin-right:-7px;cursor:grab}.shift-cell small{color:#6d7769}.insight-column{display:grid;gap:14px}.panel{padding:16px;min-width:0}.peak-list,.risk-list,.support-list,.workflow{display:grid;gap:10px}.peak-row,.risk-row,.support-row,.workflow-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:#f7f8f4;border-radius:8px}.peak-row div,.support-row div,.workflow-item div{display:grid;gap:3px}.peak-row span,.support-row span,.workflow-item span{color:#687266;font-size:12px}.risk-row{justify-content:flex-start;align-items:flex-start;background:#fff5ef;color:#75341f;font-size:13px}.risk-row span{flex:1;display:grid;gap:3px}.risk-row span b{color:#75341f;font-size:12px}.risk-row span strong{color:#1f2a24;font-size:13px}.risk-row span small{display:block;margin-top:4px;color:#8b4a33;font-weight:800}.risk-row button{border:0;border-radius:6px;background:#75341f;color:#fff;padding:5px 8px;font-weight:800}.risk-row.high{background:#ffe8df}.empty-state{min-height:52px;display:flex;align-items:center;gap:8px;color:#376646}.support-row button,.row-actions button,.stepper button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #dce1d7;background:#fff;border-radius:8px}.panel-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.view-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:10px;border:1px solid #dde3d8;border-radius:8px;background:#f7f9f4}.closure-toolbar{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(280px,1.4fr) minmax(160px,auto) auto;gap:10px;align-items:center;margin:10px 0;padding:10px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8}.closure-toolbar div{display:grid;gap:2px}.closure-toolbar span{color:#687266;font-size:12px}.closure-weekdays{display:grid;grid-template-columns:repeat(7,minmax(42px,1fr));gap:5px}.closure-weekdays button{min-height:34px;border:1px solid #d9dfd5;border-radius:8px;background:#fff;color:#253026;font-weight:800;padding:0 6px}.closure-weekdays button.active{border-color:#6c6258;background:#6c6258;color:#fff}.view-summary{min-height:34px;display:inline-flex;align-items:center;padding:0 10px;border-radius:8px;background:#fff;color:#52604f;font-size:13px;font-weight:800}.compliance-controls{display:grid;gap:12px;margin-bottom:14px;padding:12px;border:1px solid #dde3d8;border-radius:8px;background:#fbfcf8}.rule-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.rule-grid label{display:grid;gap:6px}.rule-grid span{color:#52604f;font-size:12px;font-weight:800}.rule-grid input,.rule-grid select{width:100%;min-height:38px;border:1px solid #cfd7cb;border-radius:8px;background:#fff;padding:0 10px}.compliance-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compliance-actions span{color:#52604f;font-size:13px;font-weight:800}.demand-risk-card{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:14px;align-items:center;margin:14px 0;padding:14px;border:1px solid #dfe7db;border-radius:8px;background:#f7faf3}.demand-risk-card.has-risk{border-color:#efc5b7;background:#fff4ec}.demand-risk-card b,.demand-risk-card span{display:block}.demand-risk-card b{color:#14231a;font-size:15px}.demand-risk-card span{color:#5e6a60;font-size:13px;margin-top:3px}.risk-remedies{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.risk-remedies span{min-width:112px;margin:0;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e2e4da;color:#3f4a41;font-weight:800;text-align:center}.risk-remedies strong{color:#9a341d;font-size:18px}.shift-editor{display:grid;gap:12px}.personal-editor{display:grid;gap:10px}.personal-editor-card{display:grid;gap:4px;padding:12px;border:1px solid #dfe5dc;border-radius:8px;background:#f8faf4}.personal-editor-card span,.personal-editor-card small{color:#687266}.template-actions{display:grid;gap:8px}.template-list,.open-shift-list,.task-list,.validation-list,.market-list{display:grid;gap:8px;margin-top:10px}.template-list button,.open-shift-row,.task-row,.validation-row,.market-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8;text-align:left}.template-list button{color:#233127}.template-list span,.open-shift-row span,.task-row span,.validation-row span,.market-row span{color:#687266;font-size:12px}.open-shift-row button,.task-row button{min-height:34px;border:0;border-radius:7px;background:#28473d;color:#fff;padding:0 10px;font-weight:800}.task-row button[data-status=完成]{background:#5f8f70}.task-row button[data-status=進行中]{background:#94612f}.validation-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.validation-score{display:grid;gap:4px;padding:14px;border-radius:8px;background:#f2f8f0;margin-bottom:10px}.validation-score strong{font-size:34px}.validation-row{grid-template-columns:28px minmax(0,1fr)}.validation-row[data-pass=true] svg{color:#3f7d55}.validation-row[data-pass=false]{border-color:#d76b4b;background:#fff5ef}.market-row{grid-template-columns:minmax(150px,.4fr) minmax(0,1fr)}.editor-summary{display:grid;gap:4px;padding:12px;background:#f7f8f4;border-radius:8px}.editor-summary strong{font-size:30px}.editor-summary span{color:#657061;font-size:13px}.editor-summary small{color:#687266;font-size:12px}.stepper{min-height:42px;display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px}.stepper span{height:38px;border-radius:8px;background:#f1f4ed;display:grid;place-items:center;font-weight:800}.employee-picker{display:grid;gap:8px;max-height:275px;overflow:auto}.employee-picker label{display:grid;grid-template-columns:20px 1fr;gap:8px 10px;align-items:center;border:1px solid #dde2d8;background:#fff;border-radius:8px;padding:10px}.employee-picker label.checked{border-color:#5f8f70;background:#f2f8f0}.employee-picker input{width:18px;height:18px}.employee-picker small{grid-column:2;color:#697366}.assigned-list{display:grid;gap:8px}.assigned-row{display:grid;grid-template-columns:18px minmax(0,1fr) minmax(115px,auto) 34px;gap:8px;align-items:center;padding:9px;border-radius:8px;background:#f7f8f4}.draggable{cursor:grab}.draggable:active,.flex-card:active,.avatars abbr:active{cursor:grabbing}.assigned-row span{font-weight:800}.assigned-row small{color:#687266;text-align:right}.assigned-row button{width:32px;height:32px;border:1px solid #dce1d7;background:#fff;border-radius:8px;display:grid;place-items:center}.compact{min-height:38px;padding:0 10px}.flex-scheduler{display:grid;gap:10px}.drag-hint{min-height:36px;display:flex;align-items:center;padding:8px 10px;border-radius:8px;background:#f4f7f0;color:#52614f;font-size:13px;font-weight:800}.flex-pool{display:grid;gap:8px;max-height:250px;overflow:auto}.flex-card{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:center;padding:10px;border:1px dashed #b9c7b4;border-radius:8px;background:#fbfcf8;cursor:grab}.flex-card:hover{border-style:solid;background:#eff7ef}.flex-card[data-active=true]{border-style:solid;border-color:#e8b86d;background:#fff8e8;box-shadow:0 0 0 3px #e8b86d33}.flex-card div{display:grid;gap:3px}.flex-card span{color:#687266;font-size:12px}.bottom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.labor-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.labor-analytics-grid .panel:nth-child(3),.labor-analytics-grid .panel:nth-child(5){grid-column:1}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.analytics-kpi-grid div{display:grid;gap:5px;padding:12px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8}.analytics-kpi-grid div[data-danger=true]{border-color:#dfb6aa;background:#fff5ef}.analytics-kpi-grid span,.analytics-kpi-grid small,.employee-productivity-list span,.employee-productivity-list small,.risk-shift-list span{color:#687266;font-size:12px}.analytics-kpi-grid strong{font-size:28px}.analytics-actions{display:grid;gap:8px}.analytics-actions button{min-height:58px;display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8;padding:10px;text-align:left;color:#233127}.analytics-actions strong{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#28473d;color:#fff}.analytics-table{display:grid;grid-template-columns:76px repeat(5,minmax(96px,1fr));overflow-x:auto;border:1px solid #e2e6dd;border-radius:8px;background:#fff}.analytics-table>div{min-height:38px;display:flex;align-items:center;padding:8px;border-bottom:1px solid #eef1eb;font-size:13px}.analytics-head{color:#687266;font-weight:900;background:#fbfcf8}.danger-text{color:#b6424a;font-weight:900}.employee-productivity-list,.risk-shift-list{display:grid;gap:8px}.employee-productivity-list button,.risk-shift-list div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:10px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8;color:#233127;text-align:left}.employee-productivity-list small{grid-column:1 / -1}.employee-productivity-list b{color:#315f51}.risk-shift-list .danger-row,.peak-row.danger-row{border-color:#dfb6aa;background:#fff5ef}.attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.attendance-grid .panel:nth-child(4),.attendance-grid .panel:last-child{grid-column:1 / -1}.database-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.database-grid .panel:last-child{grid-column:1 / -1}.app-request-list,.receipt-list,.attendance-table{display:grid;gap:10px}.app-request-row,.receipt-row,.attendance-row{display:grid;align-items:center;gap:10px;padding:10px;border:1px solid #e1e6dd;border-radius:8px;background:#fbfcf8}.app-request-row{grid-template-columns:minmax(0,1fr) auto auto}.receipt-row{grid-template-columns:minmax(0,1fr) minmax(120px,auto) auto}.attendance-row{grid-template-columns:minmax(0,1fr) auto auto}.app-request-row div,.attendance-row div:first-child{display:grid;gap:3px}.app-request-row span,.receipt-row small,.attendance-row span,.payroll-summary span,.receipt-summary span{color:#687266;font-size:12px}.app-request-row b,.attendance-row b{min-width:68px;padding:5px 8px;border-radius:999px;background:#edf2e8;color:#315f51;text-align:center;font-size:12px}.app-request-row b[data-status=逾期],.attendance-row b[data-approved=false]{background:#ffe8df;color:#75341f}.app-request-row b[data-status=待提醒],.app-request-row b[data-status=已提醒]{background:#fff4d9;color:#7b5315}.app-request-row button,.receipt-row button{min-height:34px;border:1px solid #d8ddd3;border-radius:8px;background:#fff;padding:0 10px;font-weight:800}.receipt-summary,.payroll-summary{display:grid;gap:10px;padding:12px;margin-bottom:12px;border-radius:8px;background:#f7f8f4}.receipt-summary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.receipt-summary strong,.payroll-summary strong{font-size:28px}.payroll-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.payroll-summary div{display:grid;gap:3px}.scheduled-payroll-board,.actual-revenue-board{display:grid;gap:12px;padding:16px;margin-bottom:12px;border:1px solid #dfe5dc;border-radius:8px;background:#fff;min-width:0;max-width:100%;overflow:hidden}.scheduled-payroll-board>*,.actual-revenue-board>*{min-width:0}.scheduled-payroll-head,.actual-revenue-form{display:grid;grid-template-columns:minmax(210px,1fr) repeat(4,minmax(120px,.55fr)) auto;gap:10px;align-items:end}.scheduled-payroll-head{grid-template-columns:minmax(180px,1fr) auto;align-items:center}.scheduled-payroll-head div,.actual-revenue-form div{display:grid;gap:4px}.scheduled-payroll-head strong,.actual-revenue-form strong{font-size:20px}.scheduled-payroll-head b{font-size:26px;color:#12251c}.actual-revenue-form input{min-height:40px;border:1px solid #d6ddd2;border-radius:8px;padding:0 10px;background:#fbfcf8}.payroll-sheet-title{font-size:18px;font-weight:900}.payroll-sheet-meta{display:grid;grid-template-columns:repeat(8,max-content);gap:6px 14px;align-items:center;overflow-x:auto;padding:8px;border:1px solid #dfe5dc;border-radius:6px;background:#fbfcf8;white-space:nowrap;max-width:100%}.payroll-sheet-meta span{color:#687266;font-size:12px;font-weight:900}.payroll-sheet-meta b{font-size:13px}.sheet-section-title{margin-top:4px}.payroll-sheet-grid,.actual-month-table{display:grid;overflow:auto;width:100%;max-width:100%;min-width:0;border:1px solid #dfe5dc;border-radius:6px;background:#fff}.payroll-sheet-grid.employee-summary{grid-template-columns:minmax(92px,1fr) repeat(11,minmax(88px,.9fr))}.payroll-sheet-grid.shift-detail{max-height:360px;grid-template-columns:minmax(92px,1fr) repeat(11,minmax(92px,.95fr))}.actual-month-table{max-height:620px;grid-template-columns:minmax(92px,.8fr) repeat(8,minmax(112px,1fr))}.payroll-sheet-grid>div,.actual-month-table>div{min-height:34px;display:flex;align-items:center;gap:5px;padding:7px 8px;border-right:1px solid #edf0e8;border-bottom:1px solid #edf0e8;font-size:13px;white-space:nowrap}.payroll-sheet-grid .sheet-head,.actual-month-table .sheet-head{position:sticky;top:0;z-index:1;background:#f2f5ee;color:#425046;font-size:12px;font-weight:900}.actual-month-table input{width:100%;min-width:84px;height:30px;border:1px solid #d5ddd1;border-radius:6px;padding:0 8px;background:#fff;font-weight:800}.actual-month-table span{color:#687266;font-size:11px}.actual-status{justify-content:space-between;color:#315f51;font-weight:900}.actual-status button{width:26px;height:26px;display:grid;place-items:center;border:1px solid #e0d2cd;border-radius:7px;color:#8a351f;background:#fff}.scheduled-cost-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.scheduled-cost-grid div{display:grid;gap:4px;padding:10px;border-radius:8px;background:#f6f8f3}.scheduled-cost-grid span,.actual-revenue-row small{color:#687266;font-size:12px;font-weight:800}.scheduled-cost-grid strong{font-size:18px}.scheduled-payroll-table{display:grid;grid-template-columns:minmax(88px,1.2fr) repeat(5,minmax(72px,1fr));overflow-x:auto;border:1px solid #edf0e8;border-radius:8px}.scheduled-payroll-table>div{min-height:36px;display:flex;align-items:center;padding:8px;border-bottom:1px solid #edf0e8;font-size:13px}.scheduled-payroll-table .mini-table-head{color:#687266;font-size:12px;font-weight:900;background:#f7f8f4}.scheduled-payroll-table .strong{font-weight:900;color:#123328}.actual-revenue-list{display:grid;gap:8px}.actual-revenue-row{display:grid;grid-template-columns:minmax(160px,1.2fr) repeat(4,minmax(90px,1fr)) auto;gap:8px;align-items:center;padding:10px;border-radius:8px;background:#f8faf5}.actual-revenue-row[data-actual=true]{background:#f1f8f0;box-shadow:inset 3px 0 #6a9f77}.actual-revenue-row>div{display:grid;gap:3px}.actual-revenue-row span{color:#687266;font-size:12px}.actual-revenue-row button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #e0d2cd;border-radius:8px;color:#8a351f;background:#fff}.attendance-ledger{display:grid;grid-template-columns:minmax(120px,1.3fr) repeat(9,minmax(72px,1fr));overflow-x:auto;border:1px solid #e2e6dd;border-radius:8px;background:#fff;margin-bottom:12px}.ledger-head{min-width:72px;padding:10px 8px;color:#687266;font-size:12px;font-weight:900;border-bottom:1px solid #e9ede5}.ledger-row{display:contents;color:#233127}.ledger-row span,.ledger-row b{min-height:52px;display:flex;align-items:center;gap:7px;padding:8px;border-bottom:1px solid #eef1eb;background:#fff;font-size:13px}.ledger-row:hover span,.ledger-row:hover b{background:#f8faf4}.ledger-row abbr,.attendance-edit-identity abbr{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#c8cbc4;color:#fff;text-decoration:none;font-weight:900;flex:0 0 auto}.ledger-row b{color:#5f8f70}.ledger-row b[data-alert=true]{color:#b6424a}.attendance-calendar-modal{width:min(1180px,100%);max-height:min(850px,calc(100vh - 24px))}.attendance-kpis{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;margin-bottom:10px}.attendance-kpis div{display:grid;gap:2px;padding:10px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8}.attendance-kpis strong{font-size:20px}.attendance-kpis span{color:#687266;font-size:12px}.attendance-month-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:1px;background:#dfe5dc;border:1px solid #dfe5dc;overflow:auto}.attendance-day{min-height:112px;display:grid;align-content:start;gap:5px;padding:6px;background:#fff}.attendance-day-head{display:flex;justify-content:space-between;gap:6px;color:#4d5a50;font-size:12px}.attendance-day-head span{color:#9a341d}.attendance-chip,.empty-attendance{display:grid;gap:2px;min-height:48px;border:1px solid #d9e1d6;border-radius:7px;background:#f8faf4;padding:6px;text-align:left;color:#233127}.attendance-chip.ok{border-color:#b9dbc4;background:#eff8f1}.attendance-chip.warn{border-color:#dfb6aa;background:#fff5ef}.attendance-chip.missing{border:1px dashed #b6424a;background:#fff7f7}.attendance-chip span,.attendance-chip em,.attendance-chip small,.empty-attendance{color:#687266;font-size:11px;font-style:normal}.attendance-chip small{color:#b6424a;font-weight:800}.attendance-edit-modal{width:min(620px,100%)}.attendance-edit-identity{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:10px;border-radius:8px;background:#fbfcf8;margin-bottom:10px}.attendance-edit-identity div{display:grid;gap:2px}.attendance-edit-identity span{color:#687266;font-size:12px}.attendance-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attendance-edit-form label{display:grid;gap:5px}.attendance-edit-form input,.attendance-edit-form select,.attendance-edit-form textarea{min-height:38px;border:1px solid #d9dfd5;border-radius:8px;padding:8px 10px;background:#fff}.attendance-edit-form small{color:#b6424a;font-weight:800}.attendance-edit-form .note-field{grid-column:1 / -1}.attendance-edit-form textarea{min-height:90px;resize:vertical}.attendance-quick-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.attendance-quick-actions button{min-height:34px;border:1px solid #d9dfd5;border-radius:8px;background:#fff;padding:0 10px;font-weight:800}.payroll-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.payroll-steps button{min-height:48px;display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:center;border:1px solid #dfe5dc;border-radius:8px;background:#fff;padding:8px 10px;color:#233127;text-align:left;font-weight:900}.payroll-steps button.active{border-color:#cf7e2a;background:#fff8ed}.payroll-steps b{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#cf7e2a;color:#fff}.payroll-settlement-table{display:grid;grid-template-columns:minmax(130px,1.3fr) repeat(8,minmax(86px,1fr));overflow-x:auto;border:1px solid #e2e6dd;border-radius:8px;background:#fff}.settlement-head,.settlement-cell{min-height:44px;display:flex;align-items:center;gap:7px;padding:8px;border-bottom:1px solid #eef1eb;font-size:13px}.settlement-head{color:#687266;font-weight:900}.settlement-cell{color:#5f8f70;font-weight:800}.settlement-cell.strong{color:#315f51;font-size:15px}.settlement-cell.danger{color:#b6424a}.settlement-cell.employee-name{color:#233127}.settlement-employee-button{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#233127;padding:0;font-weight:900}.settlement-employee-button small{color:#cf7e2a;font-size:11px}.settlement-cell abbr{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#c8cbc4;color:#fff;text-decoration:none}.settlement-cell button{min-height:32px;border:1px solid #d9dfd5;border-radius:8px;background:#fff;padding:0 10px;font-weight:900}.settlement-cell button[data-confirmed=true]{border-color:#b9dbc4;background:#eff8f1;color:#3f7d55}.settlement-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.payroll-detail-modal{width:min(1040px,100%);max-height:min(850px,calc(100vh - 24px))}.payroll-detail-summary{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px;margin-bottom:12px}.payroll-detail-summary div{display:grid;gap:3px;padding:10px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8}.payroll-detail-summary .total{background:#eff8f1;border-color:#b9dbc4}.payroll-detail-summary span,.payroll-adjustment-lines span{color:#687266;font-size:12px}.payroll-detail-summary strong{color:#315f51;font-size:18px}.payroll-detail-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.payroll-detail-form label{display:grid;gap:5px}.payroll-detail-form input,.payroll-detail-form textarea,.payroll-add-item input,.payroll-add-item select{min-height:38px;border:1px solid #d9dfd5;border-radius:8px;padding:8px 10px;background:#fff}.payroll-detail-form .note-field{grid-column:1 / -1}.payroll-detail-form textarea{min-height:70px;resize:vertical}.payroll-category-board{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px;margin-top:10px}.payroll-category-card{display:grid;gap:6px;padding:9px;border:1px solid #dfe5dc;border-radius:8px;background:#f8faf4}.payroll-category-card span{display:flex;justify-content:space-between;color:#4d5a50;font-size:12px;font-weight:900}.payroll-category-card small{width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:#8b9389;color:#fff;font-size:10px}.payroll-category-card.negative{background:#fff7f4}.payroll-add-item{display:grid;grid-template-columns:auto 110px 150px 120px minmax(160px,1fr) 80px auto;gap:8px;align-items:center;margin:12px 0;padding:10px;border:1px solid #e2e6dd;border-radius:8px;background:#fbfcf8}.payroll-recurring{min-height:38px;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:900}.payroll-add-item button{min-height:38px;border:1px solid #d9dfd5;border-radius:8px;background:#fff;padding:0 10px;font-weight:900}.payroll-adjustment-lines{display:grid;gap:6px}.payroll-adjustment-lines div{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #edf0e9;border-radius:8px;background:#fff}.adjustment-form,.history-filter{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}.adjustment-form input,.adjustment-form select,.history-filter input,.history-filter select{min-height:38px;border:1px solid #cfd7cb;border-radius:8px;padding:0 10px;background:#fff}.adjustment-list,.history-list,.change-log-list{display:grid;gap:9px}.adjustment-row,.history-row,.change-log-row{display:grid;gap:4px;padding:10px;border:1px solid #e1e6dd;border-radius:8px;background:#fbfcf8}.history-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.history-row button{min-height:34px;border:1px solid #d8ddd3;border-radius:8px;background:#fff;padding:0 10px;font-weight:800}.adjustment-row span,.history-row span,.change-log-row span,.change-log-row small{color:#687266;font-size:12px}.db-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.db-summary div{display:grid;gap:3px;padding:12px;border-radius:8px;background:#f7f8f4}.db-summary strong{font-size:26px}.db-summary span{color:#687266;font-size:12px}.report-range-controls{display:grid;grid-template-columns:auto minmax(150px,1fr) minmax(150px,1fr);align-items:end;gap:10px;padding:12px;margin-bottom:12px;border:1px solid #dde3d8;border-radius:8px;background:#fbfcf8}.report-range-controls label{display:grid;gap:6px}.report-range-controls span{color:#52604f;font-size:12px;font-weight:800}.report-range-controls input{width:100%;min-height:38px;border:1px solid #cfd7cb;border-radius:8px;background:#fff;padding:0 10px}.module-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px;align-items:start}.workflow-item{justify-content:flex-start}.workflow-item svg{color:#315f51}.variance-chart{height:168px;display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end}.swap-list{display:grid;gap:10px}.swap-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;border-radius:8px;background:#f7f8f4}.swap-row div:first-child{display:grid;gap:3px}.swap-row span{color:#687266;font-size:12px}.swap-row b{color:#315f51;white-space:nowrap}.row-actions{display:flex;gap:6px}.mini-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:10px;border-radius:8px;background:#e9ede4}.mini-tabs button{min-height:30px;border:0;border-radius:6px;background:transparent;padding:0 12px}.mini-tabs button.active{background:#fff;font-weight:800}.bar-group{height:100%;display:grid;grid-template-rows:1fr 18px;gap:6px;text-align:center;color:#6a7368}.bars{height:100%;display:flex;gap:4px;align-items:end;justify-content:center}.bars span{width:14px;border-radius:5px 5px 0 0;min-height:18px}.planned{background:#9db7aa}.actual{background:#e8b86d}.budget-meter{display:grid;gap:16px}.meter-line{height:16px;background:#e6eadf;border-radius:999px;overflow:hidden}.meter-line span{display:block;height:100%;background:linear-gradient(90deg,#6ba27d,#e8b86d,#d76b4b)}.budget-values{display:grid;gap:4px}.budget-values strong{font-size:34px}.budget-values span{color:#657061}.employee-management,.store-management,.time-management{min-width:0}.employee-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.employee-form,.store-form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;padding:14px;margin-bottom:16px;border:1px solid #dbe1d6;border-radius:8px;background:#fbfcf8}.shift-form{display:grid;grid-template-columns:1.1fr repeat(4,minmax(120px,.8fr)) minmax(110px,.7fr);gap:12px;padding:14px;margin-bottom:16px;border:1px solid #dbe1d6;border-radius:8px;background:#fbfcf8}.shift-form label{display:grid;gap:6px}.shift-form label span{color:#536050;font-size:12px;font-weight:800}.shift-form input,.shift-form select{width:100%;min-height:38px;border:1px solid #cfd7cb;border-radius:8px;background:#fff;padding:0 10px;outline:0}.shift-duration{min-height:62px;display:grid;align-content:center;gap:3px;padding:8px 10px;border-radius:8px;background:#f1f4ed}.shift-duration strong{font-size:20px}.shift-duration span{color:#687266;font-size:12px}.shift-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.shift-template-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:12px;border:1px solid #dfe5da;border-radius:8px;background:#fff}.shift-template-card div:first-child{display:grid;gap:3px}.shift-template-card strong{font-size:16px}.shift-template-card span,.shift-template-card small{color:#687266}.shift-template-card small{grid-column:1}.shift-template-card .row-actions{grid-row:1 / span 2;grid-column:2}.detail-summary{display:grid;gap:4px;padding:9px 12px;margin-bottom:8px;border-radius:8px;background:#f7f8f4}.detail-summary strong{font-size:23px}.detail-summary span{color:#687266}.employee-shift-list{display:grid;gap:10px}.employee-shift-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:8px;background:#fbfcf8;border:1px solid #e1e6dd}.employee-shift-row div{display:grid;gap:3px}.employee-shift-row span{color:#687266;font-size:12px}.employee-shift-row button{border:0;border-radius:6px;background:#75341f;color:#fff;padding:7px 10px;font-weight:800}.employee-shift-row.problem{border-color:#d76b4b;background:#fff1e9}.warning-focus{display:grid;gap:6px;padding:12px;margin-bottom:12px;border:1px solid #d76b4b;border-radius:8px;background:#fff5ef}.warning-focus strong{color:#75341f}.warning-focus span,.warning-focus small{color:#694333}.warning-focus .row-actions button{width:auto;padding:0 10px}.top-date-button,.view-nav-button{min-height:40px}.employee-adjust-modal .employee-shift-list{max-height:142px;overflow:auto;padding-right:4px}.roster-edit-modal .roster-skill-field{grid-column:1 / -1;margin:0}.roster-edit-modal .roster-skill-field>div{grid-template-columns:repeat(auto-fit,minmax(86px,1fr))}.employee-adjust-modal{width:min(1120px,100%);max-height:min(820px,calc(100vh - 24px))}.personal-add-shift{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.6fr);gap:8px 12px;padding:10px;margin-bottom:8px;border:1px solid #dfe5dc;border-radius:8px;background:#fbfcf8}.personal-add-shift div:first-child{display:grid;gap:3px}.personal-add-shift span,.personal-add-shift small,.board-title span{color:#687266;font-size:12px}.personal-add-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) auto;gap:8px;align-items:center}.personal-add-controls select{height:40px;border:1px solid #d9dfd5;border-radius:8px;background:#fff;padding:0 10px}.inline-warning{color:#9a341d!important;font-weight:800}.inline-ok{color:#376646!important;font-weight:800}.personal-month-board{display:grid;gap:6px;margin-top:8px}.board-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:4px}.board-title>div:first-child{display:grid;gap:2px}.compact-tabs{min-width:126px}.personal-day-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:6px;align-items:stretch;padding:6px;border:1px solid #e1e6dd;border-radius:8px;background:#fff}.personal-day-label{display:grid;align-content:center;gap:2px}.personal-daytype-actions{justify-content:flex-start;margin-top:4px}.personal-day-label span,.personal-day-label small{color:#687266;font-size:12px}.personal-shift-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:5px}.personal-shift-buttons button{min-height:44px;display:grid;gap:2px;text-align:left;border:1px solid #dbe2d7;border-radius:8px;background:#f8faf4;color:#233127;padding:6px 7px}.personal-shift-buttons button.active{border-color:#28473d;background:#28473d;color:#fff}.personal-shift-buttons button:disabled{opacity:.45;cursor:not-allowed}.personal-shift-buttons span{font-size:10px;color:inherit}.compact-shift-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.compact-shift-list .employee-shift-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:7px 8px}.compact-shift-list .row-actions{display:grid;grid-template-columns:30px 30px;gap:4px}.compact-shift-list .row-actions button{width:30px;min-width:0;padding:0;overflow:hidden;white-space:nowrap}.date-modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));gap:8px}.date-picker-grid button{min-height:66px;display:grid;place-items:center;gap:3px;border:1px solid #dbe2d7;border-radius:8px;background:#fbfcf8;color:#233127}.date-picker-grid button.active{border-color:#e8b86d;background:#fff7e7;box-shadow:inset 0 0 0 2px #e8b86d73}.date-picker-grid span{color:#687266;font-size:12px}.date-picker-grid small{color:#9a341d;font-size:11px;font-weight:800}.cost-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cost-breakdown div{display:grid;gap:4px;padding:12px;border:1px solid #e1e6dd;border-radius:8px;background:#fbfcf8}.cost-breakdown span{color:#687266;font-size:12px;font-weight:800}.cost-breakdown strong{font-size:20px}.cost-breakdown .total{grid-column:1 / -1;background:#fff7e7;border-color:#e8b86d}.public-schedule{display:grid;gap:16px}.public-hero{min-height:132px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px;border-radius:8px;background:#1f2a24;color:#fff}.public-hero h3{font-size:28px;margin:4px 0}.public-hero span{color:#d5ddce}.public-day-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:10px;overflow-x:auto}.app-preview-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}.app-tabs{margin:10px 0}.qr-card{display:grid;justify-items:center;gap:8px;padding:14px;border:1px solid #dde1d8;border-radius:8px;background:#fbfcf8;text-align:center}.qr-card span{color:#687266;font-size:12px}.fake-qr{width:118px;height:118px;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:10px;border:8px solid #fff;background:#eef2e9;box-shadow:0 0 0 1px #dce3d7}.fake-qr span{background:#fff}.fake-qr span[data-dark=true]{background:#1f2a24}.coworker-list{display:grid;gap:8px}.coworker-row{display:grid;gap:4px;padding:10px;border:1px solid #e1e6dd;border-radius:8px;background:#fff}.coworker-row span,.coworker-row small{color:#687266;font-size:12px}.mobile-payroll-card{grid-column:1 / -1;max-width:360px;display:grid;gap:8px;justify-self:center;border-radius:18px;background:#fff;border:1px solid #dfe5dc;padding:14px;box-shadow:0 10px 24px #2331271f}.mobile-payroll-head{display:grid;gap:4px;padding-bottom:8px;border-bottom:1px solid #edf0e9}.mobile-payroll-head strong{font-size:18px}.mobile-payroll-head span{color:#5f8f70;font-weight:900}.mobile-payroll-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:12px}.mobile-payroll-tabs b{color:#c44719}.mobile-payroll-tabs span{color:#5f8f70}.mobile-payroll-line{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #f0f2ed}.mobile-payroll-line strong{color:#5f8f70}.mobile-payroll-line.negative strong{color:#b6424a}.mobile-adjustment-note{display:grid;gap:4px;padding-top:6px;color:#687266;font-size:12px}.public-day{min-width:180px;display:grid;align-content:start;gap:10px;padding:12px;border:1px solid #dde1d8;border-radius:8px;background:#fff}.public-day h4{margin:0;font-size:18px}.public-day>small{color:#687266;margin-top:-7px}.public-shift{display:grid;gap:6px;padding:10px;border-radius:8px;background:#f7f8f4}.public-shift>div:not(.public-shift-time-group),.public-shift-time-group>div{display:flex;justify-content:space-between;gap:8px;align-items:center}.public-shift-time-group{display:grid;gap:4px;padding:0 0 7px;border-bottom:1px solid #e6ebdf}.public-shift-time-group:last-child{padding-bottom:0;border-bottom:0}.public-shift span,.public-shift p{color:#687266;font-size:12px}.public-shift p{margin:0;line-height:1.5}.employee-query{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.employee-query strong{color:#253026}.personal-schedule-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;max-height:360px;overflow:auto}.personal-shift{display:grid;gap:4px;padding:10px;border:1px solid #e1e6dd;border-radius:8px;background:#fbfcf8}.personal-shift span{color:#687266;font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#151d187a}.date-picker-backdrop{z-index:35}.detail-modal{width:min(760px,100%);max-height:min(780px,calc(100vh - 40px));overflow:auto;display:grid;gap:14px;padding:18px;border-radius:8px;background:#fff;box-shadow:0 24px 80px #00000047}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-head h3{font-size:24px;margin:3px 0}.modal-head span{color:#687266}.modal-head button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #dce1d7;background:#fff;border-radius:8px}.modal-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.modal-metrics div{display:grid;gap:3px;padding:12px;border-radius:8px;background:#f7f8f4}.modal-metrics strong{font-size:20px}.modal-metrics span{color:#687266;font-size:12px}.modal-picker{max-height:330px}.employee-form label,.store-form label{display:grid;gap:6px}.employee-form label span,.store-form label span,.choice-group legend{color:#536050;font-size:12px;font-weight:800}.employee-form input,.employee-form select,.store-form input,.store-form select{width:100%;min-height:38px;border:1px solid #cfd7cb;border-radius:8px;background:#fff;padding:0 10px;outline:0}.employee-form input:focus,.employee-form select:focus,.store-form input:focus,.store-form select:focus{border-color:#5f8f70;box-shadow:0 0 0 3px #5f8f7029}.choice-group{grid-column:span 2;border:0;padding:0;margin:0}.choice-group div{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}.choice-group label{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border:1px solid #d8ddd3;border-radius:8px;background:#fff}.roster-edit-modal{width:min(560px,100%)}.roster-edit-form{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center}.roster-edit-form label{display:contents}.roster-edit-form span{color:#687266;font-weight:800}.roster-edit-form input,.roster-edit-form select,.roster-edit-form textarea{width:100%;border:1px solid #d9dfd5;border-radius:8px;background:#fff;color:#233127;padding:0 10px}.roster-edit-form input,.roster-edit-form select{height:40px}.roster-edit-form textarea{min-height:104px;padding-top:10px;resize:vertical}.time-pair>div{display:grid;grid-template-columns:1fr 24px 1fr;gap:8px;align-items:center}.time-pair b{text-align:center}.suffix-input{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center}.suffix-input small{color:#687266;font-weight:800}.edit-context{display:grid;gap:4px;margin-top:12px;padding:10px;border-radius:8px;background:#f7f8f4}.edit-context span{color:#687266;font-size:12px}.danger-action{color:#9a341d}.choice-group label.checked{border-color:#5f8f70;background:#edf6ee;color:#244b31}.choice-group input{width:15px;height:15px}.compact-choice{grid-column:span 2}.availability-blocks{grid-column:1 / -1;display:grid;gap:10px;padding:12px;border:1px solid #dbe1d6;border-radius:8px}.availability-blocks legend{color:#536050;font-size:12px;font-weight:800}.availability-blocks>span{color:#687266;font-size:12px}.availability-block-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(90px,.7fr) minmax(90px,.7fr) 38px;gap:8px;align-items:center}.availability-block-row input{min-height:38px;border:1px solid #cfd7cb;border-radius:8px;padding:0 10px}.availability-block-row button{width:38px;height:38px;border:1px solid #d8ddd3;border-radius:8px;background:#fff}.form-actions{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap}.employee-table,.store-table{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(180px,1.35fr) minmax(170px,1fr) 90px minmax(170px,1fr) 92px;overflow-x:auto;border:1px solid #e0e4db;border-radius:8px}.store-table{grid-template-columns:minmax(150px,1.1fr) minmax(100px,.7fr) minmax(120px,.8fr) minmax(130px,.9fr) minmax(180px,1.2fr) 110px}.table-head,.table-cell{min-width:0;padding:10px;border-right:1px solid #e6e9e1;border-bottom:1px solid #e6e9e1}.table-head{background:#f5f7f2;font-size:12px;color:#566250;font-weight:900}.table-cell{display:grid;gap:4px;align-content:center;font-size:13px}.table-cell.strong{font-size:15px;font-weight:900}.table-cell span{color:#687266}.peak-band{background:#fff;border:1px solid #dde1d8;border-radius:8px;padding:16px}.peak-list.wide{grid-template-columns:repeat(4,minmax(0,1fr))}button.peak-row{border:0;text-align:left}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;max-height:none}.nav-list{grid-template-columns:repeat(5,minmax(130px,1fr));overflow-x:auto}.support-panel{margin-top:0}.main-grid,.bottom-grid,.module-grid,.attendance-grid,.database-grid,.validation-grid{grid-template-columns:1fr}.attendance-grid .panel:last-child,.database-grid .panel:last-child{grid-column:auto}.shift-form,.metric-grid,.rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.workspace{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.topbar h2{font-size:23px}.metric-grid{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.nav-list,.shift-form,.employee-form,.store-form,.rule-grid{grid-template-columns:1fr}.view-toolbar,.closure-toolbar,.compliance-actions{align-items:stretch;flex-direction:column}.view-toolbar .segmented,.view-toolbar .select-label,.closure-toolbar .select-label,.closure-toolbar button,.view-nav-button,.view-summary,.compliance-actions button{width:100%}.closure-toolbar{grid-template-columns:1fr}.date-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.date-modal-actions,.cost-breakdown,.personal-add-controls,.personal-day-row{grid-template-columns:1fr}.board-title{align-items:flex-start;flex-direction:column}.app-request-row,.receipt-row,.attendance-row,.open-shift-row,.task-row,.market-row,.receipt-summary,.payroll-summary,.report-range-controls,.adjustment-form,.history-filter,.db-summary,.app-preview-grid{grid-template-columns:1fr}.choice-group,.compact-choice,.availability-blocks,.form-actions{grid-column:1}.availability-block-row{grid-template-columns:1fr}.month-weekdays,.month-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.month-weekdays{display:none}.month-day-card{min-height:120px}}@media(hover:none)and (pointer:coarse){button,.nav-item,.ghost,.solid,.outline,.select-label,.segmented button,.row-actions button,.stepper button{min-height:44px}}@media(min-width:721px)and (max-width:1024px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:18px 12px;gap:18px}.brand-block{align-items:flex-start}.brand-block h1{font-size:17px}.nav-list{grid-template-columns:1fr;overflow:visible}.nav-item{min-height:46px;grid-template-columns:22px minmax(0,1fr)}.nav-item svg:last-child{display:none}.support-panel{margin-top:auto;padding:12px}.workspace{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.top-actions{justify-content:flex-start;width:100%}.main-grid,.bottom-grid,.module-grid,.attendance-grid,.database-grid,.validation-grid,.labor-analytics-grid{grid-template-columns:1fr}.metric-grid,.analytics-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-week,.schedule-grid,.employee-table,.store-table,.analytics-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.month-roster-board{display:flex;gap:12px;max-width:100%;min-width:0;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.roster-week{flex:0 0 1000px;max-width:none;scroll-snap-align:start}}@media(max-width:720px){body{min-width:0}.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:30;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;gap:10px;border-bottom:1px solid #314137;box-shadow:0 8px 22px #0d161038}.brand-block{gap:10px}.brand-mark{width:38px;height:38px}.brand-block h1{font-size:17px}.brand-block p{font-size:12px}.nav-list{display:flex;gap:8px;margin:0 -12px;padding:0 12px 4px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.nav-item{flex:0 0 auto;width:auto;min-width:116px;min-height:42px;grid-template-columns:18px auto;scroll-snap-align:start;padding:9px 10px;white-space:nowrap}.nav-item svg:last-child{display:none}.support-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0;border:0;margin:0}.support-panel p,.support-panel strong{display:none}.support-panel .small{min-height:40px;padding:0 8px}.workspace{padding:14px 12px calc(20px + env(safe-area-inset-bottom));gap:14px}.top-actions{width:100%;justify-content:flex-start}.top-actions>*,.top-actions .select-label,.top-actions .segmented{width:100%}.top-actions .segmented{display:grid;grid-template-columns:repeat(3,1fr)}.metric-card{min-height:116px;padding:14px}.metric-card strong{font-size:24px}.panel,.planner-panel{padding:12px}.panel-actions,.employee-toolbar{display:grid;grid-template-columns:1fr;width:100%}.panel-actions button,.employee-toolbar button{width:100%}.view-toolbar{display:grid;grid-template-columns:1fr;gap:8px}.view-toolbar .segmented{display:grid;grid-template-columns:repeat(3,1fr)}.closure-weekdays{grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-grid{grid-template-columns:94px repeat(var(--visible-days, 7),minmax(118px,64vw))!important;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.grid-corner,.slot-label{position:sticky;left:0;z-index:3}.grid-day{min-width:118px}.shift-cell{min-height:102px}.month-roster-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.roster-week{min-width:min(720px,185vw);scroll-snap-align:start}.roster-grid{grid-template-columns:126px repeat(7,minmax(88px,1fr))!important}.roster-staff-head,.roster-employee{position:sticky;left:0;z-index:4}.roster-employee{grid-template-columns:30px 1fr 22px}.roster-employee abbr{width:28px;height:28px}.roster-employee strong,.roster-employee span,.roster-employee small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-date-head strong{font-size:12px}.roster-date-head span,.roster-date-head small{font-size:10px}.roster-shift{min-height:54px;padding:7px}.employee-table,.store-table,.analytics-table,.settlement-sheet,.scheduled-payroll-sheet,.actual-revenue-sheet{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.employee-table{grid-template-columns:120px 170px 170px 150px 180px 96px}.store-table{grid-template-columns:150px 100px 118px 130px 180px 108px}.analytics-kpi-grid,.labor-analytics-grid{grid-template-columns:1fr}.modal-backdrop{place-items:end center;padding:10px}.detail-modal{width:100%;max-height:calc(100vh - 20px);border-radius:12px 12px 8px 8px;padding:14px}.modal-head h3{font-size:20px}.modal-metrics{grid-template-columns:1fr}.modal-picker{max-height:45vh;overflow:auto}}
