.schedule-layout .work-calendar{padding:0 16px 18px}
.schedule-layout .work-calendar-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0 10px}
.schedule-layout .work-calendar-guide b{font-size:14px;color:#214d3c}
.schedule-layout .work-calendar-guide p{margin:4px 0;color:#708175;font-size:12px}
.schedule-layout .work-touch-toggle{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;flex:none;white-space:nowrap;border:1px solid #b9cdc0;border-radius:9px;padding:10px 14px;background:#f3f7f1;color:#205e4a;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.schedule-layout .work-touch-toggle input{appearance:auto;-webkit-appearance:checkbox;accent-color:#205e4a;width:26px;height:26px;min-width:26px;margin:0;cursor:pointer;touch-action:manipulation}
.schedule-layout .work-touch-toggle span{font-size:14px;font-weight:600}
.schedule-layout .work-touch-toggle strong{font-size:12px;font-weight:500;color:#64786c}
.schedule-layout .work-touch-toggle:has(input:checked){background:#e1f1e6;border-color:#43855e}
.schedule-layout .work-touch-toggle:has(input:checked) strong{color:#205e4a}
.schedule-layout .work-touch-toggle:focus-within{outline:3px solid #a4c5b3;outline-offset:2px}
.schedule-layout .work-mobile-help,.schedule-layout .work-day-tabs{display:none}
.schedule-layout .work-calendar-feedback{min-height:24px;font-size:12px;margin:0 0 10px;color:#2e6750}
.schedule-layout .work-calendar-feedback.error{color:#a23d37;background:#fff0ef;padding:8px;border-radius:6px}
.schedule-layout .work-calendar-scroll{overflow:auto;max-height:660px;border:1px solid #dfe7e1;border-radius:9px;overscroll-behavior:contain;scrollbar-gutter:stable}
.schedule-layout .work-calendar-table{display:grid;grid-template-columns:60px repeat(var(--work-columns),minmax(158px,1fr));min-width:calc(60px + var(--work-columns)*158px);padding-bottom:18px;background:#fff}
.schedule-layout .work-column{min-width:0;border-left:1px solid #dfe7e1}
.schedule-layout .work-column-head{height:104px;position:sticky;top:0;z-index:5;background:#f7f9f5;border-bottom:1px solid #dfe7e1;padding:10px 9px;display:flex;flex-direction:column;gap:2px;font-size:11px;overflow:hidden}
.schedule-layout .work-column-head>b{font-size:13px;color:#294b3b;margin-bottom:2px}
.schedule-layout .work-column-head>b span{font-variant-numeric:tabular-nums;margin-left:4px}
.schedule-layout .work-column-head>small{font-size:10px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#738174}
.schedule-layout .work-column.is-today .work-column-head{background:#e7f2e9;box-shadow:inset 0 3px #2c7353}
.schedule-layout .work-axis{position:sticky;left:0;z-index:8;background:#fff;color:#7c8b80;font-size:11px}
.schedule-layout .work-axis .work-column-head{justify-content:center;align-items:center}
.schedule-layout .work-axis-body{height:calc(var(--work-slots)*28px);position:relative}
.schedule-layout .work-axis-body>span{position:absolute;left:0;width:100%;text-align:right;padding:1px 8px 0 0;line-height:16px;transform:translateY(-8px);font-variant-numeric:tabular-nums}
.schedule-layout .work-axis-body>span:first-child{transform:none}
.schedule-layout .work-lane{height:calc(var(--work-slots)*28px);position:relative;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.schedule-layout .work-time-cell{display:block;flex:none;width:100%;height:28px;min-height:28px;border:0;border-radius:0;border-bottom:1px solid #e9eeea;background:repeating-linear-gradient(135deg,#f2f4f2,#f2f4f2 4px,#f6f7f5 4px,#f6f7f5 8px);padding:0;opacity:1}
.schedule-layout .work-time-cell:nth-child(even){border-bottom-color:#dbe4dc}
.schedule-layout .work-time-cell.available{background:#fff;cursor:crosshair}
.schedule-layout .work-time-cell.available:hover{background:#ecf4ee}
.schedule-layout .work-time-cell:disabled{opacity:1}
.schedule-layout .work-time-cell:focus-visible{outline:2px solid #267455;outline-offset:-2px;background:#dceee3}
.schedule-layout .work-calendar-booking,.schedule-layout .work-calendar-draft,.schedule-layout .work-drag-preview{position:absolute;left:3px;right:3px;border-radius:5px;min-height:24px;overflow:hidden;font-size:11px;line-height:1.4}
.schedule-layout .work-calendar-booking{z-index:2;background:#e5f2ea;border:1px solid #bad9c5;border-left:3px solid #62a77c;color:#285b40;padding:5px 6px;cursor:default}
.schedule-layout .work-calendar-booking.pending{background:#fff1db;border-color:#edcf9d;color:#916522}
.schedule-layout .work-calendar-booking>b,.schedule-layout .work-calendar-booking>span{display:block}
.schedule-layout .work-calendar-booking small{font-size:10px;color:inherit;margin-top:3px}
.schedule-layout .work-calendar-draft{z-index:3;background:#dfeeff;border:1px solid #4f81bc;color:#214e84;display:flex;flex-direction:column}
.schedule-layout .work-calendar-draft button{color:inherit}
.schedule-layout .work-draft-body{display:flex;flex:1;flex-direction:column;justify-content:center;align-items:flex-start;min-height:0;padding:0 6px;overflow:hidden;cursor:grab;font-size:11px;line-height:1.3}
.schedule-layout .work-draft-body>b{font-size:11px;white-space:nowrap}
.schedule-layout .work-draft-body>span{font-size:11px;white-space:nowrap}
.schedule-layout .work-resize{flex:none;height:9px;min-height:9px;width:100%;font-size:12px;line-height:8px;padding:0;cursor:ns-resize;background:#bcd8fa;color:#315e91}
.schedule-layout .work-calendar-draft:has(.work-draft-body:focus-visible){outline:2px solid #215eab;outline-offset:2px}
.schedule-layout .work-drag-preview{z-index:4;pointer-events:none;background:#cfe4ffec;border:2px solid #3d76b9;color:#194b85;padding:5px;font-weight:600;box-shadow:0 2px 10px #234c761c}
.schedule-layout .work-drag-preview.invalid{background:#ffe6e4ed;border-color:#c65b55;color:#983e37}
.schedule-layout .work-lane.is-dragging{cursor:crosshair}
.schedule-layout .work-calendar.is-touch-select .work-lane.can-select{touch-action:none}
.work-time-dialog{border:1px solid #d7e2d9;border-radius:16px;padding:24px;color:#214135;width:min(440px,calc(100vw - 28px));box-sizing:border-box;box-shadow:0 20px 90px #173b3a33;max-height:90dvh;overflow:auto}
.work-time-dialog::backdrop{background:#173b3a66}
.work-time-dialog .work-editor-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:20px;align-items:flex-start}
.work-time-dialog .work-editor-head h2{font-size:20px;margin:6px 0 0}
.work-time-dialog button{border:1px solid #d6e2d9;border-radius:7px;background:#fff;padding:10px 14px;color:#254b3a;min-height:44px}
.work-time-dialog button.primary{background:#205e4a;border-color:#205e4a;color:white}
.work-time-dialog .work-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.work-time-dialog label{font-size:13px;font-weight:600;display:block}
.work-time-dialog select{width:100%;min-height:46px;margin-top:8px;border:1px solid #cbded0;border-radius:7px;background:#fff;font-size:16px;padding:8px;color:#214135}
.work-time-dialog [data-error]{color:#a23d37;font-size:13px}
.work-time-dialog .work-editor-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin:20px 0 12px}
.work-time-dialog [data-work-remove]{margin-right:auto;color:#a14d46}
.work-time-dialog small{font-size:11px;letter-spacing:0}
@media(max-width:680px){
 .schedule-layout .work-calendar{padding:0 10px 12px}
 .schedule-layout .work-calendar-guide{align-items:stretch;flex-direction:column;gap:10px}
 .schedule-layout .work-touch-toggle{width:100%;min-height:56px}
 .schedule-layout .work-touch-toggle strong{margin-left:auto}
 .schedule-layout .work-calendar-guide b{font-size:13px}
 .schedule-layout .work-calendar-guide p{font-size:11px}
 .schedule-layout .work-mobile-help{display:block;color:#687a6b;font-size:11px;margin:0 0 12px}
 .schedule-layout .work-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:0 0 10px}
 .schedule-layout .work-day-tabs button{font-size:11px;border-radius:7px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#687c6c;padding:3px}
 .schedule-layout .work-day-tabs button b{font-size:17px}
 .schedule-layout .work-day-tabs button[aria-pressed=true]{background:#205e4a;color:white}
 .schedule-layout .work-calendar-table{grid-template-columns:48px repeat(var(--work-mobile-columns),minmax(184px,1fr));min-width:calc(48px + var(--work-mobile-columns)*184px)}
 .schedule-layout .work-column:not(.is-day){display:none}
 .schedule-layout .work-calendar-scroll{max-height:590px}
 .schedule-layout .work-column-head{height:100px}
 .schedule-layout .work-column-head>b{font-size:14px}
 .schedule-layout .work-column-head>small{font-size:11px}
 .schedule-layout .work-lane,.schedule-layout .work-axis-body{height:calc(var(--work-slots)*36px)}
 .schedule-layout .work-time-cell{height:36px;min-height:36px}
 .schedule-layout .work-calendar-booking,.schedule-layout .work-draft-body>b,.schedule-layout .work-draft-body>span{font-size:12px}
 .schedule-layout .work-resize{height:12px;min-height:12px;line-height:11px}
}
