:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;background:#f1f5f9;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{background:#f1f5f9;min-width:320px;min-height:100%}body{background:#f1f5f9;min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.home-page,.page-centre{background:#f1f5f9;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.home-card{background:#fff;border-radius:18px;width:100%;max-width:520px;padding:32px;box-shadow:0 10px 30px #0f172a1f}.school-name{color:#1f4e78;margin:0 0 8px;font-weight:700}h1{color:#17365d;margin:0 0 12px;font-size:2rem;line-height:1.2}.welcome-message{color:#475569;margin:0 0 28px;line-height:1.5}.home-buttons{gap:12px;display:grid}.home-buttons button{border:0;border-radius:8px;width:100%;min-height:50px;padding:12px 18px;font-weight:700}.menu-button{color:#17365d;background:#d9eaf7}.coordinator-button{color:#664d03;background:#fff2cc}.logout-button{color:#991b1b;background:#feee;margin-top:12px}.home-buttons button:hover{filter:brightness(.96)}.login-form{gap:12px;display:grid}.login-form label{color:#334155;font-weight:700}.login-form input{color:#1f2937;background:#fff;border:1px solid #94a3b8;border-radius:10px;width:100%;min-height:48px;padding:12px 14px}.login-form input:focus{border-color:#1f4e78;outline:3px solid #bfdbfe}.login-form button{color:#fff;cursor:pointer;background:#1f4e78;border:0;border-radius:8px;min-height:50px;margin-top:8px;padding:12px 18px;font-weight:700}.login-form button:hover{background:#17365d}.login-form button:disabled{cursor:not-allowed;opacity:.65}.login-message{color:#17365d;background:#d9eaf7;border-radius:8px;margin-top:18px;padding:12px}.primary-button{color:#fff;background:#1f4e78;border:0;border-radius:8px;min-height:46px;padding:11px 18px;font-weight:700}.primary-button:hover{background:#17365d}.secondary-button{color:#17365d;background:#e2e8f0;border:0;border-radius:8px;min-height:46px;padding:11px 18px;font-weight:700}.secondary-button:hover{background:#cbd5e1}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #60a5fa}.form-page{background:#f1f5f9;min-height:100vh;padding:32px 16px}.form-card{background:#fff;border-radius:18px;width:100%;max-width:680px;margin:0 auto;padding:32px;box-shadow:0 10px 30px #0f172a1f}.form-heading{margin:24px 0 30px}.form-heading h1{margin-bottom:8px}.form-heading p{color:#64748b;line-height:1.5}.back-link{color:#1f4e78;background:0 0;border:0;padding:0;font-weight:700}.back-link:hover{color:#17365d;text-decoration:underline}.form-field{margin-bottom:24px;display:block}fieldset.form-field{border:0;min-width:0;padding:0}.form-field>label,.form-field legend{color:#17365d;margin-bottom:8px;font-weight:700;display:block}.form-field input[type=date],.form-field textarea,.form-field select{color:#1f2937;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:12px}.form-field input[type=date]{min-height:48px}.form-field textarea{resize:vertical;min-height:120px;line-height:1.5}.form-field input[type=date]:focus,.form-field textarea:focus,.form-field select:focus{border-color:#2563eb;outline:3px solid #3b82f640}.required-mark{color:#dc2626}.radio-option{background:#fff;border:1px solid #cbd5e1;border-radius:10px;align-items:flex-start;gap:12px;margin:10px 0;padding:14px;display:flex}.radio-option:hover{background:#f8fafc;border-color:#1f4e78}.radio-option input{margin-top:4px}.radio-option span{gap:4px;display:grid}.radio-option strong{color:#1f2937}.radio-option small{color:#64748b;line-height:1.4}.field-success{color:#166534;margin:8px 0 0}.field-warning{color:#b45309;margin:8px 0 0}.character-count{color:#64748b;text-align:right;margin:6px 0 0;font-size:.85rem}.error-message{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:20px;padding:12px}.success-message{color:#166534;background:#dcfce7;border:1px solid #86efac;border-radius:8px;margin-bottom:20px;padding:12px}.form-actions{justify-content:flex-end;gap:12px;display:flex}.form-actions button,.form-card>button{border:0;border-radius:8px;min-height:46px;padding:11px 18px;font-weight:700}.request-summary{background:#eff6ff;border-left:5px solid #1f4e78;border-radius:8px;margin:24px 0;padding:16px}.request-summary p{margin:6px 0;line-height:1.5}@media (width<=600px){.home-page,.page-centre{align-items:flex-start;padding:16px}.home-card{margin-top:24px;padding:24px 18px}h1{font-size:1.7rem}.form-page{padding:16px}.form-card{padding:24px 18px}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.periods-page{background:#fff;border-radius:18px;width:100%;max-width:760px;margin:0 auto;padding:32px;box-shadow:0 10px 30px #0f172a1f}.period-selection-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:24px 0 16px;display:flex}.period-selection-toolbar p{color:#475569;margin:0;font-weight:700}.toolbar-buttons{gap:8px;display:flex}.small-button{color:#17365d;background:#fff;border:1px solid #94a3b8;border-radius:8px;min-height:38px;padding:8px 12px;font-weight:700}.small-button:hover{background:#f1f5f9}.period-list{gap:16px;display:grid}.period-card{background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:18px}.period-card-selected{background:#f8fbff;border-color:#1f4e78;box-shadow:0 0 0 1px #1f4e78}.period-card h2{color:#17365d;margin:0 0 12px;font-size:1.2rem}.period-card-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.period-checkbox{color:#17365d;align-items:center;gap:10px;font-size:1.1rem;font-weight:700;display:flex}.period-checkbox input{width:20px;height:20px}.entry-type{color:#334155;background:#e2e8f0;border-radius:999px;padding:5px 9px;font-size:.8rem;font-weight:700}.period-information{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;display:grid}.period-information p{margin:0}.period-instructions{margin-top:16px}.period-instructions label{color:#17365d;margin-bottom:8px;font-weight:700;display:block}.period-instructions textarea{color:#1f2937;resize:vertical;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:12px;line-height:1.5}.period-instructions textarea:focus{border-color:#2563eb;outline:3px solid #3b82f640}.instruction-footer{color:#64748b;justify-content:space-between;gap:12px;margin-top:6px;font-size:.85rem;display:flex}.text-button{color:#1f4e78;background:0 0;border:0;padding:0;font-weight:700}.text-button:hover{text-decoration:underline}.empty-message{text-align:center;background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;padding:28px}.empty-message h2{color:#17365d;margin-top:0}.bottom-actions{margin-top:28px}@media (width<=600px){.periods-page{padding:24px 18px}.period-selection-toolbar{flex-direction:column;align-items:flex-start}.period-information{grid-template-columns:1fr}.period-card-heading,.instruction-footer{flex-direction:column;align-items:flex-start}}.review-page{background:#fff;border-radius:18px;width:100%;max-width:820px;margin:0 auto;padding:32px;box-shadow:0 10px 30px #0f172a1f}.review-section{background:#fff;border:1px solid #cbd5e1;border-radius:12px;margin-top:24px;padding:22px}.review-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.review-section-heading h2{color:#17365d;margin:0;font-size:1.3rem}.review-details{grid-template-columns:1fr 1fr;gap:16px;margin:0;display:grid}.review-details div,.review-period-details div{gap:4px;display:grid}.review-details dt,.review-period-details dt{color:#64748b;font-size:.85rem;font-weight:700}.review-details dd,.review-period-details dd{color:#1f2937;margin:0;font-weight:700}.general-instructions-review{background:#f8fafc;border-radius:8px;margin-top:20px;padding:16px}.general-instructions-review h3{color:#17365d;margin:0 0 8px;font-size:1rem}.general-instructions-review p{color:#334155;white-space:pre-wrap;margin:0;line-height:1.5}.review-period-card{background:#f8fbff;border:1px solid #bfdbfe;border-radius:12px;padding:18px}.review-period-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.review-period-heading h3{color:#17365d;margin:0;font-size:1.15rem}.review-period-details{grid-template-columns:1fr 1fr;gap:16px;margin:0;display:grid}.instruction-review{background:#fff;border-radius:8px;margin-top:16px;padding:14px}.instruction-review h4{color:#17365d;margin:0 0 6px}.instruction-review p{color:#334155;white-space:pre-wrap;margin:0;line-height:1.5}.review-notice{color:#713f12;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin-top:24px;padding:16px}.review-notice p{margin:6px 0 0;line-height:1.5}.cancel-button{color:#991b1b;background:#fee2e2;border:0;border-radius:8px;min-height:46px;padding:11px 18px;font-weight:700}.cancel-button:hover{background:#fecaca}@media (width<=600px){.review-page{padding:24px 18px}.review-section{padding:18px}.review-section-heading{align-items:flex-start}.review-details,.review-period-details{grid-template-columns:1fr}.review-period-heading{flex-direction:column;align-items:flex-start}}.success-icon{color:#fff;background:#15803d;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:22px;font-size:2rem;font-weight:700;display:flex}.request-number{background:#f1f5f9;border-radius:8px;gap:6px;margin:22px 0;padding:14px;display:grid}.request-number span{color:#64748b;font-size:.85rem;font-weight:700}.request-number strong{overflow-wrap:anywhere;color:#17365d;font-size:.95rem}.error-message p{margin:6px 0 0}.coordinator-page{background:#fff;border-radius:18px;width:100%;max-width:1000px;margin:0 auto;padding:32px;box-shadow:0 10px 30px #0f172a1f}.dashboard-controls{background:#f8fafc;border-radius:12px;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding:18px;display:flex}.date-control{gap:8px;display:grid}.date-control label{color:#17365d;font-weight:700}.date-control input{color:#1f2937;background:#fff;border:1px solid #94a3b8;border-radius:8px;min-height:46px;padding:10px 12px}.dashboard-date-heading{color:#17365d;margin:0 0 18px;font-size:1.25rem}.dashboard-summary{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.dashboard-summary article{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;gap:8px;padding:18px;display:grid}.dashboard-summary span{color:#475569;font-size:.9rem;font-weight:700}.dashboard-summary strong{color:#17365d;font-size:2rem}.dashboard-summary .summary-warning{background:#fffbeb;border-color:#fbbf24}.dashboard-summary .summary-warning strong{color:#b45309}.coordinator-request-list{gap:22px;display:grid}.coordinator-request-card{background:#fff;border:1px solid #cbd5e1;border-radius:14px;overflow:hidden}.request-card-heading{background:#17365d;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px;display:flex}.request-card-heading h2{color:#fff;margin:0 0 4px;font-size:1.25rem}.request-card-heading p{color:#dbeafe;margin:0}.request-status{color:#17365d;background:#fff;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700}.coordinator-general-notes{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:16px 18px}.coordinator-general-notes strong{color:#17365d}.coordinator-general-notes p{color:#334155;white-space:pre-wrap;margin:6px 0 0;line-height:1.5}.coordinator-period-list{display:grid}.coordinator-period-row{border-bottom:1px solid #e2e8f0;grid-template-columns:90px minmax(200px,1fr) 280px;align-items:start;gap:18px;padding:18px;display:grid}.coordinator-period-row:last-child{border-bottom:0}.period-number-box{background:#d9eaf7;border-radius:10px;justify-items:center;gap:2px;padding:10px;display:grid}.period-number-box span{color:#475569;font-size:.75rem;font-weight:700}.period-number-box strong{color:#17365d;font-size:1.5rem}.period-description h3{color:#17365d;margin:0 0 4px}.period-description p{color:#475569;margin:4px 0}.period-description .period-notes{color:#1f2937;white-space:pre-wrap;margin-top:10px}.assignment-display{background:#f1f5f9;border-radius:8px;gap:4px;padding:12px;display:grid}.assignment-display span{color:#64748b;font-size:.75rem;font-weight:700}.assignment-display strong{color:#17365d}.assignment-display small{color:#64748b}.request-id-text{color:#64748b;overflow-wrap:anywhere;background:#f8fafc;margin:0;padding:10px 18px;font-size:.75rem}@media (width<=700px){.coordinator-page{padding:24px 16px}.dashboard-controls{flex-direction:column;align-items:stretch}.dashboard-controls button{width:100%}.dashboard-summary{grid-template-columns:1fr}.coordinator-period-row{grid-template-columns:70px 1fr}.assignment-display{grid-column:1/-1}.request-card-heading{flex-direction:column}}.assignment-control{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;gap:8px;padding:14px;display:grid}.assignment-control label{color:#17365d;font-size:.9rem;font-weight:700}.assignment-control select{color:#1f2937;background:#fff;border:1px solid #94a3b8;border-radius:8px;width:100%;min-height:42px;padding:9px 10px}.assignment-control select:focus{border-color:#2563eb;outline:3px solid #3b82f640}.current-assignment{background:#fff;border-radius:8px;gap:3px;padding:10px;display:grid}.current-assignment span{color:#64748b;font-size:.8rem}.current-assignment strong{color:#17365d}.current-assignment small{color:#64748b}.assignment-button{color:#fff;background:#1f4e78;border:0;border-radius:8px;min-height:42px;padding:9px 12px;font-weight:700}.assignment-button:hover:not(:disabled){background:#17365d}.assignment-button:disabled{cursor:not-allowed;opacity:.55}.assignment-error{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;padding:10px;font-size:.85rem;line-height:1.4}@media (width<=700px){.coordinator-period-row{grid-template-columns:1fr}}.my-relief-page{background:#fff;border-radius:18px;width:100%;max-width:800px;margin:0 auto;padding:32px;box-shadow:0 10px 30px #0f172a1f}.my-relief-controls{background:#f8fafc;border-radius:12px;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding:18px;display:flex}.assignment-summary{gap:12px;margin-bottom:20px;display:flex}.assignment-summary span{color:#17365d;background:#d9eaf7;border-radius:999px;padding:8px 12px;font-size:.9rem;font-weight:700}.my-relief-list{gap:18px;display:grid}.my-relief-card{background:#fff;border:1px solid #bfdbfe;border-radius:14px;overflow:hidden}.acknowledged-card{border-color:#86efac}.my-relief-heading{background:#eff6ff;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.my-relief-heading div{align-items:baseline;gap:8px;display:flex}.my-relief-heading span{color:#475569;font-weight:700}.my-relief-heading strong{color:#17365d;font-size:1.6rem}.assigned-badge,.acknowledged-badge{border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700}.assigned-badge{color:#1e3a8a;background:#dbeafe}.acknowledged-badge{color:#166534;background:#dcfce7}.my-relief-content{padding:18px}.my-relief-content h2{color:#17365d;margin:0 0 12px;font-size:1.25rem}.my-relief-content>p{margin:8px 0}.relief-instructions{background:#f8fafc;border-radius:10px;margin-top:18px;padding:16px}.relief-instructions h3{color:#17365d;margin:0 0 6px;font-size:1rem}.relief-instructions h3:not(:first-child){margin-top:16px}.relief-instructions p{color:#334155;white-space:pre-wrap;margin:0;line-height:1.5}.acknowledge-button{color:#fff;background:#1f4e78;border:0;border-top:1px solid #bfdbfe;width:100%;min-height:48px;padding:12px 18px;font-weight:700}.acknowledge-button:hover:not(:disabled){background:#17365d}@media (width<=600px){.my-relief-page{padding:24px 18px}.my-relief-controls{flex-direction:column;align-items:stretch}.my-relief-controls button{width:100%}.assignment-summary{flex-direction:column;align-items:flex-start}}
