@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Barlow:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0f;--surface: #16161a;--surface2: #1e1e24;--surface3: #26262e;--border: #2a2a35;--text: #e8e8f0;--text-muted: #6b6b80;--text-dim: #9999b0;--accent: #f0c040;--accent-dim: rgba(240, 192, 64, .15);--green: #22c55e;--red: #ef4444;--yellow: #f59e0b;--blue: #3b82f6;--font-body: "Barlow", sans-serif;--font-mono: "DM Mono", monospace;--radius: 6px;--radius-lg: 10px;--nav-height: 64px;--header-height: 52px}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:var(--font-body);border:none;background:none}input,textarea,select{font-family:var(--font-body);font-size:15px;background:var(--surface3);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:10px 12px;width:100%;outline:none;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical}a{color:var(--accent)}.app{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;position:relative}.app-header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:10}.header-logo{display:flex;align-items:center;gap:8px}.logo-mark{color:var(--accent);font-size:18px}.logo-text{font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;color:var(--text);font-weight:500}.header-right{display:flex;align-items:center;gap:12px}.header-name{font-size:13px;color:var(--text-muted)}.signout-btn{font-size:12px;color:var(--text-muted);padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius)}.signout-btn:hover{color:var(--text);border-color:var(--text-dim)}.app-main{flex:1;overflow-y:auto;padding-bottom:var(--nav-height)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:var(--nav-height);background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr);z-index:10}.nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);transition:color .15s}.nav-btn.active{color:var(--accent)}.nav-icon{font-size:20px}.nav-label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.page{padding:16px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-header h1{font-size:22px;font-weight:700}.loading{color:var(--text-muted);padding:24px 0;text-align:center}.empty{color:var(--text-muted);font-style:italic;padding:12px 0}.back-btn{color:var(--accent);font-size:14px;font-weight:600;margin-bottom:16px;display:inline-block}.btn-primary{background:var(--accent);color:#0d0d0f;font-weight:700;font-size:14px;padding:10px 18px;border-radius:var(--radius);transition:opacity .15s}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--surface3);color:var(--text);font-weight:600;font-size:14px;padding:10px 16px;border-radius:var(--radius);border:1px solid var(--border)}.btn-ghost{color:var(--text-muted);font-size:14px;padding:10px 16px;border-radius:var(--radius);border:1px solid var(--border)}.full-width{width:100%}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 28px;width:100%;max-width:380px}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px}.auth-card h2{font-size:20px;font-weight:700;margin-bottom:20px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:6px}.error{color:var(--red);font-size:13px;margin:10px 0}.invite-badge{color:var(--accent);font-size:13px;font-weight:600;margin-bottom:16px}.splash{height:100vh;display:flex;align-items:center;justify-content:center}.splash .logo-mark{font-size:40px;color:var(--accent);animation:pulse 1s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.announcement-list{display:flex;flex-direction:column;gap:2px}.announcement-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden;transition:border-color .15s}.announcement-tile:hover{border-color:var(--text-dim)}.announcement-tile.unread{border-left:3px solid var(--accent)}.tile-reorder{display:flex;flex-direction:column;background:var(--surface2);border-right:1px solid var(--border)}.tile-reorder button{flex:1;padding:0 10px;color:var(--text-muted);font-size:14px;transition:color .15s}.tile-reorder button:hover:not(:disabled){color:var(--accent)}.tile-reorder button:disabled{opacity:.2}.tile-content{flex:1;padding:14px;cursor:pointer}.tile-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.unread-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;flex-shrink:0}.tile-title{font-weight:700;font-size:15px;flex:1}.my-response-badge{font-size:11px;font-weight:600;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:2px 7px}.tile-preview{color:var(--text-dim);font-size:13px;margin-bottom:8px}.tile-meta{display:flex;gap:10px;font-size:12px;color:var(--text-muted)}.tile-stats{margin-left:auto;color:var(--accent);font-weight:600}.detail-header{margin-bottom:16px}.detail-header h2{font-size:20px;font-weight:700;margin-bottom:4px}.detail-meta{font-size:13px;color:var(--text-muted)}.detail-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:0}.detail-tabs button{padding:8px 16px;font-size:13px;font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.detail-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-badge{margin-left:6px;background:var(--red);color:#fff;font-size:10px;padding:1px 5px;border-radius:10px}.detail-media{margin-bottom:16px;border-radius:var(--radius);overflow:hidden}.detail-media img{width:100%;display:block}.detail-body{font-size:15px;line-height:1.7;white-space:pre-wrap;margin-bottom:20px}.response-buttons{margin-bottom:20px}.response-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px}.response-btn-row{display:flex;flex-wrap:wrap;gap:8px}.response-btn{padding:10px 18px;background:var(--surface3);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);font-weight:600;font-size:14px;transition:all .15s}.response-btn.selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.comments-section{border-top:1px solid var(--border);padding-top:16px}.comments-section h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:12px}.comments-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.comment{background:var(--surface2);border-radius:var(--radius);padding:10px 12px}.comment-author{font-weight:700;font-size:13px;margin-right:8px}.comment-time{font-size:11px;color:var(--text-muted)}.comment p{margin-top:4px;font-size:14px}.comment-form{display:flex;gap:8px}.response-lists{display:flex;flex-direction:column;gap:16px}.response-group h4{font-size:13px;font-weight:700;margin-bottom:8px}.response-group .count{color:var(--text-muted);font-weight:400}.response-group ul{list-style:none;display:flex;flex-direction:column;gap:4px}.response-group li{display:flex;justify-content:space-between;align-items:center;background:var(--surface2);padding:8px 12px;border-radius:var(--radius);font-size:14px}.player-response{font-size:12px;font-weight:600;color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:20px;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3{font-size:18px;font-weight:700}.close-btn{color:var(--text-muted);font-size:18px;padding:4px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.btn-builder{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.btn-tag{display:flex;align-items:center;gap:6px;background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);border-radius:4px;padding:4px 10px;font-size:13px;font-weight:600}.btn-tag button{color:var(--accent);font-size:14px}.btn-add-row{display:flex;gap:8px}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-weight:700;font-size:16px}.cal-nav button{color:var(--text-muted);font-size:22px;padding:4px 10px}.cal-nav button:hover{color:var(--accent)}.cal-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted)}.legend-dot{width:8px;height:8px;border-radius:50%}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day-name{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted);text-align:center;padding:4px 0;letter-spacing:.06em}.cal-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:52px;padding:5px;cursor:pointer;transition:border-color .15s;position:relative}.rsvp-dot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%}.cal-day.empty{background:transparent;border-color:transparent;cursor:default}.cal-day.today{border-color:var(--accent)}.cal-day.has-events{background:var(--surface2)}.cal-day:not(.empty):hover{border-color:var(--text-dim)}.day-num{font-size:13px;font-weight:600;display:block}.day-dots{display:flex;flex-wrap:wrap;gap:2px;margin-top:4px}.event-dot{width:6px;height:6px;border-radius:50%}.day-events-list{display:flex;flex-direction:column;gap:10px}.event-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius);padding:14px;cursor:pointer;transition:border-color .15s}.event-card:hover{border-color:var(--text-dim)}.event-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.event-type-badge{font-size:11px;font-weight:700;color:#fff;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.event-time{font-size:13px;color:var(--text-muted);font-family:var(--font-mono)}.event-card h3{font-size:16px;font-weight:700;margin-bottom:4px}.event-location{font-size:13px;color:var(--text-muted);margin-bottom:8px}.event-counts{display:flex;flex-wrap:wrap;gap:6px}.count-pill{font-size:12px;font-weight:700;padding:3px 8px;border-radius:4px}.count-pill.green{background:#22c55e26;color:var(--green)}.count-pill.red{background:#ef444426;color:var(--red)}.count-pill.gray{background:var(--surface3);color:var(--text-muted)}.count-pill.blue{background:#3b82f626;color:var(--blue)}.event-detail-header{border-left:4px solid var(--border);padding-left:14px;margin-bottom:20px}.event-detail-header h2{font-size:20px;font-weight:700;margin:8px 0 4px}.event-detail-time{font-size:14px;color:var(--text-muted);margin-bottom:4px}.event-desc{font-size:14px;color:var(--text-dim);margin-top:8px}.rsvp-section{margin-bottom:20px}.rsvp-section h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px}.rsvp-buttons{display:flex;gap:10px}.rsvp-btn{flex:1;padding:12px;border-radius:var(--radius);font-weight:700;font-size:14px;border:2px solid transparent;transition:all .15s}.rsvp-btn.green{background:#22c55e1a;color:var(--green);border-color:#22c55e4d}.rsvp-btn.green.selected{background:#22c55e33;border-color:var(--green)}.rsvp-btn.red{background:#ef44441a;color:var(--red);border-color:#ef44444d}.rsvp-btn.red.selected{background:#ef444433;border-color:var(--red)}.rsvp-lists{margin-bottom:20px}.rsvp-lists h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px}.attendance-section{border-top:1px solid var(--border);padding-top:16px}.attendance-section h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px}.attendance-list{list-style:none;margin-bottom:14px;display:flex;flex-direction:column;gap:4px}.attendance-list li{display:flex;justify-content:space-between;background:var(--surface2);padding:8px 12px;border-radius:var(--radius);font-size:14px}.scan-time{color:var(--text-muted);font-size:12px}.scanner-wrap{display:flex;flex-direction:column;gap:10px;align-items:center}.qr-video{width:100%;border-radius:var(--radius);border:2px solid var(--accent)}.scan-msg{font-weight:700;font-size:15px;color:var(--green)}.type-picker{display:flex;flex-wrap:wrap;gap:6px}.type-btn{padding:7px 14px;font-size:13px;font-weight:600;border-radius:var(--radius);background:var(--surface3);border:1px solid var(--border);color:var(--text-muted);transition:all .15s}.type-btn.selected{background:color-mix(in srgb,var(--type-color) 20%,transparent);border-color:var(--type-color);color:var(--type-color)}.roster-list{display:flex;flex-direction:column;gap:2px}.roster-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:border-color .15s}.roster-row:hover{border-color:var(--text-dim)}.roster-avatar{width:36px;height:36px;background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0}.roster-info{flex:1;display:flex;align-items:center;gap:10px}.roster-name{font-weight:600;font-size:15px}.roster-arrow{color:var(--text-muted);font-size:20px}.role-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:4px}.role-badge.admin{background:#f0c04026;color:var(--accent);border:1px solid var(--accent)}.role-badge.player{background:var(--surface3);color:var(--text-muted);border:1px solid var(--border)}.profile-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.profile-avatar-large{width:52px;height:52px;background:var(--accent-dim);border:2px solid var(--accent);color:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;flex-shrink:0}.profile-header h2{font-size:20px;font-weight:700;margin-bottom:4px}.qr-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px;text-align:center}.qr-card h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:12px}.qr-card-inner{display:inline-flex;flex-direction:column;align-items:center;gap:8px}.qr-image{border-radius:var(--radius);border:3px solid var(--accent)}.qr-name{font-weight:700;font-size:15px;letter-spacing:.05em}.qr-note{max-width:280px;font-size:12px;color:var(--text-muted);line-height:1.4}.stats-section h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:12px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat-pct{font-size:28px;font-weight:800;font-family:var(--font-mono);margin-bottom:2px}.stat-value{font-size:12px;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:2px}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.stat-bar{height:3px;background:var(--surface3);border-radius:2px}.stat-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}.history-list{display:flex;flex-direction:column;gap:2px}.history-item{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;gap:10px}.history-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.history-type{font-size:16px;flex-shrink:0}.history-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-date{font-size:11px;color:var(--text-muted)}.history-status{flex-shrink:0}.event-status-col{display:flex;flex-direction:column;gap:3px;align-items:flex-end}.status-pill{font-size:11px;font-weight:700;padding:3px 7px;border-radius:4px}.status-pill.green{background:#22c55e26;color:var(--green)}.status-pill.red{background:#ef444426;color:var(--red)}.status-pill.yellow{background:#f59e0b26;color:var(--yellow)}.status-pill.blue{background:#3b82f626;color:var(--blue)}.status-pill.gray{background:var(--surface3);color:var(--text-muted)}.invite-result{display:flex;flex-direction:column;gap:12px}.invite-link-box{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;gap:8px;align-items:center}.invite-link-box code{font-size:12px;font-family:var(--font-mono);color:var(--text-dim);flex:1;word-break:break-all}.invite-note{font-size:12px;color:var(--text-muted)}.avatar-img,.avatar-img-large{width:100%;height:100%;object-fit:cover;border-radius:50%}.roster-info{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.roster-sub{display:flex;gap:8px;margin-top:2px;flex-wrap:wrap}.roster-position,.roster-nationality{font-size:12px;color:var(--text-muted)}.profile-header-info{flex:1;min-width:0}.profile-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}.profile-position,.profile-nationality{font-size:13px;color:var(--text-dim)}.profile-bio{font-size:14px;color:var(--text-dim);font-style:italic;margin-top:6px;line-height:1.5}.highlight-link{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none}.highlight-link:hover{opacity:.8}.avatar-upload-section{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:20px}.avatar-upload-preview{position:relative;width:90px;height:90px;border-radius:50%;background:var(--surface2);border:2px solid var(--border);cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center}.avatar-upload-preview:hover .avatar-upload-overlay{opacity:1}.avatar-placeholder{font-size:32px;font-weight:800;color:var(--accent)}.avatar-upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;opacity:0;transition:opacity .15s;text-align:center;padding:8px}.avatar-hint{font-size:12px;color:var(--text-muted)}.field-hint{font-weight:400;color:var(--text-muted);text-transform:none;letter-spacing:0}.bell-btn{position:relative;font-size:18px;padding:4px;color:var(--text-muted);transition:color .15s}.bell-btn:hover{color:var(--text)}.bell-badge{position:absolute;top:-2px;right:-4px;background:var(--red);color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;font-family:var(--font-mono)}.bell-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49}.notification-panel{position:fixed;top:var(--header-height);right:0;width:min(340px,100vw);max-height:70vh;background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);z-index:50;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0006}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.notification-panel-header h3{font-size:14px;font-weight:700}.mark-read-btn{font-size:12px;color:var(--accent);font-weight:600}.notification-list{overflow-y:auto;flex:1}.notification-item{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.notification-item:hover,.notification-item.unread{background:var(--surface2)}.notif-icon{font-size:18px;flex-shrink:0;margin-top:1px}.notif-content{flex:1;min-width:0}.notif-title{font-size:13px;font-weight:600;margin-bottom:2px}.notif-body{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-time{font-size:11px;color:var(--text-muted);margin-top:3px}.notif-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;flex-shrink:0;margin-top:4px}.sms-blast-btn{font-size:12px;font-weight:700;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);padding:5px 10px;background:var(--accent-dim);margin-top:8px;width:100%}.sms-blast-btn:hover{opacity:.8}.sms-confirm-row{display:flex;align-items:center;gap:8px;margin-top:8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.sms-confirm-text{font-size:12px;color:var(--text-dim);flex:1}.sms-confirm-yes{font-size:12px;font-weight:700;color:#fff;background:var(--red);border-radius:4px;padding:4px 10px}.sms-confirm-no{font-size:12px;color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:4px 10px}.sms-sent-msg{font-size:12px;font-weight:700;color:var(--green);margin-top:8px}.sms-toggle-row{margin-bottom:12px}.sms-toggle-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer}.sms-toggle-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.sms-toggle-warning{font-size:12px;color:var(--yellow);margin-top:6px}.modal-footer-btns{display:flex;gap:8px;justify-content:flex-end}.profile-actions{display:flex;gap:8px;margin-bottom:16px}.public-toggle-btn{padding:10px 16px;border-radius:var(--radius);font-size:13px;font-weight:700;border:1px solid var(--border);transition:all .15s;white-space:nowrap}.public-toggle-btn.public{background:#22c55e26;color:var(--green);border-color:var(--green)}.public-toggle-btn.private{background:var(--surface3);color:var(--text-muted)}.public-toggle-btn:disabled{opacity:.5}.team-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.team-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;text-align:center}.team-stat-num{display:block;font-size:26px;font-weight:800;font-family:var(--font-mono)}.team-stat-label{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.dashboard-sort{display:flex;gap:4px;margin-bottom:12px;overflow-x:auto}.sort-tab{padding:6px 14px;font-size:12px;font-weight:700;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;flex-shrink:0}.sort-tab.active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.dashboard-list{display:flex;flex-direction:column;gap:2px}.dashboard-row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;cursor:pointer;transition:border-color .15s}.dashboard-row:hover{border-color:var(--text-dim)}.dashboard-rank{font-size:12px;font-family:var(--font-mono);color:var(--text-muted);width:24px;flex-shrink:0}.dashboard-avatar{width:34px;height:34px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--accent);flex-shrink:0;overflow:hidden}.dashboard-info{flex:1;min-width:0}.dashboard-name{font-size:14px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-sub{font-size:11px;color:var(--text-muted)}.dashboard-metrics{display:flex;gap:4px}.metric-pill{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border-radius:4px;padding:3px 6px;min-width:36px}.metric-label{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.metric-value{font-size:12px;font-weight:700;font-family:var(--font-mono)}.dashboard-overall{font-size:18px;font-weight:800;font-family:var(--font-mono);min-width:44px;text-align:right;flex-shrink:0}.dashboard-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:11px;color:var(--text-muted);align-items:center}.cancelled-badge{background:#ef444426;color:var(--red);border:1px solid var(--red);font-size:11px;font-weight:800;padding:2px 8px;border-radius:4px;letter-spacing:.08em}.cancelled-reason{font-size:13px;color:var(--red);margin-top:6px;font-style:italic}.cancel-event-btn{margin-top:12px;font-size:13px;font-weight:700;color:var(--red);border:1px solid var(--red);border-radius:var(--radius);padding:7px 14px;background:#ef444414}.event-card.cancelled{opacity:.6}.event-card.cancelled h3{text-decoration:line-through}.btn-cancel-confirm{background:var(--red);color:#fff;font-weight:700;font-size:14px;padding:10px 18px;border-radius:var(--radius)}.btn-cancel-confirm:disabled{opacity:.4}.rsvp-section h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px}.rsvp-locked-badge{font-size:11px;font-weight:700;color:var(--text-muted);background:var(--surface3);border:1px solid var(--border);border-radius:4px;padding:2px 7px}.rsvp-locked-msg{font-size:13px;color:var(--text-muted);font-style:italic;margin-bottom:10px}.rsvp-btn.locked{opacity:.45;cursor:not-allowed}.recurring-section{margin-bottom:16px}.recurring-weeks{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:14px}.recurring-weeks select{width:auto}.detail-admin-actions{display:flex;gap:8px;margin-top:10px}.edit-note{font-size:12px;color:var(--yellow);margin-top:8px}.archived-badge{font-size:11px;background:var(--surface3);color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:2px 7px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.collector-card-wrap{width:100%}.card-side-tabs{display:flex;gap:8px;margin-bottom:10px}.card-side-tabs button{flex:1;padding:8px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:14px}.card-side-tabs button.active{border-color:var(--accent);color:var(--accent);background:#f5a62314}.upnext-section{margin-top:24px}.upnext-title{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.upnext-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.upnext-tile{background:var(--surface);border-radius:10px;padding:12px;border-top:3px solid;cursor:pointer;transition:transform .15s,opacity .15s}.upnext-tile:hover{transform:translateY(-2px);opacity:.9}.upnext-tile-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.upnext-tile-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px;line-height:1.3}.upnext-tile-date{font-size:11px;color:var(--text-muted)}.upnext-tile-time{font-size:11px;color:var(--text-dim);margin-top:2px}.upnext-rsvp{font-size:10px;font-weight:600;margin-top:8px;padding:2px 6px;border-radius:4px;display:inline-block}.upnext-rsvp.green{background:#22c55e26;color:#22c55e}.upnext-rsvp.red{background:#ef444426;color:#ef4444}.roster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.roster-tile{background:var(--surface);border-radius:10px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:transform .15s;border:1px solid var(--border)}.roster-tile:hover{transform:translateY(-2px);border-color:var(--accent)}.roster-tile-avatar{width:60px;height:60px;border-radius:50%;overflow:hidden;background:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:8px}.roster-tile-img{width:100%;height:100%;object-fit:cover}.roster-tile-initial{font-size:24px;font-weight:700;color:#000}.roster-tile-name{font-size:12px;color:var(--text-muted);line-height:1.2}.roster-tile-surname{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.roster-tile-position{font-size:10px;color:var(--text-muted);margin-top:3px}.upnext-row{border-radius:12px;padding:12px;margin-bottom:10px}.upnext-row-silver{background:#c0c0c01a;border:1px solid rgba(192,192,192,.2)}.upnext-row-gold{background:#d4af371a;border:1px solid rgba(212,175,55,.2)}.reaction-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.reaction-pill{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:2px 8px;font-size:13px;cursor:pointer;transition:background .15s}.reaction-pill.mine{background:#f5a62333;border-color:#f5a62380}.reaction-pill:hover{background:#ffffff26}.emoji-picker{position:absolute;bottom:28px;left:0;background:var(--surface, #1a1a2e);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:8px;display:flex;gap:6px;z-index:50;box-shadow:0 4px 20px #0006}.emoji-option{background:none;border:none;font-size:22px;cursor:pointer;padding:4px;border-radius:8px;transition:transform .1s,background .1s}.emoji-option:hover{transform:scale(1.3);background:#ffffff1a}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s;margin-bottom:4px}.btn-google:hover{background:#f8f9fa;box-shadow:0 1px 3px #00000026}.btn-google:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-muted, #888);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border, rgba(255,255,255,.1))}.rsvp-hint{font-size:11px;color:var(--text-dim);margin-left:8px;font-weight:400}.rsvp-confirmed{padding:10px 14px;border-radius:8px;font-size:14px;font-weight:600;margin-top:8px}.rsvp-confirmed.green{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.rsvp-confirmed.red{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.roster-display-section{margin-top:20px}.roster-display-list{margin-top:10px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.roster-display-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.roster-display-row:last-child{border-bottom:none}.roster-display-row.starter{background:#d4af370d}.roster-num{font-family:monospace;font-size:13px;color:var(--text-dim);width:24px;flex-shrink:0}.roster-num.gold{color:var(--gold)}.roster-name{flex:1;font-size:14px;font-weight:600}.roster-pos{font-size:12px;color:var(--text-dim)}.roster-select-list{max-height:360px;overflow-y:auto;margin-bottom:16px}.roster-select-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.roster-select-row:hover{background:#ffffff0a}.roster-select-row.selected{background:#22c55e14}.roster-select-row.selected.starter{background:#d4af371a}.roster-check{width:20px;font-size:14px;color:#22c55e;flex-shrink:0}.roster-text-list{margin:4px 0 10px}.roster-text-row{padding:6px 0;font-size:15px;border-bottom:1px solid rgba(255,255,255,.05);line-height:1.4}.roster-text-row:last-child{border-bottom:none}.roster-text-list.starters .roster-text-row{color:#d4af37}.roster-group-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:10px 0 4px}.rsvp-deadline-display{font-size:13px;color:var(--text-dim);margin-top:4px}.schedule-list{display:flex;flex-direction:column;gap:8px}.schedule-tile{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-left:3px solid;border-radius:var(--radius)}.schedule-tile-left{flex:1;min-width:0}.schedule-tile-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.schedule-tile-title{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-tile-meta{font-size:12px;color:var(--text-dim);margin-top:2px}.schedule-meta-dim{font-size:11px;color:var(--text-dim)}.schedule-tile-right{flex-shrink:0;display:flex;align-items:center}.schedule-rsvp-btns{display:flex;gap:6px}.schedule-rsvp-btn{width:36px;height:36px;border-radius:50%;border:2px solid transparent;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:all .15s}.schedule-rsvp-btn.green{background:#22c55e1a;color:#22c55e;border-color:#22c55e4d}.schedule-rsvp-btn.green.selected{background:#22c55e40;border-color:#22c55e}.schedule-rsvp-btn.red{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.schedule-rsvp-btn.red.selected{background:#ef444440;border-color:#ef4444}.schedule-rsvp-status{font-size:12px;font-weight:600}.schedule-rsvp-status.green{color:#22c55e}.schedule-rsvp-status.red{color:#ef4444}.schedule-rsvp-status.dim{color:var(--text-dim)}.schedule-rsvp-btns-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.schedule-rsvp-counts{display:flex;gap:8px}.schedule-count{font-size:11px;font-weight:700}.schedule-count.green{color:#22c55e}.schedule-count.red{color:#ef4444}.availability-page{padding-bottom:110px}.availability-header{align-items:flex-start}.page-subtitle{margin:4px 0 0;color:var(--text-dim);font-size:13px}.availability-error{padding:10px 12px;margin-bottom:12px;border:1px solid rgba(239,68,68,.35);border-radius:8px;color:#ef4444;background:#ef444414;font-size:13px}.availability-view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px;padding:4px;border-radius:10px;background:var(--surface2);border:1px solid var(--border)}.availability-view-tabs button{border:0;border-radius:7px;padding:10px;background:transparent;color:var(--text-dim);font-weight:700;cursor:pointer}.availability-view-tabs button.active{background:var(--surface);color:var(--gold)}.availability-date-bar{display:grid;grid-template-columns:42px 1fr 42px;gap:8px;margin-bottom:12px}.availability-date-bar button,.availability-date-bar input{height:42px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text)}.availability-date-bar button{font-size:22px;cursor:pointer}.availability-date-bar input{padding:0 10px;text-align:center}.availability-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.availability-summary-card{display:flex;flex-direction:column;align-items:center;padding:12px 6px;border-radius:10px;border:1px solid var(--border);background:var(--surface2)}.availability-summary-card strong{font-size:24px;line-height:1}.availability-summary-card span{margin-top:5px;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.availability-summary-card.available strong{color:#22c55e}.availability-summary-card.unavailable strong{color:#ef4444}.availability-summary-card.unset strong{color:var(--text-dim)}.availability-section{margin-bottom:18px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.availability-section.compact{padding-bottom:8px}.availability-section h2{margin:0 0 12px;font-size:15px}.availability-position-group+.availability-position-group{margin-top:15px}.availability-position-group h3{display:flex;justify-content:space-between;margin:0 0 6px;color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.availability-position-group h3 span{color:var(--text-dim)}.availability-player-list{display:flex;flex-direction:column}.availability-player-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.availability-player-row:last-child{border-bottom:0}.availability-player-avatar{width:34px;height:34px;flex:0 0 34px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;background:var(--surface);color:var(--gold);font-weight:800}.availability-player-avatar img{width:100%;height:100%;object-fit:cover}.availability-player-copy{min-width:0;flex:1;display:flex;flex-direction:column}.availability-player-copy strong{font-size:13px}.availability-player-copy span{margin-top:2px;color:var(--text-dim);font-size:11px}.availability-override-badge{padding:3px 6px;border-radius:999px;background:#d4af371f;color:var(--gold);font-size:9px;text-transform:uppercase}.availability-empty{margin:0;padding:8px 0}.availability-editor-title{margin:14px 0}.availability-editor-title h2{margin:0}.availability-editor-title p{margin:5px 0 0;color:var(--text-dim);font-size:13px}.weekly-availability-list{display:flex;flex-direction:column}.weekly-availability-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.weekly-availability-row:last-child{border-bottom:0}.weekly-availability-row>span{font-size:13px;font-weight:600}.availability-choice-group{display:flex;gap:6px}.availability-choice-group button{width:38px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;font-weight:800}.availability-choice-group button.available.selected,.availability-override-actions button.available.selected{border-color:#22c55e;background:#22c55e29;color:#22c55e}.availability-choice-group button.unavailable.selected,.availability-override-actions button.unavailable.selected{border-color:#ef4444;background:#ef444429;color:#ef4444}.availability-choice-group button.not_set.selected,.availability-override-actions button.neutral.selected{border-color:var(--text-dim);background:#ffffff0f;color:var(--text)}.availability-override-card input{width:100%;margin-bottom:8px}.availability-override-card p{color:var(--text-dim);font-size:12px}.availability-override-card p strong{color:var(--text)}.availability-override-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.availability-override-actions button{min-height:40px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font-weight:700}.availability-override-actions button.neutral{grid-column:1 / -1}.availability-note-input{width:100%;margin:2px 0 10px}.weekly-availability-card{padding:12px 0;border-bottom:1px solid var(--border)}.weekly-availability-card:last-child{border-bottom:0}.weekly-availability-card-header{display:grid;grid-template-columns:1fr minmax(130px,170px);align-items:center;gap:10px;margin-bottom:9px}.weekly-availability-card-header strong{font-size:13px}.availability-time-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}.availability-time-editor label{display:flex;flex-direction:column;gap:5px;color:var(--text-dim);font-size:11px;font-weight:700}.availability-time-editor select,.availability-time-editor input{width:100%;min-width:0}.availability-save-button{width:100%;min-height:38px;margin-top:2px;border:1px solid rgba(212,175,55,.45);border-radius:8px;background:#d4af371f;color:var(--gold);cursor:pointer;font-weight:800}.availability-save-button:disabled{opacity:.55;cursor:default}.availability-override-actions button:first-child{border-color:#d4af3773;color:var(--gold)}@media (max-width: 560px){.availability-time-editor{grid-template-columns:1fr}}.availability-date-card{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:stretch;gap:8px;margin-bottom:8px}.availability-date-arrow{min-height:86px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--gold);font-size:34px;font-weight:300;cursor:pointer;touch-action:manipulation}.availability-date-arrow:active{transform:scale(.97)}.availability-date-face{position:relative;min-height:86px;display:grid;grid-template-columns:28px 64px minmax(0,1fr);align-items:center;gap:10px;padding:10px 14px;overflow:hidden;border:1px solid rgba(212,175,55,.5);border-radius:12px;background:linear-gradient(135deg,rgba(212,175,55,.16),var(--surface2) 62%);cursor:pointer}.availability-date-icon{color:var(--gold);font-size:25px;transform:rotate(45deg);opacity:.9}.availability-date-day{color:var(--text);font-size:50px;font-weight:900;line-height:.9;letter-spacing:-.04em;text-align:center}.availability-date-copy{min-width:0;display:flex;flex-direction:column}.availability-date-copy strong{color:var(--gold);font-size:18px;line-height:1.15}.availability-date-copy span{margin-top:4px;color:var(--text-dim);font-size:13px;font-weight:800;letter-spacing:.11em}.availability-date-native-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.availability-today-button{width:100%;min-height:34px;margin:0 0 12px;border:1px solid rgba(212,175,55,.35);border-radius:9px;background:#d4af3714;color:var(--gold);font-size:12px;font-weight:800;cursor:pointer}.availability-override-date-picker{position:relative;min-height:72px;display:grid;grid-template-columns:58px 1fr 30px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;overflow:hidden;border:1px solid rgba(212,175,55,.5);border-radius:11px;background:#d4af3717;cursor:pointer}.availability-override-date-number{color:var(--text);font-size:38px;font-weight:900;line-height:1;text-align:center}.availability-override-date-copy{display:flex;flex-direction:column}.availability-override-date-copy strong{color:var(--gold);font-size:16px}.availability-override-date-copy span{margin-top:3px;color:var(--text-dim);font-size:12px;font-weight:800;letter-spacing:.1em}.availability-override-date-icon{color:var(--gold);font-size:22px;transform:rotate(45deg);text-align:center}.availability-override-date-picker input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}@media (max-width: 420px){.availability-date-card{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}.availability-date-arrow{min-height:80px}.availability-date-face{min-height:80px;grid-template-columns:20px 52px minmax(0,1fr);gap:7px;padding:9px 10px}.availability-date-icon{font-size:19px}.availability-date-day{font-size:43px}.availability-date-copy strong{font-size:16px}.availability-date-copy span{font-size:11px}}.availability-editor .availability-section:has(.weekly-availability-list){padding:14px;background:linear-gradient(180deg,#ffffff09,#ffffff04)}.availability-editor .availability-section:has(.weekly-availability-list)>h2{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:16px;text-transform:uppercase;letter-spacing:.04em}.availability-editor .availability-section:has(.weekly-availability-list)>h2:before{content:"↻";color:var(--gold);font-size:24px}.weekly-availability-list{display:flex;flex-direction:column;gap:10px}.weekly-availability-card{display:grid;grid-template-columns:70px minmax(0,1fr) 86px;align-items:stretch;overflow:hidden;padding:0;border:1px solid var(--border);border-radius:11px;background:#080a0e94;box-shadow:0 8px 24px #00000029}.weekly-availability-card:last-child{border-bottom:1px solid var(--border)}.weekly-day-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:126px;padding:12px 6px;color:#fff;background:linear-gradient(145deg,#48515e,#222932);border-right:1px solid rgba(255,255,255,.1)}.weekly-day-visual strong{font-size:15px;letter-spacing:.08em}.weekly-day-status-icon{display:grid;place-items:center;width:32px;height:32px;border:2px solid rgba(255,255,255,.86);border-radius:50%;font-size:18px;font-weight:900}.weekly-availability-card.status-available .weekly-day-visual{background:linear-gradient(145deg,#168a42,#0b592b)}.weekly-availability-card.status-unavailable .weekly-day-visual{background:linear-gradient(145deg,#ce3341,#7f1722)}.weekly-availability-card.status-not_set .weekly-day-visual{background:linear-gradient(145deg,#596170,#303641)}.weekly-day-controls{min-width:0;padding:11px 12px}.weekly-control-row{display:grid;grid-template-columns:minmax(130px,.9fr) minmax(170px,1.25fr);gap:10px;align-items:end}.weekly-control-field,.weekly-time-placeholder{display:flex;flex-direction:column;gap:5px;min-width:0}.weekly-control-field>span,.weekly-time-placeholder>span,.weekly-availability-card .availability-time-editor label{color:var(--text-dim);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.availability-status-select{min-height:42px;font-weight:800}.availability-status-select.status-available{border-color:#22c55e7a;background:#22c55e2b;color:#d9ffe5}.availability-status-select.status-unavailable{border-color:#ef444480;background:#ef44442b;color:#ffe1e1}.availability-status-select.status-not_set{border-color:#94a3b861;background:#94a3b81a;color:var(--text)}.weekly-availability-card .availability-time-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.weekly-availability-card .availability-time-editor select,.weekly-availability-card .availability-time-editor input,.weekly-time-placeholder>div{min-height:42px}.weekly-time-placeholder>div{display:flex;align-items:center;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-dim)}.weekly-note-row{display:flex;align-items:center;gap:7px;margin-top:8px}.weekly-note-row>span{opacity:.65}.weekly-note-row .availability-note-input{margin:0}.weekly-save-button{width:auto;min-width:86px;min-height:100%;margin:0;border:0;border-left:1px solid rgba(212,175,55,.42);border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:linear-gradient(180deg,#d4af371a,#d4af3709);color:var(--gold);font-size:11px}.weekly-save-button span:first-child{font-size:24px;transform:rotate(45deg)}@media (max-width: 620px){.weekly-availability-card{grid-template-columns:58px minmax(0,1fr)}.weekly-day-visual{min-height:150px;padding:10px 4px}.weekly-day-status-icon{width:28px;height:28px;font-size:16px}.weekly-control-row,.weekly-availability-card .availability-time-editor{grid-template-columns:1fr}.weekly-save-button{grid-column:1 / -1;min-height:44px;border-left:0;border-top:1px solid rgba(212,175,55,.42);border-radius:0;flex-direction:row;font-size:12px}.weekly-save-button span:first-child{font-size:18px}}.weekly-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.weekly-section-heading h2{display:flex;align-items:center;gap:8px;margin:0;font-size:16px;text-transform:uppercase;letter-spacing:.04em}.weekly-section-heading h2:before{content:"↻";color:var(--gold);font-size:24px}.weekly-section-heading>span{padding:6px 9px;border:1px solid var(--border);border-radius:999px;background:#ffffff0a;color:var(--text-dim);font-size:11px;font-weight:800;white-space:nowrap}.availability-editor select option,.weekly-availability-card select option,.availability-override-card select option{background:#1c1f27!important;color:#fff!important}.weekly-availability-card{position:relative;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.weekly-availability-card:focus-within{border-color:#d4af37b8;box-shadow:0 0 0 2px #d4af371c,0 12px 30px #0000003d}.weekly-availability-card.status-available{border-left-color:#22c55ec7}.weekly-availability-card.status-unavailable{border-left-color:#ef4444c7}.weekly-availability-card.status-not_set{border-left-color:#94a3b88c}.weekly-day-visual{position:relative}.weekly-day-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 48%,rgba(0,0,0,.14))}.weekly-day-status-icon,.weekly-day-visual strong{position:relative;z-index:1}.weekly-control-field>span,.weekly-time-placeholder>span,.weekly-availability-card .availability-time-editor label{line-height:1.15}.weekly-availability-card select,.weekly-availability-card input[type=time],.weekly-availability-card input[type=text]{outline:none}.weekly-availability-card select:focus,.weekly-availability-card input:focus{border-color:#d4af37bf;box-shadow:0 0 0 2px #d4af371f}.weekly-note-row{position:relative}.weekly-note-row>span{flex:0 0 auto}.weekly-save-button{font-weight:900;letter-spacing:.01em}.weekly-save-button:hover:not(:disabled),.weekly-save-button:focus-visible:not(:disabled){background:linear-gradient(180deg,#d4af3738,#d4af3714);color:#ffe17b}.weekly-save-button:disabled{opacity:.62;cursor:wait}@media (min-width: 621px){.weekly-availability-card:hover{transform:translateY(-1px);border-color:#ffffff2b}}@media (max-width: 620px){.weekly-section-heading{align-items:flex-start}.weekly-section-heading>span{padding:5px 7px;font-size:9px}.weekly-availability-card{grid-template-columns:66px minmax(0,1fr);border-radius:12px}.weekly-day-visual{min-height:174px}.weekly-day-visual strong{font-size:14px}.weekly-day-controls{padding:12px 10px 10px}.weekly-control-row{gap:9px}.weekly-save-button{min-height:48px}}.weekly-availability-card{grid-template-columns:70px minmax(0,1fr);grid-template-rows:auto auto}.weekly-day-visual{grid-column:1;grid-row:1 / 3}.weekly-day-controls{grid-column:2;grid-row:1}.weekly-save-button{grid-column:2;grid-row:2;width:100%;min-width:0;min-height:46px;border-left:0;border-top:1px solid rgba(212,175,55,.42);flex-direction:row;gap:8px}.weekly-save-button span:first-child{font-size:18px}@media (max-width: 760px){.weekly-availability-card{grid-template-columns:66px minmax(0,1fr)}.weekly-control-row{grid-template-columns:1fr}.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(0,1fr)}.weekly-day-visual{min-height:190px}}.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(108px,.8fr) minmax(118px,1fr) minmax(118px,1fr)}.availability-time-editor label{min-width:0}.availability-time-editor label>span{display:block;min-height:22px;margin-bottom:5px}.availability-time-text-input{width:100%;min-width:0;min-height:42px;padding:0 11px;font-size:14px;font-weight:800;text-align:center;letter-spacing:.01em;color:#fff;background:var(--surface);border:1px solid var(--border);border-radius:8px}.availability-time-text-input::placeholder{color:#ffffff61;font-weight:600}.availability-time-text-input.is-invalid{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef444426!important}@media (max-width: 760px){.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(105px,.8fr) minmax(112px,1fr) minmax(112px,1fr);overflow-x:auto;padding-bottom:2px}.availability-time-text-input{font-size:13px}}@media (max-width: 430px){.weekly-availability-card .availability-time-editor{grid-template-columns:1fr;overflow:visible}.availability-time-editor label>span{min-height:0}.availability-time-text-input{text-align:left}}@media (max-width: 620px){.weekly-control-row{grid-template-columns:minmax(0,1fr);align-items:stretch}.weekly-availability-card .availability-time-editor{width:100%;min-width:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;overflow:visible;padding-bottom:0}.weekly-availability-card .availability-time-editor>label:first-child{grid-column:1 / -1}.weekly-availability-card .availability-time-editor select,.weekly-availability-card .availability-time-editor input{width:100%;min-width:0}.availability-time-text-input{padding-inline:8px;font-size:13px;text-align:center}}@media (max-width: 370px){.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(0,1fr)}.weekly-availability-card .availability-time-editor>label:first-child{grid-column:auto}}@media (max-width: 620px){.weekly-availability-card{grid-template-columns:66px minmax(0,1fr);grid-template-rows:auto auto;overflow:hidden}.weekly-day-visual{grid-column:1;grid-row:1 / 3;min-height:100%}.weekly-day-controls{grid-column:2;grid-row:1;min-width:0;padding:14px 12px 10px}.weekly-control-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:100%;min-width:0}.weekly-control-field,.weekly-time-placeholder,.weekly-availability-card .availability-time-editor{width:100%;min-width:0}.weekly-availability-card .availability-time-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;overflow:visible;padding:0}.weekly-availability-card .availability-time-editor>label:first-child{grid-column:1 / -1}.weekly-availability-card .availability-time-editor>label:nth-child(2):last-child{grid-column:1 / -1}.weekly-availability-card .availability-time-editor>label:nth-child(2):not(:last-child){grid-column:1}.weekly-availability-card .availability-time-editor>label:nth-child(3){grid-column:2}.weekly-availability-card select,.weekly-availability-card input,.availability-time-text-input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.availability-time-text-input{padding-inline:8px;font-size:13px;text-align:center}.weekly-note-row{margin-top:12px}.weekly-save-button{grid-column:2;grid-row:2;width:100%;min-height:46px}}@media (max-width: 340px){.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(0,1fr)}.weekly-availability-card .availability-time-editor>label:nth-child(2),.weekly-availability-card .availability-time-editor>label:nth-child(3){grid-column:1}}@media (max-width: 900px){.weekly-availability-card{grid-template-columns:66px minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-items:stretch!important;overflow:hidden!important}.weekly-day-visual{grid-column:1!important;grid-row:1 / 3!important;min-height:100%!important}.weekly-day-controls{grid-column:2!important;grid-row:1!important;width:100%!important;min-width:0!important;padding:14px 12px 10px!important}.weekly-control-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;width:100%!important;min-width:0!important}.weekly-control-field,.weekly-time-placeholder,.weekly-availability-card .availability-time-editor{width:100%!important;min-width:0!important;max-width:100%!important}.weekly-availability-card .availability-time-editor{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;margin:0!important;padding:0!important;overflow:visible!important}.weekly-availability-card .availability-time-editor>label:first-child{grid-column:1 / -1!important}.weekly-availability-card .availability-time-editor>label:nth-child(2):last-child{grid-column:1 / -1!important}.weekly-availability-card .availability-time-editor>label:nth-child(2):not(:last-child){grid-column:1!important}.weekly-availability-card .availability-time-editor>label:nth-child(3){grid-column:2!important}.weekly-availability-card select,.weekly-availability-card input,.availability-time-text-input{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}.weekly-note-row{margin-top:12px!important}.weekly-save-button{grid-column:2!important;grid-row:2!important;width:100%!important;min-height:46px!important;margin:0!important}}@media (max-width: 340px){.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(0,1fr)!important}.weekly-availability-card .availability-time-editor>label:nth-child(2),.weekly-availability-card .availability-time-editor>label:nth-child(3){grid-column:1!important}}.recurrence-box{margin:14px 0;padding:14px;border:1px solid rgba(234,179,8,.35);border-radius:12px;background:#eab3080f}.recurrence-toggle,.scope-option{display:flex;align-items:center;gap:10px;min-height:42px;color:var(--text);cursor:pointer}.recurrence-toggle input,.scope-option input{width:20px;height:20px;flex:0 0 auto}.recurrence-options{display:grid;gap:10px;margin-top:12px}.profile-page-heading{margin-bottom:14px}@media (max-width: 420px){.bottom-nav{max-width:100%}.nav-btn{min-width:0;padding:0 2px}.nav-icon{font-size:18px}.nav-label{font-size:8px;letter-spacing:.02em}}.profile-edit-page{padding:12px 12px 150px}.mobile-profile-form{display:grid;gap:12px}.profile-hero-card,.profile-form-card{background:linear-gradient(180deg,#1f1f27f5,#15151bfa);border:1px solid var(--border);border-radius:16px;padding:16px}.profile-hero-card{text-align:center;padding-top:20px}.profile-avatar-editor{position:relative;width:104px;height:104px;margin:0 auto 10px;border-radius:50%;overflow:visible;background:var(--surface2);border:3px solid rgba(212,175,55,.55);display:grid;place-items:center;color:var(--gold);font-size:38px;font-weight:800;cursor:pointer}.profile-avatar-editor img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-camera-badge{position:absolute;right:-4px;bottom:2px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#09090b;border:3px solid #18181e;font-size:15px}.profile-photo-button{border:0;background:transparent;color:var(--gold);font:inherit;font-size:13px;font-weight:700;padding:4px 12px 8px;cursor:pointer}.profile-hero-card h1{font-size:25px;line-height:1.15;margin:2px 0 5px}.profile-identity-summary{color:var(--text-dim);font-size:13px;min-height:20px;margin-bottom:15px}.profile-completion-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-dim);margin-bottom:7px}.profile-completion-row strong{color:var(--gold)}.profile-completion-track{height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.profile-completion-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d4af37,#f7ca3e);transition:width .25s ease}.profile-section-heading{display:flex;align-items:center;gap:11px;padding-bottom:13px;margin-bottom:14px;border-bottom:1px solid rgba(255,255,255,.07)}.profile-section-heading>span{font-size:23px}.profile-section-heading h2{color:var(--gold);font-size:16px;line-height:1.1;margin:0 0 3px}.profile-section-heading p{color:var(--text-muted);font-size:11px;margin:0}.profile-form-card .field{margin-bottom:14px}.profile-form-card .field:last-child{margin-bottom:0}.profile-form-card input,.profile-form-card select,.profile-form-card textarea{width:100%;min-height:50px;border-radius:10px}.profile-form-card textarea{min-height:104px;resize:vertical}.profile-form-card select option{background:#24242d;color:#fff}.profile-sticky-save{position:fixed;z-index:190;left:50%;transform:translate(-50%);bottom:72px;width:min(600px,calc(100% - 24px));padding:8px;border:1px solid rgba(212,175,55,.2);border-radius:14px;background:#0f0f13f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 -8px 28px #00000059}.profile-sticky-save .btn-primary{width:100%;min-height:48px;border-radius:10px;font-size:15px}.profile-save-error{margin:0 4px}@media (min-width: 700px){.profile-edit-page{max-width:650px;margin:0 auto}}.availability-view-tabs.has-three{grid-template-columns:repeat(3,minmax(0,1fr))}.availability-view-tabs.has-three button{padding-left:6px;padding-right:6px;font-size:11px}.availability-setup-view{display:flex;flex-direction:column;gap:14px}.availability-setup-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.availability-setup-summary-card{min-width:0;padding:14px 7px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);text-align:center}.availability-setup-summary-card strong{display:block;font-size:25px;line-height:1;color:var(--text)}.availability-setup-summary-card span{display:block;margin-top:6px;color:var(--text-dim);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.availability-setup-summary-card.set strong{color:var(--gold)}.availability-setup-summary-card.complete strong{color:#35d477}.availability-setup-summary-card.missing strong{color:#ff6767}.availability-setup-section{overflow:hidden;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.availability-setup-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border)}.availability-setup-heading h2{margin:0;font-size:17px}.availability-setup-heading p{margin:5px 0 0;color:var(--text-dim);font-size:12px}.availability-setup-heading>span{flex:0 0 auto;padding:5px 8px;border:1px solid var(--border);border-radius:999px;color:var(--gold);font-size:10px;font-weight:800}.availability-setup-group{padding:12px;border-bottom:1px solid var(--border)}.availability-setup-group:last-child{border-bottom:0}.availability-setup-group h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:var(--text);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.availability-setup-group h3 small{margin-left:auto;color:var(--text-dim);font-size:11px}.setup-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px}.setup-dot.complete{color:#35d477;background:#35d4771f;border:1px solid rgba(53,212,119,.35)}.setup-dot.partial{color:var(--gold);background:#d4af371f;border:1px solid rgba(212,175,55,.35)}.setup-dot.missing{color:#ff6767;background:#ff67671a;border:1px solid rgba(255,103,103,.3)}.availability-setup-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:10px;padding:10px 7px;border:0;border-top:1px solid rgba(255,255,255,.045);background:transparent;color:inherit;text-align:left;cursor:pointer}.availability-setup-row:first-of-type{border-top:0}.availability-setup-row:active{background:#d4af3712}.availability-setup-avatar{width:36px;height:36px;overflow:hidden;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--gold);font-weight:900}.availability-setup-avatar img{width:100%;height:100%;object-fit:cover}.availability-setup-copy{min-width:0;display:flex;flex-direction:column}.availability-setup-copy strong{overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.availability-setup-copy small{margin-top:3px;color:var(--text-dim);font-size:11px}.availability-setup-chevron{color:var(--gold);font-size:22px;text-align:center}.roster-page-header{align-items:center}.roster-account-counter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:16px}.roster-count{min-width:0;padding:12px 4px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);text-align:center}.roster-count strong{display:block;color:var(--text);font-size:22px;line-height:1}.roster-count span{display:block;margin-top:5px;overflow:hidden;color:var(--text-dim);font-size:8px;font-weight:800;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase}.roster-count.active strong{color:#35d477}.roster-count.legacy strong{color:#c28143}.roster-count.inactive strong{color:#8d8d9c}@media (max-width: 390px){.availability-view-tabs.has-three button{font-size:10px}.roster-account-counter{gap:5px}.roster-count{padding-left:2px;padding-right:2px}.roster-count strong{font-size:20px}}.scanner-launch{display:flex;flex-direction:column;gap:10px;align-items:stretch}.manual-attendance-panel{display:flex;flex-direction:column;gap:12px;width:100%;padding:14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-lg, 14px)}.manual-attendance-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.manual-attendance-header h4{margin:0 0 3px;font-size:15px}.manual-attendance-header p{margin:0;color:var(--text-muted);font-size:12px;line-height:1.4}.manual-attendance-search{width:100%;min-height:44px}.manual-attendance-list{display:flex;flex-direction:column;gap:7px;max-height:52vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.manual-attendance-player{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.manual-attendance-player:disabled{cursor:default;opacity:1}.manual-attendance-player.is-present{border-color:#22c55e73;background:#22c55e14}.manual-attendance-player-info{display:flex;flex-direction:column;gap:2px;min-width:0}.manual-attendance-player-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-attendance-player-info small{color:var(--text-muted)}.manual-attendance-player-action{flex-shrink:0;color:var(--accent);font-weight:700;font-size:12px}.manual-attendance-player.is-present .manual-attendance-player-action{color:var(--green)}.manual-attendance-empty{margin:8px 0;text-align:center;color:var(--text-muted)}.manual-attendance-player.is-present .manual-attendance-player-action{color:#ff8a8a}.manual-attendance-player.is-present:hover,.manual-attendance-player.is-present:focus-visible{border-color:#ef4444a6;background:#ef444414}.qr-photo-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.scanner-launch .scan-msg{display:flex;flex-direction:column;gap:3px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2);font-size:13px;line-height:1.4}.attendance-window-card{width:100%;padding:14px;border-radius:12px;border:1px solid rgba(148,163,184,.28);background:#0f172ab8;display:grid;gap:10px}.attendance-window-card.is-open{border-color:#22c55e80;background:#16653424}.attendance-window-card.is-closed{border-color:#f59e0b7a;background:#78350f24}.attendance-window-heading{display:flex;align-items:center;gap:10px}.attendance-window-heading>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#ffffff14;font-size:18px}.attendance-window-heading div{min-width:0;display:grid;gap:2px}.attendance-window-heading strong{font-size:.95rem}.attendance-window-heading small,.attendance-window-card p{color:var(--text-muted, #a8adb8);font-size:.82rem;line-height:1.35}.attendance-window-card button{width:100%}.scanner-wrap{position:relative}.attendance-scan-confirmation{position:absolute;inset:50% 14px auto;z-index:12;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;padding:22px 16px;border:2px solid currentColor;border-radius:18px;text-align:center;color:#fff;background:#0a0c10f0;box-shadow:0 18px 45px #0000007a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:attendance-confirmation-in .16s ease-out}.attendance-scan-confirmation.is-success{color:#66ef9a;background:#07361cf2}.attendance-scan-confirmation.is-info{color:#ffd166;background:#4c3304f2}.attendance-scan-confirmation.is-error{color:#ff8e8e;background:#490f13f2}.attendance-scan-confirmation-icon{width:54px;height:54px;display:grid;place-items:center;border:3px solid currentColor;border-radius:50%;font-size:34px;font-weight:900;line-height:1}.attendance-scan-confirmation strong{margin-top:3px;font-size:20px;letter-spacing:.08em}.attendance-scan-confirmation span{max-width:100%;overflow:hidden;font-size:22px;font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.attendance-scan-confirmation small{color:#ffffffd1;font-size:12px;line-height:1.35}@keyframes attendance-confirmation-in{0%{opacity:0;transform:translateY(-46%) scale(.96)}to{opacity:1;transform:translateY(-50%) scale(1)}}.attendance-count-button{border:0;font:inherit;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.attendance-count-button:active{transform:scale(.97)}.attendance-list-modal{width:min(92vw,440px);max-height:82vh;overflow-y:auto}.attendance-list-event-title{margin:3px 0 0;color:var(--text-dim, #9ca3af);font-size:.9rem}.attendance-list-total{display:flex;align-items:baseline;gap:8px;margin:8px 0 16px;padding:12px 14px;border:1px solid rgba(56,189,248,.28);border-radius:12px;background:#38bdf814;color:#bae6fd}.attendance-list-total-number{font-size:1.7rem;font-weight:800;line-height:1;color:#38bdf8}.attendance-name-list{display:flex;flex-direction:column;gap:8px}.attendance-name-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff09}.attendance-name-number{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#d4af3724;color:#d4af37;font-weight:800;font-size:.8rem}.attendance-name-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.attendance-name-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-name-copy span,.attendance-name-time{color:var(--text-dim, #9ca3af);font-size:.78rem}.attendance-name-time{white-space:nowrap}.attendance-list-error{padding:12px;border:1px solid rgba(239,68,68,.35);border-radius:10px;background:#ef444417;color:#fca5a5}.weekly-save-button{background:linear-gradient(180deg,#f4c842,#d4af37)!important;border-top-color:#ffdd66f2!important;color:#0b0b0d!important;box-shadow:inset 0 1px #ffffff47;text-shadow:none}.weekly-save-button:hover:not(:disabled),.weekly-save-button:focus-visible:not(:disabled){background:linear-gradient(180deg,#ffe06d,#e4bc3d)!important;color:#050506!important}.weekly-save-button span:first-child{display:grid;place-items:center;width:22px;height:22px;border:2px solid currentColor;border-radius:50%;font-size:13px!important;line-height:1;font-weight:950;transform:none!important}.weekly-availability-card.has-unsaved-changes{border-color:#ffce3df2!important;box-shadow:0 0 0 2px #ffce3d29,0 12px 30px #0000003d}.weekly-save-button.is-unsaved{position:relative;background:linear-gradient(180deg,#ffd94f,#efb91f)!important;box-shadow:0 0 0 2px #ffcf3438,0 0 18px #ffbf1f38;animation:weekly-save-reminder 1.6s ease-in-out infinite}.weekly-save-button.is-unsaved:before{content:"UNSAVED";position:absolute;top:5px;right:8px;padding:2px 5px;border-radius:999px;background:#0a0a0cd1;color:#ffd94f;font-size:8px;font-weight:950;letter-spacing:.08em}@keyframes weekly-save-reminder{0%,to{box-shadow:0 0 0 2px #ffcf3429,0 0 10px #ffbf1f1f}50%{box-shadow:0 0 0 3px #ffcf3447,0 0 22px #ffbf1f47}}@media (prefers-reduced-motion: reduce){.weekly-save-button.is-unsaved{animation:none}}.welcome-page{padding:18px 16px 28px;display:flex;flex-direction:column;gap:12px;min-height:calc(100% - var(--nav-height))}.welcome-loading{color:var(--text-muted);text-align:center;padding:48px 16px}.welcome-hero{display:flex;align-items:center;gap:14px;padding:18px 4px 12px}.welcome-flag{width:58px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:18px;background:var(--surface);border:1px solid var(--border);font-size:34px;flex-shrink:0}.welcome-kicker{color:var(--accent);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:2px}.welcome-hero h1{font-size:25px;line-height:1.1;font-weight:700}.welcome-nationality{color:var(--text-muted);font-size:13px;margin-top:3px}.welcome-notification-strip{display:flex;align-items:center;gap:11px;padding:11px 14px;border:1px solid rgba(240,192,64,.35);background:var(--accent-dim);border-radius:var(--radius-lg);color:var(--text-dim)}.welcome-notification-icon{font-size:18px}.welcome-notification-strip strong{color:var(--accent);font-size:18px;margin-right:4px}.welcome-notification-strip span{font-size:13px}.welcome-event-grid{display:grid;grid-template-columns:1fr;gap:12px}.welcome-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.welcome-event-card{padding:15px}.welcome-event-eyebrow{display:flex;align-items:center;gap:7px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700;margin-bottom:8px}.welcome-event-type{color:var(--accent);font-family:var(--font-mono);font-size:10px;margin-bottom:2px}.welcome-event-card h2{font-size:18px;line-height:1.2;margin-bottom:10px}.welcome-event-meta{display:flex;flex-direction:column;gap:4px;color:var(--text-dim);font-size:12px;margin-bottom:12px}.welcome-rsvp{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;border-radius:7px;padding:9px 11px;font-size:12px;border:1px solid var(--border)}.welcome-rsvp-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800}.welcome-rsvp-label{color:var(--text-muted)}.welcome-rsvp strong{text-transform:uppercase;letter-spacing:.06em;font-size:11px}.welcome-rsvp.going{background:#22c55e14;border-color:#22c55e47}.welcome-rsvp.going .welcome-rsvp-icon,.welcome-rsvp.going strong{color:var(--green)}.welcome-rsvp.going .welcome-rsvp-icon{background:#22c55e24}.welcome-rsvp.not-going{background:#ef444412;border-color:#ef444440}.welcome-rsvp.not-going .welcome-rsvp-icon,.welcome-rsvp.not-going strong{color:var(--red)}.welcome-rsvp.not-going .welcome-rsvp-icon{background:#ef444424}.welcome-rsvp.pending{background:#f59e0b12;border-color:#f59e0b40}.welcome-rsvp.pending .welcome-rsvp-icon,.welcome-rsvp.pending strong{color:var(--yellow)}.welcome-rsvp.pending .welcome-rsvp-icon{background:#f59e0b24}.welcome-event-card.empty-event{min-height:110px;display:flex;flex-direction:column;justify-content:center}.welcome-empty-event-text{color:var(--text-muted);font-size:14px}.welcome-announcements-card{padding:0}.welcome-section-heading{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-bottom:1px solid var(--border);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.welcome-section-heading>div{display:flex;align-items:center;gap:7px}.welcome-section-heading strong{color:var(--accent);font-size:13px}.welcome-section-icon{font-size:15px}.welcome-clear-state{display:flex;align-items:center;gap:11px;padding:16px}.welcome-clear-state>span{color:var(--green);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#22c55e1f}.welcome-clear-state strong{font-size:14px}.welcome-clear-state p{color:var(--text-muted);font-size:12px;margin-top:1px}.welcome-announcement-list{display:flex;flex-direction:column}.welcome-announcement-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(42,42,53,.65)}.welcome-announcement-row:last-child{border-bottom:none}.welcome-unread-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #f0c04059;margin-top:6px;flex-shrink:0}.welcome-announcement-row>div{min-width:0;flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.welcome-announcement-row strong{font-size:13px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-announcement-row span:last-child{color:var(--text-muted);font-size:10px;flex-shrink:0}.welcome-more-announcements{color:var(--text-muted);font-size:11px;text-align:center;padding:10px 14px 12px}.welcome-footnote{color:var(--text-muted);text-align:center;font-size:11px;padding:4px 0 2px}@media (min-width: 430px){.welcome-event-grid{grid-template-columns:1fr 1fr}.welcome-event-card{min-height:205px}}.weekly-availability-card{grid-template-columns:66px minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-items:stretch!important;overflow:hidden!important}.weekly-day-visual{grid-column:1!important;grid-row:1 / 3!important;min-height:100%!important}.weekly-day-controls{grid-column:2!important;grid-row:1!important;width:100%!important;min-width:0!important;padding:14px 12px 10px!important}.weekly-control-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;width:100%!important;min-width:0!important;align-items:stretch!important}.weekly-control-field,.weekly-time-placeholder,.weekly-availability-card .availability-time-editor{width:100%!important;min-width:0!important;max-width:100%!important}.weekly-availability-card .availability-time-editor{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-auto-flow:row!important;gap:10px!important;margin:0!important;padding:0!important;overflow:visible!important}.weekly-availability-card .availability-time-editor>label:first-child{grid-column:1 / -1!important;grid-row:1!important}.weekly-availability-card .availability-time-editor>label:nth-child(2):last-child{grid-column:1 / -1!important;grid-row:2!important}.weekly-availability-card .availability-time-editor>label:nth-child(2):not(:last-child){grid-column:1!important;grid-row:2!important}.weekly-availability-card .availability-time-editor>label:nth-child(3){grid-column:2!important;grid-row:2!important}.weekly-availability-card .availability-time-editor label{display:flex!important;flex-direction:column!important;gap:5px!important;min-width:0!important}.weekly-availability-card select,.weekly-availability-card input[type=time],.weekly-availability-card input[type=text]{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}.weekly-availability-card input[type=time]{min-height:44px!important;padding:8px 7px!important;font-size:14px!important}.weekly-note-row{margin-top:12px!important}.weekly-save-button{grid-column:2!important;grid-row:2!important;width:100%!important;min-width:0!important;min-height:46px!important;margin:0!important;border-left:0!important;border-top:1px solid rgba(212,175,55,.42)!important;flex-direction:row!important;gap:8px!important}@media (max-width: 320px){.weekly-availability-card .availability-time-editor{grid-template-columns:minmax(0,1fr)!important}.weekly-availability-card .availability-time-editor>label:first-child{grid-column:1!important;grid-row:1!important}.weekly-availability-card .availability-time-editor>label:nth-child(2){grid-column:1!important;grid-row:2!important}.weekly-availability-card .availability-time-editor>label:nth-child(3){grid-column:1!important;grid-row:3!important}}
