:root{color:#101828;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f8fc;font-family:Aptos,Segoe UI Variable,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:20rem;min-height:100svh;margin:0}button,input,textarea,select{font:inherit}:root{--ink:#101828;--ink-strong:#0b1220;--ink-muted:#475467;--night:#101828;--night-soft:#1d2939;--canvas:#f7f8fc;--paper:#fff;--paper-muted:#f2f4f7;--line:#d0d5dd;--line-strong:#98a2b3;--brand:#334cff;--brand-hover:#2037c9;--brand-soft:#eef1ff;--signal:#f79009;--signal-soft:#fff7ed;--red:#b42318;--red-soft:#fef3f2;--shadow:0 1.25rem 3.5rem #1018281a;--shadow-lifted:0 1.75rem 4.5rem #10182829}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at 92% 4%, #334cff30 0, #334cff00 20rem), radial-gradient(circle at -8% 30%, #f7900924 0, #f7900900 23rem), var(--canvas)}body:before{z-index:-1;content:"";pointer-events:none;opacity:.42;background-image:radial-gradient(#10182824 .7px,#0000 .7px);background-size:1.25rem 1.25rem;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 74%);mask-image:linear-gradient(#000,#0000 74%)}button,input,select{font:inherit}button,input,select,label{-webkit-tap-highlight-color:transparent}.app-shell{width:min(100%,76rem);min-height:100svh;margin:0 auto;padding:clamp(.9rem,3vw,2.25rem)}.topbar{z-index:10;min-height:4.55rem;color:var(--paper);background:linear-gradient(125deg,#0b1220,#1d2939);border:1px solid #ffffff1f;border-radius:1.25rem;justify-content:space-between;align-items:center;gap:.8rem 1.1rem;padding:.7rem .85rem .7rem .95rem;display:flex;position:sticky;top:.65rem;box-shadow:0 1rem 2.5rem #1018283d}.brand{min-width:0;color:var(--paper);letter-spacing:-.035em;align-items:center;gap:.7rem;font-size:clamp(.98rem,2.8vw,1.15rem);font-weight:800;display:inline-flex}.brand-mark{width:2.6rem;height:2.6rem;color:var(--paper);background:var(--brand);letter-spacing:-.09em;border-radius:.88rem .88rem .25rem;flex:none;place-items:center;font-size:1.22rem;font-weight:950;display:grid;box-shadow:inset 0 -.18rem #0b122038}.sync-status{color:#fffdf7d1;text-align:right;background:#ffffff12;border:1px solid #ffffff24;border-radius:999px;flex:0 auto;justify-content:flex-end;align-items:center;gap:.45rem;max-width:19rem;padding:.52rem .65rem;font-size:.72rem;font-weight:750;line-height:1.15;display:inline-flex}.status-dot{background:var(--signal);border-radius:50%;flex:none;width:.58rem;height:.58rem;box-shadow:0 0 0 .2rem #f7900929}.sync-status.is-ready .status-dot{background:#32d583;box-shadow:0 0 0 .2rem #32d58329}.sync-status.is-offline .status-dot,.sync-status.is-pending .status-dot{background:var(--signal)}.sync-status.is-syncing .status-dot{background:#77c6ff;animation:1.4s ease-in-out infinite sync-pulse}.sync-status.is-error{color:#ffd6d4}.sync-status.is-error .status-dot{background:#ff716a;box-shadow:0 0 0 .2rem #ff716a29}@keyframes sync-pulse{50%{opacity:.68;transform:scale(.72)}}.eyebrow{color:var(--brand);letter-spacing:.125em;text-transform:uppercase;margin:0 0 .85rem;font-size:.72rem;font-weight:900;line-height:1.1}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink-strong);letter-spacing:-.055em}h1{font-weight:900}.intro{max-width:38rem;color:var(--ink-muted);font-size:clamp(1rem,1.8vw,1.1rem);line-height:1.62}.auth-card,.attendance-card{box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #d0d5dde0;position:relative;overflow:hidden}.auth-card{border-radius:1.7rem 1.7rem 1.7rem .45rem;max-width:43rem;margin:clamp(2rem,9vw,6.8rem) auto 0;padding:clamp(1.5rem,5.4vw,3.5rem)}.auth-card:after{content:"";background:var(--brand);opacity:.92;border-radius:2rem;width:7.5rem;height:7.5rem;position:absolute;top:-2.6rem;right:-2.6rem;transform:rotate(18deg)}.auth-card>*{z-index:1;position:relative}.auth-card h1{max-width:11ch;margin-bottom:1.15rem;font-size:clamp(2.5rem,9vw,4.55rem);line-height:.96}.loading-card{min-height:18rem}.auth-form{gap:.72rem;margin-top:2rem;display:grid}.inline-actions,.card-actions,.attendance-actions{flex-wrap:wrap;align-items:center;gap:.65rem .85rem;display:flex}.card-actions{margin-top:1.4rem}.auth-form label,.admin-form label,.attendance-grid>label,.roster-heading>label{color:var(--ink-strong);letter-spacing:-.015em;font-weight:850}.auth-form input,.admin-form input,.admin-form select,.attendance-grid input,.attendance-grid select,.roster-heading select{border:1.5px solid var(--line-strong);width:100%;min-height:3.35rem;color:var(--ink-strong);background:#fffef9;border-radius:.85rem;outline:none;padding:.75rem .88rem;transition:border-color .15s,box-shadow .15s,background .15s;box-shadow:inset 0 1px #ffffffd6}.auth-form input:focus,.admin-form input:focus,.admin-form select:focus,.attendance-grid input:focus,.attendance-grid select:focus,.roster-heading select:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 .26rem #334cff38}.field-help{color:var(--ink-muted);margin:-.2rem 0 .5rem;font-size:.89rem;line-height:1.48}button{min-height:3.25rem;color:var(--paper);background:var(--brand);letter-spacing:-.015em;cursor:pointer;border:1px solid #0000;border-radius:.85rem;padding:.74rem 1rem;font-weight:900;transition:background .15s,box-shadow .15s,transform .15s;box-shadow:inset 0 -.17rem #0b122038,0 .3rem .7rem #1018281a}button:hover:not(:disabled){background:var(--brand-hover);transform:translateY(-1px);box-shadow:inset 0 -.13rem #0b122033,0 .5rem 1rem #10182826}button:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 .08rem .15rem #0b122033}button:focus-visible{outline:3px solid var(--ink-strong);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.52}.text-button{min-height:auto;color:var(--brand-hover);box-shadow:none;text-underline-offset:.2em;background:0 0;border-radius:.2rem;padding:.35rem .12rem;-webkit-text-decoration:underline #2037c959;text-decoration:underline #2037c959}.text-button:hover:not(:disabled){color:var(--ink-strong);box-shadow:none;background:0 0}.secondary-button{color:var(--paper);background:var(--night);margin-top:.8rem;box-shadow:inset 0 -.17rem #00000040,0 .3rem .7rem #1018281f}.secondary-button:hover:not(:disabled){background:#1d2939}.membership-list{gap:.7rem;margin:1.6rem 0 0;padding:0;list-style:none;display:grid}.membership-card{border:1px solid var(--line);background:var(--paper-muted);border-radius:1rem 1rem 1rem .35rem;padding:1.05rem 1.1rem}.membership-card h2{margin-bottom:.35rem;font-size:1.16rem}.membership-card p:last-child{color:var(--ink-muted);margin-bottom:0;line-height:1.5}.success-card{color:#fffdf7d1;max-width:56rem;box-shadow:var(--shadow-lifted);background:linear-gradient(135deg,#101828,#1d2939);border-color:#344054}.success-card:after{background:var(--signal)}.success-card h1,.success-card h2{color:var(--paper)}.success-card .eyebrow,.success-card .role-label{color:#a7b5ff}.success-card .intro,.success-card .notice{color:#fffdf7c4}.success-card .membership-card{background:#ffffff14;border-color:#ffffff21}.success-card .membership-card p:last-child{color:#fffdf7b8}.success-card .secondary-button{color:var(--ink-strong);background:var(--paper);box-shadow:none}.success-card .secondary-button:hover:not(:disabled){background:#ebe9dd}.attendance-card{border-radius:1.5rem 1.5rem 1.5rem .45rem;max-width:76rem;margin:1.35rem auto 0;padding:clamp(1.3rem,4vw,2.5rem)}.attendance-card h2{max-width:18ch;margin-bottom:.6rem;font-size:clamp(1.8rem,5vw,2.7rem);line-height:1.05}.admin-card{color:#fffdf7d6;background:linear-gradient(135deg,#101828,#1d2939);border-color:#344054}.admin-card h2,.admin-card h3,.admin-card label,.admin-card legend,.admin-card .checkbox-label{color:var(--paper)}.admin-card .eyebrow{color:#a7b5ff}.admin-card .field-help{color:#fffdf7b8}.admin-card .text-button{color:#a7b5ff;text-decoration-color:#a7b5ff7a}.admin-card .text-button:hover:not(:disabled){color:var(--paper)}.admin-form{gap:.82rem;margin-top:1.35rem;display:grid}.admin-form label,.attendance-grid>label,.roster-heading>label{gap:.38rem;display:grid}.admin-card .admin-form input,.admin-card .admin-form select{border-color:#0000}.crew-setup-form{border-top:1px solid #ffffff29;margin-top:1.85rem;padding-top:1.65rem}.crew-setup-form h3{margin:0;font-size:1.27rem}.member-picker,.common-hours{border:1px solid var(--line);background:#f2f4f7cc;border-radius:1rem;margin:0;padding:1rem}.admin-card .member-picker{background:#ffffff12;border-color:#ffffff29}.member-picker legend,.common-hours legend{color:var(--ink-strong);padding:0 .38rem;font-weight:900}.member-picker .field-help{margin:.2rem 0 .62rem}.refresh-members-button{margin-bottom:.65rem}.member-options{gap:.48rem;display:grid}.member-options .checkbox-label{margin-top:0;font-size:.94rem}.invite-code{color:var(--paper);background:var(--brand);border:1px solid #637affad;border-radius:1rem;gap:.62rem;margin-top:1rem;padding:1rem;line-height:1.45;display:grid}.invite-code code{color:var(--paper);background:var(--night);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:.65rem;padding:.78rem;font-size:.82rem;display:block}.invite-code p{margin:0;font-size:.88rem}.attendance-grid{gap:.82rem;margin-top:1.05rem;display:grid}.common-hours{margin:1.35rem 0 0}.common-hours .attendance-grid{margin-top:0}.checkbox-label{color:var(--ink-strong);align-items:center;gap:.65rem;margin-top:.88rem;font-weight:750;display:flex}.checkbox-label input{width:1.2rem;height:1.2rem;accent-color:var(--brand);flex:none;margin:0}.roster-list{gap:.8rem;margin-top:1.35rem;display:grid}.roster-entry{border:1px solid var(--line);background:var(--paper-muted);border-radius:1rem 1rem 1rem .35rem;padding:1rem}.roster-heading{gap:.78rem;display:grid}.roster-heading h3{margin:0;font-size:1.05rem}.roster-heading p{color:var(--ink-muted);margin:.28rem 0 0;font-size:.89rem}.individual-hours{margin-top:.9rem}.attendance-actions{margin-top:1.35rem}.attendance-actions .secondary-button{margin-top:0}.role-label{color:var(--brand-hover);letter-spacing:.035em;text-transform:uppercase;margin-bottom:.55rem;font-size:.85rem;font-weight:900}.alert,.notice{border:1px solid #0000;border-left-width:.42rem;border-radius:.8rem;margin:1.3rem 0 0;padding:.92rem 1rem;font-size:.94rem;line-height:1.48}.alert-warning,.notice{color:#8a3a0b;background:var(--signal-soft);border-color:#f9b873}.alert-success{color:#067647;background:#ecfdf3;border-color:#6ce9a6}.alert-error{color:#742f30;background:var(--red-soft);border-color:#e7a09b}.admin-card .alert-warning,.admin-card .notice{color:#8a3a0b}@media (width>=48rem){.app-shell{padding-bottom:3rem}.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}}@media (width>=68rem){.topbar{padding:.85rem 1.1rem}.attendance-card{padding:2.3rem 2.5rem}}@media (width<=30rem){.topbar{align-items:flex-start}.sync-status{max-width:12rem}.auth-card{margin-top:2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
