@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-primary: #f5f5f7;--bg-secondary: #e8e8ed;--bg-card: #ffffff;--text-primary: #1d1d1f;--text-secondary:#6e6e73;--accent: #0071e3;--accent-hover: #0077ed;--accent-subtle: rgba(0, 113, 227, .08);--border: rgba(0, 0, 0, .1);--input-bg: #f5f5f7;--shadow: 0 2px 20px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .04);--radius: 8px;--danger: #ff3b30;--success: #34c759}:root[data-theme=dark]{--bg-primary: #000000;--bg-secondary: #1c1c1e;--bg-card: #1c1c1e;--text-primary: #f5f5f7;--text-secondary:#98989d;--accent: #0a84ff;--accent-hover: #409cff;--accent-subtle: rgba(10, 132, 255, .12);--border: rgba(255, 255, 255, .08);--input-bg: rgba(255, 255, 255, .06);--shadow: 0 8px 32px rgba(0, 0, 0, .6), 0 2px 8px rgba(0, 0, 0, .4);--danger: #ff453a;--success: #32d74b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .2s ease,color .2s ease;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:.95rem;border:none;border-radius:var(--radius);transition:background-color .15s ease,opacity .15s ease}button:disabled{opacity:.5;cursor:not-allowed}input{font-family:inherit;font-size:.95rem;border-radius:var(--radius);border:1px solid var(--border);background-color:var(--input-bg);color:var(--text-primary);padding:12px 14px;width:100%;outline:none;transition:border-color .2s ease,box-shadow .2s ease}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}input::placeholder{color:var(--text-secondary)}@keyframes auth-fade-up{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes auth-btn-pulse{0%,to{opacity:.55}50%{opacity:.35}}.auth-form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:22px;padding:44px 40px;width:100%;max-width:400px;box-shadow:var(--shadow);animation:auth-fade-up .45s cubic-bezier(.16,1,.3,1) both}.auth-brand-mark{display:flex;justify-content:center;margin-bottom:16px;animation:auth-fade-up .45s cubic-bezier(.16,1,.3,1) .05s both}.auth-form-title{font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1.1;text-align:center;margin-bottom:6px;background:linear-gradient(135deg,#1d1d1f,#3d3d3f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:auth-fade-up .45s cubic-bezier(.16,1,.3,1) .08s both}:root[data-theme=dark] .auth-form-title{background:linear-gradient(135deg,#f5f5f7,#a1a1a6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-form-subtitle{text-align:center;color:var(--text-secondary);font-size:.9375rem;font-weight:400;letter-spacing:-.01em;margin-bottom:32px;animation:auth-fade-up .45s cubic-bezier(.16,1,.3,1) .11s both}.auth-form{display:flex;flex-direction:column;gap:16px;animation:auth-fade-up .45s cubic-bezier(.16,1,.3,1) .14s both}.auth-field{display:flex;flex-direction:column;gap:6px;animation:auth-fade-up .3s cubic-bezier(.16,1,.3,1) both}.auth-field label{font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--text-secondary)}.auth-field input{border-radius:10px;padding:13px 14px;font-size:.9375rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);background:var(--bg-card)}.auth-field input::placeholder{opacity:.6}:root[data-theme=dark] .auth-field input{border-color:#ffffff1f}:root[data-theme=dark] .auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a84ff33}.auth-error{color:var(--danger);font-size:.875rem;padding:8px 12px;background:color-mix(in srgb,var(--danger) 10%,transparent);border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent)}.auth-submit-btn{background:var(--accent);color:#fff;height:44px;padding:0 20px;font-size:.9375rem;font-weight:500;letter-spacing:-.01em;border-radius:980px;margin-top:4px;box-shadow:none;transition:background .2s ease,transform .1s ease}.auth-submit-btn:hover:not(:disabled){background:var(--accent-hover)}.auth-submit-btn:active:not(:disabled){transform:scale(.985)}.auth-submit-btn:disabled{opacity:.55;animation:auth-btn-pulse 1.4s ease-in-out infinite}.auth-switch{text-align:center;margin-top:22px;font-size:.875rem;color:var(--text-secondary)}.auth-switch-btn{background:none;border:none;color:var(--accent);font-size:.875rem;font-weight:500;letter-spacing:-.01em;padding:0;border-radius:0;text-decoration:none}.auth-switch-btn:hover{color:var(--accent-hover);text-decoration:underline}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-secondary);font-size:.8125rem;letter-spacing:.02em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-google-btn,.auth-apple-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:44px;padding:0 20px;border-radius:980px;font-size:.9375rem;font-weight:500;letter-spacing:-.01em;margin-bottom:8px;transition:background .2s ease,border-color .2s ease,transform .1s ease}.auth-google-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)}.auth-google-btn:hover:not(:disabled){background:var(--bg-secondary);border-color:#0000002e}.auth-google-btn:active:not(:disabled){transform:scale(.985)}:root[data-theme=dark] .auth-google-btn{background:#ffffff14;border-color:#ffffff1f}:root[data-theme=dark] .auth-google-btn:hover:not(:disabled){background:#ffffff21;border-color:#ffffff1f}.auth-apple-btn{background:#1d1d1f;border:none;color:#fff;margin-bottom:0}.auth-apple-btn:hover:not(:disabled){background:#3d3d3f}.auth-apple-btn:active:not(:disabled){transform:scale(.985)}:root[data-theme=dark] .auth-apple-btn{background:#f5f5f7;color:#1d1d1f}:root[data-theme=dark] .auth-apple-btn:hover:not(:disabled){background:#e0e0e5}.auth-provider-icon{width:18px;height:18px;flex-shrink:0}@media(prefers-reduced-motion:reduce){.auth-form-card,.auth-brand-mark,.auth-form-title,.auth-form-subtitle,.auth-form,.auth-field,.auth-submit-btn:disabled{animation:none;transition-duration:.01ms}}.auth-page{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px;min-height:100vh;background-color:var(--bg-primary)}:root[data-theme=dark] .auth-page{background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(10,132,255,.07) 0%,transparent 70%),#000}.settings-panel-wrap{position:relative}.settings-panel-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);width:36px;height:36px;font-size:1rem;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,border-color .15s}.settings-panel-btn:hover{background:var(--accent-subtle);border-color:var(--accent)}.settings-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199}.settings-panel-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:300px;box-shadow:0 8px 32px #00000029,0 2px 8px #00000014;overflow:hidden}@media(max-width:480px){.settings-panel-dropdown{position:fixed;top:60px;left:50%;right:auto;transform:translate(-50%);width:calc(100vw - 32px);max-width:340px;max-height:82vh;overflow-y:auto}}.settings-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:1}.settings-panel-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.settings-panel-close-btn{background:none;border:none;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--text-secondary);padding:0;transition:background .15s,color .15s}.settings-panel-close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.settings-panel-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:12px}.settings-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);margin:0}.settings-theme-row{display:flex;align-items:center;justify-content:space-between}.settings-theme-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:5px 12px;font-size:.82rem;font-weight:500;color:var(--text-primary);transition:background .15s,border-color .15s}.settings-theme-btn:hover{background:var(--accent-subtle);border-color:var(--accent)}.settings-avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.settings-avatar-option{background:none;border:2px solid transparent;border-radius:8px;font-size:1.4rem;padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;aspect-ratio:1;transition:background .12s,border-color .12s,transform .1s}.settings-avatar-option:hover{background:var(--bg-secondary);transform:scale(1.1)}.settings-avatar-option--active{border-color:var(--accent);background:var(--accent-subtle)}.settings-field{display:flex;flex-direction:column;gap:5px}.settings-field-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);margin:0}.settings-input{padding:7px 10px;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--input-bg);color:var(--text-primary);outline:none;width:100%;box-sizing:border-box}.settings-input:focus{border-color:var(--accent)}.settings-input::-webkit-outer-spin-button,.settings-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-input[type=number]{-moz-appearance:textfield}.settings-save-btn{background:linear-gradient(135deg,var(--accent),#4f46e5);color:#fff;border:none;border-radius:var(--radius);padding:9px 16px;font-size:.875rem;font-weight:600;box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 35%,transparent);transition:opacity .15s;width:100%}.settings-save-btn:hover:not(:disabled){opacity:.88}.settings-save-btn:disabled{opacity:1}.settings-save-btn--saved{background:linear-gradient(135deg,#22c55e,#16a34a)}.settings-tabs{display:flex;border-bottom:1px solid var(--border);margin:-2px -16px 4px;background:var(--bg-secondary)}.settings-tab{flex:1;padding:8px 0;border:none;border-bottom:3px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-weight:500;border-radius:4px 4px 0 0;transition:color .15s,border-color .15s,background .15s}.settings-tab:hover{color:var(--text-primary);background:var(--accent-subtle)}.settings-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.settings-admin-section{padding-top:4px;display:flex;flex-direction:column;gap:8px}.settings-members{list-style:none;display:flex;flex-direction:column;gap:2px}.settings-member{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;transition:background .12s}.settings-member:hover{background:var(--bg-secondary)}.settings-member-avatar{font-size:1.1rem;flex-shrink:0}.settings-member-name{font-size:.85rem;font-weight:500;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-member-you{font-size:.75rem;font-weight:400;color:var(--text-secondary)}.settings-remove-btn{background:none;border:1px solid var(--border);border-radius:4px;font-size:.72rem;font-weight:500;color:var(--text-secondary);padding:2px 8px;flex-shrink:0;transition:color .15s,border-color .15s,background .15s}.settings-remove-btn:hover{color:var(--danger, #e05a5a);border-color:var(--danger, #e05a5a);background:color-mix(in srgb,var(--danger, #e05a5a) 10%,transparent)}.settings-member-confirm{display:flex;gap:4px;flex-shrink:0}.settings-remove-confirm-btn,.settings-remove-cancel-btn{background:none;border:1px solid;border-radius:4px;cursor:pointer;font-size:.72rem;padding:2px 8px;transition:opacity .15s}.settings-remove-confirm-btn{border-color:var(--danger, #e05a5a);color:var(--danger, #e05a5a)}.settings-remove-confirm-btn:hover:not(:disabled){opacity:.75}.settings-remove-cancel-btn{border-color:var(--border);color:var(--text-secondary)}.settings-remove-cancel-btn:hover:not(:disabled){opacity:.75}.settings-member-actions{display:flex;gap:4px;flex-shrink:0}.settings-promote-btn{background:none;border:1px solid var(--border);border-radius:4px;font-size:.72rem;font-weight:500;color:var(--text-secondary);padding:2px 8px;flex-shrink:0;transition:color .15s,border-color .15s,background .15s}.settings-promote-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-subtle)}.settings-promote-confirm-btn{background:none;border:1px solid var(--accent);border-radius:4px;cursor:pointer;font-size:.72rem;padding:2px 8px;color:var(--accent);transition:opacity .15s}.settings-promote-confirm-btn:hover:not(:disabled){opacity:.75}.settings-danger-zone{border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.settings-delete-btn{background:none;border:1px solid var(--danger, #e05a5a);border-radius:var(--radius);color:var(--danger, #e05a5a);font-size:.875rem;font-weight:600;padding:8px 16px;width:100%;transition:background .15s}.settings-delete-btn:hover{background:color-mix(in srgb,var(--danger, #e05a5a) 10%,transparent)}.settings-danger-actions{display:flex;gap:6px}.settings-delete-confirm-btn{background:var(--danger, #e05a5a);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.82rem;font-weight:600;padding:5px 14px;transition:opacity .15s}.settings-delete-confirm-btn:hover:not(:disabled){opacity:.8}.sp-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:300}.sp-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:301;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px 24px 20px;width:min(320px,calc(100vw - 32px));box-shadow:0 16px 48px #00000038,0 4px 12px #0000001a;display:flex;flex-direction:column;gap:8px;animation:spModalIn .15s ease}@keyframes spModalIn{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.sp-modal-icon{font-size:1.6rem;text-align:center;color:var(--accent);margin:0 0 2px}.sp-modal-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0;text-align:center}.sp-modal-body{font-size:.85rem;color:var(--text-secondary);margin:0 0 8px;text-align:center;line-height:1.45}.sp-modal-actions{display:flex;gap:8px;justify-content:center;margin-top:4px}.sp-modal-cancel{flex:1;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.875rem;font-weight:500;padding:9px 0;transition:background .15s}.sp-modal-cancel:hover:not(:disabled){background:var(--bg-secondary)}.sp-modal-confirm{flex:1;background:linear-gradient(135deg,var(--accent),#4f46e5);border:none;border-radius:var(--radius);color:#fff;font-size:.875rem;font-weight:600;padding:9px 0;transition:opacity .15s}.sp-modal-confirm:hover:not(:disabled){opacity:.88}.sp-modal-danger{flex:1;background:var(--danger, #e05a5a);border:none;border-radius:var(--radius);color:#fff;font-size:.875rem;font-weight:600;padding:9px 0;transition:opacity .15s}.sp-modal-danger:hover:not(:disabled){opacity:.85}.lobby-switcher-wrap{position:relative}.lobby-switcher-skeleton{padding:6px 12px;color:var(--text-secondary);font-size:.875rem;letter-spacing:.1em}.lobby-switcher-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--border);border-radius:var(--radius);padding:5px 12px;font-size:.875rem;font-weight:500;color:var(--text-primary);max-width:180px;min-width:0;transition:background .15s,border-color .15s}@media(max-width:480px){.lobby-switcher-btn{max-width:130px;padding:5px 8px;font-size:.82rem}}.lobby-switcher-btn:hover{background:var(--accent-subtle);border-color:var(--accent)}.lobby-switcher-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-switcher-chevron{flex-shrink:0;font-size:.65rem;color:var(--text-secondary)}.lobby-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199}.lobby-dropdown{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:280px;box-shadow:0 8px 32px #00000029,0 2px 8px #00000014;overflow:hidden}@media(max-width:480px){.lobby-dropdown{position:fixed;top:60px;left:50%;right:auto;transform:translate(-50%);width:calc(100vw - 32px);max-width:320px;max-height:80vh;overflow-y:auto}}.lobby-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;border-bottom:1px solid var(--border)}.lobby-dropdown-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.lobby-back-btn{background:none;border:none;font-size:.8rem;font-weight:500;color:var(--accent);padding:0;border-radius:0}.lobby-close-btn{background:none;border:none;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--text-secondary);padding:0;transition:background .15s,color .15s}.lobby-close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.lobby-dropdown-body{padding:12px 16px 14px}.lobby-empty{font-size:.85rem;color:var(--text-secondary);text-align:center;padding:8px 0 12px}.lobby-list{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.lobby-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:background .12s,border-color .12s}.lobby-list-item:hover{background:var(--bg-secondary)}.lobby-list-item--active{background:var(--accent-subtle);border-color:var(--accent)}.lobby-list-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.lobby-list-item-name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lobby-list-item-code{font-size:.72rem;font-weight:600;letter-spacing:.1em;color:var(--text-secondary)}.lobby-copy-btn{background:none;border:1px solid var(--border);border-radius:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--text-secondary);flex-shrink:0;padding:0;transition:background .12s,color .12s,border-color .12s}.lobby-copy-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.lobby-actions{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:10px}.lobby-action-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;font-size:.8rem;font-weight:500;color:var(--text-secondary);text-align:left;transition:background .12s,color .12s,border-color .12s}.lobby-action-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.lobby-inline-form{display:flex;flex-direction:column;gap:8px}.lobby-form-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary)}.lobby-form-error{font-size:.8rem;color:var(--danger)}.lobby-code-input{text-transform:uppercase;letter-spacing:.15em;font-weight:600}.lobby-submit-btn{background:linear-gradient(135deg,var(--accent),#4f46e5);color:#fff;border:none;border-radius:var(--radius);padding:8px 16px;font-size:.875rem;font-weight:600;box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 35%,transparent);transition:opacity .15s;margin-top:2px}.lobby-submit-btn:hover:not(:disabled){opacity:.88}.lobby-streak-badge{flex-shrink:0;font-size:.72rem;font-weight:600;line-height:1;color:var(--text-secondary);white-space:nowrap}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:60px;background:var(--bg-card);border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.navbar-title{font-size:1.25rem;font-weight:700;letter-spacing:-.3px;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar-actions{display:flex;align-items:center;gap:8px}.navbar-icon-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);width:36px;height:36px;font-size:1rem;display:flex;align-items:center;justify-content:center;color:var(--text-primary);padding:0}.navbar-icon-btn:hover{background:var(--accent-subtle);border-color:var(--accent)}.navbar-signout-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:6px 14px;font-size:.875rem;color:var(--text-primary);white-space:nowrap}.navbar-signout-btn:hover{background:var(--bg-secondary)}@media(max-width:480px){.navbar{padding:0 12px}.navbar-actions{gap:6px}.navbar-signout-btn{padding:6px 10px;font-size:.8rem}}.date-navigator{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border);gap:12px}.date-nav-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:40px;height:40px;font-size:1.5rem;line-height:1;color:var(--text-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.date-nav-btn:hover:not(:disabled){background:var(--bg-primary)}.date-nav-center{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.date-nav-input{width:auto;max-width:200px;padding:6px 10px;font-size:.95rem;font-weight:500;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center}.date-nav-input:focus{border-color:var(--accent);outline:none}.date-nav-input::-webkit-calendar-picker-indicator{filter:var(--calendar-icon-filter, none);cursor:pointer}:root[data-theme=dark]{--calendar-icon-filter: invert(1)}.date-nav-today-btn{background:none;border:none;border-radius:0;color:var(--accent);font-size:.8rem;font-weight:500;padding:0;text-decoration:underline}.date-nav-today-btn:hover{color:var(--accent-hover)}.log-form{display:flex;flex-direction:column;gap:12px;padding:12px 0 4px}.log-form-fields{display:flex;flex-direction:column;gap:10px}.log-form-field{display:flex;flex-direction:column;gap:4px}.log-form-field label{font-size:.8rem;font-weight:500;color:var(--text-secondary)}.log-form-error{color:var(--danger);font-size:.8rem}.log-form-field input[type=number]::-webkit-outer-spin-button,.log-form-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.log-form-field input[type=number]{-moz-appearance:textfield}.log-form-actions{display:flex;gap:8px}.log-form-save-btn{background:var(--accent);color:#fff;padding:7px 18px;font-weight:600;font-size:.875rem}.log-form-save-btn:hover:not(:disabled){background:var(--accent-hover)}.log-form-cancel-btn{background:none;border:1px solid var(--border);padding:7px 14px;font-size:.875rem;color:var(--text-secondary)}.log-form-cancel-btn:hover:not(:disabled){background:var(--bg-secondary)}.log-avatar{font-size:1.1rem;line-height:1;flex-shrink:0}.log-row-you-badge{display:inline-block;font-size:.7rem;font-weight:600;background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;vertical-align:middle;opacity:.9}.log-leader-badge{font-size:.9rem;line-height:1;display:inline-block;animation:crownBounce .6s cubic-bezier(.36,.07,.19,.97) both;animation-delay:calc(var(--row-delay, 0ms) + .3s)}.log-workout-check{font-size:.9rem}.step-bar-wrap{margin-top:5px}.step-bar-track{height:4px;background:var(--border);border-radius:2px;overflow:hidden;width:100%;min-width:60px}.step-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#a78bfa);border-radius:2px;width:var(--fill, 0%);animation:fillBar .9s cubic-bezier(.4,0,.2,1) both;animation-delay:var(--row-delay, 0ms)}.step-bar-fill--done{background:linear-gradient(90deg,#10b981,#34d399);box-shadow:0 0 6px #10b98173}.log-cell--rank{width:40px;padding:12px 8px 12px 16px;text-align:center;border-bottom:1px solid var(--border);vertical-align:middle}.log-rank-badge{display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;min-width:24px;height:24px;border-radius:6px;padding:0 4px}.log-rank-badge--gold{background:color-mix(in srgb,#f59e0b 15%,transparent);color:#b45309;border:1px solid color-mix(in srgb,#f59e0b 35%,transparent)}.log-rank-badge--silver{background:color-mix(in srgb,#94a3b8 15%,transparent);color:#64748b;border:1px solid color-mix(in srgb,#94a3b8 35%,transparent)}.log-rank-badge--bronze{background:color-mix(in srgb,#cd7c4f 15%,transparent);color:#92400e;border:1px solid color-mix(in srgb,#cd7c4f 35%,transparent)}.log-rank-badge--other{color:var(--text-secondary);font-weight:500}.log-row--rank-1{border-left:3px solid #f59e0b}.log-row--rank-2{border-left:3px solid #94a3b8}.log-row--rank-3{border-left:3px solid #cd7c4f}.log-action-group{display:flex;align-items:center;gap:6px;justify-content:flex-end}.log-check-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;width:34px;height:34px;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,border-color .15s,transform .1s}.log-check-btn:hover:not(:disabled){background:var(--bg-secondary)}.log-check-btn:active:not(:disabled){transform:scale(.9)}.log-check-btn--done{border-color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.log-edit-btn{background:none;border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius);font-size:.8rem;font-weight:500;padding:4px 12px;white-space:nowrap;transition:background .15s}.log-edit-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.log-row--desktop{display:table-row;animation:rowEnter .3s ease both;animation-delay:var(--row-delay, 0ms)}@keyframes rowEnter{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.log-row--own{background:color-mix(in srgb,var(--accent) 5%,transparent)}.log-row--not-logged{opacity:.5}.log-cell{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-primary);font-size:.9rem;vertical-align:middle}.log-cell--name{font-weight:600}.log-cell--form{padding:8px 16px}.log-cell--action{text-align:right;white-space:nowrap}.log-cell--muted{color:var(--text-secondary);font-style:italic;font-size:.85rem}.log-cell-name-inner{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.log-row--mobile{display:none}.log-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;animation:cardEnter .35s ease both;animation-delay:var(--row-delay, 0ms)}@keyframes cardEnter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.log-card--own{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--bg-card))}.log-card--not-logged{opacity:.5}.log-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}.log-card-name{font-size:.95rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.log-not-logged-label{font-size:.78rem;color:var(--text-secondary);font-style:italic}.log-card-body{display:flex;flex-direction:column;gap:10px}.log-card-steps-hero{display:flex;align-items:baseline;gap:6px}.log-card-steps-number{font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1;letter-spacing:-.5px}.log-card-steps-label{font-size:.8rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.log-card-body .step-bar-wrap{margin-top:0}.log-card-body .step-bar-track{height:6px;border-radius:3px}.log-card-body .step-bar-fill{border-radius:3px}.log-card-details{display:flex;flex-direction:column;gap:6px;padding-top:2px}.log-card-detail{display:flex;align-items:flex-start;gap:0}.log-card-detail-label{font-size:.68rem;font-weight:600;background:var(--accent-subtle);color:var(--accent);border-radius:4px;padding:2px 0;margin-right:8px;width:52px;flex-shrink:0;text-align:center;align-self:flex-start;margin-top:1px}.log-card-detail-text{font-size:.875rem;color:var(--text-primary);line-height:1.4;word-break:break-word}@keyframes fillBar{0%{width:0}to{width:var(--fill, 0%)}}@keyframes crownBounce{0%{transform:translateY(0) rotate(-10deg);opacity:0}50%{transform:translateY(-6px) rotate(5deg);opacity:1}75%{transform:translateY(2px) rotate(-2deg)}to{transform:translateY(0) rotate(0);opacity:1}}.leaderboard{padding:20px;flex:1}.leaderboard-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);box-shadow:var(--shadow)}.leaderboard-table{width:100%;border-collapse:collapse;background:var(--bg-card);min-width:520px}.leaderboard-th{padding:12px 16px;text-align:left;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.leaderboard-th--rank{width:40px;padding:12px 8px 12px 16px;text-align:center}.leaderboard-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;color:var(--text-secondary);font-size:.95rem}.leaderboard-state--error{color:var(--danger)}.leaderboard-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.leaderboard-cards{display:none}@media(max-width:600px){.leaderboard-table-wrap{display:none}.leaderboard-cards{display:block}.leaderboard{padding:16px}}.weekly-summary{padding:20px;flex:1}.weekly-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px;border:1px solid var(--border);box-shadow:var(--shadow)}.weekly-table{width:100%;border-collapse:collapse;background:var(--bg-card);min-width:600px}.weekly-th{padding:11px 14px;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.weekly-th--name{min-width:120px}.weekly-th--today{color:var(--accent)}.weekly-row:hover{background:var(--accent-subtle)}.weekly-cell{padding:11px 14px;border-bottom:1px solid var(--border);font-size:.875rem;color:var(--text-primary);vertical-align:middle}.weekly-cell--name{font-weight:600}.weekly-cell--today{background:color-mix(in srgb,var(--accent) 8%,transparent)}.weekly-cell--empty{color:var(--text-secondary);text-align:center}.weekly-cell--total{font-weight:600;color:var(--accent);white-space:nowrap}.weekly-no-log{color:var(--border);font-size:1rem}.weekly-day-content{display:flex;flex-direction:column;gap:2px}.weekly-check{font-size:.85rem}.weekly-steps{font-size:.85rem;color:var(--text-secondary)}.weekly-steps--goal{color:var(--success);font-weight:600}.weekly-steps--goal:before{content:"● ";font-size:.6em;vertical-align:middle}.weekly-days-logged{display:block;font-size:.72rem;font-weight:400;color:var(--text-secondary);margin-top:2px}.weekly-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;color:var(--text-secondary);font-size:.95rem}.weekly-state--error{color:var(--danger)}.weekly-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){.weekly-summary{padding:12px}.weekly-th,.weekly-cell{padding:9px 10px;font-size:.8rem}}.lobby-gate{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px;min-height:100vh;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--accent) 8%,var(--bg-primary)),var(--bg-primary))}.lobby-gate-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:40px 36px;width:100%;max-width:440px;box-shadow:0 4px 24px #0000001a,0 1px 4px #0000000f}.lobby-gate-title{font-size:1.8rem;font-weight:700;text-align:center;margin-bottom:8px;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.lobby-gate-subtitle{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-bottom:28px;line-height:1.5}.lobby-gate-section-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.lobby-gate-form{display:flex;flex-direction:column;gap:4px}.lobby-gate-row{display:flex;gap:8px;align-items:center}.lobby-gate-row input{flex:1;min-width:0}.lobby-gate-code-input{text-transform:uppercase;letter-spacing:.15em;font-weight:600;font-size:1rem!important}.lobby-gate-btn{background:linear-gradient(135deg,var(--accent),#4f46e5);color:#fff;border:none;border-radius:var(--radius);padding:9px 18px;font-size:.875rem;font-weight:600;white-space:nowrap;flex-shrink:0;box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 35%,transparent);transition:opacity .15s}.lobby-gate-btn:hover:not(:disabled){opacity:.88}.lobby-gate-error{color:var(--danger);font-size:.8rem;margin-top:2px}.lobby-gate-divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--text-secondary);font-size:.8rem}.lobby-gate-divider:before,.lobby-gate-divider:after{content:"";flex:1;height:1px;background:var(--border)}.dashboard{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-primary)}.dashboard-tabs{display:flex;gap:0;background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 20px}.dashboard-tab{background:none;border:none;border-radius:4px 4px 0 0;border-bottom:3px solid transparent;padding:10px 20px;font-size:.9rem;font-weight:500;color:var(--text-secondary);transition:color .15s,border-color .15s,background .15s}.dashboard-tab:hover{color:var(--text-primary);background:var(--accent-subtle)}.dashboard-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.dashboard-content{animation:tabFade .2s ease both}@media(max-width:480px){.dashboard-tabs{padding:0 12px}.dashboard-tab{padding:10px 14px;font-size:.82rem}}@keyframes tabFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dashboard-leave-footer{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px 0 32px}.dashboard-leave-link{background:none;border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;font-weight:500;color:var(--text-secondary);padding:6px 14px;transition:background .15s,border-color .15s,color .15s}.dashboard-leave-link:hover{background:color-mix(in srgb,var(--danger, #e05a5a) 10%,transparent);border-color:var(--danger, #e05a5a);color:var(--danger, #e05a5a)}.dashboard-leave-link--disabled{cursor:default;opacity:.6;font-style:italic;pointer-events:none;border-color:transparent}.dashboard-leave-prompt{font-size:.82rem;color:var(--text-primary)}.dashboard-leave-confirm-btn,.dashboard-leave-cancel-btn{background:none;border:1px solid;border-radius:4px;cursor:pointer;font-size:.75rem;padding:3px 10px;transition:opacity .15s}.dashboard-leave-confirm-btn{border-color:var(--danger, #e05a5a);color:var(--danger, #e05a5a)}.dashboard-leave-confirm-btn:hover:not(:disabled){opacity:.75}.dashboard-leave-cancel-btn{border-color:var(--border);color:var(--text-secondary)}.dashboard-leave-cancel-btn:hover:not(:disabled){opacity:.75}
