html,body,#root{margin:0;padding:0;width:100%;font-family:Grandstander,cursive;background:var(--bg);color:var(--text);transition:background-color .3s,color .3s;min-height:100%;position:relative;overflow-x:hidden}html{scroll-behavior:smooth}body{position:relative;min-height:100dvh;-webkit-text-size-adjust:100%;text-size-adjust:100%}#root{position:relative;z-index:2}.effects-root{z-index:0!important}body{position:relative;background:var(--bg);overflow-x:hidden;z-index:0}#root{position:relative;z-index:1;background:transparent}body:before{content:"";position:fixed;inset:0 0 auto 0;height:clamp(120px,22vh,240px);background:linear-gradient(to bottom,#0006,#0000);pointer-events:none;z-index:1}h1,h2,h3,.page-title,.panel-title,.app-title,.nav,.navbar{text-shadow:0 1px 2px rgba(0,0,0,.4),0 0 12px rgba(0,0,0,.25);-webkit-text-stroke:.5px rgba(0,0,0,.18)}body[data-holiday=new_year] h1,body[data-holiday=new_year] .page-title,body[data-holiday=new_year] .app-title{color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55),0 0 22px rgba(50,180,255,.3)}.card,.panel,.list,.list-item,.glass,.participants-list,.participants-item{background:color-mix(in oklab,var(--card) 92%,transparent 8%);-webkit-backdrop-filter:blur(8px) saturate(1.05);backdrop-filter:blur(8px) saturate(1.05)}button,.btn{box-shadow:inset 0 1px #ffffff1f,0 2px 6px #0000002e}body:before{content:"";position:fixed;top:-25%;right:-25%;bottom:-25%;left:-25%;--g1: color-mix(in oklab, var(--accent) 100%, white 0%);--g2: color-mix(in oklab, var(--accent) 40%, white 60%);--g3: color-mix(in oklab, var(--accent) 20%, var(--bg) 80%);background:conic-gradient(from 180deg at 50% 50%,var(--g1),var(--g2),var(--g3),var(--g2),var(--g1));filter:blur(60px) saturate(115%);opacity:.45;animation:global-swirl 18s linear infinite;pointer-events:none;z-index:-1}.page-wrapper{display:flex;flex-direction:column;min-height:100vh}.page-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}select,input,textarea,option,input::placeholder,textarea::placeholder{font-family:Grandstander,cursive,sans-serif}button,a,input,select,textarea{touch-action:manipulation}input,select,textarea{font-size:16px}:root{--name-color: var(--accent);--name-glow: color-mix(in oklab, var(--accent) 70%, white 30%);--flicker-duration: 2.6s}@property --g1{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --g2{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --g3{syntax: "<color>"; inherits: false; initial-value: #0000;}@property --angle{syntax: "<angle>"; inherits: false; initial-value: 180deg;}:root{--g1: color-mix(in oklab, var(--accent) 100%, white 0%);--g2: color-mix(in oklab, var(--accent) 45%, white 55%);--g3: color-mix(in oklab, var(--accent) 15%, var(--bg) 85%);--angle: 180deg}body[data-theme=dark]{--g1: color-mix(in oklab, var(--accent) 100%, white 10%);--g2: color-mix(in oklab, var(--accent) 55%, white 35%);--g3: color-mix(in oklab, var(--accent) 25%, var(--bg) 75%)}body:before{content:"";position:fixed;top:-25%;right:-25%;bottom:-25%;left:-25%;z-index:0;background:conic-gradient(from var(--angle) at 50% 50%,var(--g1),var(--g2),var(--g3),var(--g2),var(--g1));filter:blur(60px) saturate(115%);opacity:.45;animation:global-swirl 18s linear infinite;transition:--g1 .7s ease,--g2 .7s ease,--g3 .7s ease,--angle .7s ease,opacity .4s ease,filter .4s ease}@keyframes global-swirl{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.05)}to{transform:rotate(360deg) scale(1)}}#root,.app,.page,.page-wrapper,.page-content,.main-ui{position:relative;z-index:1;background:transparent}@media(prefers-reduced-motion:reduce){body:before{animation:none}}@media(max-width:768px){h1,h2,h3,.page-title,.panel-title,.app-title,.nav,.navbar{text-shadow:0 1px 2px rgba(0,0,0,.18);-webkit-text-stroke:0}body:before{opacity:.2;filter:blur(36px) saturate(105%)}button,.btn{box-shadow:0 8px 18px #0f172a1a}}.app,.page{min-height:100dvh;display:flex;flex-direction:column}.main-ui{flex:1;display:flex;flex-direction:column;position:relative;width:min(100%,760px);margin:32px auto 40px;padding:32px;background:var(--card);border-radius:10px;text-align:center;box-shadow:0 4px 12px #0000001a;transition:background-color .3s;box-sizing:border-box}.main-ui h2{margin-bottom:5px;margin-top:-3px}.main-ui:has(.history-empty),.main-ui:has(.sb-empty){background:transparent;box-shadow:none;border:0;padding:0}.page,.page-wrapper,.page-content,.main-ui,.app{position:relative;z-index:1;background:transparent}.main-ui,.card,.team-selector-content{background:var(--card);border-radius:16px;box-shadow:0 10px 30px #00000014}@media(max-width:700px){.main-ui{margin:20px auto 32px;max-width:95%}}@media(max-width:768px){.main-ui{margin:16px auto 24px;padding:18px 16px;max-width:95%}button{font-size:16px}h1{font-size:32px}}@media(max-width:1024px){.main-ui{max-width:90%;padding:24px;margin:40px auto}button{padding:10px 16px;font-size:15px}h1{font-size:28px}h2{font-size:22px}.page-content{padding:16px}}@media(min-width:768px)and (max-width:1024px){.main-ui{max-width:85%}button{padding:10px 14px;font-size:14px}}@media(max-width:768px){.main-ui{max-width:95%;padding:16px;margin:20px auto}button{padding:8px 12px;font-size:14px}h1{font-size:24px}h2{font-size:18px}}@media(max-width:640px){.main-ui{max-width:100%;padding:16px 14px;margin:10px auto 18px;border-radius:18px}button{padding:8px 12px;font-size:13px;width:auto}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}.page-content{padding:12px}input,select,textarea{font-size:16px;padding:12px}}.page{width:100%}.page-content{width:min(100%,1200px);margin:0 auto;padding:0 16px 24px;box-sizing:border-box}@media(max-width:640px){.page-content{padding:0 12px 20px}}@media(max-width:375px){.main-ui{padding:8px}button{padding:6px 10px;font-size:12px}h1{font-size:18px}h2{font-size:14px}}button{font-family:inherit;cursor:pointer;border:none;border-radius:5px;font-size:14px;padding:8px 12px;margin:5px;background:var(--button);color:#fff;transition:background-color .2s ease}button:hover{background:var(--button-hover)}button:focus-visible{outline:2px solid #ff9900;outline-offset:2px}.loading-wrap{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:transparent}.loading-card{background:var(--card);border:1px solid color-mix(in oklab,var(--accent) 14%,transparent);box-shadow:0 18px 60px #0000002e;border-radius:18px;padding:28px 32px;text-align:center;min-width:280px}.hat{font-size:36px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.15))}.loading-title{font-weight:800;font-size:22px;margin-top:8px}.loading-tip{margin-top:6px;opacity:.7}.loader{display:flex;gap:8px;justify-content:center;margin:12px 0 6px}.loader i{width:10px;height:10px;border-radius:50%;background:var(--accent);opacity:.35;animation:bub 1.1s infinite ease-in-out}.loader i:nth-child(2){animation-delay:.12s}.loader i:nth-child(3){animation-delay:.24s}@keyframes bub{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-8px);opacity:1}}.team-health-page{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:1200px;margin:0 auto}.health-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.health-back-btn{background:var(--accent);color:var(--text);border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.health-back-btn:hover{transform:translateY(-2px);box-shadow:0 2px 8px #00000026}.health-header h1{flex:1;margin:0;font-size:1.8rem}.health-score-card{background:linear-gradient(135deg,var(--bg) 0%,rgba(76,175,80,.1) 100%);border:2px solid var(--accent);border-radius:12px;padding:2rem;text-align:center;box-shadow:0 4px 12px #0000001a}.score-value{font-size:3.5rem;font-weight:700;line-height:1;margin-bottom:.5rem}.score-label{font-size:1.2rem;color:var(--text-secondary);font-weight:500}.health-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.metric-card{background:var(--card-bg, rgba(255, 255, 255, .05));border:1px solid var(--accent);border-radius:8px;padding:1.5rem;text-align:center;transition:all .2s ease}.metric-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.metric-label{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem}.metric-value{font-size:2.5rem;font-weight:700;color:var(--accent);line-height:1;margin-bottom:.5rem}.metric-sublabel{font-size:.8rem;color:var(--text-tertiary, rgba(255, 255, 255, .6))}.health-section{background:var(--card-bg, rgba(255, 255, 255, .05));border:1px solid var(--accent);border-radius:8px;padding:1.5rem}.health-section h2{margin:0 0 1rem;font-size:1.3rem;display:flex;align-items:center;gap:.5rem}.participant-list{display:flex;flex-direction:column;gap:.75rem}.participant-row{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff0d;border-radius:6px;background:var(--hover-bg, rgba(255, 255, 255, .08));transition:all .2s ease}.participant-row:hover{background:#ffffff1f}.participant-row.needs-attention{background:#ff98001a;border-left:3px solid #ff9800}.participant-row.deleted-row{background:#f443361a;border-left:3px solid #f44336;opacity:.8}.participant-rank{font-weight:700;color:var(--accent);min-width:30px;text-align:center}.participant-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--accent)}.participant-name{flex:1;font-weight:500}.participant-wins{color:var(--text-secondary);font-size:.9rem;min-width:80px;text-align:right}.restore-btn{background:var(--accent);color:var(--button-text);border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.restore-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #0003}.deleted-section{border-color:#f44336;background:#f443360d}.deleted-section h2{color:#f44336}.recent-summary{display:flex;gap:2rem;flex-wrap:wrap;font-size:1rem;line-height:1.6}.recent-summary p{margin:0}.recent-summary strong{color:var(--accent);font-weight:700}.health-loading{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:1.2rem;color:var(--text-secondary)}@media(max-width:1024px){.team-health-page{padding:1rem;gap:1rem}.health-metrics-grid{grid-template-columns:repeat(2,1fr)}.health-header h1{font-size:1.5rem}.score-value{font-size:3rem}.metric-value{font-size:2rem}}@media(max-width:640px){.team-health-page{padding:1rem;gap:1rem}.health-header{flex-direction:column;align-items:flex-start}.health-header h1{font-size:1.3rem;width:100%}.health-metrics-grid{grid-template-columns:1fr}.metric-card{padding:1rem}.score-value{font-size:2.5rem}.metric-value{font-size:1.8rem}.participant-row{padding:.75rem;gap:.75rem;flex-wrap:wrap}.participant-wins{width:100%;text-align:left;margin-left:46px}.restore-btn{width:100%;margin-top:.5rem}.recent-summary{gap:1rem}}.admin-profile-page{max-width:1000px;margin:40px auto;padding:24px}.profile-header{display:flex;align-items:center;gap:20px;margin-bottom:40px;border-bottom:2px solid #e0e0e0;padding-bottom:20px}.profile-header h1{flex:1;margin:0;font-size:28px;color:#333}.back-btn{padding:10px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;white-space:nowrap}.back-btn:hover{transform:translate(-4px);box-shadow:0 4px 12px #667eea4d}.back-btn:active{transform:translate(-2px)}.profile-loading{text-align:center;padding:60px 20px;color:#999;font-size:18px}.role-card-compact{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:40px;overflow:hidden;box-shadow:0 8px 16px #667eea4d}.role-card-row{display:flex;align-items:center;gap:30px;padding:20px 24px;flex-wrap:wrap}.role-card-item{display:flex;align-items:center;gap:10px}.role-label{font-size:14px;font-weight:600;opacity:.9}.role-value{font-size:14px;font-weight:500}.role-badge-inline{display:inline-block;background:#fff3;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;border:1px solid rgba(255,255,255,.3);letter-spacing:1px}.role-details-btn{padding:8px 16px;background:#ffffff40;border:2px solid white;color:#fff;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s;margin-left:auto;white-space:nowrap}.role-details-btn:hover{background:#fff6;transform:translateY(-2px);box-shadow:0 2px 8px #00000026}.role-details-btn:active{transform:translateY(0)}.change-password-btn{padding:8px 16px;background:#ff9800;border:none;color:#fff;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s;white-space:nowrap}.change-password-btn:hover{background:#f57c00;transform:translateY(-2px);box-shadow:0 2px 8px #ff98004d}.change-password-btn:active{transform:translateY(0)}.password-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;box-sizing:border-box;transition:border-color .2s}.password-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 8px #2196f333}.forgot-password-link{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;border-radius:6px;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:0 2px 8px #667eea33}.forgot-password-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.forgot-password-link:active{transform:translateY(0)}.role-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:40px;overflow:hidden;box-shadow:0 8px 16px #667eea4d}.role-card-header{padding:24px;background:#0000001a;border-bottom:2px solid rgba(255,255,255,.2)}.role-card-header h2{margin:0;font-size:18px;font-weight:600}.role-info{padding:24px}.role-name{font-size:32px;font-weight:900;margin-bottom:8px;letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.2)}.role-description{font-size:16px;opacity:.95;margin-bottom:20px;line-height:1.6}.role-permissions,.assigned-teams{background:#0000001a;padding:16px;border-radius:8px;margin-bottom:12px}.role-permissions ul,.assigned-teams ul{margin:8px 0 0 20px;padding:0;list-style:none}.role-permissions li,.assigned-teams li{padding:6px 0;font-size:14px}.teams-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.team-badge{background:#fff3;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500;border:1px solid rgba(255,255,255,.3)}.admin-management{background:#f9f9f9;padding:24px;border-radius:12px;border:1px solid #e0e0e0}.admin-management-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.admin-management-header h2{margin:0;font-size:20px;color:#333}.manage-users-btn{padding:10px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;white-space:nowrap;transition:all .2s;box-shadow:0 2px 8px #667eea33}.manage-users-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.manage-users-btn:active{transform:translateY(0)}.empty-state{text-align:center;padding:40px 20px;color:#999}.empty-state p{margin:8px 0}.admins-list{display:flex;flex-direction:column;gap:12px}.admin-row{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;display:flex;align-items:center;gap:20px;transition:all .2s}.admin-row:hover{border-color:#bbb;box-shadow:0 2px 8px #0000001a}.admin-info{flex:1;display:flex;align-items:center;gap:16px}.admin-name{font-weight:600;color:#333;font-size:16px}.admin-email{font-size:13px;color:#999;margin-bottom:6px}.admin-display-name{font-size:12px;color:#bbb;margin-bottom:6px;font-style:italic}.admin-role-badge{display:inline-block;padding:4px 10px;border-radius:12px;color:#fff;font-size:12px;font-weight:600}.admin-teams{flex:1}.team-badges{display:flex;flex-wrap:wrap;gap:6px}.team-badge-small{background:#e3f2fd;color:#1976d2;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.admin-actions{display:flex;gap:8px}.edit-btn,.remove-btn{padding:8px 12px;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s}.edit-btn{background:#2196f3;color:#fff}.edit-btn:hover{background:#1976d2;transform:translateY(-2px);box-shadow:0 4px 8px #2196f34d}.remove-btn{background:#f44336;color:#fff}.remove-btn:hover{background:#d32f2f;transform:translateY(-2px);box-shadow:0 4px 8px #f443364d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:min(500px,95vw);width:100%;max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box}.modal-header{padding:24px;border-bottom:1px solid #e0e0e0;background:#f9f9f9}.modal-header h2{margin:0 0 8px;font-size:20px;color:#333}.modal-header p{margin:0;font-size:13px;color:#999}.modal-body{padding:24px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.role-select,.teams-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;box-sizing:border-box;transition:border-color .2s}.role-select:focus,.teams-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 8px #2196f333}.form-group small{display:block;margin-top:6px;color:#999;font-size:12px}.modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;background:#f9f9f9;display:flex;gap:12px;justify-content:flex-end}.btn-save,.btn-cancel{padding:10px 16px;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn-save{background:#4caf50;color:#fff}.btn-save:hover{background:#388e3c;transform:translateY(-2px)}.btn-cancel{background:#e0e0e0;color:#333}.btn-cancel:hover{background:#bdbdbd}.role-details-title{text-align:center;margin-bottom:20px}.role-badge-modal{display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:700;letter-spacing:1px}.role-description-section{background:#f0f7ff;border:1px solid #bfdbfe;border-radius:8px;padding:16px;margin-bottom:20px;font-size:14px;line-height:1.6;color:#333}.role-description-section p{margin:0}.role-permissions-section{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border:1px solid #bbdefb;border-radius:8px;padding:16px;margin-bottom:20px}.role-permissions-section strong{display:block;margin-bottom:12px;color:#1565c0;font-size:15px;letter-spacing:.3px}.permissions-grid{display:grid;grid-template-columns:1fr;gap:10px}.permission-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-radius:6px;border-left:3px solid #2196f3;transition:all .2s}.permission-item:hover{box-shadow:0 2px 6px #2196f333;transform:translate(2px)}.permission-check{color:#4caf50;font-weight:700;font-size:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px}.permission-text{color:#333;font-size:13px;font-weight:500;text-transform:capitalize}.assigned-teams-section{background:#f0f7ff;border:1px solid #bfdbfe;border-radius:8px;padding:16px;margin-top:20px}.assigned-teams-section strong{display:block;margin-bottom:12px;color:#1e40af}.teams-list-modal{display:flex;flex-wrap:wrap;gap:10px}.team-badge-modal{background:#e3f2fd;color:#1976d2;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;border:1px solid #1976d2}@media(max-width:768px){.role-card-row{flex-direction:column;align-items:stretch;gap:12px}.role-details-btn,.change-password-btn{margin-left:0;width:100%;text-align:center}.admin-management-header{flex-direction:column;align-items:stretch}.manage-users-btn{width:100%;text-align:center}.admin-row,.admin-info{flex-direction:column;align-items:flex-start}.admin-teams{width:100%}.admin-actions{width:100%;gap:10px}.edit-btn,.remove-btn{flex:1}}@media(max-width:480px){.admin-profile-page{padding:16px}.profile-header{flex-direction:column;align-items:flex-start;margin-bottom:24px}.role-name{font-size:24px}.modal-content{width:100%;max-height:100vh}.teams-list{gap:4px}.team-badge{font-size:12px;padding:4px 8px}}.manage-users-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.manage-users-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;width:100%;max-width:min(800px,95vw);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;animation:slideUp .3s ease-out;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.manage-users-header{padding:20px 24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.manage-users-header h2{margin:0;font-size:1.5rem;color:#333}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#999;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-btn:hover{background:#f0f0f0;color:#333}.manage-users-search{padding:16px 24px;border-bottom:1px solid #f0f0f0;display:flex;gap:12px;align-items:center}.search-input{flex:1;padding:10px 14px;border:1px solid #ddd;border-radius:8px;font-size:.95rem;transition:border-color .2s}.search-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.user-count{font-size:.85rem;color:#999;white-space:nowrap}.users-list{flex:1;overflow-y:auto;padding:8px 0}.user-row{padding:12px 24px;border-bottom:1px solid #f5f5f5;display:flex;align-items:center;gap:16px;transition:background .2s}.user-row:hover{background:#f9f9f9}.user-info{flex:1}.user-name{font-weight:600;color:#333;margin-bottom:4px}.user-email{font-size:.9rem;color:#666;margin-bottom:4px}.user-last-login{font-size:.8rem;color:#999}.user-role-status{display:flex;align-items:center;gap:8px}.admin-badge{padding:4px 10px;border-radius:4px;color:#fff;font-size:.75rem;font-weight:600}.user-badge{padding:4px 10px;border-radius:4px;background:#e0e0e0;color:#666;font-size:.75rem;font-weight:600}.user-action{display:flex;gap:8px}.assign-btn{padding:8px 16px;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s}.assign-btn:hover{background:#1976d2;transform:translateY(-1px);box-shadow:0 2px 8px #2196f34d}.assign-btn:active{transform:translateY(0)}.empty-state{padding:48px 24px;text-align:center;color:#999}.empty-state p{margin:0;font-size:.95rem}.loading-state{padding:48px 24px;text-align:center;color:#999;font-size:.95rem}.manage-users-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.btn-close{padding:10px 20px;background:#e0e0e0;color:#333;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.btn-close:hover{background:#d0d0d0}.role-assignment-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1100}.role-assignment-modal{background:#fff;border-radius:12px;box-shadow:0 15px 50px #0000004d;width:90%;max-width:500px;animation:slideUp .3s ease-out}.role-assignment-modal .modal-header{padding:20px 24px;border-bottom:1px solid #e0e0e0}.role-assignment-modal .modal-header h3{margin:0 0 8px;font-size:1.3rem;color:#333}.role-assignment-modal .modal-header p{margin:0;font-size:.9rem;color:#666}.role-assignment-modal .modal-body{padding:24px;max-height:50vh;overflow-y:auto}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;margin-bottom:8px;color:#333;font-size:.95rem}.role-select,.teams-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit;transition:border-color .2s}.role-select:focus,.teams-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.teams-input{min-height:80px;resize:vertical}.teams-container{padding:12px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;min-height:40px}.team-chips{display:flex;flex-wrap:wrap;gap:8px}.team-chip{padding:8px 14px;background:#fff;border:2px solid #e0e0e0;border-radius:20px;cursor:pointer;font-size:.9rem;font-weight:500;color:#333;transition:all .2s;display:flex;align-items:center;gap:6px;white-space:nowrap}.team-chip:hover{border-color:#2196f3;background:#f0f7ff}.team-chip.selected{background:#2196f3;color:#fff;border-color:#2196f3}.team-chip .team-name{font-weight:600}.team-chip .team-count{font-size:.8rem;opacity:.7}.team-chip .chip-check{margin-left:4px;font-weight:700}.no-teams{padding:12px;text-align:center;color:#999;font-size:.9rem}.form-group small{display:block;margin-top:6px;color:#999;font-size:.85rem}.role-permissions-box{background:#f5f5f5;padding:12px 16px;border-radius:6px;margin-bottom:20px}.role-permissions-box strong{display:block;margin-bottom:8px;color:#333}.role-permissions-box ul{margin:0;padding-left:20px;list-style:none}.role-permissions-box li{padding:4px 0;color:#666;font-size:.9rem}.role-assignment-modal .modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end}.btn-save{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.btn-save:hover{background:#45a049;transform:translateY(-1px);box-shadow:0 2px 8px #4caf504d}.btn-save:active{transform:translateY(0)}.btn-cancel{padding:10px 20px;background:#e0e0e0;color:#333;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.btn-cancel:hover{background:#d0d0d0}@media(max-width:600px){.manage-users-modal{width:95%;max-height:90vh}.manage-users-header h2{font-size:1.2rem}.user-row{flex-wrap:wrap;gap:8px}.user-info{flex:0 0 100%}.user-role-status,.user-action{flex:1}.manage-users-search{flex-wrap:wrap}.search-input{flex:0 0 100%}.user-count{flex:0 0 100%;text-align:center}.role-assignment-modal{width:95%;max-height:90vh}}.garlands-overlay{position:absolute;inset:0 0 auto 0;height:160px;pointer-events:none}.garlands-svg{width:100%;height:100%;display:block;overflow:visible}.garland-wire{fill:none;stroke:color-mix(in oklab,var(--text) 40%,transparent 60%);stroke-width:2;opacity:.5}.bulb .bulb-core{fill:var(--accent)}.bulb .bulb-glow{fill:var(--accent);opacity:.35;filter:blur(6px)}.bulb{animation:bulb-blink 2.6s infinite ease-in-out}.bulb.delay{animation-delay:1.3s}@keyframes bulb-blink{0%,to{opacity:.9}50%{opacity:.2}}@media(prefers-reduced-motion:reduce){.bulb{animation:none}}.pumpkins-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pumpkin{position:absolute;font-size:28px;text-shadow:0 0 10px rgba(255,140,0,.3);animation:pumpkin-float linear infinite;will-change:transform;-webkit-user-select:none;user-select:none}@keyframes pumpkin-float{0%{transform:translate(-50%,-50%) var(--scale, scale(1)) translateY(0);opacity:.9}50%{transform:translate(-50%,-50%) var(--scale, scale(1)) translateY(-12px);opacity:1}to{transform:translate(-50%,-50%) var(--scale, scale(1)) translateY(0);opacity:.9}}@media(prefers-reduced-motion:reduce){.pumpkin{animation:none}}.hearts-overlay{position:absolute;top:-5%;right:0;bottom:0;left:0;pointer-events:none}.heart{position:absolute;top:-10%;transform:translate(-50%,-50%);animation:heart-fall linear infinite;text-shadow:0 0 8px rgba(255,77,143,.35);will-change:transform,opacity;-webkit-user-select:none;user-select:none;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",system-ui,sans-serif}@keyframes heart-fall{0%{transform:translate(-50%,-50%) rotate(var(--rot)) translate(0);opacity:0}10%{opacity:1}to{transform:translate(-50%,110vh) rotate(calc(var(--rot) + 40deg)) translate(var(--drift));opacity:.95}}@media(prefers-reduced-motion:reduce){.heart{animation:none}}.petals-overlay{position:absolute;top:-5%;right:0;bottom:0;left:0;pointer-events:none}.petal{position:absolute;top:-8%;transform:translate(-50%,-50%);animation:petal-fall ease-in-out infinite;text-shadow:0 0 8px rgba(232,92,171,.2);filter:drop-shadow(0 2px 2px rgba(0,0,0,.12));will-change:transform,opacity;-webkit-user-select:none;user-select:none;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",system-ui,sans-serif}@keyframes petal-fall{0%{transform:translate(-50%,-50%) rotate(-10deg);opacity:0}10%{opacity:1}50%{transform:translate(calc(-50% + var(--drift)),50vh) rotate(10deg)}to{transform:translate(calc(-50% - var(--drift)),110vh) rotate(-10deg);opacity:.95}}@media(prefers-reduced-motion:reduce){.petal{animation:none}}.easter-overlay{position:absolute;top:-5%;right:0;bottom:0;left:0;pointer-events:none}.egg{position:absolute;top:-8%;transform:translate(-50%,-50%);animation:egg-fall ease-in-out infinite;text-shadow:0 0 8px rgba(255,209,102,.25);will-change:transform,opacity;-webkit-user-select:none;user-select:none;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",system-ui,sans-serif}@keyframes egg-fall{0%{transform:translate(-50%,-50%) rotate(-8deg);opacity:0}10%{opacity:1}50%{transform:translate(calc(-50% + var(--drift)),50vh) rotate(8deg)}to{transform:translate(calc(-50% - var(--drift)),110vh) rotate(-8deg);opacity:.95}}.confetti{position:absolute;top:-8%;transform:translate(-50%,-50%) rotate(var(--rot));animation:confetti-fall linear infinite;opacity:.9;border-radius:2px;background:var(--confettiColor, #ffd1a7);box-shadow:0 0 0 0 var(--confettiColor),0 0 0 0 var(--confettiColor)}.confetti:nth-child(4n){--confettiColor: #ffd1a7}.confetti:nth-child(4n+1){--confettiColor: #c8f7d6}.confetti:nth-child(4n+2){--confettiColor: #cde4ff}.confetti:nth-child(4n+3){--confettiColor: #ffe1f0}@keyframes confetti-fall{0%{transform:translate(-50%,-50%) rotate(var(--rot));opacity:0}10%{opacity:.9}to{transform:translate(calc(-50% + var(--drift)),110vh) rotate(calc(var(--rot) + 180deg));opacity:.95}}@media(prefers-reduced-motion:reduce){.egg,.confetti{animation:none}}.trees-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.trees-layer{position:absolute;bottom:0;width:200%;display:flex}.trees-layer.far{bottom:56px;animation:trees-scroll-far 55s linear infinite}.trees-layer.near{bottom:0;animation:trees-scroll-near 38s linear infinite}.trees-svg{width:50%;height:180px;overflow:visible}.trees-layer.far .trees-svg{height:140px}.tree-far{fill:var(--trees-far, #050d18)}.tree-near{fill:var(--trees-near, #071c2f)}.tree-trunk{fill:color-mix(in oklab,#02060b 65%,var(--trees-near, #071c2f) 35%)}.ground-far{fill:color-mix(in oklab,var(--trees-far, #050d18) 70%,#000 30%);opacity:.9}.ground-near{fill:color-mix(in oklab,var(--trees-near, #071c2f) 75%,#000 25%);opacity:.96}@keyframes trees-scroll-far{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes trees-scroll-near{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.trees-layer.far,.trees-layer.near{animation:none}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:8px;background:#fff;box-shadow:0 4px 12px #00000026;font-size:.95rem;font-weight:500;pointer-events:auto;animation:toastSlideIn .3s ease-out;min-width:300px;max-width:400px}.toast.toast-success{background:#f0fdf4;border:1px solid #86efac;color:#166534}.toast.toast-error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.toast.toast-info{background:#f0f9ff;border:1px solid #7dd3fc;color:#0c4a6e}.toast.toast-warning{background:#fffbeb;border:1px solid #fcd34d;color:#92400e}.toast-content{display:flex;align-items:center;gap:8px}.toast-icon{font-size:1.1rem;flex-shrink:0}.toast-message{flex:1;line-height:1.4}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;padding:0;flex-shrink:0;opacity:.6;transition:opacity .2s ease;display:flex;align-items:center;justify-content:center}.toast-close:hover{opacity:1}@keyframes toastSlideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.toast.toast-exit{animation:toastSlideOut .3s ease-in forwards}@media(max-width:600px){.toast-container{top:10px;right:10px;left:10px}.toast{min-width:auto;max-width:none}}
