.calendar-panel .eyebrow{margin:0 0 6px}.month-controls{display:flex;align-items:center;gap:6px}.month-controls button{font-size:24px;padding:4px 12px}.calendar-legend{display:flex;gap:8px 16px;flex-wrap:wrap;margin:20px 0 12px;font-size:12px}.calendar-legend span{display:flex;gap:6px;align-items:center}.calendar-legend span:before{content:'';width:9px;height:9px;border-radius:50%;background:currentColor}.planned{color:#59419b}.worked{color:#216a4d}.cancelled{color:#a13748}.unconfirmed{color:#866013}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{text-align:center;color:#788093;font-size:12px;padding:8px 0}.calendar-day{min-height:86px;display:flex;flex-direction:column;align-items:stretch;gap:5px;text-align:left;border:1px solid #e5e6ee;border-radius:12px;padding:9px 6px;background:#fafbfe;color:#596176;font:inherit;transition:border-color .15s,box-shadow .15s}.calendar-day:hover{border-color:#8a6ac7;box-shadow:0 2px 8px #49347215}.calendar-day.planned{background:#f1ebfb;border-color:#dfd1f3}.calendar-day.worked{background:#e7f4ed;border-color:#bfe0cc}.calendar-day.cancelled{background:#fceef0;border-color:#edccd2}.calendar-day.unconfirmed{background:#fff5de;border-color:#ebd8a7}.calendar-day.today{outline:2px solid #7545bb;outline-offset:1px}.day-number{font-size:15px;font-weight:700}.calendar-shift{display:flex;flex-direction:column;gap:4px;font-size:11px;line-height:1.3}.shift-time{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:650}.shift-state{font-size:10px;overflow-wrap:anywhere}.calendar-shift.cancelled .shift-time{text-decoration:line-through}.request-dot{font-size:10px;color:#654398;margin-top:auto}.day-off{color:#a6aabb;font-size:13px}.calendar-help{font-size:12px;color:#727b91;line-height:1.6;margin:18px 0}.calendar-panel details{border-top:1px solid #e7e7ef;padding-top:16px}.calendar-panel summary{cursor:pointer;font-weight:650}.request-card{border-bottom:1px solid #e7e7ef;padding:16px 0;font-size:13px}.request-card p{margin:6px 0;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#shiftDialog{max-width:500px;max-height:90vh;overflow:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-header button{margin:0;background:#f2eff7;color:#553e7c;padding:6px 12px}.day-detail{border-left:3px solid currentColor;padding:10px 12px;margin:12px 0;background:#f8f8fb;border-radius:6px}.day-detail p{margin:6px 0;font-size:13px}#changeRequestForm label{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:13px;font-weight:600}#changeRequestForm input,#changeRequestForm select,#changeRequestForm textarea{width:100%;min-width:0;border:1px solid #d8d9e5;border-radius:9px;padding:10px;background:white;font:inherit;color:#202a43}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}#requestResult{line-height:1.5;font-size:13px}#sendRequest{width:100%}#shiftDialog hr{border:0;border-top:1px solid #e7e7ef;margin:20px 0}#shiftDialog h3{font-size:18px}#shiftDialog .muted{font-size:13px}@media(max-width:520px){.calendar-panel{padding:14px}.calendar-grid{gap:4px}.calendar-day{padding:7px 3px;min-height:78px;border-radius:8px}.shift-time{font-size:9px;white-space:normal;overflow-wrap:anywhere}.shift-state{font-size:9px}.day-number{font-size:13px}.calendar-legend{gap:8px 12px;font-size:11px}.month-controls input{max-width:150px}.calendar-panel h2{font-size:21px}.calendar-panel .schedule-header{gap:16px}}
