.schedule-shell{--sch-ink:#171a21;--sch-red:#f02d3a;--sch-green:#168a55;background:#fff;border:1px solid #dfe3e8;border-radius:18px;box-shadow:0 18px 42px rgba(32,43,56,.08);overflow:hidden}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 20px;border-bottom:1px solid #e9ebee}.schedule-eyebrow{color:var(--sch-red);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.schedule-toolbar h2{font-size:28px;margin:5px 0 0}.schedule-toolbar-actions,.schedule-employees{display:flex;gap:8px;align-items:center}.schedule-toolbar-actions button,.schedule-employees button{border:1px solid #dce1e7;background:#fff;border-radius:10px;min-height:42px;padding:0 14px;font:inherit;font-weight:700;color:var(--sch-ink);cursor:pointer}.schedule-toolbar-actions button:hover,.schedule-employees button:hover{border-color:#aeb6c1}.schedule-toolbar-actions .schedule-approve-all{background:var(--sch-ink);border-color:var(--sch-ink);color:#fff}.schedule-approve-all b{background:var(--sch-red);border-radius:99px;padding:2px 7px;margin-left:6px}.schedule-employees{padding:14px 26px;border-bottom:1px solid #e9ebee;overflow:auto}.schedule-employees button{display:flex;align-items:center;gap:9px;white-space:nowrap}.schedule-employees button.active{background:#fff2f3;border-color:#ff7b84;color:#b91c29}.schedule-employees kbd,.schedule-submit kbd{font-family:inherit;background:#1d2128;color:#fff;border-radius:6px;padding:3px 7px}.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:600px}.schedule-calendar{min-width:0;border-right:1px solid #e9ebee}.schedule-weekdays,.schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.schedule-weekdays b{height:42px;display:flex;align-items:center;padding:0 10px;color:#818a98;font-size:11px;text-transform:uppercase;letter-spacing:.08em;border-right:1px solid #f0f1f3}.schedule-day{min-height:92px;border-top:1px solid #eaedf0;border-right:1px solid #eaedf0;padding:7px;position:relative}.schedule-day:nth-child(7n){border-right:0}.schedule-day.outside{background:#fafbfc;color:#b8bec7}.schedule-day>button{border:0;background:transparent;display:flex;align-items:center;gap:6px;width:100%;padding:0;text-align:left;color:inherit;cursor:pointer}.schedule-day>button:disabled{cursor:default}.schedule-day>button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;font-weight:800}.schedule-day>button.selected>span{background:var(--sch-red);color:#fff}.schedule-day.today>button>span{background:#171a21;color:#fff}.schedule-day>button small{color:var(--sch-red);font-size:9px;font-weight:800;text-transform:uppercase}.schedule-day article{display:flex;align-items:center;gap:5px;background:#f1f8f4;border-radius:7px;margin-top:5px;padding:5px 6px;font-size:10px;min-width:0}.schedule-day article.pending{background:#fff5df}.schedule-day article i{width:6px;height:6px;background:var(--sch-green);border-radius:50%;flex:none}.schedule-day article.pending i{background:#e39b13}.schedule-day article span{min-width:0}.schedule-day article b,.schedule-day article small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-day article small{color:#7c8490}.schedule-day article button{border:0;background:transparent;margin-left:auto;cursor:pointer;color:#8c6330}.schedule-side{padding:22px;background:#fafbfc}.schedule-pending-head,.schedule-request header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.schedule-pending-head span,.schedule-request header span{font-size:12px;color:#707987;text-transform:uppercase;font-weight:800}.schedule-pending-head b{background:#fff0dc;color:#9a5d00;border-radius:99px;padding:4px 9px}.schedule-pending-list{display:grid;gap:7px;margin-bottom:22px;max-height:285px;overflow:auto}.schedule-pending-list article{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e2e5e9;border-radius:11px;padding:10px}.schedule-pending-list b,.schedule-pending-list span{display:block}.schedule-pending-list span{font-size:11px;color:#7a8390;margin-top:2px}.schedule-pending-list button{width:34px;height:34px;border:0;border-radius:9px;background:#e7f7ee;color:var(--sch-green);font-size:18px;cursor:pointer}.schedule-request{border-top:1px solid #e0e3e7;padding-top:20px}.schedule-time-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.schedule-time-row label span{display:block;color:#747e8c;font-size:11px;font-weight:700;margin-bottom:5px}.schedule-time-row input{width:100%;height:42px;border:1px solid #d8dde3;border-radius:9px;padding:0 9px;background:#fff;font:inherit}.schedule-selection{display:flex;align-items:baseline;gap:8px;margin:20px 0}.schedule-selection b{font-size:34px}.schedule-selection span{color:#727b88}.schedule-submit{width:100%;min-height:48px;border:0;border-radius:10px;background:var(--sch-red);color:#fff;font:inherit;font-weight:800;cursor:pointer}.schedule-submit:disabled{opacity:.35;cursor:not-allowed}.schedule-submit kbd{margin-left:7px;background:rgba(0,0,0,.18)}.schedule-empty{display:grid;gap:5px;padding:18px;background:#fff;border:1px dashed #ccd2da;border-radius:12px}.schedule-empty span,.schedule-side-hint,.schedule-empty-inline{color:#7b8490;font-size:13px}@media(max-width:1050px){.schedule-layout{grid-template-columns:1fr}.schedule-calendar{border-right:0}.schedule-side{border-top:1px solid #e9ebee}.schedule-day{min-height:82px}.schedule-day article b{display:none}}@media(max-width:720px){.schedule-toolbar{align-items:flex-start;gap:14px;flex-direction:column}.schedule-layout{min-width:720px}.schedule-shell{overflow:auto}}
.schedule-pending-actions{display:flex;gap:5px}.schedule-pending-actions .reject{background:#fff0f1!important;color:#c72431!important}.schedule-payroll{padding:24px 26px 28px;border-top:1px solid #e2e6eb;background:#f7f8fa}.schedule-payroll>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.schedule-payroll>header span{color:var(--sch-red);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.schedule-payroll>header h3{margin:3px 0 0;font-size:22px}.schedule-payroll>header p{color:#7a8390;font-size:12px}.schedule-payroll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.schedule-payroll-grid form{display:grid;gap:12px;padding:16px;border:1px solid #dde2e8;border-radius:13px;background:#fff}.schedule-payroll-name{display:flex;align-items:center;justify-content:space-between}.schedule-payroll-name strong{font-size:22px}.schedule-payroll-metrics{display:grid;grid-template-columns:1fr 1fr;border:1px solid #edf0f3;border-radius:9px}.schedule-payroll-metrics span{display:grid;gap:3px;padding:9px 11px}.schedule-payroll-metrics span+span{border-left:1px solid #edf0f3}.schedule-payroll-metrics small,.schedule-payroll-fields span{color:#7a8390;font-size:9px;font-weight:800;text-transform:uppercase}.schedule-payroll-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;align-items:end}.schedule-payroll-fields label{display:grid;gap:4px}.schedule-payroll-fields input{width:100%;height:38px;border:1px solid #d9dee5;border-radius:8px;padding:0 9px;font:inherit}.schedule-payroll-fields button{height:38px;border:0;border-radius:8px;padding:0 13px;background:#1c2027;color:#fff;font:inherit;font-weight:750;cursor:pointer}.schedule-payroll-formula{color:#7a8390}@media(max-width:1050px){.schedule-payroll-grid{grid-template-columns:1fr}}
.schedule-day article.delete-requested{background:#fff0f1}.schedule-day article.delete-requested i{background:#d82432}.schedule-payroll-name>span{display:grid;gap:2px;text-align:right}.schedule-payroll-name>span small{color:#7a8390;font-size:8px;font-weight:800;text-transform:uppercase}.schedule-payroll-name>span.is-accrued strong{color:#168a55}.schedule-payroll-name>span.is-accrued{padding-left:14px;border-left:1px solid #e5e8ec}

/* В календаре всегда видны все сотрудники, без времени смены. */
.schedule-day article b{display:block}
.schedule-request{padding-top:16px}
.schedule-selection{margin:8px 0 18px}
