.site-nav{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 4px #4299e11a;margin-bottom:20px}.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#1a365d;font-weight:600;font-size:1.1em}.nav-logo{width:32px;height:32px;border-radius:6px}.nav-links{display:flex;gap:8px}.nav-links a{text-decoration:none;color:#4a5568;padding:8px 16px;border-radius:6px;font-weight:500;font-size:.95em;transition:background-color .2s,color .2s}.nav-links a:hover{background-color:#ebf4ff;color:#2b6cb0}.nav-links a.active{background-color:#3182ce;color:#fff}.hamburger{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:5px}.hamburger span{display:block;width:24px;height:3px;background:#1a365d;border-radius:2px;transition:transform .3s,opacity .3s}.hamburger-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger-open span:nth-child(2){opacity:0}.hamburger-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media(max-width:700px){.site-nav{flex-wrap:wrap;justify-content:space-between;column-gap:8px}.nav-brand{min-width:0;flex-grow:0}.hamburger{display:flex;flex-shrink:0}.nav-links{display:none;flex-direction:column;flex-basis:100%;gap:4px;overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .3s ease}.nav-links.nav-open{display:flex;max-height:300px;opacity:1;padding-top:8px}.nav-links a{text-align:center}}.site-footer{margin-top:auto;background-color:#4a5568;padding:20px 24px}.footer-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-footer .disclaimer{font-size:.82em;color:#a0aec0;font-style:italic;margin:0}.footer-icons{display:flex;align-items:center;gap:16px;flex-shrink:0}.footer-icon{height:28px;width:auto;opacity:.7;transition:opacity .2s}.footer-icon:hover{opacity:1}@media(max-width:600px){.footer-inner{flex-direction:column;text-align:center;gap:16px}}.home{max-width:960px;margin:0 auto;padding:60px 24px}.hero{display:flex;align-items:center;gap:48px}.hero-text{flex:1}.hero-text h1{font-family:Playfair Display,Georgia,serif;font-size:2.6em;font-weight:700;color:#1a202c;line-height:1.2;margin:0 0 24px}.hero-text p{font-size:1.1em;color:#4a5568;line-height:1.7;margin:0 0 36px}.hero-image{width:100%;max-width:380px;border-radius:12px;flex-shrink:0}.cta-buttons{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.btn{display:inline-block;padding:12px 28px;border-radius:6px;font-size:1em;font-weight:500;text-decoration:none;transition:background-color .2s,transform .1s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background-color:#4a5568;color:#fff}.btn-primary:hover{background-color:#2d3748}.btn-secondary{background-color:transparent;color:#2d3748;border:1.5px solid #a0aec0}.btn-secondary:hover{background-color:#f7fafc;border-color:#718096}@media(max-width:700px){.home{padding:32px 20px 40px}.hero{flex-direction:column-reverse;gap:32px;text-align:center}.hero-text h1{font-size:2em}.hero-image{max-width:100%}.cta-buttons{align-items:center}.btn{width:100%;max-width:280px;text-align:center}}.descriptions-page{max-width:800px;margin:0 auto}.descriptions-page h1{text-align:center;margin:30px 0 10px;color:#1a365d;font-size:2em;font-weight:600}.descriptions-page h2{text-align:center;margin:0 0 20px;color:#2c5282;font-size:1.3em;font-weight:500}.descriptions-intro{text-align:center;max-width:600px;margin:0 auto 30px;color:#4a5568;font-size:1.05em;line-height:1.7}.assignment-cards{display:flex;flex-direction:column;gap:20px}.assignment-card{background:#fff;border-radius:12px;padding:28px;box-shadow:0 4px 6px #4299e11f;border-left:4px solid #3182ce}.assignment-card h3{margin:0 0 8px;color:#1a365d;font-size:1.25em}.time-badge{display:inline-block;background:#ebf4ff;color:#2b6cb0;padding:4px 12px;border-radius:20px;font-size:.85em;font-weight:600;margin-bottom:12px}.assignment-card p{color:#4a5568;margin:8px 0;line-height:1.6}.descriptions-cta{text-align:center;margin:40px 0}.descriptions-footer{margin-top:40px;padding-top:20px;border-top:1px solid #e2e8f0;text-align:center}.disclaimer{font-size:.85em;color:#718096;font-style:italic}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal{background:#fff;border-radius:12px;padding:32px;width:100%;max-width:400px;position:relative;box-shadow:0 8px 24px #1a365d33}.modal h2{text-align:center;color:#1a365d;margin:0 0 20px;font-size:1.4em}.modal form{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;border:none;box-shadow:none;background:none}.modal input{width:100%;box-sizing:border-box}.modal button[type=submit]{width:100%;margin-top:4px}.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.5em;color:#718096;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:#2d3748;background:none;transform:none}.modal-error{text-align:center;color:#e53e3e;font-size:.9em;margin:0 0 8px}.modal-success{text-align:center;color:#38a169;font-size:.9em;margin:0 0 8px}.modal-hint{text-align:center;color:#718096;font-size:.8em;margin:0}.modal input[type=text],.modal input[type=password]{padding:10px 12px;font-size:.95em}.user-admin-choices{display:flex;flex-direction:column;gap:12px}.user-admin-choices button{width:100%;padding:12px;font-size:1em}.modal-back{display:block;width:100%;margin-top:12px;background:none;border:none;color:#4299e1;font-size:.9em;cursor:pointer;padding:8px;text-align:center}.modal-back:hover{color:#2b6cb0;background:none;transform:none;text-decoration:underline}.admin-page{max-width:900px;margin:0 auto}.admin-page h1{text-align:center;margin:30px 0 20px;color:#1a365d;font-size:2.2em;font-weight:600}.admin-prompt{text-align:center;background:#fff;padding:40px;border-radius:12px;box-shadow:0 4px 6px #4299e11a}.admin-prompt p{color:#4a5568;margin-bottom:16px}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.logout-btn{background-color:#718096}.logout-btn:hover{background-color:#4a5568}.add-btn{background-color:#38a169}.add-btn:hover{background-color:#2f855a}.remove-user-btn{background-color:#e53e3e}.remove-user-btn:hover{background-color:#c53030}.inline-form{display:flex;gap:8px;align-items:center;margin:0;padding:0;border:none;box-shadow:none;background:none;flex-wrap:wrap}.inline-form input{padding:8px 12px;min-width:200px}.inline-form button{padding:8px 16px}.cancel-btn{background-color:#718096}.cancel-btn:hover{background-color:#4a5568}.admin-toolbar-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.remove-user-list{display:flex;flex-direction:column;gap:8px}.remove-user-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f7fafc;border-radius:6px;border:1px solid #e2e8f0}.remove-user-row span{color:#2d3748;font-weight:500}.admin-ward{background:#fff;border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 4px 6px #4299e11a}.admin-ward-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px}.admin-ward-header h2{text-align:left;color:#1a365d;font-size:1.3em;margin:0;padding-bottom:0;border-bottom:none}.admin-ward-actions{display:flex;gap:8px}.add-btn-sm{padding:6px 12px;font-size:.85em;background-color:#38a169}.add-btn-sm:hover{background-color:#2f855a}.delete-btn-sm{padding:6px 12px;font-size:.85em;background-color:#e53e3e}.delete-btn-sm:hover{background-color:#c53030}.delete-btn-xs{padding:3px 8px;font-size:.8em;background-color:#e53e3e}.delete-btn-xs:hover{background-color:#c53030}.add-assignment-form{display:flex;flex-wrap:wrap;gap:10px;padding:16px;margin-bottom:16px;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0;box-shadow:none}.add-assignment-form input{flex:1;min-width:180px;padding:8px 12px;font-size:.9em}.add-assignment-form input[type=number]{min-width:140px}.form-actions{display:flex;gap:8px;width:100%}.form-actions button{padding:8px 16px;font-size:.9em}.admin-instance{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.admin-instance:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.admin-instance-past{opacity:.45}.admin-instance-past .admin-instance-title,.admin-instance-past .admin-volunteers-table td{color:#a0aec0}.admin-instance-header{display:flex;justify-content:space-between;align-items:center;padding:8px 0;flex-wrap:wrap;gap:8px}.admin-instance-title{font-weight:500;color:#2d3748}.admin-instance-actions{display:flex;align-items:center;gap:8px}.admin-instance-count{font-size:.85em;color:#718096;background:#ebf4ff;padding:3px 10px;border-radius:12px}.admin-volunteers-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:.9em}.admin-volunteers-table th{text-align:left;color:#718096;font-weight:500;padding:6px 8px;border-bottom:1px solid #e2e8f0}.admin-volunteers-table td{padding:6px 8px;color:#4a5568;border-bottom:1px solid #f7fafc}.admin-volunteers-table tr:hover td{background:#f7fafc}.admin-page .no-volunteers{font-style:italic;color:#a0aec0;font-size:.9em;margin:4px 0}@media(max-width:600px){.admin-toolbar{flex-direction:column;align-items:stretch}.admin-ward-header{flex-direction:column;align-items:flex-start}.admin-volunteers-table{font-size:.8em}.admin-instance-header{flex-direction:column;align-items:flex-start}.add-assignment-form input{min-width:unset;width:100%}}.app-content{flex:1}.error{text-align:center;color:#e53e3e}.loading{display:flex;justify-content:center;align-items:center;margin:30px auto;font-size:1.1em;color:#4a5568;background:#fff;padding:20px;border-radius:12px;box-shadow:0 4px 6px #4299e11a}.loading p{margin-left:10px}.spinner{border:3px solid #e2e8f0;border-top:3px solid #3182ce;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite;flex-shrink:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.volunteer-page h1{text-align:center;margin:30px 0 10px;color:#1a365d;font-size:2.2em;font-weight:600}.volunteer-page h2{text-align:center;margin:0 0 30px;color:#2c5282;font-size:1.4em;font-weight:500}.assignments-container{max-width:800px;margin:30px auto;background:#fff;padding:25px;border-radius:12px;box-shadow:0 4px 6px #4299e133}.dropdown-row{display:flex;gap:10px}select{flex:1;min-width:200px;padding:12px;border:2px solid #3182ce;border-radius:8px;font-size:.95em;color:#2d3748;background-color:#fff;transition:border-color .2s,box-shadow .2s;cursor:pointer}select:focus{outline:none;border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a}form{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:20px 0 0;padding:20px;border:1px solid #e2e8f0;border-radius:12px;background-color:#fff;box-shadow:0 2px 4px #4299e10d}input[type=text],input[type=email]{flex:1;min-width:200px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95em;color:#2d3748;background-color:#fff;transition:border-color .2s,box-shadow .2s}input[type=text]:focus,input[type=email]:focus{outline:none;border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a}button{padding:12px 24px;background-color:#3182ce;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.95em;font-weight:500;transition:background-color .2s,transform .1s}button:disabled{background-color:#a0aec0;cursor:not-allowed}button:hover:not(:disabled){background-color:#2b6cb0;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}.current-volunteers{max-width:800px;margin:30px auto 20px;padding:25px;background:#fff;border-radius:12px;box-shadow:0 2px 4px #4299e10d;font-size:.9em;color:#718096}.current-volunteers h3{text-align:center;color:#718096;font-size:1.1em;font-weight:500;border-bottom:1px solid #e2e8f0;padding-bottom:12px;margin-bottom:20px}.volunteers-list{display:flex;flex-direction:column;gap:20px}.date-header{font-weight:500;color:#718096;padding:8px 0;border-bottom:1px solid #e2e8f0}.volunteers-entries{padding:8px 15px}.volunteer-entry{padding:4px 0;color:#718096}.no-volunteers{font-style:italic;color:#a0aec0;padding:4px 0}@media(max-width:600px){.dropdown-row{flex-direction:column}form{flex-direction:column;gap:15px}select,input[type=text],input[type=email],button{width:100%;min-width:unset}}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:#e8f1f8;color:#2d3748;line-height:1.6}#root{display:flex;flex-direction:column;max-width:1200px;margin:0 auto;padding:20px 20px 0;box-sizing:border-box}
