.welcome-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.welcome-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;padding:2rem;max-width:420px;width:100%;box-shadow:var(--shadow),inset 0 1px #ffffff08}.wizard-card{max-width:440px}.welcome-card h1{text-align:center;color:var(--text-primary);font-family:var(--font-heading, "Clash Display", sans-serif);margin:0 0 .25rem;font-size:var(--text-2xl, 1.75rem)}.welcome-subtitle{text-align:center;color:var(--text-secondary);margin:0 0 1.5rem;font-size:.9rem}.wizard-steps{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.25rem}.wizard-dot{width:8px;height:8px;border-radius:50%;background:var(--border-color);transition:background .3s,transform .3s}.wizard-dot.active{background:var(--blue-primary);transform:scale(1.3)}.step-auth,.step-path,.step-create,.step-join{animation:fadeSlideUp .25s ease-out}.auth-options{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.auth-option-card{background:var(--bg-hover);border:2px solid rgba(255,255,255,.08);border-radius:12px;padding:1.5rem;height:260px;justify-content:center;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s,transform .15s;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;color:inherit;font-family:inherit;font-size:inherit}.auth-option-card:hover,.auth-option-card:focus-visible{border-color:var(--blue-primary);background:var(--bg-hover);box-shadow:var(--shadow-glow-blue);transform:translateY(-2px)}.auth-option-card:disabled{opacity:.7;cursor:wait}.guest-option{cursor:default}.guest-option:hover,.guest-option:focus-visible{border-color:var(--border-color);background:var(--bg-secondary);box-shadow:none}.guest-option:focus-within{border-color:var(--blue-primary);box-shadow:var(--shadow-glow-blue)}.auth-option-icon{width:40px;height:40px;border-radius:10px;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;color:var(--text-primary);flex-shrink:0}.google-icon{background:var(--bg-primary)}.guest-icon{color:var(--text-secondary)}.auth-option-label strong{display:block;color:var(--text-primary);font-size:.95rem;margin-bottom:.2rem}.auth-option-label span{color:var(--text-secondary);font-size:.78rem;line-height:1.3}.auth-linking{font-size:.8rem;color:var(--blue-primary);font-weight:600}.guest-option input[type=text]{width:100%;margin-bottom:.5rem;box-sizing:border-box;text-align:center}.guest-option .btn-primary{width:100%}.step-heading{text-align:center;color:var(--text-secondary);margin:.25rem 0 1.25rem;font-size:1rem}.path-options{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.path-card{background:var(--bg-hover);border:2px solid rgba(255,255,255,.08);border-radius:12px;padding:1.5rem;height:260px;justify-content:center;cursor:pointer;transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;color:inherit;font-family:inherit;font-size:inherit}.path-card:hover,.path-card:focus-visible{border-color:var(--blue-primary);background:var(--bg-hover);transform:translateY(-2px);box-shadow:var(--shadow-glow-blue)}.path-icon{font-size:2.25rem;line-height:1;margin-bottom:.25rem}.path-card strong{color:var(--text-primary);font-size:.95rem}.path-card span{color:var(--text-secondary);font-size:.8rem;line-height:1.35}.welcome-section{margin-bottom:1rem}.welcome-section h2{color:var(--text-primary);font-size:1.1rem;margin:0 0 1rem;text-align:center}.welcome-card input[type=text]{width:100%;margin-bottom:.75rem;box-sizing:border-box}.welcome-card input[type=text]::placeholder{color:var(--text-secondary)}.date-row{display:flex;gap:.75rem;margin-bottom:.75rem}.date-field{flex:1}.date-field label,.quota-field label{display:block;color:var(--text-secondary);font-size:.75rem;margin-bottom:.25rem}.date-field input[type=date]{width:100%;box-sizing:border-box}.quota-row-create{display:flex;gap:.75rem;margin-bottom:.75rem}.quota-field{flex:1}.quota-field input[type=number]{width:100%;text-align:center;box-sizing:border-box}.btn-primary{width:100%;padding:.75rem;border:none;border-radius:8px;background:var(--blue-primary);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0;font-family:inherit}.btn-link:hover{color:var(--text-primary)}.wizard-back{display:block;margin:1rem auto 0;font-size:.85rem;text-decoration:none;color:var(--text-secondary);transition:color .2s}.wizard-back:hover{color:var(--text-primary)}.error-message{background:var(--danger-light);border:1px solid rgba(240,72,72,.3);color:var(--danger);padding:.75rem;border-radius:8px;font-size:.85rem;margin-bottom:1rem}.recover-section{margin-top:1.5rem;text-align:center}.recover-disclaimer{color:var(--text-secondary);font-size:.8rem;margin:.5rem 0 .75rem;text-align:left}.uid-display{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);font-size:.8rem}.uid-display code{background:var(--bg-primary);padding:.2rem .5rem;border-radius:4px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:var(--text-xs, .75rem);word-break:break-all}.divider{display:flex;align-items:center;margin:1.25rem 0}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.divider span{padding:0 1rem;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase}.name-section{margin-bottom:1.5rem}.name-section label{display:block;color:var(--text-primary);font-weight:600;margin-bottom:.5rem;font-size:.9rem}@media(max-width:480px){.welcome-card{padding:1.25rem}.welcome-card h1{font-size:var(--text-xl, 1.25rem)}.auth-option-card,.path-card{height:auto;min-height:140px;padding:1.25rem}.path-icon{font-size:1.75rem}.date-row,.quota-row-create{flex-direction:column;gap:.5rem}.btn-primary,.btn-secondary{min-height:48px;font-size:1rem}}.invite-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.invite-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;padding:2rem;max-width:420px;width:100%;box-shadow:var(--shadow),inset 0 1px #ffffff08;text-align:center}.invite-card h1{color:var(--text-primary);font-family:var(--font-heading, "Clash Display", sans-serif);margin:0 0 1rem;font-size:1.5rem}.invite-greeting{color:var(--text-secondary);font-size:1rem;margin:0 0 1rem}.invite-greeting strong{color:var(--text-primary)}.competition-details{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.competition-details h2{color:var(--text-primary);margin:0 0 .5rem;font-size:1.25rem}.detail-row{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem}.detail-sep{margin:0 .5rem;opacity:.5}.invite-card form{text-align:left}.invite-card label{display:block;color:var(--text-primary);font-weight:600;margin-bottom:.5rem;font-size:.9rem}.invite-card input[type=text]{width:100%;margin-bottom:.75rem;box-sizing:border-box}.invite-error{color:var(--text-secondary);margin-bottom:1.5rem}.already-member{margin:1rem 0}.already-member p{color:var(--success);font-weight:600;margin-bottom:1rem}.invite-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.invite-card .loading-spinner{width:32px;height:32px;border:3px solid var(--bg-secondary);border-top-color:var(--blue-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@media(max-width:480px){.invite-card{padding:1.25rem}.invite-card h1{font-size:1.25rem}.competition-details{padding:1rem}.competition-details h2{font-size:1.1rem}}.success-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.success-card{text-align:center}.success-icon{width:56px;height:56px;border-radius:50%;background:var(--success);color:#fff;font-size:1.75rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.success-card h1{color:var(--text-primary);font-family:var(--font-heading);margin:0 0 .25rem;font-size:1.5rem}.success-card h2{color:var(--text-secondary);margin:0 0 1.5rem;font-size:1rem;font-weight:400}.invite-code-display{background:var(--bg-hover);border:2px solid rgba(255,255,255,.08);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.5rem}.invite-code-display .section-label{display:block;letter-spacing:.05em;margin-bottom:.5rem}.code-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);letter-spacing:.15em;font-family:var(--font-mono)}.share-actions{display:flex;gap:.75rem;margin-bottom:1rem}.share-actions .btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-go{width:100%;padding:.75rem;border:2px solid var(--success);border-radius:8px;background:transparent;color:var(--success);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-go:hover{background:var(--success);color:#fff}@media(max-width:480px){.success-card{padding:1.25rem}.success-card h1{font-size:1.25rem}.code-value{font-size:var(--text-xl)}.share-actions{flex-direction:column}.btn-go{min-height:48px}}.competition-title{font-size:1.1rem;font-weight:700;font-family:var(--font-heading, "Clash Display", sans-serif);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-select{font-size:1rem;font-weight:700;font-family:var(--font-heading, "Clash Display", sans-serif);color:var(--text-primary);background:transparent;border:none;cursor:pointer;padding:.25rem 0;max-width:200px;overflow:hidden;text-overflow:ellipsis}.competition-select:focus{outline:none}.competition-select option{background:var(--card-bg);color:var(--text-primary)}@media(max-width:480px){.competition-title{font-size:.95rem}.competition-select{font-size:1rem;max-width:150px}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--warning, #f0a030);color:#000;text-align:center;padding:.4rem 1rem;font-size:.8rem;font-weight:600}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary)}.app-layout-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;padding-bottom:calc(.75rem + 20px);background:color-mix(in srgb,var(--card-bg) 70%,transparent);-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);-webkit-mask-image:linear-gradient(to top,transparent,black 20px);mask-image:linear-gradient(to top,transparent,black 20px);position:sticky;top:0;z-index:10}.header-left{flex:1;min-width:0}.header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0;text-decoration:none;cursor:pointer}.user-name{color:var(--text-secondary);font-size:.85rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--blue-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--text-sm, .8125rem);flex-shrink:0;transition:box-shadow .2s}.header-gear{font-size:14px;color:var(--text-secondary);transition:color .2s}.header-right:hover .user-avatar{box-shadow:0 0 0 2px var(--blue-primary)}.header-right:hover .user-name,.header-right:hover .header-gear{color:var(--text-primary)}.header-right-active .user-avatar{box-shadow:0 0 0 2px var(--blue-primary)}.header-right-active .user-name,.header-right-active .header-gear{color:var(--blue-primary)}.app-layout-main{flex:1;padding:1rem;padding-bottom:calc(60px + 1rem + env(safe-area-inset-bottom,0px));max-width:800px;margin:0 auto;width:100%;box-sizing:border-box;animation:fadeSlideUp .35s cubic-bezier(.16,1,.3,1) both}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:flex-end;background:color-mix(in srgb,var(--card-bg) 70%,transparent);-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);-webkit-mask-image:linear-gradient(to bottom,transparent,black 20px);mask-image:linear-gradient(to bottom,transparent,black 20px);padding-top:20px;padding-bottom:env(safe-area-inset-bottom,0px);z-index:10}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 0;text-decoration:none;color:var(--text-secondary);transition:color .2s;-webkit-tap-highlight-color:transparent}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--blue-primary)}.tab-icon{font-size:1.25rem;line-height:1;margin-bottom:.15rem}.tab-label{font-size:var(--text-xs, .75rem);font-weight:600;text-transform:uppercase;letter-spacing:.02em}@media(min-width:768px){.app-layout-header{padding:.75rem 2rem}.app-layout-main{padding:1.5rem 2rem;padding-bottom:calc(60px + 1.5rem)}.tab-icon{font-size:1.35rem}.tab-label{font-size:var(--text-xs, .75rem)}}@media(max-width:480px){.app-layout-header{padding:.5rem .75rem;gap:.5rem}.user-name{max-width:80px;font-size:.8rem}.user-avatar{width:34px;height:34px;font-size:.75rem}.header-right{gap:.5rem}.app-layout-main{padding:.75rem;padding-bottom:calc(60px + .75rem + env(safe-area-inset-bottom,0px))}.tab{padding:.6rem 0}}.calendar-container{background:var(--card-bg);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow),inset 0 1px #ffffff08}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.month-title{font-size:1.5rem;font-weight:600;font-family:var(--font-heading, "Clash Display", sans-serif);color:var(--text-primary);margin:0}.header-right{display:flex;align-items:center;gap:.5rem}.today-button{background:var(--primary-color, #4a90d9);color:#fff;border:none;padding:.375rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.today-button:hover{background:var(--primary-hover, #3a7bc8);transform:scale(1.02)}.today-button:active{transform:scale(.98)}.nav-button{background:var(--bg-secondary);border:none;width:40px;height:40px;border-radius:8px;font-size:1.25rem;cursor:pointer;transition:background-color .2s ease;color:var(--text-primary)}.nav-button:hover{background:var(--bg-hover)}.monthly-habits-section{margin-top:1rem;margin-bottom:1rem;padding:.75rem;background:var(--bg-secondary);border-radius:8px;text-align:center}.monthly-habits-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:.5rem}.monthly-habits-list{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.monthly-habit-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:6px;border:2px solid;background:var(--card-bg);font-size:.8rem}.monthly-habit-item.can-toggle{cursor:pointer}.monthly-habit-item.can-toggle:hover{opacity:.8}.monthly-habit-name{color:var(--text-primary)}.monthly-habit-indicator{width:22px;height:22px;border-radius:4px;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs, .75rem);font-weight:700;color:#fff}.daily-habits-legend{margin-bottom:1rem;padding:.75rem;background:var(--bg-secondary);border-radius:8px}.daily-habits-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:.5rem}.daily-habits-list{display:flex;flex-wrap:wrap;gap:.75rem}.daily-habit-legend-item{display:flex;align-items:center;gap:.375rem}.daily-habit-number{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff}.daily-habit-name{font-size:.8rem;color:var(--text-primary)}.weekly-calendar{display:flex;flex-direction:column;gap:2px}.week-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day-header{text-align:center;font-weight:600;font-size:.75rem;color:var(--text-secondary);padding:.5rem;text-transform:uppercase}.week-row{display:flex;flex-direction:column;gap:4px}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{min-height:70px;background:var(--bg-secondary);border-radius:6px;padding:.375rem;position:relative;display:flex;flex-direction:column}.calendar-day.other-month{opacity:.4}.calendar-day.today{outline:2px solid var(--user-color, var(--blue-primary));outline-offset:-2px}.day-number{font-size:.8rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.daily-habits-container{display:flex;flex-wrap:wrap;gap:2px;flex:1}.daily-habit-indicator{width:32px;height:32px;border-radius:4px;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs, .75rem);font-weight:700;transition:transform .15s ease,box-shadow .15s ease;position:relative}.daily-habit-indicator.just-completed{animation:habitComplete .4s cubic-bezier(.34,1.56,.64,1)}.daily-habit-indicator.just-completed:after{content:"";position:absolute;inset:0;border-radius:inherit;animation:completionRing .5s ease-out forwards;pointer-events:none}.daily-habit-indicator.completed{color:#fff}.daily-habit-indicator.pending,.daily-habit-indicator.missed{color:var(--text-secondary)}.daily-habit-indicator.missed{opacity:.5}.daily-habit-indicator.can-toggle{cursor:pointer}.daily-habit-indicator.can-toggle:hover{transform:scale(1.15);box-shadow:0 2px 4px #0003}.weekly-habits-section{display:flex;flex-direction:column;gap:2px;padding:0 2px}.weekly-habit-bar{display:flex;align-items:center;justify-content:space-between;padding:.375rem .5rem;min-height:36px;border-radius:4px;border:2px solid;font-size:var(--text-xs, .75rem);transition:opacity .15s ease}.weekly-habit-bar.completed{color:#fff}.weekly-habit-bar.pending,.weekly-habit-bar.missed{color:var(--text-secondary);background:var(--bg-secondary)!important}.weekly-habit-bar.missed{opacity:.5}.weekly-habit-bar.can-toggle{cursor:pointer}.weekly-habit-bar.can-toggle:hover{opacity:.8}.weekly-habit-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weekly-habit-check{font-weight:700;margin-left:.5rem}.calendar-legend{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.legend-section{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.legend-title{font-weight:600;color:var(--text-secondary);font-size:.875rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.legend-indicator{width:12px;height:12px;border-radius:3px}.legend-indicator.completed{background:var(--blue-primary)}.legend-indicator.missed{background:var(--blue-light);opacity:.5}.legend-indicator.pending{background:var(--blue-light)}@media(max-width:768px){.calendar-container{padding:1rem}.calendar-day{min-height:55px;padding:.25rem}.day-number{font-size:.7rem}.daily-habit-indicator{width:28px;height:28px;font-size:var(--text-xs, .75rem)}.weekly-habit-bar{font-size:var(--text-xs, .75rem);padding:.25rem .375rem;min-height:32px}}@media(max-width:480px){.calendar-container{padding:.75rem}.calendar-header{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.month-title{font-size:1.1rem;order:-1;width:100%;text-align:center;margin-bottom:0}.nav-button{width:44px;height:44px}.today-button{padding:.5rem 1rem;min-height:44px}.calendar-day{min-height:48px;padding:.2rem}.daily-habits-container{gap:3px}.daily-habit-indicator{width:26px;height:26px;font-size:.65rem;border-width:1.5px}.weekly-habit-bar{min-height:44px;padding:.375rem .5rem}.monthly-habit-item{padding:.5rem .75rem;min-height:44px}.daily-habits-legend{padding:.5rem}.daily-habits-list{gap:.5rem}.legend-section{gap:.6rem}}.calendar-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.daily-habit-indicator svg{width:60%;height:60%}.weekly-habit-label,.monthly-habit-label{display:inline-flex;align-items:center;gap:.5rem;min-width:0;flex:1}.weekly-habit-icon,.monthly-habit-icon{flex-shrink:0}.scoreboard-container{display:flex;flex-direction:column;gap:1.25rem}.prize-card{display:flex;gap:1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1rem;box-shadow:var(--shadow);overflow:hidden}.prize-image-wrap{flex-shrink:0;width:90px;height:90px;border-radius:10px;overflow:hidden;background:var(--bg-secondary)}.prize-image{width:100%;height:100%;object-fit:cover;display:block}.prize-info{display:flex;flex-direction:column;gap:.35rem;min-width:0}.prize-label{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);display:flex;align-items:center;gap:.4rem}.prize-icon{font-size:.75rem}.prize-description{color:var(--text-primary);font-size:var(--text-base);margin:0;line-height:1.4}.progress-section{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1rem;box-shadow:var(--shadow)}.progress-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.progress-clock-icon{color:var(--text-secondary);font-size:.8rem}.progress-title{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.weeks-left{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--blue-primary)}.progress-bar-track{height:10px;background:var(--bg-secondary);border-radius:5px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--blue-primary),var(--green-primary));transition:width .6s ease;min-width:0}.progress-dates{display:flex;justify-content:space-between;margin-top:.4rem;font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-mono);font-weight:500}.rankings-section{display:flex;flex-direction:column;gap:.6rem}.section-heading{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:.25rem 0 0}.ranking-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:.85rem 1rem 1rem;box-shadow:var(--shadow),inset 0 1px #ffffff05;display:flex;flex-direction:column;gap:.6rem;animation:cardReveal .35s ease both}@keyframes cardReveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ranking-card.current-user{background:var(--blue-glow);border-color:var(--blue-primary);box-shadow:var(--shadow-glow-blue),var(--shadow)}.ranking-row-top{display:flex;align-items:center;gap:.7rem;min-width:0}.rank-badge{font-family:var(--font-heading);font-size:var(--text-base);font-weight:700;width:2.6rem;height:2.6rem;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--bg-secondary);color:var(--text-secondary);flex-shrink:0}.rank-gold{background:#f0af5038;color:var(--accent)}.rank-silver{background:#b4bed22e;color:#b4bed2}.rank-bronze{background:#c88c502e;color:#c88c50}.ranking-name{flex:1;font-family:var(--font-body);font-size:var(--text-md);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ranking-card .admin-badge{display:inline-block;margin-left:.4rem;padding:.15rem .6rem;border-radius:999px;background:var(--blue-primary);color:#fff;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.points-block{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.points-top{display:flex;align-items:baseline;gap:.5rem}.points-total{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--text-primary);line-height:1}.points-bottom{line-height:1}.points-pct{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);line-height:1}.score-bar-track{height:18px;background:var(--bg-secondary);border-radius:9px;border:2px solid var(--border-color);overflow:hidden;display:flex;position:relative}.score-bar-segment{height:100%;transition:width .5s ease}.segment-daily{background:#e05252}.segment-weekly{background:#4d8df7}.segment-monthly{background:#34d474}.score-bar-segment:first-child{border-radius:7px 0 0 7px}.score-bar-segment:last-child{border-radius:0 7px 7px 0}.score-bar-segment:only-child{border-radius:7px}.category-breakdown{font-family:var(--font-mono);font-size:.65rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.cat-item{white-space:nowrap}.cat-daily{color:#e05252}.cat-weekly{color:#4d8df7}.cat-monthly{color:#34d474}.ranking-meta{display:flex;align-items:center;justify-content:flex-end}.team-expand-btn{display:flex;align-items:center;gap:.35rem;background:none;border:none;padding:.2rem .4rem;cursor:pointer;border-radius:6px;transition:background .15s;color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-body)}.team-expand-btn:hover{background:var(--bg-hover)}.team-expand-btn:focus-visible{outline:2px solid var(--blue-primary);outline-offset:2px}.member-count{font-family:var(--font-mono);font-weight:500}.expand-icon{font-size:.65rem}.team-members-list{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .6rem;background:var(--bg-secondary);border-radius:8px;animation:cardReveal .2s ease both}.team-member-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem .4rem;border-radius:6px;font-size:var(--text-sm)}.team-member-row.current-user{background:var(--blue-glow)}.member-name{color:var(--text-primary);font-weight:500}.member-pts{font-family:var(--font-mono);font-weight:600;color:var(--text-secondary);font-size:var(--text-xs)}.invite-code-inline{display:flex;align-items:center;justify-content:center;gap:.75rem}.invite-code-inline .code{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;letter-spacing:.1em;color:var(--text-primary)}.invite-code-inline .copy-btn{padding:.4rem .75rem;border:1px solid var(--blue-primary);border-radius:6px;background:transparent;color:var(--blue-primary);font-size:.8rem;cursor:pointer;transition:background .15s}.invite-code-inline .copy-btn:hover{background:var(--blue-glow)}@media(max-width:480px){.ranking-card{padding:.75rem}.ranking-row-top{flex-wrap:wrap;gap:.5rem}.rank-badge{width:2.2rem;height:2.2rem;font-size:var(--text-sm);border-radius:8px}.ranking-name{font-size:var(--text-sm)}.points-block{width:100%;justify-content:flex-end}.points-pct{font-size:var(--text-lg, 1.125rem)}.prize-card{flex-direction:column;align-items:center;text-align:center}.prize-image-wrap{width:100%;height:140px}.team-expand-btn{padding:.5rem .75rem;min-height:44px}.team-member-row{padding:.5rem}.category-breakdown{font-size:.6rem}.score-bar-track{height:14px}.ranking-meta{justify-content:flex-end}}.feedback-section{background:var(--card-bg);border:1px solid var(--border-color);border-top:2px solid var(--blue-primary);border-radius:12px;padding:1.25rem}.feedback-header{margin-bottom:1rem}.feedback-header-icon{color:var(--blue-primary);margin-right:.4rem}.feedback-header h3{display:inline;font-size:var(--text-lg, 1.125rem);margin:0}.feedback-subtitle{color:var(--text-secondary);font-size:.8rem;margin:.25rem 0 0}.feedback-form{display:flex;flex-direction:column;gap:.75rem}.feedback-form textarea{width:100%;min-height:80px;resize:vertical;box-sizing:border-box}.feedback-previews{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.feedback-preview-item{position:relative;height:80px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color);background:var(--bg-secondary, #161b2e)}.feedback-preview-item img,.feedback-preview-item video{width:100%;height:100%;object-fit:cover;display:block}.feedback-preview-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:#000000b3;color:#fff;font-size:.65rem;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1}.feedback-preview-remove:hover{background:var(--danger)}.feedback-preview-type{position:absolute;bottom:4px;left:4px;font-size:.6rem;color:#fffc;background:#00000080;padding:2px 5px;border-radius:4px}.feedback-progress-bar{position:absolute;bottom:0;left:0;height:3px;background:var(--blue-primary);width:var(--progress, 0%);transition:width .3s ease}.feedback-actions{display:flex;justify-content:space-between;align-items:center}.feedback-attach-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.feedback-attach-btn:hover:not(.disabled){color:var(--blue-primary);border-color:var(--blue-primary)}.feedback-attach-btn.disabled{opacity:.4;cursor:not-allowed}.feedback-submit-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;border:none;border-radius:6px;background:var(--blue-primary);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer}.feedback-submit-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-error{color:var(--danger);font-size:.8rem;margin:0}.feedback-success{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 0;animation:fadeSlideUp .3s ease}.feedback-success-icon{width:40px;height:40px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.feedback-success p{color:var(--text-primary);font-weight:500;margin:0}.feedback-reset-btn{background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--blue-primary);padding:.4rem .75rem;font-size:.8rem;cursor:pointer}.feedback-reset-btn:hover{border-color:var(--blue-primary)}@media(max-width:480px){.feedback-section{padding:1rem}.feedback-actions{flex-direction:column;gap:.5rem}.feedback-submit-btn{width:100%;justify-content:center;min-height:44px}.feedback-attach-btn{min-height:44px}.feedback-previews{grid-template-columns:repeat(3,1fr);gap:.35rem}.feedback-preview-item{height:64px}.feedback-preview-remove{width:28px;height:28px;font-size:.75rem}}.icon-picker-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.icon-picker-modal{background:var(--card-bg);border-radius:12px;padding:1.25rem;box-shadow:var(--shadow);width:100%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;gap:.75rem}.icon-picker-header{display:flex;align-items:center;justify-content:space-between}.icon-picker-header h2{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.icon-picker-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;font-size:1rem}.icon-picker-search-row{display:flex;align-items:center;gap:.5rem}.icon-picker-search{flex:1;font-size:.95rem}.icon-picker-shuffle{background:var(--bg-secondary);color:var(--text-primary);border:none;padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:1rem}.icon-picker-shuffle:hover{background:var(--bg-hover)}.icon-picker-error{font-size:.8rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.5rem .75rem;border-radius:6px}.icon-picker-section-title{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.icon-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.icon-picker-grid-scroll{overflow-y:auto;flex:1;min-height:0}.icon-picker-cell{background:var(--bg-secondary);border:2px solid transparent;border-radius:8px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;color:var(--text-primary);transition:transform .1s ease,background .15s ease}.icon-picker-cell:hover{background:var(--bg-hover);transform:scale(1.05)}.icon-picker-cell.selected{background:var(--bg-secondary)}.icon-picker-sentinel{height:1px;width:100%}@media(max-width:480px){.icon-picker-backdrop{padding:0}.icon-picker-modal{max-width:none;max-height:100vh;height:100vh;border-radius:0}.icon-picker-grid{grid-template-columns:repeat(4,1fr)}}.habits-tab{display:flex;flex-direction:column;gap:1rem}.quota-summary{display:flex;gap:.75rem;flex-wrap:wrap}.quota-badge{padding:.3rem .75rem;border:1px solid var(--border-color);border-radius:20px;font-size:.8rem;color:var(--text-secondary);background:var(--card-bg)}.create-habit-form{display:flex;flex-direction:column;gap:.5rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1rem}.create-habit-form .form-row{display:flex;gap:.5rem}.create-habit-form input{width:100%;box-sizing:border-box}.create-habit-form input:focus{border-color:var(--blue-primary)}.create-habit-form select{padding:.6rem}.create-habit-form button{padding:.6rem 1.25rem;border:none;border-radius:6px;background:var(--blue-primary);color:#fff;font-weight:600;cursor:pointer}.create-habit-form button:disabled{opacity:.5;cursor:not-allowed}.quota-warning{color:var(--warning);font-size:.85rem;margin:0}.no-habits{text-align:center;color:var(--text-secondary);padding:2rem 0}.habit-group{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1rem;box-shadow:var(--shadow),inset 0 1px #ffffff08}.habit-group-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .75rem}.habit-group-header h3{color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;margin:0}.habit-group-toggle-btn{background:transparent;border:1px solid transparent;border-radius:6px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);flex-shrink:0}.habit-group-toggle-btn:hover{color:var(--blue-primary);border-color:var(--blue-primary)}.habit-item{padding:.5rem 0;border-bottom:1px solid var(--border-color)}.habit-item:last-child{border-bottom:none}.habit-display-row{display:flex;align-items:center;gap:.5rem}.habit-display-row .habit-name{flex:1;color:var(--text-primary);font-size:.9rem}.edit-btn,.delete-btn,.cancel-btn,.save-btn,.delete-confirm-btn{padding:.4rem .75rem;min-height:44px;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-secondary);font-size:var(--text-xs, .75rem);cursor:pointer}.edit-btn:hover{color:var(--blue-primary);border-color:var(--blue-primary)}.delete-btn,.delete-confirm-btn{color:var(--danger);border-color:var(--danger)}.save-btn{color:var(--success);border-color:var(--success)}.habit-edit-row{display:flex;gap:.5rem;align-items:center}.habit-edit-row input{flex:1}.habit-edit-row select{padding:.4rem}.habits-tab-footer{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.bmc-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.5rem;background:#fd0;color:#000;border-radius:8px;font-family:Cookie,cursive;font-size:1.25rem;text-decoration:none;align-self:center;transition:transform .15s ease,box-shadow .15s ease}.bmc-button:hover{transform:translateY(-2px);box-shadow:0 4px 14px #ffdd0059}.bmc-button:active{transform:scale(.96) translateY(1px);box-shadow:none}@media(max-width:480px){.habit-edit-row{flex-wrap:wrap}.habit-edit-row input{width:100%;flex:unset}.habit-edit-row select{flex:1}.habit-display-row{flex-wrap:wrap;gap:.35rem}.habit-display-row .habit-name{flex-basis:100%}.edit-btn,.delete-btn,.cancel-btn,.save-btn,.delete-confirm-btn{padding:.5rem .85rem}.create-habit-form .form-row{flex-direction:column}.create-habit-form .form-row select,.create-habit-form .form-row button{width:100%}.create-habit-form button{min-height:44px}}.create-habit-name-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.create-habit-name-row input{flex:1}.habit-icon-preview{background:var(--bg-secondary);border:2px solid;border-radius:8px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);font-size:1rem;flex-shrink:0}.habit-icon-preview:hover{background:var(--bg-hover)}.habit-icon-shuffle{background:var(--bg-secondary);border:none;border-radius:8px;width:44px;height:44px;cursor:pointer;color:var(--text-primary);font-size:1.1rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;line-height:1}.habit-icon-shuffle:hover{background:var(--bg-hover)}.habit-icon-row-button{background:var(--bg-secondary);border:2px solid;border-radius:6px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);flex-shrink:0;margin-right:.5rem}.habit-icon-row-button:hover{background:var(--bg-hover)}.settings-tab{display:flex;flex-direction:column;gap:1rem}.settings-section{padding:.875rem}.settings-section h2{color:var(--text-primary);font-size:1rem;font-family:var(--font-heading, "Clash Display", sans-serif);margin:0 0 .6rem;padding-bottom:.35rem;border-bottom:1px solid var(--border-color)}.settings-heading{color:var(--text-primary);font-size:1rem;font-family:var(--font-heading, "Clash Display", sans-serif);margin:0 0 -.25rem}.setting-row{margin-bottom:.7rem}.setting-row:last-child{margin-bottom:0}.setting-row label{display:block;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}.setting-row span{color:var(--text-primary);font-size:.9rem}.input-with-action{display:flex;gap:.5rem}.input-with-action input{flex:1}.input-with-action button{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem;cursor:pointer}.input-with-action button:disabled{opacity:.5;cursor:not-allowed}.uid-row{display:flex;align-items:center;gap:.5rem}.uid-row code{background:var(--bg-primary);padding:.35rem .6rem;border-radius:4px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:var(--text-xs, .75rem);color:var(--text-secondary);word-break:break-all;flex:1}.uid-row button{padding:.35rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;cursor:pointer;white-space:nowrap}.setting-hint{color:var(--text-secondary);font-size:.8rem;margin:.25rem 0 0}.setting-success{color:var(--success);font-size:.9rem;margin:0}.setting-error{color:var(--danger);font-size:.85rem;margin:.25rem 0 0}.link-google-btn{padding:.5rem 1rem;border:1px solid var(--blue-primary);border-radius:8px;background:transparent;color:var(--blue-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.link-google-btn:hover{background:var(--blue-primary);color:#fff}.profile-cards{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.7rem}.profile-card{background:var(--bg-hover, var(--bg-secondary));border:2px solid rgba(255,255,255,.08);border-radius:12px;padding:1rem;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s,transform .15s;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;color:inherit;font-family:inherit;font-size:inherit;width:100%;box-sizing:border-box}.profile-card:hover,.profile-card:focus-visible{border-color:var(--blue-primary);box-shadow:var(--shadow-glow-blue, 0 0 16px rgba(77, 141, 247, .2));transform:translateY(-2px)}.profile-card:disabled{cursor:default;opacity:1}.profile-card:disabled:hover{border-color:#ffffff14;box-shadow:none;transform:none}.profile-card label{display:block;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:0;pointer-events:none}.profile-card-uid{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:var(--text-xs, .75rem);color:var(--text-primary);word-break:break-all;line-height:1.4}.profile-card-action{color:var(--blue-primary);font-weight:600;font-size:.9rem}.profile-card .setting-hint{margin:0;font-size:.75rem}.profile-card .setting-success{font-size:.85rem}.profile-card .setting-error{font-size:.75rem}.comp-card{background:var(--bg-hover, var(--bg-secondary));border:2px solid rgba(255,255,255,.08);border-radius:12px;padding:calc(.875rem - 2px);box-sizing:border-box;width:100%}.comp-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.15rem;gap:.5rem}.comp-card-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.comp-card-name{font-size:1.1rem;font-weight:600;color:var(--text-primary);font-family:var(--font-heading, "Clash Display", sans-serif)}.comp-card-name-input{font-size:1.1rem;font-weight:600;flex:1;min-width:0}.comp-card-caption{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:.75rem}.comp-card-edit{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;font-size:.85rem;transition:color .2s;line-height:1}.comp-card-edit:hover{color:var(--text-primary)}.comp-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.comp-card-field{display:flex;flex-direction:column;gap:.25rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:.5rem .65rem;text-align:left;color:inherit;font-family:inherit;font-size:inherit}.comp-card-field label{display:block;color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;pointer-events:none}.comp-card-field span{color:var(--text-primary);font-size:.9rem}.comp-card-field code{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:var(--text-xs, .75rem);color:var(--text-primary)}.comp-card-field-hint{font-size:.65rem;color:var(--text-secondary)}.comp-card-field-clickable{cursor:pointer;transition:border-color .2s,box-shadow .2s}.comp-card-field-clickable:hover{border-color:var(--blue-primary);box-shadow:0 0 8px #4d8df726}.comp-card-section{margin-bottom:.75rem}.comp-card-section:last-child{margin-bottom:0}.comp-card-section>label{display:inline-block;color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;background:var(--bg-primary);padding:.15rem .5rem;border-radius:4px;border:1px solid var(--border-color)}.comp-card-section>span{color:var(--text-primary);font-size:.9rem}.comp-card-section>input[type=text]{width:100%;box-sizing:border-box}.comp-card-quotas{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;width:100%}.comp-quota-item{text-align:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:.5rem .25rem}.comp-quota-value{display:block;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.comp-quota-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.comp-quota-item input[type=number]{width:100%;text-align:center;font-size:1rem;font-weight:600;padding:.2rem;box-sizing:border-box}.comp-save-btn{width:100%;padding:.5rem 1rem;border:1px solid var(--blue-primary);border-radius:6px;background:var(--blue-primary);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;margin-bottom:.75rem;transition:opacity .2s}.comp-save-btn:hover{opacity:.9}.comp-card-players{padding-top:.75rem;border-top:1px solid var(--border-color)}.players-list{display:flex;flex-direction:column;gap:.35rem}.player-admin-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--border-color)}.player-admin-row:last-child{border-bottom:none}.player-info{color:var(--text-primary);font-size:.9rem}.admin-badge{display:inline-block;margin-left:.5rem;padding:.15rem .6rem;border-radius:999px;background:var(--blue-primary);color:#fff;font-size:var(--text-xs, .75rem);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.inactive-badge{display:inline-block;margin-left:.5rem;padding:.1rem .4rem;border-radius:4px;background:var(--text-secondary);color:#fff;font-size:var(--text-xs, .75rem);text-transform:uppercase}.player-uid{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:var(--text-xs, .75rem);color:var(--text-secondary);background:var(--bg-primary);padding:.2rem .4rem;border-radius:3px}.sign-out-btn{width:100%;padding:.6rem;border:1px solid var(--danger);border-radius:8px;background:transparent;color:var(--danger);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.sign-out-btn:hover{background:var(--danger);color:#fff}.color-card{background:var(--bg-hover, var(--bg-secondary));border:2px solid rgba(255,255,255,.08);border-radius:12px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.color-card label{display:block;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;align-self:flex-start}.color-swatches{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:center;width:100%}.color-swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:center}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:var(--text-primary);transform:scale(1.1)}.color-swatch-custom{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-secondary);position:relative;box-sizing:border-box;overflow:hidden}.color-swatch-custom svg{display:block;width:14px;height:14px}.color-swatch-custom:hover{color:var(--text-primary)}.color-swatch-custom input[type=color]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}@media(max-width:420px){.profile-cards,.comp-card-grid{grid-template-columns:1fr}}@media(max-width:480px){.settings-section{padding:.65rem}.comp-card{padding:calc(.65rem - 2px)}.profile-card{padding:.75rem}.uid-row{flex-wrap:wrap}.uid-row code{min-width:0;width:100%}.input-with-action{flex-direction:column}.input-with-action button{width:100%;min-height:44px}.player-admin-row{flex-wrap:wrap;gap:.25rem;padding:.5rem 0}.link-google-btn{width:100%;min-height:44px;text-align:center}.sign-out-btn{min-height:44px}.color-swatch{width:36px;height:36px}}:root{--font-heading: "Clash Display", sans-serif;--font-body: "General Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--blue-primary: #4d8df7;--blue-dark: #3570d4;--blue-darker: #2456b0;--blue-light: #1a2a4d;--blue-glow: rgba(77, 141, 247, .15);--green-primary: #34d474;--green-dark: #24b85e;--green-darker: #1a9449;--green-light: #152e20;--green-glow: rgba(52, 212, 116, .15);--accent: #f0a030;--accent-dark: #d08820;--accent-glow: rgba(240, 160, 48, .2);--bg-primary: #0c0f1a;--bg-secondary: #161b2e;--bg-hover: #1e2540;--card-bg: #141828;--text-primary: #eef0f6;--text-secondary: #7b839e;--border-color: #252d45;--shadow: 0 4px 12px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);--shadow-glow-blue: 0 0 16px rgba(77, 141, 247, .2);--shadow-glow-green: 0 0 20px rgba(52, 212, 116, .15);--success: #34d474;--success-dark: #24b85e;--warning: #f0a030;--danger: #f04848;--danger-light: rgba(240, 72, 72, .15)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:var(--font-body, "General Sans", sans-serif);line-height:1.5;background:radial-gradient(ellipse at 20% 0%,var(--blue-glow, rgba(77, 141, 247, .15)) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,var(--green-glow, rgba(52, 212, 116, .15)) 0%,transparent 50%),var(--bg-primary, #0c0f1a);background-attachment:fixed;color:var(--text-primary, #eef0f6)}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.2;font-family:var(--font-heading, "Clash Display", sans-serif)}p{margin-top:0}input,select,button{font-family:inherit;font-size:inherit}button{cursor:pointer}input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],select,textarea{padding:.6rem .75rem;border:2px solid var(--border-color, #252d45);border-radius:8px;background:var(--bg-primary, #0c0f1a);color:var(--text-primary, #eef0f6);font-size:1rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input[type=text]:focus,input[type=number]:focus,input[type=date]:focus,input[type=email]:focus,input[type=password]:focus,select:focus,textarea:focus{border-color:var(--blue-primary, #4d8df7);box-shadow:0 0 0 3px #3b82f640}input::placeholder,textarea::placeholder{color:var(--text-secondary, #7b839e)}button{transition:all .15s ease}button:active:not(:disabled){transform:scale(.96) translateY(1px);box-shadow:none;transition:transform .05s ease,box-shadow .05s ease}button:disabled{opacity:.5;cursor:not-allowed}.btn{padding:.75rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s}.btn-primary{background:var(--blue-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-dark);transform:translateY(-2px);box-shadow:var(--shadow-glow-blue)}.btn-secondary{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-secondary)}.btn-danger{border:1px solid var(--danger);background:transparent;color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-sm{padding:.4rem .75rem;font-size:.8rem;border-radius:6px}.btn-icon{display:inline-flex;align-items:center;gap:.5rem}.card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1rem;box-shadow:var(--shadow),inset 0 1px #ffffff08}.card-lg{border-radius:16px;padding:2rem;max-width:420px;width:100%}.section-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--bg-primary, #0c0f1a);color:var(--text-primary, #eef0f6)}.app-loading .loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--blue-primary, #4d8df7);border-radius:50%;animation:spin .8s linear infinite}.app-loading p{color:var(--text-secondary, #7b839e);font-size:var(--text-base, .9375rem)}.app-loading-error{color:var(--danger, #f04848)!important;text-align:center;max-width:360px;padding:0 1rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes habitComplete{0%{transform:scale(1)}30%{transform:scale(1.3)}50%{transform:scale(.9)}70%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes completionRing{0%{box-shadow:0 0 0 0 var(--user-color, var(--blue-primary, #4d8df7));opacity:1}to{box-shadow:0 0 0 12px var(--user-color, var(--blue-primary, #4d8df7));opacity:0}}@keyframes scoreChange{0%{transform:scale(1)}50%{transform:scale(1.12);color:var(--accent, #f0a030)}to{transform:scale(1)}}:focus-visible{outline:2px solid var(--blue-primary, #4d8df7);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.skeleton{background:linear-gradient(90deg,var(--bg-secondary, #161b2e) 25%,var(--bg-hover, #1e2540) 50%,var(--bg-secondary, #161b2e) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.skeleton-text{height:1rem;margin-bottom:.5rem}.skeleton-text.short{width:40%}.skeleton-text.medium{width:65%}.skeleton-circle{border-radius:50%}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1.5rem;gap:.75rem}.empty-state-icon{font-size:3rem;line-height:1;margin-bottom:.5rem;opacity:.6}.empty-state h3{color:var(--text-primary);font-family:var(--font-heading, "Clash Display", sans-serif);font-size:var(--text-lg, 1.125rem);margin:0}.empty-state p{color:var(--text-secondary);font-size:var(--text-base, .9375rem);max-width:280px;margin:0}
