.modal-overlay{position:fixed;z-index:1000;left:0;top:0;width:100vw;height:100vh;background:#0000004d;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:8px;padding:2rem;min-width:320px;box-shadow:0 4px 24px #00000026;position:relative}.modal-close{position:absolute;top:12px;right:12px;background:transparent;border:none;font-size:1.5rem;font-weight:700;color:#888;cursor:pointer;line-height:1}form,.request-change-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;margin-bottom:.25rem}.form-group input,.form-group select{padding:.4rem .6rem;border:1px solid #ccc;border-radius:6px;font-size:.95rem}.checkbox-group{flex-direction:row;align-items:center}.checkbox-group label{font-weight:400}.submit-btn{padding:.6rem 1rem;background-color:#f5c518;border:none;border-radius:6px;cursor:pointer;font-weight:700;transition:background .2s ease}.submit-btn:hover{background-color:#e0b414}table{width:100%;border-collapse:collapse;margin:2rem 0;background:#fff;box-shadow:0 2px 8px #00000012;overflow-x:auto}.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}tbody{border-bottom:1px solid lightgray}th,td{padding:1rem 1.5rem;text-align:center;border-bottom:1px solid #e0e0e0}th{background:#f7f7fa;font-weight:600;color:#333;letter-spacing:.03em}tr:last-child td{border-bottom:none}tr:nth-child(2n) td{background:#fafbfc}tfoot{color:gray}tfoot th{background:#f7f7fa;font-weight:500;color:#666}.rota-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.help-dropdown{position:relative;display:inline-block}.help-btn{background:#0073e6;color:#fff;padding:.6rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.95rem}.help-btn:hover{background:#005bb5}.help-dropdown-content{display:none;position:absolute;top:110%;left:0;background:#fff;min-width:220px;box-shadow:0 2px 8px #00000026;border-radius:6px;z-index:100;flex-direction:column;padding:.5rem 0}.help-dropdown:hover .help-dropdown-content{display:flex}.help-dropdown-content button{background:none;border:none;text-align:left;padding:.6rem 1rem;font-size:.9rem;cursor:pointer;width:100%}.help-dropdown-content button:hover{background:#f5f5f5}.rota-key{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem;font-size:.9rem}.key-item{padding:.25rem .5rem;border-radius:4px}.key-item.past{background:#e0e0e0;color:#555}.key-item.current{background:#fff7c2;border:1px solid #f0d000;color:#333;font-weight:700}.key-item.future{background:#fff;border:1px solid #ccc;color:#333}button{padding:.5em 1.2em;border:none;border-radius:4px;background-color:#f5c518;color:#000;font-weight:500;cursor:pointer;transition:background .2s}button:hover{background:#f5c518}.download-btn,.help-btn{background:#0073e6;color:#fff;border:none;padding:.6rem 1.2rem;margin:.5rem .5rem 0 0;border-radius:6px;font-size:.95rem;cursor:pointer;transition:background .2s ease}.download-btn:hover,.help-btn:hover{background:#005bb5}.rota-actions{display:flex;gap:.5rem}.admin-footer{display:flex;justify-content:space-between;padding:1rem;background:#f7f7fa;border:1px solid #e0e0e0;border-radius:8px;margin-top:1rem}.adminSection{width:100%;padding:.5rem;text-align:center;background:#fff;border-right:1px solid #e0e0e0;border-radius:6px}.adminSection:last-child{border-bottom:none}.adminSection h3{margin-bottom:.5rem;font-size:1rem;color:#333}.adminSection p{font-weight:600;color:#000;margin-bottom:1em;font-size:1.1em}.input-field{display:block;width:90%;margin:.5em auto 1em;padding:.7em 1em;border:1px solid #e0e0e0;border-radius:4px;background:#fff;font-size:1em;transition:border .2s,box-shadow .2s;box-sizing:border-box}.input-field:focus{border-color:#f5c518;outline:none;box-shadow:0 0 0 2px #2563eb22}.adminSection select.input-field{min-height:3em;font-size:1em;background:#fafbfc}.adminSection button.input-field{width:90%;margin-top:.5em;font-size:1em;padding:.7em 0}.role-dropdown{position:relative;cursor:pointer;background:#fff;min-height:3em;-webkit-user-select:none;user-select:none;text-align:left}.role-dropdown-list{position:absolute;left:0;right:0;top:110%;background:#fff;border:1px solid #e0e0e0;border-radius:4px;box-shadow:0 2px 8px #00000012;z-index:10;padding:.5em 0}.role-checkbox{display:flex;align-items:center;justify-content:flex-start;padding:.4em 1em;cursor:pointer;font-size:1em;gap:.6em;min-height:32px}.role-checkbox input[type=checkbox]{appearance:none;width:18px;height:18px;border:2px solid #f5c518;border-radius:3px;background:#fff;margin-right:.5em;cursor:pointer;outline:none;transition:border .2s}.role-checkbox input[type=checkbox]:checked{background:#f5c518;border-color:#f5c518}.role-checkbox input[type=checkbox]:focus{box-shadow:0 0 0 2px #f5c51822}.rota-instructions{background:#f9fafc;border:1px solid #e0e0e0;border-radius:6px;padding:1rem 1.5rem;margin:1rem 0}.rota-instructions h3{margin-bottom:.75rem;font-size:1.1rem;color:#333}.rota-instructions ol{margin:0;padding-left:1.25rem;line-height:1.5}.rota-instructions li{margin-bottom:.5rem}.text-small{font-size:.9em}.highlight-week{background-color:#fff6cc;font-weight:700}.past-week{background-color:#f2f2f2;color:#888}.spinner{width:18px;height:18px;border:3px solid #fff;border-top:3px solid #4a90e2;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 900px){th,td{padding:.7rem .5rem;font-size:.95em}}@media (max-width: 768px){table{font-size:.85em;margin:1rem 0}th,td{padding:.5rem .3rem;white-space:nowrap}button{font-size:.8em;padding:.4em .8em}table,thead,tbody,th,td,tr{display:block}thead{display:none}tr{margin-bottom:1rem;border:1px solid #ddd;border-radius:6px;padding:.6rem;background:#fff;box-shadow:0 1px 3px #0000000d}td{display:flex;justify-content:space-between;padding:.4rem .2rem;border:none}td:before{content:attr(data-label);font-weight:600;color:#333;margin-right:.5rem}.admin-footer{flex-direction:column;gap:1rem;align-items:stretch}.adminSection{width:100%;border-right:none;border-bottom:1px solid #e0e0e0;padding-bottom:1rem}}
