*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}.App{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:20px;max-width:1400px;margin:0 auto;width:100%}.navigation{background:#1e3d32;color:#fff;padding:1rem 0;box-shadow:0 2px 4px #0000001a}.nav-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.nav-brand a{color:#fff;text-decoration:none;font-size:1.5rem;font-weight:700}.nav-links{display:flex;gap:2rem}.nav-link{color:#bdc3c7;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:all .3s ease}.nav-link:hover,.nav-link.active{color:#fff;background-color:#2a5244}.nav-user{display:flex;align-items:center;gap:1rem}.user-name{color:#bdc3c7}.nav-profile-link{display:flex;align-items:center}.nav-view-as-select{background:#2a5244;color:#bdc3c7;border:1px solid #3a6a58;border-radius:4px;padding:.3rem .5rem;font-size:.9rem;cursor:pointer;font-family:inherit}.nav-view-as-select:focus{outline:none;border-color:#6db89b;color:#fff}.nav-view-as-select option{background:#1e3d32;color:#bdc3c7}.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:10}.hamburger-line{display:block;width:24px;height:2px;background:white;border-radius:2px;transition:transform .3s ease,opacity .3s ease}.hamburger-btn.open .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-btn.open .hamburger-line:nth-child(2){opacity:0}.hamburger-btn.open .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-menu{display:flex;align-items:center;gap:2rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;text-decoration:none;display:inline-block;text-align:center;font-size:1rem;transition:all .3s ease}.btn-primary{background-color:#27ae60;color:#fff}.btn-primary:hover{background-color:#219a52}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover{background-color:#7f8c8d}.btn-danger{background-color:#e74c3c;color:#fff}.btn-danger:hover{background-color:#c0392b}.btn-small{padding:.5rem 1rem;font-size:.9rem}.btn:disabled{opacity:.6;cursor:not-allowed}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.auth-card{background:white;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.auth-card h1{text-align:center;margin-bottom:.5rem;color:#1e3d32}.auth-subtitle{text-align:center;color:#7f8c8d;margin-bottom:2rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:500;color:#1e3d32}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus{outline:none;border-color:#27ae60;box-shadow:0 0 0 2px #27ae6033}.auth-link{text-align:center;margin-top:1rem;color:#7f8c8d}.auth-link a{color:#27ae60;text-decoration:none}.auth-link a:hover{text-decoration:underline}.dashboard{max-width:1000px;margin:0 auto}.dashboard-header{text-align:center;margin-bottom:2rem}.dashboard-header h1{color:#1e3d32;margin-bottom:.5rem}.dashboard-actions{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem}.signups-section h2{color:#1e3d32;margin-bottom:1.5rem}.no-signups{text-align:center;padding:3rem;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a}.signups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.signup-card{background:white;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease}.signup-card:hover{transform:translateY(-2px)}.signup-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.signup-header h3{color:#1e3d32;margin:0}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500;text-transform:uppercase}.status-confirmed{background-color:#d4edda;color:#155724}.status-waitlist{background-color:#fff3cd;color:#856404}.status-pending{background-color:#c8e6c9;color:#2e7d32}.signup-details{margin-bottom:1rem}.event-type{color:#7f8c8d;text-transform:capitalize;margin-bottom:.5rem}.waitlist-info{color:#856404;font-style:italic}.signup-actions{display:flex;gap:.5rem}.loading{text-align:center;padding:2rem;color:#7f8c8d}.error-message{background-color:#f8d7da;color:#721c24;padding:.75rem;border-radius:4px;margin-bottom:1rem;border:1px solid #f5c6cb}.success-message{background-color:#d4edda;color:#155724;padding:.75rem;border-radius:4px;margin-bottom:1rem;border:1px solid #c3e6cb}.profile-container{max-width:800px;margin:0 auto}.profile-header{text-align:center;margin-bottom:2rem}.profile-header h1{color:#1e3d32;margin-bottom:.5rem}.profile-form{background:white;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.form-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #eee}.form-section:last-child{border-bottom:none}.form-section h2{color:#1e3d32;margin-bottom:1rem;font-size:1.2rem}.form-group textarea,.form-group select{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit;width:100%}.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#27ae60;box-shadow:0 0 0 2px #27ae6033}.form-actions{text-align:center;margin-top:2rem}.events-container{max-width:1400px;margin:0 auto}.events-layout{display:flex;gap:1rem;min-height:calc(100vh - 280px)}.events-main-pane{flex:1;min-width:0}.event-detail-drawer{width:0;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;overflow:hidden;transition:width .25s ease}.event-detail-drawer.open{width:400px;flex-shrink:0;align-self:flex-start}.event-detail-drawer .drawer-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #eee;flex-shrink:0}.event-detail-drawer .drawer-title{font-weight:600;color:#1e3d32}.event-detail-drawer .drawer-close-btn{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:.25rem .5rem;line-height:1}.event-detail-drawer .drawer-close-btn:hover{color:#1e3d32}.event-detail-drawer .drawer-content{padding:1rem}.event-drawer-title{margin-bottom:1rem}.event-drawer-title h2{color:#1e3d32;margin-bottom:.5rem;font-size:1.25rem}.event-drawer-section{background:#f8f9fa;padding:1rem;border-radius:6px;margin-bottom:.75rem}.event-drawer-section h3{color:#1e3d32;margin-bottom:.5rem;font-size:.9rem;font-weight:600}.event-drawer-section p{color:#555;font-size:.9rem;margin-bottom:.25rem}.itinerary-table{display:table;width:100%;font-size:.85rem}.itinerary-row{display:table-row}.itinerary-row:not(:last-child) .itinerary-col-day,.itinerary-row:not(:last-child) .itinerary-col-time,.itinerary-row:not(:last-child) .itinerary-col-activity{border-bottom:1px solid #eee}.itinerary-col-day,.itinerary-col-time,.itinerary-col-activity{display:table-cell;padding:.35rem 0}.itinerary-col-day{width:55px;color:#555;white-space:nowrap}.itinerary-col-time{width:50px;font-weight:600;white-space:nowrap;padding-right:.75rem}.itinerary-col-activity{color:#333}.event-drawer-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.event-drawer-actions .btn{width:100%}.event-card.selected{border:2px solid #27ae60;background:#f0fff4}.events-header{text-align:center;margin-bottom:2rem}.events-header h1{color:#1e3d32;margin-bottom:.5rem}.events-filters{display:flex;gap:2rem;margin-bottom:2rem;padding:1rem;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:500;color:#1e3d32}.filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.event-card{background:white;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease}.event-card:hover{transform:translateY(-2px)}.event-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.event-header h3{color:#1e3d32;margin:0}.event-badges{display:flex;gap:.5rem}.type-badge,.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500;text-transform:uppercase}.type-race{background-color:#e8f5e9;color:#2e7d32}.type-training{background-color:#f3e5f5;color:#7b1fa2}.type-social{background-color:#e8f5e8;color:#2e7d32}.type-drinks{background-color:#fff3e0;color:#ef6c00}.type-maintenance{background-color:#fce4ec;color:#c2185b}.type-other{background-color:#f5f5f5;color:#616161}.status-published{background-color:#d4edda;color:#155724}.status-draft{background-color:#fff3cd;color:#856404}.status-cancelled{background-color:#f8d7da;color:#721c24}.status-completed{background-color:#c8e6c9;color:#2e7d32}.event-details{margin-bottom:1rem}.event-date{font-weight:500;color:#1e3d32;margin-bottom:.5rem}.event-description{color:#7f8c8d;margin-bottom:.5rem}.signup-info{font-size:.9rem;color:#7f8c8d}.event-actions{text-align:right}.no-events{text-align:center;padding:3rem;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a}.event-detail-container{max-width:1000px;margin:0 auto}.event-detail-header{margin-bottom:2rem}.event-title-section{margin-top:1rem}.event-title-section h1{color:#1e3d32;margin-bottom:.5rem}.event-detail-content{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.event-main-info{background:white;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.event-main-info h2{color:#1e3d32;margin-bottom:1rem;font-size:1.2rem}.event-datetime,.event-description,.event-itinerary{margin-bottom:2rem}.event-itinerary ul{list-style:none;padding:0}.event-itinerary li{padding:.5rem 0;border-bottom:1px solid #eee}.event-sidebar{display:flex;flex-direction:column;gap:1rem}.signup-details{background:white;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.signup-details h3{color:#1e3d32;margin-bottom:1rem}.signup-count-line{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.85rem}.signup-count{font-weight:400}.signup-count.count-out-of-range{color:#e74c3c}.signup-count.count-on-boundary{color:#e67e22}.info-icon-wrapper{position:relative;display:inline-flex;cursor:help}.info-icon{font-size:1.1rem;color:#7f8c8d;line-height:1}.info-tooltip{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#2c3e50;color:#fff;padding:.4rem .7rem;border-radius:4px;font-size:.8rem;white-space:nowrap;z-index:10;margin-bottom:4px}.info-icon-wrapper:hover .info-tooltip{display:block}.dietary-section{margin-top:1rem;padding-top:.75rem;border-top:1px solid #ecf0f1}.dietary-section h4{font-size:.9rem;font-weight:600;color:#1e3d32;margin-bottom:.5rem}.dietary-list{list-style:none;padding:0;margin:0;font-size:.85rem}.dietary-list li{padding:.25rem 0;color:#333}.crew-section{margin-top:1rem;padding-top:.75rem;border-top:1px solid #ecf0f1}.crew-section h4{font-size:.85rem;color:#555;margin-bottom:.5rem}.crew-list{list-style:none;padding:0;margin:0}.crew-list li{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.85rem;border-bottom:1px solid #f5f5f5}.crew-list li:last-child{border-bottom:none}.crew-name{color:#333}.signup-status{font-size:.75rem;color:#7f8c8d;text-transform:capitalize}.signup-status.status-confirmed{color:#27ae60}.signup-status.status-standby{color:#e67e22}.signup-status.status-declined{color:#e74c3c}.signup-status.status-pending{color:#95a5a6}.signup-actions{background:white;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.signup-unavailable{color:#7f8c8d;font-style:italic}.detail-pane-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.detail-pane-overlay.open{opacity:1;visibility:visible;pointer-events:auto}.detail-pane{position:fixed;top:0;right:0;bottom:0;width:450px;background:#f5f5f5;box-shadow:-4px 0 12px #00000026;transform:translate(100%);transition:transform .3s ease-out;overflow-y:auto;z-index:1001}.detail-pane.open{transform:translate(0)}.detail-pane-header{display:flex;justify-content:flex-end;padding:1rem 1.5rem 0;position:sticky;top:0;background:#f5f5f5;z-index:1}.detail-pane-close{background:none;border:none;font-size:1.8rem;cursor:pointer;color:#7f8c8d;padding:0 .25rem;line-height:1;transition:color .2s ease}.detail-pane-close:hover{color:#1e3d32}.detail-pane-body{padding:.5rem 1.5rem 2rem}.detail-pane-title{margin-bottom:1.5rem}.detail-pane-title h2{color:#1e3d32;margin-bottom:.5rem}.detail-pane-section{background:white;padding:1.25rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.detail-pane-section h3{color:#1e3d32;margin-bottom:.75rem;font-size:1rem}.detail-pane-itinerary{list-style:none;padding:0}.detail-pane-itinerary li{padding:.4rem 0;border-bottom:1px solid #eee}.detail-pane-itinerary li:last-child{border-bottom:none}.detail-pane-actions{margin-top:1.5rem}.detail-pane-actions .btn{width:100%}.admin-users-container{max-width:1200px;margin:0 auto}.admin-header{text-align:center;margin-bottom:2rem}.admin-header h1{color:#1e3d32;margin-bottom:.5rem}.users-table-container{background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:1rem;text-align:left;border-bottom:1px solid #eee}.users-table th{background-color:#f8f9fa;font-weight:500;color:#1e3d32}.status-select{padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.no-users{text-align:center;padding:3rem;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a}.year-calendar{background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.year-header{text-align:center;margin-bottom:1.5rem}.year-header h2{color:#1e3d32;margin:0;font-size:1.5rem}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.month-grid{border:1px solid #e0e0e0;border-radius:6px;overflow:hidden}.month-header{background:#1e3d32;color:#fff;padding:.5rem;text-align:center;font-weight:500;font-size:.9rem}.month-event-list{padding:.5rem;min-height:120px;background:white}.month-no-events{color:#7f8c8d;font-size:.8rem;font-style:italic;text-align:center;padding:1rem .5rem}.month-event-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .25rem;border-radius:4px;cursor:pointer;transition:background .2s}.month-event-item:hover{background:#f5f5f5}.month-event-date{font-size:.9rem;font-weight:600;color:#7f8c8d;min-width:22px;text-align:right;flex-shrink:0}.month-event-name{flex:1;font-size:.8rem;font-weight:500;color:#1e3d32;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-event-type{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.65rem;font-weight:600;flex-shrink:0}.filters-right{display:flex;gap:1rem;margin-left:auto;align-items:center}@media (max-width: 900px){.year-grid{grid-template-columns:repeat(2,1fr)}.crew-detail-drawer.open,.event-detail-drawer.open{width:100%!important;position:fixed;top:0;left:0;right:0;bottom:0;border-radius:0;z-index:1000}.events-filters{flex-direction:column;gap:1rem}}.crew-management{max-width:1400px;margin:0 auto;font-size:.85rem}.crew-header{margin-bottom:1rem}.crew-header h1{color:#1e3d32;margin:0;font-size:1.4rem}.crew-layout{display:flex;gap:1rem;height:calc(100vh - 180px);min-height:400px}.crew-list-pane{flex:1;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;overflow:hidden;min-width:0}.crew-list-header{display:flex;gap:.5rem;padding:.75rem;border-bottom:1px solid #eee;flex-shrink:0}.crew-search-input{flex:1;padding:.4rem .6rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.crew-search-input:focus{outline:none;border-color:#27ae60}.crew-list-items{flex:1;overflow-y:auto}.crew-list-loading,.crew-list-empty{padding:1.5rem;text-align:center;color:#7f8c8d;font-size:.85rem}.crew-list-item{padding:.5rem .75rem;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .15s}.crew-list-item:hover{background-color:#f8f9fa}.crew-list-item.selected{background-color:#e8f5e9;border-left:3px solid #27ae60;padding-left:calc(.75rem - 3px)}.crew-item-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.crew-item-name{font-weight:500;color:#1e3d32;font-size:.85rem}.crew-item-email{font-size:.75rem;color:#7f8c8d;margin-top:.1rem}.crew-item-badges{display:flex;gap:.2rem;flex-shrink:0}.crew-item-skills{font-size:.7rem;color:#95a5a6;margin-top:.25rem}.exp-badge{display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;border-radius:50%;font-size:.65rem;font-weight:600}.exp-beginner{background:#e2e3e5;color:#383d41}.exp-intermediate{background:#c8e6c9;color:#2e7d32}.exp-advanced{background:#a5d6a7;color:#1b5e20}.exp-expert{background:#66bb6a;color:#fff}.badge{display:inline-block;padding:.1rem .3rem;border-radius:6px;font-size:.6rem;font-weight:500}.badge-admin{background-color:#c8e6c9;color:#1b5e20}.badge-inactive{background-color:#f8d7da;color:#721c24}.badge-unverified{background-color:#fff3cd;color:#856404}.crew-detail-drawer{width:0;background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;overflow:hidden;transition:width .25s ease}.crew-detail-drawer.open{width:450px;flex-shrink:0}.drawer-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eee;padding-right:.5rem;flex-shrink:0}.drawer-close-btn{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:.25rem .5rem;line-height:1}.drawer-close-btn:hover{color:#1e3d32}.drawer-header-actions{display:flex;align-items:center;gap:.5rem}.drawer-edit-btn{background:none;border:1px solid #ccc;border-radius:4px;font-size:1.1rem;cursor:pointer;padding:.2rem .5rem;line-height:1;transition:border-color .2s ease,background-color .2s ease}.drawer-edit-btn:hover{border-color:#1e3d32;background-color:#eef3f0}.drawer-edit-error{background:#fdecea;color:#b71c1c;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.drawer-edit-form input[type=text],.drawer-edit-form input[type=datetime-local],.drawer-edit-form input[type=number],.drawer-edit-form select,.drawer-edit-form textarea{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit;background:#fafafa;transition:border-color .2s ease}.drawer-edit-form input:focus,.drawer-edit-form select:focus,.drawer-edit-form textarea:focus{outline:none;border-color:#1e3d32;background:white}.drawer-edit-form textarea{resize:vertical;min-height:80px}.drawer-edit-form .event-badges select{width:auto;display:inline-block;margin-right:.5rem}.itinerary-edit-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}.itinerary-time-input{flex:0 0 200px}.itinerary-activity-input{flex:1}.itinerary-remove-btn{background:none;border:none;font-size:1.3rem;cursor:pointer;color:#e74c3c;padding:0 .25rem;line-height:1;flex-shrink:0}.itinerary-remove-btn:hover{color:#c0392b}.itinerary-add-btn{background:none;border:1px dashed #aaa;color:#555;padding:.4rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem;width:100%;margin-top:.25rem;transition:border-color .2s ease,color .2s ease}.itinerary-add-btn:hover{border-color:#1e3d32;color:#1e3d32}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.crew-detail-tabs{display:flex;padding:0 .75rem;flex:1}.tab-btn{padding:.75rem 1rem;border:none;background:none;font-size:.85rem;color:#7f8c8d;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s}.tab-btn:hover{color:#1e3d32}.tab-btn.active{color:#27ae60;border-bottom-color:#27ae60;font-weight:500}.crew-detail-content{flex:1;overflow-y:auto;padding:1rem}.crew-detail-form .form-section{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.crew-detail-form .form-section:last-of-type{border-bottom:none}.crew-detail-form .form-section h3{color:#1e3d32;margin-bottom:.6rem;font-size:.9rem;font-weight:600}.crew-detail-form .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-bottom:.6rem}.crew-detail-form .form-group{display:flex;flex-direction:column}.crew-detail-form .form-group label{font-size:.7rem;color:#7f8c8d;margin-bottom:.15rem;text-transform:uppercase;letter-spacing:.3px}.crew-detail-form .form-group input,.crew-detail-form .form-group select,.crew-detail-form .form-group textarea{padding:.35rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.crew-detail-form .form-group input:focus,.crew-detail-form .form-group select:focus,.crew-detail-form .form-group textarea:focus{outline:none;border-color:#27ae60;box-shadow:0 0 0 2px #27ae6033}.checkbox-row{display:flex;gap:1.5rem}.checkbox-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.8rem;color:#1e3d32}.checkbox-label input[type=checkbox]{width:14px;height:14px}.joined-date{font-size:.75rem;color:#7f8c8d;margin-top:.5rem;font-style:italic}.crew-detail-form .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.crew-detail-form .form-actions .btn-danger{margin-right:auto}.crew-detail-form .btn{padding:.4rem 1rem;font-size:.8rem}.crew-signups-tab .signups-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.signups-sort-toggle{display:flex;border:1px solid #ddd;border-radius:6px;overflow:hidden}.sort-toggle-btn{background:white;border:none;padding:.35rem .65rem;font-size:.8rem;cursor:pointer;color:#555;border-right:1px solid #ddd;transition:background-color .2s ease,color .2s ease}.sort-toggle-btn:last-child{border-right:none}.sort-toggle-btn.active{background:#1e3d32;color:#fff}.sort-toggle-btn:hover:not(.active){background:#eef3f0}.signups-group{margin-bottom:.75rem}.signups-group-header{font-size:.8rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.03em;padding:.35rem 0;margin-bottom:.35rem;border-bottom:1px solid #eee}.crew-signups-tab .no-signups{text-align:center;color:#7f8c8d;padding:2rem}.signups-list{display:flex;flex-direction:column;gap:.75rem}.signup-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8f9fa;border-radius:6px;border-left:3px solid #27ae60}.signup-event-name{font-weight:500;color:#1e3d32}.signup-event-date{font-size:.85rem;color:#7f8c8d}.signup-status-info{text-align:right}.signup-comment{font-size:.8rem;color:#7f8c8d;font-style:italic;margin-top:.25rem}.capitalize{text-transform:capitalize}.users-table td button{margin-right:.5rem}.users-table td button:last-child{margin-right:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:2000}.modal-content{background:white;padding:2rem;border-radius:8px;max-width:400px;width:90%;box-shadow:0 4px 20px #0003}.modal-content h3{color:#1e3d32;margin-bottom:1rem}.modal-content p{color:#7f8c8d;margin-bottom:1.5rem;line-height:1.5}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.new-dropdown-container{position:relative}.dropdown-toggle{display:flex;align-items:center;gap:.5rem}.dropdown-arrow{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid currentColor;margin-left:2px}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:.25rem;background:white;border-radius:4px;box-shadow:0 4px 12px #00000026;min-width:140px;z-index:100;overflow:hidden}.dropdown-item{display:block;width:100%;padding:.6rem 1rem;border:none;background:none;text-align:left;font-size:.9rem;color:#1e3d32;cursor:pointer;transition:background-color .15s}.dropdown-item:hover{background-color:#f8f9fa}.dropdown-item:not(:last-child){border-bottom:1px solid #eee}.bulk-upload-modal{background:white;border-radius:8px;width:90%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.bulk-upload-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.bulk-upload-header h2{margin:0;font-size:1.25rem;color:#1e3d32}.modal-close-btn{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:0;line-height:1}.modal-close-btn:hover{color:#1e3d32}.bulk-upload-body{flex:1;overflow-y:auto;padding:1.5rem}.file-select-section{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.file-select-label{display:inline-block;padding:.6rem 1.25rem;background:#27ae60;color:#fff;border-radius:4px;cursor:pointer;transition:background-color .2s}.file-select-label:hover{background:#219a52}.file-input{display:none}.file-name{color:#7f8c8d;font-size:.9rem}.preview-section{margin-top:1.5rem}.preview-section h3{margin:0 0 1rem;font-size:1rem;color:#1e3d32}.preview-table-container{overflow:auto;border:1px solid #eee;border-radius:4px;max-height:300px}.preview-table{width:100%;border-collapse:collapse;font-size:.85rem}.preview-table th,.preview-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee;white-space:nowrap}.preview-table th{background:#f8f9fa;font-weight:500;color:#1e3d32;position:sticky;top:0;z-index:1}.preview-table td{color:#555}.upload-info{margin-top:1.5rem;padding:1rem;background:#e8f5e9;border-radius:4px}.upload-info p{margin:0 0 .5rem;color:#1e3d32}.upload-info p:last-child{margin-bottom:0}.upload-note{font-size:.85rem;opacity:.8}.upload-warning{color:#856404;font-size:.9rem}.row-exists{background-color:#fff3cd}.status-exists{display:inline-block;padding:.15rem .4rem;background:#fff3cd;color:#856404;border-radius:4px;font-size:.75rem;font-weight:500}.status-new{display:inline-block;padding:.15rem .4rem;background:#d4edda;color:#155724;border-radius:4px;font-size:.75rem;font-weight:500}.results-section h3{margin:0 0 1rem;color:#1e3d32}.results-success{padding:1rem;background:#d4edda;color:#155724;border-radius:4px;margin-bottom:1rem}.results-skipped{padding:1rem;background:#fff3cd;color:#856404;border-radius:4px;margin-bottom:1rem}.results-skipped ul{margin:.5rem 0 0;padding-left:1.25rem}.results-skipped li{margin-bottom:.25rem}.results-failed{padding:1rem;background:#f8d7da;color:#721c24;border-radius:4px}.results-failed ul{margin:.5rem 0 0;padding-left:1.25rem}.results-failed li{margin-bottom:.25rem}.results-updated{padding:1rem;background:#c8e6c9;color:#2e7d32;border-radius:4px;margin-bottom:1rem}.upload-context{margin-bottom:1rem;color:#1e3d32}.signup-status-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.signup-status-badge.status-yes{background:#d4edda;color:#155724}.signup-status-badge.status-no{background:#f8d7da;color:#721c24}.signup-status-badge.status-tbc{background:#fff3cd;color:#856404}.match-status{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.match-found{background:#d4edda;color:#155724}.match-not-found{background:#f8d7da;color:#721c24}.row-unmatched{background-color:#fff5f5}.matched-name{font-size:.8em;color:#7f8c8d;font-style:italic}.bulk-upload-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1rem 1.5rem;border-top:1px solid #eee;background:#f8f9fa}.signup-status-badges{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.interest-badge,.admin-badge{padding:.2rem .5rem;border-radius:10px;font-size:.7rem;font-weight:500;text-transform:uppercase}.interest-yes{background:#d4edda;color:#155724}.interest-tbc{background:#fff3cd;color:#856404}.interest-no{background:#f8d7da;color:#721c24}.interest-no_response{background:#e2e3e5;color:#383d41}.admin-confirmed{background:#d4edda;color:#155724}.admin-standby{background:#c8e6c9;color:#2e7d32}.admin-pending{background:#e2e3e5;color:#383d41}.admin-declined{background:#f8d7da;color:#721c24}.calendar-signup-status{display:flex;align-items:center;gap:.25rem;flex-shrink:0;min-width:75px}.confirm-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:.75rem;font-weight:700}.confirm-icon.confirmed{background:#27ae60;color:#fff}.confirm-icon.declined{background:#e74c3c;color:#fff}.confirm-icon.pending{background:#95a5a6;color:#fff;font-size:.65rem}.interest-slider{display:flex;background:#e8e8e8;border-radius:10px;padding:1px;gap:1px}.slider-option{display:inline-flex;align-items:center;justify-content:center;width:20px;height:18px;font-size:.7rem;font-weight:700;color:#999;border-radius:9px;transition:all .15s ease}.slider-option.empty{width:10px}.slider-option.active{color:#fff}.slider-option.active.empty{background:#bdc3c7}.slider-option.active.yes{background:#27ae60}.slider-option.active.tbc{background:#f39c12}.slider-option.active.no{background:#e74c3c}.crew-signups-section .loading-text,.crew-signups-section .no-crew{color:#7f8c8d;font-style:italic}.crew-category{margin-bottom:.75rem}.crew-category:last-child{margin-bottom:0}.crew-category-header{font-size:.8rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;margin-bottom:.35rem}.crew-category-header.confirmed{background:#d4edda;color:#155724}.crew-category-header.waitlist{background:#cce5ff;color:#004085}.crew-category-header.signup-yes{background:#e8f5e9;color:#2e7d32}.crew-category-header.signup-maybe{background:#fff3cd;color:#856404}.crew-category-header.admin-confirmed{background:#d4edda;color:#155724}.crew-category-header.admin-pending{background:#e2e3e5;color:#383d41}.crew-category-header.admin-declined{background:#f8d7da;color:#721c24}.crew-flat-list{list-style:none;padding:0;margin:0}.crew-flat-item{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid #f0f0f0}.crew-flat-item:last-child{border-bottom:none}.crew-flat-name{font-size:.85rem;color:#1e3d32;font-weight:500}.crew-flat-controls{display:flex;align-items:center;gap:.4rem}.admin-status-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;border:none;border-radius:4px;font-size:.7rem;font-weight:700;cursor:pointer;transition:background-color .15s,color .15s}.admin-status-toggle:disabled{opacity:.5;cursor:not-allowed}.admin-status-toggle.toggle-confirmed{background:#27ae60;color:#fff}.admin-status-toggle.toggle-pending{background:#bdc3c7;color:#fff}.admin-status-toggle.toggle-declined{background:#e74c3c;color:#fff}.admin-status-label{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;border-radius:4px;font-size:.7rem;font-weight:700}.admin-status-label.label-confirmed{background:#d4edda;color:#155724}.admin-status-label.label-pending{background:#e2e3e5;color:#383d41}.admin-status-label.label-declined{background:#f8d7da;color:#721c24}.crew-list{list-style:none;padding:0;margin:0 0 0 .5rem}.crew-list li{padding:.2rem 0;font-size:.85rem;color:#1e3d32}.planning-counts{display:flex;align-items:center;gap:2px;flex-shrink:0;min-width:60px}.count-item{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border-radius:3px;font-size:.8rem;font-weight:600}.count-separator{width:1px;height:12px;background:#ccc;margin:0 2px}.count-confirmed{background:#27ae60;color:#fff}.count-yes{background:#a5d6a7;color:#1b5e20}.count-tbc{background:#fff3cd;color:#856404}.view-as-selector{background:#fff3cd;padding:.5rem 1rem;border-radius:4px;display:flex;align-items:center;gap:.75rem}.view-as-selector label{font-weight:500;color:#856404;white-space:nowrap}.view-as-selector select{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;min-width:150px}@media (max-width: 768px){.hamburger-btn{display:flex}.nav-container{flex-wrap:wrap}.nav-menu{display:none;width:100%;flex-direction:column;gap:1rem;padding-top:1rem}.nav-menu.open{display:flex}.nav-links{flex-direction:column;gap:0}.nav-link{padding:.75rem 1rem;border-radius:0}.nav-user{padding:.75rem 0;border-top:1px solid rgba(255,255,255,.15)}.dashboard-actions{flex-direction:column;align-items:center}.signups-grid{grid-template-columns:1fr}.signup-actions{flex-direction:column}.events-grid,.event-detail-content{grid-template-columns:1fr}.detail-pane{width:100%}.users-table-container{overflow-x:scroll}.crew-layout{flex-direction:column;height:auto;min-height:auto}.crew-list-pane{max-height:50vh}.crew-detail-form .form-row{grid-template-columns:1fr}.checkbox-row{flex-direction:column;gap:.75rem}.view-as-selector{flex-direction:column;gap:.5rem}.view-as-selector select{min-width:auto;width:100%}.events-layout{flex-direction:column}.signup-item{flex-direction:column;align-items:flex-start;gap:.5rem}.signup-status-info{text-align:left}.signup-status-badges{justify-content:flex-start}.roster-toolbar,.roster-controls{flex-direction:column;align-items:stretch}.year-grid{grid-template-columns:1fr}.year-calendar{padding:.75rem}.month-event-list{min-height:80px}}.roster-container{max-width:none;width:calc(100vw - 40px);margin-left:calc(-.5*(100vw - 40px - 100%))}.roster-with-drawer{display:flex;gap:1rem}.roster-main{flex:1;min-width:0;overflow:auto}.roster-container h1{color:#1e3d32;margin-bottom:1rem;font-size:1.5rem}.roster-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.roster-filters{display:flex;gap:.5rem}.roster-filters select{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.roster-controls{display:flex;gap:.75rem;align-items:center}.roster-sort-select{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.roster-details-btn{padding:.4rem .6rem;border:1px solid #ddd;border-radius:4px;background:white;font-size:1rem;cursor:pointer;color:#7f8c8d;line-height:1}.roster-details-btn:disabled{opacity:.4;cursor:not-allowed}.roster-details-btn:not(:disabled):hover{background:#f0f0f0;color:#1e3d32}.roster-details-btn.active{background:#1e3d32;color:#fff;border-color:#1e3d32}.roster-header-cell.selected{background:#e8f5e9}.roster-matrix-wrapper{overflow-x:auto;border:1px solid #ddd;border-radius:8px;background:white}.roster-matrix{border-collapse:collapse;font-size:.85rem;width:max-content;min-width:100%}.roster-matrix thead{position:sticky;top:0;z-index:3}.roster-name-header{position:sticky;left:0;top:0;z-index:5;background:#1e3d32;color:#fff;padding:.5rem .75rem;text-align:left;font-weight:600;min-width:160px;white-space:nowrap}.roster-header-cell{background:#f8f9fa;padding:.5rem .25rem;text-align:center;cursor:pointer;border-left:1px solid #eee;min-width:60px;max-width:80px;vertical-align:bottom;transition:background-color .15s}.roster-header-cell:hover{background:#e8f5e9}.roster-header-cell.sorted{background:#d4edda}.roster-header-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;writing-mode:vertical-lr;transform:rotate(180deg);white-space:nowrap;height:120px}.roster-event-name{font-weight:500;font-size:.75rem;color:#1e3d32}.roster-event-date{font-size:.65rem;color:#7f8c8d}.roster-count-row{position:sticky;top:0;z-index:3}.roster-count-cell{background:#f0f0f0;padding:.25rem .3rem;text-align:center;font-size:.75rem;font-weight:600;border-left:1px solid #eee;border-top:1px solid #e0e0e0}.roster-count-confirmed{color:#27ae60}.roster-count-signup{font-size:.7rem;white-space:nowrap}.roster-count-yes{color:#27ae60}.roster-count-sep{color:#bbb;margin:0 1px;font-weight:400}.roster-count-tbc{color:#f39c12}.roster-matrix tbody tr{will-change:transform}.roster-name-cell{position:sticky;left:0;z-index:2;background:white;padding:.4rem .75rem;font-weight:500;color:#1e3d32;white-space:nowrap;border-bottom:1px solid #f0f0f0;min-width:160px}tr:hover .roster-name-cell{background:#f8f9fa}.roster-name-cell.clickable{cursor:pointer}.roster-name-cell.selected{background:#e8f5e9}.roster-cell{padding:.3rem;text-align:center;border-bottom:1px solid #f0f0f0;border-left:1px solid #f5f5f5;white-space:nowrap}.roster-cell.clickable{cursor:pointer;transition:background-color .15s}.roster-cell.clickable:hover{background:#eef3f0}.roster-cell.empty{background:#fafafa}.roster-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:.65rem;font-weight:700;margin:0 1px}.roster-dot-empty{color:#ccc;font-size:.7rem}.interest-dot-yes{background:#27ae60;color:#fff}.interest-dot-tbc{background:#f39c12;color:#fff}.interest-dot-no{background:#e8c4c0;color:#c9a09c}.interest-dot-no_response{background:#bdc3c7;color:#fff}.roster-bg-confirmed{background-color:#d4edda}.roster-bg-declined{background-color:#f8d7da}.roster-bg-pending{background-color:transparent}.roster-bg-standby{background-color:#fff3cd}.roster-bg-label{font-size:.7rem;font-weight:600;color:#555}@media (max-width: 480px){.auth-card{padding:1.25rem}.main-content{padding:10px}}.qualifications-section{margin-top:12px}.qualifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.qualifications-header label{font-weight:600;font-size:.9rem}.qualification-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.qualification-row .form-group{margin-bottom:0;flex:1;min-width:0;overflow:hidden}.qualification-row .form-group:first-child{flex:2}.qualification-row .btn-danger{flex:0 0 auto;padding:4px 8px;font-size:.8rem;min-width:28px}.no-qualifications{color:#888;font-size:.85rem;font-style:italic}@media (max-width: 600px){.qualification-row{flex-wrap:wrap}.qualification-row .form-group{min-width:120px}}
