:root{color:#153328;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f4f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:20rem;margin:0}button,input,textarea,select{font:inherit}.app-shell{box-sizing:border-box;width:min(100%,44rem);min-height:100svh;margin:0 auto;padding:1.25rem}.topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{color:#153328;letter-spacing:-.02em;align-items:center;gap:.65rem;font-weight:800;display:flex}.brand-mark{color:#fff;background:#176b4a;border-radius:.65rem;place-items:center;width:2.15rem;height:2.15rem;display:grid}.sync-status{color:#406155;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;display:inline-flex}.status-dot{background:#d19026;border-radius:50%;width:.55rem;height:.55rem}.sync-status.is-ready .status-dot{background:#248553}.sync-status.is-offline .status-dot,.sync-status.is-pending .status-dot{background:#d19026}.sync-status.is-syncing .status-dot{background:#2d6fbb}.sync-status.is-error{color:#8b2424}.sync-status.is-error .status-dot{background:#bd3434}.eyebrow{color:#176b4a;letter-spacing:.09em;text-transform:uppercase;margin:0 0 .7rem;font-size:.77rem;font-weight:800}h1,h2,p{margin-top:0}h1,h2{color:#153328;letter-spacing:-.04em}.intro{color:#5b7066;max-width:34rem;font-size:1.05rem;line-height:1.6}.auth-card{background:#fff;border:1px solid #d7e3dc;border-radius:1rem;max-width:34rem;margin:clamp(3rem,13vw,7rem) auto 0;padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 .7rem 2rem #183d2c14}.auth-card h1{max-width:12ch;margin-bottom:1.25rem;font-size:clamp(2.35rem,10vw,3.7rem);line-height:1}.auth-form{gap:.7rem;margin-top:2rem;display:grid}.inline-actions,.card-actions{flex-wrap:wrap;align-items:center;gap:.45rem .9rem;display:flex}.card-actions{margin-top:1.25rem}.auth-form label{color:#153328;font-weight:800}.auth-form input{box-sizing:border-box;color:#153328;background:#fff;border:1px solid #aec5b9;border-radius:.65rem;width:100%;min-height:3.25rem;padding:.75rem .9rem}.auth-form input:focus{border-color:#176b4a;outline:3px solid #176b4a38}.field-help{color:#5b7066;margin:-.25rem 0 .5rem;font-size:.88rem;line-height:1.4}button{color:#fff;cursor:pointer;background:#176b4a;border:0;border-radius:.65rem;min-height:3.25rem;padding:.75rem 1rem;font-weight:800}button:hover:not(:disabled){background:#0f5639}button:focus-visible{outline-offset:2px;outline:3px solid #176b4a59}button:disabled{cursor:not-allowed;opacity:.58}.text-button{color:#176b4a;background:0 0;min-height:auto;padding:.4rem;text-decoration:underline}.text-button:hover:not(:disabled){color:#0f5639;background:0 0}.secondary-button{color:#176b4a;background:#e5f2eb;margin-top:.8rem}.secondary-button:hover:not(:disabled){background:#d7e9df}.membership-list{gap:.75rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.membership-card{background:#f8fbf9;border:1px solid #d7e3dc;border-radius:.75rem;padding:1rem}.membership-card h2{margin-bottom:.3rem;font-size:1.15rem}.membership-card p:last-child{color:#5b7066;margin-bottom:0;line-height:1.45}.attendance-card{background:#fff;border:1px solid #d7e3dc;border-radius:1rem;max-width:44rem;margin:1.25rem auto 0;padding:clamp(1.25rem,4vw,2rem);box-shadow:0 .7rem 2rem #183d2c14}.attendance-card h2{margin-bottom:.55rem;font-size:clamp(1.65rem,7vw,2.25rem)}.admin-form{gap:.8rem;margin-top:1.25rem;display:grid}.admin-form label{color:#153328;gap:.35rem;font-weight:800;display:grid}.admin-form input,.admin-form select{box-sizing:border-box;color:#153328;width:100%;min-height:2.9rem;font:inherit;background:#fff;border:1px solid #aec5b9;border-radius:.65rem;padding:.6rem .7rem}.admin-form input:focus,.admin-form select:focus{border-color:#176b4a;outline:3px solid #176b4a38}.crew-setup-form{border-top:1px solid #d7e3dc;margin-top:1.75rem;padding-top:1.5rem}.crew-setup-form h3{color:#153328;margin:0;font-size:1.2rem}.member-picker{border:1px solid #d7e3dc;border-radius:.75rem;margin:0;padding:1rem}.member-picker legend{color:#153328;padding:0 .35rem;font-weight:800}.member-picker .field-help{margin:.15rem 0 .55rem}.refresh-members-button{margin-bottom:.65rem}.member-options{gap:.45rem;display:grid}.member-options .checkbox-label{margin-top:0;font-size:.93rem}.invite-code{color:#155238;background:#e0f3e7;border:1px solid #9bc8ac;border-radius:.75rem;gap:.6rem;margin-top:1rem;padding:1rem;line-height:1.45;display:grid}.invite-code code{color:#153328;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#fff;border-radius:.5rem;padding:.75rem;font-size:.82rem;display:block}.invite-code p{margin:0;font-size:.88rem}.attendance-grid{gap:.8rem;margin-top:1rem;display:grid}.attendance-grid>label,.roster-heading>label{color:#153328;gap:.35rem;font-weight:800;display:grid}.attendance-grid input,.attendance-grid select,.roster-heading select{box-sizing:border-box;color:#153328;width:100%;min-height:2.9rem;font:inherit;background:#fff;border:1px solid #aec5b9;border-radius:.65rem;padding:.6rem .7rem}.attendance-grid input:focus,.attendance-grid select:focus,.roster-heading select:focus{border-color:#176b4a;outline:3px solid #176b4a38}.common-hours{border:1px solid #d7e3dc;border-radius:.75rem;margin:1.25rem 0 0;padding:1rem}.common-hours legend{color:#153328;padding:0 .35rem;font-weight:800}.common-hours .attendance-grid{margin-top:0}.checkbox-label{color:#153328;align-items:center;gap:.6rem;margin-top:.85rem;font-weight:700;display:flex}.checkbox-label input{accent-color:#176b4a;width:1.15rem;height:1.15rem;margin:0}.roster-list{gap:.75rem;margin-top:1.25rem;display:grid}.roster-entry{background:#f8fbf9;border:1px solid #d7e3dc;border-radius:.75rem;padding:1rem}.roster-heading{gap:.75rem;display:grid}.roster-heading h3{color:#153328;margin:0;font-size:1rem}.roster-heading p{color:#5b7066;margin:.25rem 0 0;font-size:.88rem}.individual-hours{margin-top:.85rem}.attendance-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.25rem;display:flex}.attendance-actions .secondary-button{margin-top:0}.role-label{color:#176b4a;margin-bottom:.55rem;font-size:.88rem;font-weight:800}.alert,.notice{border-radius:.65rem;margin:1.25rem 0 0;padding:.85rem .95rem;line-height:1.45}.alert-warning,.notice{color:#725014;background:#fff4dc}.alert-success{color:#155238;background:#e0f3e7}.alert-error{color:#8b2424;background:#fde8e8}@media (width>=48rem){.app-shell{padding:2rem}.attendance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-grid:not(.hours-grid){grid-template-columns:repeat(2,minmax(0,1fr))}.roster-heading{grid-template-columns:1fr minmax(10rem,14rem);align-items:end}}
