.period-panel{margin-bottom:18px;padding:20px}.period-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.period-switch{display:flex;padding:4px;border-radius:12px;background:#eaf0f1}.period-switch button{padding:10px 16px;border:0;border-radius:9px;background:transparent;color:#526b74;font-weight:900}.period-switch button.is-active{background:#143f50;color:#fff;box-shadow:0 5px 12px #143f5026}.period-navigation{display:flex;align-items:center;gap:8px}.period-navigation>button{width:42px;height:42px;border:1px solid #cad9dc;border-radius:10px;background:#fff;color:#173d4b;font-size:20px}.period-navigation label{display:grid;gap:3px;color:#617780;font-size:11px;font-weight:900}.period-navigation input{height:40px;padding:0 10px;border:1px solid #c5d5d9;border-radius:9px;background:#fff;font:inherit}.period-title{margin:18px 0 10px;color:#153d4c;font-size:19px;font-weight:950;text-transform:capitalize}.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-day{display:grid;gap:2px;min-height:60px;padding:8px;border:1px solid #d9e4e6;border-radius:10px;background:#f9fbfa}.calendar-day small{color:#71838a;font-size:10px;text-transform:uppercase}.calendar-day strong{font-size:18px}.calendar-day span{color:#17714e;font-size:10px;font-weight:900}.calendar-day.is-today{border-color:#85ac00;box-shadow:inset 0 0 0 1px #a2c919}.calendar-day.has-plan{background:#edf8f2}.calendar-day.has-gap{border-color:#eaa063;background:#fff3e8}.calendar-blank{min-height:60px}.requirement-day.people-only{grid-template-columns:120px 1fr 1fr}.requirement-day.people-only .requirement-role{grid-template-columns:1fr minmax(170px,.7fr);align-items:center}.availability-days-only{padding:14px!important}.availability-day-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0 13px}.availability-day-grid label{position:relative}.availability-day-grid input{position:absolute;opacity:0;pointer-events:none}.availability-day-grid span{display:block;padding:11px;border:1px solid #cfdddf;border-radius:10px;background:#fff;color:#536b74;font-weight:850;text-align:center;cursor:pointer}.availability-day-grid input:checked+span{border-color:#6c9b00;background:#def39f;color:#294400;box-shadow:inset 0 0 0 1px #89b100}.schedule-export-actions{display:flex;gap:8px;margin:0 0 14px}.schedule-export-actions button{padding:10px 12px;border:1px solid #c6d7db;border-radius:10px;background:#fff;color:#244956;font-weight:900}.schedule-export-actions button:first-child{background:#153e50;color:#fff;border-color:#153e50}.schedule-export-actions[hidden]{display:none}.schedule-day h3{text-transform:capitalize}@media(max-width:760px){.period-top{align-items:stretch;flex-direction:column}.period-switch button{flex:1}.period-navigation{justify-content:space-between}.mini-calendar{gap:4px}.calendar-day{min-height:54px;padding:6px}.calendar-day span{display:none}.requirement-day.people-only{grid-template-columns:1fr}.requirement-day.people-only .requirement-role{grid-template-columns:1fr 1fr}.availability-day-grid{grid-template-columns:1fr 1fr}.schedule-export-actions{flex-wrap:wrap}}#rotaPrint{display:none}@media print{body>*:not(#rotaPrint){display:none!important}#rotaPrint{display:block!important;padding:12mm;color:#142f3a;font-family:Arial,sans-serif}#rotaPrint header{margin-bottom:8mm;border-bottom:2px solid #143f50}#rotaPrint h1{margin:0;font-size:24pt}#rotaPrint header p{font-size:12pt;text-transform:capitalize}#rotaPrint .schedule-day{break-inside:avoid;margin:0 0 5mm}#rotaPrint .schedule-day h3{margin:0 0 2mm;font-size:14pt}#rotaPrint .schedule-shift{display:grid;grid-template-columns:45mm 1fr;margin:2mm 0;padding:3mm;border:1px solid #ccdadd;border-left:4px solid #2b9164;border-radius:3mm}#rotaPrint .schedule-shift.has-gap{border-left-color:#df782c}#rotaPrint .schedule-shift>div:first-child{display:grid}#rotaPrint .schedule-names{display:flex;flex-wrap:wrap;gap:2mm}#rotaPrint .schedule-names span,#rotaPrint .schedule-names strong{padding:1.5mm 2mm;background:#eef4f3;border-radius:2mm}}
.rider-only-requirements{grid-template-columns:repeat(2,minmax(0,1fr))}.requirement-day.rider-only{grid-template-columns:110px 1fr!important}.schedule-day-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-day-title button{padding:8px 11px;border:1px solid #c8d8d3;border-radius:9px;background:#fff;color:#176244;font-weight:850;cursor:pointer}.workload-summary{margin-top:20px;padding:18px;border-radius:16px;background:#f2f8f5;border:1px solid #d4e4dd}.workload-summary h3{margin:4px 0}.workload-summary>div:first-child>small{font-weight:900;color:#16734f;letter-spacing:.08em}.workload-summary p{color:#60766e}.workload-table{margin-top:14px;overflow:auto}.workload-row{display:grid;grid-template-columns:minmax(170px,1.5fr) repeat(6,minmax(58px,.55fr)) minmax(65px,.55fr);gap:6px;align-items:center;min-width:520px;padding:9px;border-bottom:1px solid #dae7e1}.workload-row span,.workload-row strong{text-align:center}.workload-row .target-hit{color:#086c45;background:#d9f4e5;border-radius:8px;padding:5px}.workload-head{font-size:12px;color:#637a72;text-transform:uppercase}.schedule-edit-dialog form{max-height:85vh;overflow:auto}.schedule-edit-dialog header{display:flex;justify-content:space-between;gap:12px}.schedule-edit-dialog header h2{margin:4px 0}.schedule-edit-dialog header>button{border:0;background:#eef3f1;border-radius:50%;width:38px;height:38px;font-size:24px}.schedule-edit-riders{display:grid;gap:8px}.schedule-edit-riders label{display:flex!important;grid-template-columns:none!important;align-items:center;gap:12px;padding:12px;border:1px solid #d2dfda;border-radius:11px;background:#f8fbfa}.schedule-edit-riders input{width:20px!important;height:20px}.schedule-edit-riders span{display:grid}.schedule-edit-riders small{color:#6d8079}.rota-brand{display:flex;align-items:center;gap:5mm}.rota-brand img{width:16mm;height:16mm;object-fit:cover;border-radius:50%}.rota-brand>span{font-size:28pt}@media(max-width:760px){.rider-only-requirements{grid-template-columns:1fr}.requirement-day.rider-only{grid-template-columns:1fr!important}.schedule-day-title{align-items:flex-start}.workload-row{grid-template-columns:minmax(150px,1.5fr) repeat(6,minmax(50px,.55fr)) minmax(60px,.55fr)}}
