@import "https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Source+Sans+3:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap";:root{--color-primary:#c41e3a;--color-primary-dark:#9b1830;--color-primary-light:#e8354f;--color-primary-glow:#c41e3a2e;--color-bg:#121214;--color-bg-raised:#1e1d1c;--color-surface:#222120eb;--color-surface-solid:#1e1d1c;--color-surface-hover:#ffffff09;--color-text:#f0ede8;--color-text-secondary:#888;--color-border:#ffffff0f;--color-border-hover:#ffffff1f;--color-border-focus:#d4a84380;--color-success:#22c55e;--color-danger:#ef4444;--color-warning:#f59e0b;--color-gold:#d4a843;--color-ember:#ff6b35;--color-open:#22c55e12;--color-open-border:#22c55e;--color-claimed:#f59e0b14;--color-claimed-border:#f59e0b;--color-mine:#d4a84314;--color-mine-border:#d4a843;--color-paid:#d4a843;--color-volunteer:#22c55e;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:20px;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 2px 8px #00000059, 0 1px 2px #0003;--shadow-md:0 4px 24px #00000073, 0 2px 6px #00000040;--shadow-lg:0 16px 48px #0000008c, 0 4px 12px #0000004d;--glass-blur:blur(20px);--glass-bg:#1e1d1ce0;--glass-border:#ffffff0f;--font:"Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Oswald", sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--t-fast:.15s;--t-normal:.25s;--t-slow:.4s;--header-height:60px;--bottom-nav-height:68px;--content-max:1400px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0000;background-image:radial-gradient(1100px at 85% 20%,#c5991e66,#0000 60%),radial-gradient(900px at 15% 48%,#a9260cb3,#0000 80%),radial-gradient(1000px at 75% 48%,#69007080,#0000 80%),linear-gradient(#121214 0%,#0e0e10 70%,#050607 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;min-height:100vh;font-size:17px;line-height:1.55;overflow-x:hidden}#root{z-index:1;min-height:100vh;position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glow{0%,to{box-shadow:0 0 8px #c41e3a4d}50%{box-shadow:0 0 16px #c41e3a80}}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}.app-layout{flex-direction:column;min-height:100vh;display:flex}.main-content{max-width:var(--content-max);flex:1;width:100%;margin:0 auto;padding:28px 24px}.header{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border);z-index:100;transition:background var(--t-normal);position:sticky;top:0}.header-inner{max-width:var(--content-max);height:var(--header-height);align-items:center;gap:24px;margin:0 auto;padding:0 24px;display:flex}.logo{color:var(--color-text);letter-spacing:-.02em;transition:opacity var(--t-fast);flex-shrink:0;align-items:center;gap:10px;font-size:1.1rem;font-weight:800;text-decoration:none;display:flex}.logo:hover{opacity:.85}.nav-shield{background:linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex;box-shadow:0 0 14px #c41e3a4d,inset 0 1px #ffffff1a}.nav-shield svg{color:#fff;width:1.2rem;height:1.2rem}.logo-titles{flex-direction:column;display:flex}.logo-text{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text);font-size:1.15rem;font-weight:600}.logo-sub{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold);margin-top:-2px;font-size:.7rem;font-weight:400}.nav{flex:1;gap:2px;display:flex}.nav-link{border-radius:var(--radius);color:var(--color-text-secondary);transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);white-space:nowrap;padding:7px 14px;font-size:.85rem;font-weight:600;text-decoration:none;position:relative}.nav-link:hover{color:var(--color-text);background:#ffffff0d}.nav-link.active{background:var(--color-primary);color:#fff;box-shadow:0 2px 12px #c41e3a59,inset 0 1px #ffffff1a}.user-menu{flex-shrink:0;align-items:center;gap:10px;display:flex}.user-name{color:var(--color-text-secondary);font-size:.82rem;font-weight:500}.role-badge{text-transform:uppercase;letter-spacing:.05em;background:var(--color-primary);color:#fff;border-radius:10px;padding:3px 10px;font-size:.65rem;font-weight:700}.role-badge.role-crew{background:var(--color-paid)}.role-badge.role-member{color:var(--color-text-secondary);background:#8a9bba40}.badge{background:var(--color-danger);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:.68rem;font-weight:700;animation:2s ease-in-out infinite glow;display:inline-flex}.badge-lg{border-radius:12px;min-width:24px;height:24px;margin-left:8px;font-size:.82rem}.bottom-nav{display:none}.day-selector{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-lg);border:1px solid var(--color-border);justify-content:space-between;gap:3px;margin-bottom:16px;padding:4px;display:flex}.day-selector-tab{border-radius:var(--radius);cursor:pointer;transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);color:var(--color-text-secondary);font-family:var(--font);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:1px;min-height:52px;padding:6px 4px 12px;display:flex;position:relative}.day-selector-tab:hover{background:var(--color-surface-hover)}.day-selector-tab.active{background:var(--color-primary);color:#fff;box-shadow:0 2px 10px #c41e3a59}.day-selector-tab.today:not(.active):after{content:"";background:var(--color-primary);border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.day-selector-tab.active.today:after{content:"";background:#ffffffb3;border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.day-selector-letter{text-transform:uppercase;letter-spacing:.04em;opacity:.7;font-size:.62rem;font-weight:700}.day-selector-tab.active .day-selector-letter{opacity:.9}.day-selector-date{font-size:1rem;font-weight:700;line-height:1.1}.day-selector-dots{gap:3px;height:5px;margin-top:2px;display:flex}.day-selector-dot{border-radius:50%;width:5px;height:5px}.day-selector-dot.dot-paid{background:var(--color-paid)}.day-selector-dot.dot-volunteer{background:var(--color-volunteer)}.day-selector-tab.active .day-selector-dot.dot-paid{background:#e8c97a}.day-selector-tab.active .day-selector-dot.dot-volunteer{background:#86efac}.btn{border-radius:var(--radius);cursor:pointer;transition:all var(--t-normal) var(--ease-out);font-size:.86rem;font-weight:600;font-family:var(--font);-webkit-tap-highlight-color:transparent;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn:active:not(:disabled){transition-duration:60ms;transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;border-color:#c41e3a40;box-shadow:0 2px 8px #c41e3a33,inset 0 1px #ffffff14}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);transform:translateY(-1px);box-shadow:0 4px 20px #c41e3a66,0 0 0 1px #c41e3a1a}.btn-active{background:var(--color-primary-dark);color:#fff;border-color:#c41e3a4d}.btn-active:hover:not(:disabled){background:var(--color-primary)}.btn-danger{color:var(--color-danger);background:#ef44441f;border-color:#ef444433}.btn-danger:hover:not(:disabled){background:#ef444438;border-color:#ef444459}.btn-outline{border:1px solid var(--color-border-hover);color:var(--color-text);background:#ffffff06}.btn-outline:hover:not(:disabled){background:#ffffff0f;border-color:#fff3}.btn-sm{padding:7px 13px;font-size:.8rem}.btn-xs{padding:4px 10px;font-size:.75rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-google{color:var(--color-text);border:1px solid var(--color-border-hover);background:#ffffff0d;font-weight:500}.btn-google:hover:not(:disabled){background:#ffffff17;border-color:#fff3;box-shadow:0 4px 16px #0000004d}.btn-volunteer{background:linear-gradient(135deg, var(--color-volunteer), #16a34a);color:#fff;border-color:#22c55e40;box-shadow:0 2px 8px #22c55e33}.btn-volunteer:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #22c55e59}.google-icon{flex-shrink:0}.page{animation:fadeIn .35s var(--ease-out)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;align-items:center;font-size:1.5rem;font-weight:700;display:flex}.filters{gap:8px;display:flex}.select,.input{border:1px solid var(--color-border-hover);border-radius:var(--radius);font-size:.86rem;font-family:var(--font);color:var(--color-text);transition:border-color var(--t-normal), box-shadow var(--t-normal), background var(--t-normal);background:#121214cc;min-height:42px;padding:10px 14px}.select:focus,.input:focus{border-color:var(--color-border-focus);background:#121214f2;outline:none;box-shadow:0 0 0 3px #d4a8431f,0 0 0 1px #d4a84340}.select option{background:var(--color-surface-solid);color:var(--color-text)}.form-panel{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:fadeInUp .4s var(--ease-out);margin-bottom:24px;padding:24px}.form-panel-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.form-panel-header h3{letter-spacing:-.01em;font-size:1.1rem;font-weight:700}.form{flex-direction:column;gap:14px;display:flex}.form-row{gap:12px;display:flex}.form-group{flex-direction:column;flex:1;gap:5px;display:flex}.form-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:700}.form-help{color:var(--color-text-secondary);font-size:.8rem;line-height:1.5}.form-actions{gap:8px;margin-top:6px;display:flex}.day-checkboxes{flex-wrap:wrap;gap:8px;display:flex}.checkbox-label{cursor:pointer;border:1px solid var(--color-border-hover);border-radius:var(--radius);transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);-webkit-tap-highlight-color:transparent;align-items:center;gap:6px;padding:6px 12px;font-size:.86rem;display:flex}.checkbox-label:hover{background:#ffffff0a;border-color:#ffffff2e}.checkbox-label:has(input:checked){background:#d4a8431a;border-color:#d4a84359;box-shadow:0 0 0 1px #d4a8431a}.batch-date-nav{justify-content:center;align-items:center;gap:12px;margin-bottom:12px;display:flex}.batch-date-range{text-align:center;letter-spacing:-.01em;min-width:200px;font-weight:700}.batch-week-row{border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--t-fast);background:#ffffff04;margin-bottom:8px;padding:12px}.batch-week-row:hover{border-color:var(--color-border-hover)}.batch-week-toggle{margin-bottom:6px;background:0 0!important;border:none!important;padding:0!important}.week-navigator{justify-content:center;align-items:center;gap:16px;margin-bottom:24px;display:flex}.week-label{text-align:center;min-width:220px}.week-dates{letter-spacing:-.01em;font-size:1rem;font-weight:700}.week-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.day-column{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-lg);border:1px solid var(--color-border);min-height:200px;transition:border-color var(--t-normal), box-shadow var(--t-normal);overflow:hidden}.day-column:hover{border-color:var(--color-border-hover);box-shadow:0 2px 12px #00000026}.day-header{border-bottom:1px solid var(--color-border);text-align:center;background:#ffffff05;padding:10px 12px}.day-name{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text);font-size:.78rem;font-weight:700}.day-date{color:var(--color-text-secondary);margin-top:1px;font-size:.72rem}.day-shifts{flex-direction:column;gap:6px;padding:8px;display:flex}.no-shifts{text-align:center;color:#8886;padding:24px 8px;font-size:.78rem;font-style:italic}.shift-card{border-radius:var(--radius);border:1px solid var(--color-border);transition:box-shadow var(--t-normal) var(--ease-out), border-color var(--t-normal), transform var(--t-normal) var(--ease-out), background var(--t-normal);background:#ffffff05;padding:11px;font-size:.82rem;position:relative}.shift-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border-hover);transform:translateY(-2px)}.shift-card:active{transition-duration:60ms;transform:translateY(0)}.shift-open{border-left:3px solid var(--color-open-border);background:var(--color-open)}.shift-claimed{border-left:3px solid var(--color-claimed-border);background:var(--color-claimed)}.shift-mine{border-left:3px solid var(--color-mine-border);background:var(--color-mine);box-shadow:0 0 0 1px #d4a8430d}.shift-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.shift-station{letter-spacing:-.01em;font-size:.8rem;font-weight:700}.shift-type-badge{text-transform:uppercase;letter-spacing:.05em;color:#fff;border-radius:8px;padding:2px 8px;font-size:.6rem;font-weight:700}.shift-type-badge.paid{background:var(--color-paid);box-shadow:0 1px 4px #d4a84340}.shift-type-badge.volunteer{background:var(--color-volunteer);box-shadow:0 1px 4px #22c55e40}.shift-volunteer-banner{background:linear-gradient(135deg, var(--color-volunteer), #16a34a);color:#fff;text-align:center;letter-spacing:.1em;border-radius:var(--radius) var(--radius) 0 0;margin:-11px -11px 8px;padding:4px 0;font-size:.65rem;font-weight:700}.shift-volunteer-note{color:var(--color-volunteer);margin-top:4px;font-size:.72rem;font-style:italic}.shift-card.shift-volunteer{border-style:dashed;border-color:#22c55e33}.shift-card.shift-volunteer.shift-open{border-left:3px dashed var(--color-volunteer);background:#22c55e0d}.shift-card.shift-paid.shift-open{border-left:3px solid var(--color-paid);background:#d4a8430d}.shift-members-only-note{color:var(--color-text-secondary);font-size:.72rem;font-style:italic}.member-info-banner{border:1px solid var(--color-border);border-left:3px solid var(--color-text-secondary);border-radius:var(--radius);color:var(--color-text-secondary);background:#8888880d;margin-bottom:16px;padding:11px 14px;font-size:.84rem;line-height:1.5}.hours-volunteer-label{color:var(--color-volunteer);margin-top:4px;font-size:.8rem}.shift-card-body{margin-bottom:8px}.shift-date{color:var(--color-text-secondary);margin-bottom:2px;font-size:.8rem}.shift-time{font-weight:600}.shift-hours{color:var(--color-text-secondary);margin-left:4px;font-weight:500}.shift-description{color:var(--color-text-secondary);margin-top:4px;font-size:.76rem;font-style:italic;line-height:1.4}.shift-release-info{color:var(--color-warning);margin-top:4px;font-size:.74rem;font-weight:600}.shift-claimed-by{color:var(--color-text-secondary);margin-top:2px;font-size:.76rem}.shift-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;display:flex}.shift-status-open{color:var(--color-success);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:700}.shift-status-claimed{color:var(--color-text-secondary);font-size:.76rem}.shift-status-offered{color:#fb923c;font-size:.76rem;font-weight:600}.shift-card.shift-offered{background:#fb923c0d;border-style:dashed;border-color:#fb923c40}.shift-status-mine{color:var(--color-paid);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:700}.shift-actions{flex-wrap:wrap;gap:4px;display:flex}.shift-error{color:var(--color-danger);border-radius:var(--radius-sm);background:#ef444412;border:1px solid #ef444426;margin-top:6px;padding:7px 10px;font-size:.76rem}.shift-pending{color:var(--color-warning);border-radius:var(--radius-sm);background:#f59e0b12;border:1px solid #f59e0b26;margin-top:6px;padding:7px 10px;font-size:.76rem}.admin-shift{border-left-width:3px}.hours-summary{flex:0 0 300px}.hours-bar-container{width:100%}.hours-bar-label{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;font-size:.84rem;font-weight:500;display:flex}.hours-week-range{color:var(--color-text-secondary);font-size:.75rem;font-weight:400}.hours-bar{background:#ffffff0f;border-radius:4px;height:8px;overflow:hidden}.hours-bar-fill{background:linear-gradient(90deg, var(--color-success), #16a34a);height:100%;transition:width .6s var(--ease-out);border-radius:4px;box-shadow:0 0 10px #22c55e40}.hours-bar-fill.hours-full{background:linear-gradient(90deg, var(--color-danger), #dc2626);box-shadow:0 0 10px #ef44444d}.shifts-list{flex-direction:column;gap:20px;display:flex}.shift-group-date{border-bottom:1px solid var(--color-border);letter-spacing:-.01em;margin-bottom:8px;padding-bottom:8px;font-size:.95rem;font-weight:700}.shift-group-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.swap-list{flex-direction:column;gap:8px;display:flex}.swap-card{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--t-normal), box-shadow var(--t-normal);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.swap-card:hover{border-color:var(--color-border-hover);box-shadow:0 2px 8px #00000026}.swap-info{font-size:.88rem}.swap-actions{gap:6px;display:flex}.swap-status{font-size:.8rem;font-weight:600}.swap-status.pending{color:var(--color-warning)}.swap-picker-overlay{-webkit-backdrop-filter:blur(6px);z-index:150;animation:fadeIn .2s var(--ease-out);background:#0a0a0cbf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.swap-picker{background:var(--color-surface-solid);border:1px solid var(--color-border-hover);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-lg);animation:scaleIn .3s var(--ease-out);padding:24px;overflow-y:auto}.swap-picker-info{border:1px solid var(--color-border);border-radius:var(--radius);background:#ffffff06;margin-bottom:12px;padding:12px 14px;font-size:.88rem}.swap-target-list{flex-direction:column;gap:8px;display:flex}.swap-target-card{border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--t-fast), background var(--t-fast);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.swap-target-card:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.swap-target-info{font-size:.84rem;line-height:1.45}.assign-user-list{flex-direction:column;gap:4px;max-height:400px;display:flex;overflow-y:auto}.assign-user-row{border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--t-fast), background var(--t-fast);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.assign-user-row:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.assign-user-row.assign-user-ineligible{opacity:.4}.assign-user-info{flex-direction:column;gap:1px;min-width:0;display:flex}.assign-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.assign-user-email{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.73rem;overflow:hidden}.assign-user-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.assign-user-ineligible-note{color:var(--color-text-secondary);font-size:.72rem;font-style:italic}.alerts-list{flex-direction:column;gap:4px;display:flex}.alert-card{border-radius:var(--radius);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);align-items:center;gap:12px;padding:14px 16px;display:flex}.alert-unread{background:#c41e3a0a;border:1px solid #c41e3a26}.alert-read{border:1px solid var(--color-border);background:#ffffff04}.alert-read:hover{background:var(--color-surface-hover)}.alert-icon{flex-shrink:0;font-size:1.15rem}.alert-content{flex:1;min-width:0}.alert-message{font-size:.88rem;line-height:1.4}.alert-time{color:var(--color-text-secondary);margin-top:2px;font-size:.76rem}.alert-dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite dotPulse}.alert-checkbox{flex-shrink:0;align-items:center;display:flex}.alert-checkbox input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.alert-body{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.alert-selected{background:#c41e3a0f;border-color:#c41e3a33}.claim-request-actions{flex-shrink:0;gap:8px;display:flex}.template-list{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.template-item{border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--t-fast), background var(--t-fast);background:#ffffff05;justify-content:space-between;align-items:center;padding:11px 14px;font-size:.88rem;display:flex}.template-item:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.template-item.template-editing{outline:2px solid var(--color-primary);outline-offset:-1px}.template-actions{gap:6px;display:flex}.template-form{border-top:1px solid var(--color-border);padding-top:18px}.template-form h4{margin-bottom:10px;font-size:.95rem;font-weight:700}.section{margin-bottom:32px}.section h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;margin-bottom:12px;font-size:1.12rem;font-weight:600}.loading-screen{min-height:100vh;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:1.1rem;animation:1.5s ease-in-out infinite pulse;display:flex}.loading{text-align:center;color:var(--color-text-secondary);padding:40px;font-size:.9rem;animation:1.5s ease-in-out infinite pulse}.empty-state{text-align:center;color:var(--color-text-secondary);padding:60px 20px}.empty-state p{margin-bottom:16px}.empty-text{color:var(--color-text-secondary);font-size:.88rem}.help-text{color:var(--color-text-secondary);font-size:.88rem;line-height:1.6}.login-page{background:radial-gradient(800px 600px at 20% 15%,#c41e3a1f 0%,#0000 60%),radial-gradient(600px 400px at 80% 85%,#d4a8430f 0%,#0000 60%),radial-gradient(500px 400px,#12121499 0%,#0000 70%),linear-gradient(145deg,#121214 0%,#1e1d1c 50%,#121214 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border-hover);border-radius:var(--radius-xl);text-align:center;width:100%;max-width:420px;box-shadow:var(--shadow-lg);animation:scaleIn .5s var(--ease-out);padding:48px 40px}.login-logo{filter:drop-shadow(0 0 12px #c41e3a40);margin-bottom:8px;font-size:4rem}.login-card h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:1.5rem;font-weight:700}.login-card h2{color:var(--color-primary);letter-spacing:-.01em;margin-bottom:16px;font-size:1.05rem;font-weight:700}.login-card p{color:var(--color-text-secondary);margin-bottom:28px;font-size:.88rem;line-height:1.6}.login-error{color:var(--color-danger);border-radius:var(--radius);background:#ef444412;border:1px solid #ef444426;margin-top:16px;padding:10px 14px;font-size:.84rem}.admin-actions{gap:8px;display:flex}.settings-list{flex-direction:column;gap:2px;display:flex}.settings-row{border-radius:var(--radius);cursor:pointer;transition:background var(--t-fast);-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.settings-row:hover{background:var(--color-surface-hover)}.settings-row-info{flex-direction:column;gap:2px;display:flex}.settings-row-label{color:var(--color-text);font-size:.9rem;font-weight:600}.settings-row-desc{color:var(--color-text-secondary);font-size:.78rem}.settings-toggle-wrapper{flex-shrink:0;margin-left:16px}.settings-toggle{cursor:pointer;width:46px;height:26px;transition:background var(--t-normal);-webkit-tap-highlight-color:transparent;background:#ffffff1a;border:none;border-radius:13px;padding:0;position:relative}.settings-toggle-on{background:var(--color-success);box-shadow:0 0 10px #22c55e33}.settings-toggle-thumb{width:20px;height:20px;transition:transform var(--t-normal) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000004d}.settings-toggle-on .settings-toggle-thumb{transform:translate(20px)}.settings-saved{color:var(--color-success);font-size:.82rem;font-weight:600}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:#ffffff03}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}*{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.print-header,.print-only{display:none}.report-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:.88rem}.report-table th{text-align:left;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--color-border);white-space:nowrap;background:#ffffff05;padding:12px 16px;font-size:.72rem;font-weight:700}.report-table td{border-bottom:1px solid var(--color-border);transition:background var(--t-fast);padding:11px 16px}.report-table tbody tr:hover td{background:var(--color-surface-hover)}.report-table tbody tr:last-child td{border-bottom:none}.report-number-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.report-email-cell{color:var(--color-text-secondary);font-size:.82rem}.report-stat-paid{color:var(--color-paid)}.report-stat-volunteer{color:var(--color-volunteer)}.report-total-cell{color:var(--color-text);font-weight:700}.report-totals-row td{border-top:2px solid var(--color-border-hover);background:#ffffff05;padding-top:14px;padding-bottom:14px}.report-cards{flex-direction:column;gap:8px;display:flex}.report-card{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--t-fast);padding:14px 16px}.report-card-name{margin-bottom:2px;font-size:.92rem;font-weight:700}.report-card-email{color:var(--color-text-secondary);margin-bottom:10px;font-size:.76rem}.report-card-stats{gap:16px;display:flex}.report-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.report-stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-secondary);font-size:.62rem;font-weight:700}.report-stat-value{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.report-totals-card{border-color:var(--color-border-hover);background:#ffffff06}@media print{.header,.bottom-nav,.no-print,.page-header{display:none!important}.print-header{text-align:center;margin-bottom:24px;display:block!important}.print-header h1{color:#000;margin-bottom:4px;font-size:16pt}.print-header p{color:#666;font-size:11pt}.print-only{display:block!important}body{-webkit-print-color-adjust:exact;color:#000!important;background:#fff!important}body:before{display:none!important}.main-content{max-width:none!important;padding:0!important}.page{animation:none!important}.report-table-wrapper{-webkit-backdrop-filter:none;background:0 0;border:none;border-radius:0;overflow:visible}.report-table{font-size:10pt}.report-table th{border-bottom:2px solid #333;padding:8px 12px;color:#333!important;background:#f5f5f5!important}.report-table td{border-bottom:1px solid #ddd;padding:6px 12px;color:#000!important}.report-table tbody tr:hover td{background:0 0}.report-stat-paid{color:#2563eb!important}.report-stat-volunteer{color:#16a34a!important}.report-totals-row td{border-top:2px solid #333;background:#f5f5f5!important}.report-cards{display:none!important}}@media (width<=1024px){.week-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=767px){:root{--header-height:52px}.header-inner{height:var(--header-height);gap:10px;padding:0 14px}.nav,.user-name{display:none}.logo{font-size:1rem}.logo-icon{font-size:1.2rem}.bottom-nav{height:var(--bottom-nav-height);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--color-border);z-index:200;padding:0 2px;padding-bottom:env(safe-area-inset-bottom,0px);background:#121214f5;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-width:44px;min-height:44px;color:var(--color-text-secondary);transition:color var(--t-fast);-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 6px 4px;text-decoration:none;display:flex;position:relative}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item.active .bottom-nav-icon svg{filter:drop-shadow(0 0 4px #c41e3a4d)}.bottom-nav-icon{justify-content:center;align-items:center;line-height:1;display:flex}.bottom-nav-icon svg{width:21px;height:21px}.bottom-nav-label{letter-spacing:.01em;font-size:.6rem;font-weight:600;line-height:1}.bottom-nav-badge{background:var(--color-danger);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.58rem;font-weight:700;display:flex;position:absolute;top:1px;right:0;box-shadow:0 0 6px #ef444466}.app-layout{padding-bottom:var(--bottom-nav-height)}.main-content{padding:14px 12px}.page-header{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:18px}.page-header h1{font-size:1.25rem}.filters{width:100%}.filters .select{flex:1}.week-navigator{gap:8px;margin-bottom:14px}.week-label{min-width:160px}.week-dates{font-size:.88rem}.week-grid{grid-template-columns:1fr;gap:0}.week-grid .day-column{border-radius:var(--radius-lg);min-height:auto;animation:fadeIn .25s var(--ease-out)}.shift-card{padding:10px}.shift-card:hover{transform:none}.shift-actions{gap:6px}.btn-sm{min-height:36px;padding:8px 14px}.btn-xs{min-height:32px;padding:6px 11px;font-size:.76rem}.btn:hover:not(:disabled){transform:none}.admin-actions{flex-wrap:wrap;width:100%}.admin-actions .btn{text-align:center;flex:1;min-width:0;padding:8px 10px;font-size:.78rem}.report-actions{width:100%}.report-actions .btn{text-align:center;flex:1;min-width:0;padding:8px 10px;font-size:.78rem}.report-card-stats{flex-wrap:wrap;gap:12px}.report-stat{flex:1;min-width:60px}.form-row{flex-direction:column}.form-panel{border-radius:var(--radius);padding:18px 14px}.hours-summary{flex:1;width:100%}.shift-group-cards{grid-template-columns:1fr}.swap-card{flex-direction:column;align-items:flex-start;gap:10px}.swap-actions{width:100%}.swap-actions .btn{flex:1}.swap-picker-overlay{align-items:flex-end;padding:0}.swap-picker{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:92vh;animation:slideUp .35s var(--ease-out);padding:20px 16px;padding-bottom:calc(16px + var(--bottom-nav-height))}.alert-card{gap:10px;padding:12px}.claim-request-actions{gap:6px}.claim-request-actions .btn{padding:7px 12px}.alert-checkbox input{width:18px;height:18px}.settings-row{padding:12px}.settings-row-label{font-size:.86rem}.settings-row-desc{font-size:.75rem}.batch-date-nav{flex-wrap:wrap;gap:8px}.batch-date-range{order:-1;width:100%;min-width:auto;font-size:.88rem}.batch-date-nav .btn{flex:1}.login-card{border-radius:var(--radius-lg);padding:36px 24px}.login-logo{font-size:3rem}.login-card h1{font-size:1.3rem}.page{animation:fadeIn .2s var(--ease-out)}}
