@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-color:#0f172a;--bg-color-alt:#1e293b;--text-main:#f8fafc;--text-muted:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--danger:#ef4444;--danger-hover:#dc2626;--success:#10b981;--warning:#f59e0b;--border:#ffffff1a;--glass-bg:#1e293bb3;--glass-border:#ffffff0d;--input-bg:#0003;--bg-panel:#1e293b;--avatar-color-1:#3b82f6;--avatar-color-2:#8b5cf6;--avatar-color-3:#ec4899;--avatar-color-4:#f59e0b;--avatar-color-5:#10b981;--avatar-color-6:#06b6d4;--font-scale:1;--gradient-success-h:linear-gradient(90deg, var(--success), #34d399);--gradient-accent-h:linear-gradient(90deg, var(--accent), #60a5fa);--gradient-accent-v:linear-gradient(to top, var(--accent), #3b82f699);--gradient-warning-v:linear-gradient(to top, #f59e0b, #f59e0b99);font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5;font-size:calc(16px * var(--font-scale));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text-main);background-color:var(--bg-color);background-image:radial-gradient(circle at 100% 0,#1e1b4b,#0000 40%),radial-gradient(circle at 0 100%,#0f172a,#0000 40%);background-size:cover;background-attachment:fixed}:root[data-theme=light]{--bg-color:#f1f5f9;--bg-color-alt:#e2e8f0;--text-main:#1e293b;--text-muted:#64748b;--border:#0000001a;--glass-bg:#ffffffd9;--glass-border:#0000000f;--input-bg:#0000000a;--bg-panel:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-image:radial-gradient(circle at 100% 0,#dbeafe,#0000 40%),radial-gradient(circle at 0 100%,#f1f5f9,#0000 40%)}:root[data-theme=light] .glass-panel{border-color:#00000014;box-shadow:0 1px 2px #0000000f}:root[data-theme=light] button:hover{background-color:#0000000a}:root[data-theme=light] button.primary:hover{background-color:var(--accent-hover)}:root[data-theme=light] [style*="rgba(0,0,0,0.2)"],:root[data-theme=light] [style*="rgba(0, 0, 0, 0.2)"]{background:#00000009!important}:root[data-theme=light] [style*="rgba(255,255,255,0.04)"],:root[data-theme=light] [style*="rgba(255, 255, 255, 0.04)"]{background:#00000006!important}:root[data-theme=light] [style*="rgba(255,255,255,0.08)"],:root[data-theme=light] [style*="rgba(255, 255, 255, 0.08)"]{background:#0000000a!important}:root[data-font-size=small]{--font-scale:.85}:root[data-font-size=medium]{--font-scale:1}:root[data-font-size=large]{--font-scale:1.15}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom);place-items:center;margin:0;display:flex}#root{width:100%;max-width:600px;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;margin:0 auto;overflow-x:hidden}*{box-sizing:border-box}@media (hover:none) and (pointer:coarse){input[type=text],input[type=number],input[type=password],input[type=email],input[type=tel],input[type=search],textarea,select{font-size:16px!important}}:root.theme-transition,:root.theme-transition *,:root.theme-transition :before,:root.theme-transition :after{transition:background-color .35s,color .35s,border-color .35s,box-shadow .35s,background .35s!important}::selection{color:inherit;background:#3b82f64d}.skip-to-content{z-index:99999;background:var(--accent);color:#fff;border-radius:0 0 12px 12px;padding:12px 24px;font-size:.9rem;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.skip-to-content:focus{outline:none;top:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px #3b82f626}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.slide-in,.fade-in,.scale-in,.page-enter{opacity:1!important;animation:none!important;transform:none!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}h1,h2,h3,h4{margin:0;font-weight:600}button,a,input,select,textarea,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{border:1px solid var(--border);background-color:var(--bg-color-alt);color:var(--text-main);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:48px;padding:.6em 1.2em;font-family:inherit;font-size:1rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}button:hover{background-color:#ffffff1a;transform:translateY(-1px)}button:active{transition:transform .1s;transform:scale(.97)translateY(1px)}button.primary{background-color:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background-color:var(--accent-hover);box-shadow:0 4px 16px #3b82f659}button.primary:active{background-color:#1d4ed8;transform:scale(.96);box-shadow:0 2px 8px #3b82f633}button.danger{background-color:var(--danger);border-color:var(--danger)}button.danger:hover{background-color:var(--danger-hover);transform:scale(1.02);box-shadow:0 4px 12px #ef44444d}button:disabled{opacity:.5;cursor:not-allowed;transform:scale(.98)}button:disabled:active{transform:scale(.98)}button.loading{pointer-events:none;opacity:.7}input[type=text],input[type=number],input[type=password]{background:var(--input-bg);border:1px solid var(--border);color:var(--text-main);-webkit-appearance:none;border-radius:12px;outline:none;width:100%;min-height:48px;padding:12px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s,background .2s}textarea{background:var(--input-bg);border:1px solid var(--border);color:var(--text-main);-webkit-appearance:none;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s,background .2s}textarea:focus,input:focus{border-color:var(--accent);background:#3b82f608;box-shadow:0 0 0 3px #3b82f626}input::placeholder{color:var(--text-muted);opacity:.5;transition:opacity .2s}input:focus::placeholder{opacity:.3}input:disabled,textarea:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.3)}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}kbd{border:1px solid var(--border);box-shadow:0 1px 0 var(--border);background:#ffffff0f;border-radius:5px;padding:2px 8px;font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-size:.75rem}:root[data-theme=light] kbd{background:#0000000a;box-shadow:0 1px #0000001a}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:20px;padding:24px;box-shadow:0 8px 32px #0000004d}.fade-in[style*=background]{transition:background .2s,transform .15s,box-shadow .2s}.fade-in[style*=background]:active{transform:scale(.98)}.scroll-fade-container{flex:auto;min-height:0;position:relative;overflow:hidden}.scroll-fade-container:after{content:"";background:linear-gradient(to bottom, transparent, var(--bg-color));pointer-events:none;z-index:1;height:48px;position:absolute;bottom:0;left:0;right:0}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff59}:root[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#00000059}.slide-in{animation:.3s cubic-bezier(.16,1,.3,1) forwards slideIn}.auth-slide-up{animation:.4s cubic-bezier(.16,1,.3,1) forwards authSlideUp}.fade-in{animation:.2s forwards fadeIn}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes authSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes readyBounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes avatarReadyRing{0%,to{box-shadow:0 0 0 2.5px var(--success)}50%{box-shadow:0 0 0 4px #10b98133}}@keyframes timerHeartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.03)}28%{transform:scale(1)}42%{transform:scale(1.03)}70%{transform:scale(1)}}@keyframes readyPop{0%{opacity:.65;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes badgeBump{0%{transform:scale(.7)}60%{transform:scale(1.25)}to{transform:scale(1)}}.badge-bump{animation:.35s cubic-bezier(.4,0,.2,1) badgeBump}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes successPop{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes badgePulse{0%,to{box-shadow:0 0 0 2px var(--bg-color), 0 2px 10px #ef44448c;transform:scale(1)}50%{box-shadow:0 0 0 5px var(--bg-color), 0 0 16px #ef4444d9;transform:scale(1.18)}}@keyframes slideOutRight{0%{opacity:1;max-height:200px;transform:translate(0)}to{opacity:0;max-height:0;margin:0;padding:0;transform:translate(60px)}}@keyframes slideCardIn{0%{opacity:0;transform:translate(38px)}to{opacity:1;transform:translate(0)}}.slide-card-in{animation:.28s cubic-bezier(.16,1,.3,1) forwards slideCardIn}@keyframes barPopup{0%{opacity:0;transform:translate(-50%)scale(.7)}to{opacity:1;transform:translate(-50%)scale(1)}}.bar-popup-label{background:var(--accent);color:#fff;white-space:nowrap;pointer-events:none;z-index:2;border-radius:8px;padding:2px 6px;font-size:.65rem;font-weight:700;animation:.2s cubic-bezier(.16,1,.3,1) forwards barPopup;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.chart-bar{width:100%;height:var(--bar-height,2px);background:var(--bar-bg,#ffffff0d);transform-origin:bottom;animation:barGrow .5s cubic-bezier(.16, 1, .3, 1) var(--bar-delay,0s) forwards;border-radius:4px;position:relative;overflow:hidden}.chart-bar-col{cursor:default;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;transition:transform .1s;display:flex;position:relative}.chart-bar-col[data-clickable]{cursor:pointer}.chart-bar-col:active{transform:scale(.94)}.chart-bar-col--today:before{content:"";border:1.5px solid var(--accent);opacity:.45;pointer-events:none;border-radius:6px;position:absolute;inset:-4px 0}.chart-bar-label{opacity:0;color:var(--text-muted);font-size:.7rem;font-weight:400;transition:opacity .15s}.chart-bar-label--max{opacity:1}.chart-bar-label[data-selected]{color:var(--accent);font-weight:700}.chart-bar-crown{filter:drop-shadow(0 0 3px #f59e0b99);color:#f59e0b;opacity:.9;flex-shrink:0;animation:.4s both crownPop}.chart-bar-today-dot{background:var(--accent);opacity:.85;border-radius:50%;flex-shrink:0;width:4px;height:4px}.chart-bar-weekday-label{color:var(--text-muted);font-size:.7rem}.chart-bar-weekday-label[data-selected]{color:var(--accent)}@keyframes crownPop{0%{opacity:0;transform:scale(0)translateY(4px)}70%{opacity:1;transform:scale(1.2)translateY(-1px)}to{opacity:.9;transform:scale(1)translateY(0)}}.chart-bar-col:hover .chart-bar-label{opacity:1}.chart-bar-col[data-tip]:hover:after{content:attr(data-tip);background:var(--bg-panel,#1e293b);border:1px solid var(--accent);white-space:nowrap;color:var(--text-main);z-index:20;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:.65rem;animation:.15s tooltipFadeIn;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.heatmap-cell{transition:transform .15s,z-index;position:relative}@media (hover:hover){.heatmap-cell:hover{z-index:1;transform:scale(1.25)}}.heatmap-cell[data-tip]:hover:after{content:attr(data-tip);background:var(--bg-panel,#1e293b);border:1px solid var(--accent);white-space:nowrap;color:var(--text-main);z-index:30;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:.65rem;animation:.15s tooltipFadeIn;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.accent-swatch-btn{position:relative}.accent-swatch-btn[data-tip]:hover:after{content:attr(data-tip);background:var(--bg-panel,#1e293b);border:1px solid var(--accent);white-space:nowrap;color:var(--text-main);z-index:30;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:.65rem;animation:.15s tooltipFadeIn;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.bottom-nav{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--glass-border);padding:8px 0;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:100;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-pill{top:6px;bottom:calc(6px + env(safe-area-inset-bottom,0px));pointer-events:none;padding:0 6px;transition:left .32s cubic-bezier(.16,1,.3,1);position:absolute}.bottom-nav-pill-inner{background:linear-gradient(135deg,#3b82f638,#8b5cf629);border:1px solid #3b82f647;border-radius:14px;width:100%;height:100%;box-shadow:0 2px 10px #3b82f626,inset 0 1px #ffffff14}:root[data-theme=light] .bottom-nav-pill-inner{background:linear-gradient(135deg,#3b82f624,#8b5cf61a);border-color:#3b82f638}.bottom-nav-item{min-width:0;color:var(--text-muted);opacity:.75;z-index:1;background:0 0;border:none;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:6px 8px;font-size:.7rem;transition:color .2s,transform .15s;display:flex;position:relative}.bottom-nav-item span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;transition:color .2s,opacity .2s;overflow:hidden}.bottom-nav-item:active{transform:scale(.94)}.bottom-nav-item.active{color:var(--accent);opacity:1;font-weight:600}.bottom-nav-item.active svg{filter:drop-shadow(0 0 6px #3b82f659);animation:.25s cubic-bezier(.4,0,.2,1) forwards tabActivate}.bottom-nav-item:not(.active) svg{transition:transform .2s}@keyframes tabActivate{0%{transform:scale(1)}55%{transform:scale(1.18)}to{transform:scale(1.08)}}.bottom-nav-icon-wrap{justify-content:center;align-items:center;line-height:0;display:inline-flex;position:relative}.bottom-nav-badge{color:#fff;min-width:18px;height:18px;box-shadow:0 0 0 2px var(--bg-color), 0 2px 10px #ef44448c;pointer-events:none;letter-spacing:0;background:#ef4444;border-radius:9999px;justify-content:center;align-items:center;padding:0 5px;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-10px}:root[data-theme=light] .bottom-nav-badge{box-shadow:0 0 0 2px var(--bg-color), 0 2px 8px #ef444466}.bottom-nav-badge.pulse{animation:2s ease-in-out infinite badgePulse}.bottom-nav-tooltip{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--text-main);white-space:nowrap;pointer-events:none;z-index:200;border-radius:8px;padding:4px 10px;font-size:.75rem;font-weight:600;animation:.15s tooltipFadeIn;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0003}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.bottom-nav-key-badge{color:var(--accent);background:var(--glass-bg);border:1px solid var(--accent);white-space:nowrap;pointer-events:none;opacity:0;border-radius:4px;padding:0 4px;font-size:.6rem;font-weight:700;line-height:1.4;transition:opacity .15s;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.bottom-nav-item:focus-visible .bottom-nav-key-badge{opacity:1}.bottom-nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px;transform:scale(1.04)}@media (hover:hover) and (pointer:fine){.bottom-nav-item:hover:not(.active){color:var(--text-main);opacity:.85;transform:scale(1.06)}}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:400px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{-webkit-backdrop-filter:blur(16px);pointer-events:auto;border-radius:14px;align-items:center;gap:10px;padding:12px 16px;font-size:.9rem;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) forwards toastIn;display:flex;box-shadow:0 8px 32px #0006,0 2px 8px #0003}.toast-success{color:var(--success);background:#10b98133;border:1px solid #10b98159}.toast-error{color:var(--danger);background:#ef444433;border:1px solid #ef444459}.toast-info{color:var(--accent);background:#3b82f633;border:1px solid #3b82f659}.toast span{flex:1}.toast-close{opacity:.6;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:2px;transition:transform .2s,opacity .2s,background .2s;display:flex}.toast-close:hover{opacity:1;background:#80808026;transform:rotate(90deg)scale(1.15)}@keyframes toastIn{0%{opacity:0;transform:translateY(-16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastProgress{0%{transform-origin:0;transform:scaleX(1)}to{transform-origin:0;transform:scaleX(0)}}@keyframes toastIconBounce{0%{transform:scale(1)}35%{transform:scale(1.4)rotate(-8deg)}65%{transform:scale(.88)rotate(4deg)}to{transform:scale(1)rotate(0)}}.toast>svg:first-child{flex-shrink:0;animation:.4s cubic-bezier(.36,.07,.19,.97) forwards toastIconBounce}@keyframes circleFinishedFlash{0%,to{opacity:1}50%{opacity:.25}}@keyframes ringExpand{0%{opacity:.5;stroke-width:8px;transform:scale(1)}to{opacity:0;stroke-width:2px;transform:scale(1.18)}}.segment-control{border:1px solid var(--border);background:#ffffff0a;border-radius:12px;gap:2px;padding:3px;display:flex;overflow:hidden}.segment-control button{color:var(--text-muted);background:0 0;border:none;border-radius:9px;flex:1;min-height:36px;padding:8px 12px;font-weight:400;transition:background .18s,color .18s,transform .18s,box-shadow .18s}.segment-control button[data-selected=true]{color:var(--accent);box-shadow:0 0 8px #3b82f659, inset 0 -2px 0 var(--accent);background:#3b82f62e;font-weight:600;transform:scale(1.05)}[data-theme=light] .segment-control button[data-selected=true]{background:#3b82f624}.member-avatar{color:#fff;background:var(--avatar-bg);cursor:default;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex}.member-avatar:hover{transform:scale(1.1);box-shadow:0 0 10px #3b82f680}.member-row{border-radius:10px;align-items:center;gap:10px;padding:8px 12px;transition:background .2s,transform .15s;display:flex}.member-row:active{transform:scale(.98)}.member-row[data-online=false]{opacity:.45}.member-row.ready{background:#10b98114}.member-row.ready .member-avatar{animation:1.5s infinite readyBounce}@keyframes memberRowEnter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.member-row-stagger{animation:.25s both memberRowEnter;animation-delay:calc(var(--row-i,0) * 40ms)}@media (prefers-reduced-motion:reduce){.member-row-stagger{animation:none}}.avatar-ring-ready{box-shadow:0 0 0 2.5px var(--success);animation:1.8s ease-in-out infinite avatarReadyRing}.avatar-ring-waiting{animation:2s ease-in-out infinite avatarWaitPulse;box-shadow:0 0 0 2px #9696aa4d}@keyframes avatarWaitPulse{0%,to{opacity:.45}50%{opacity:1}}.timer-ring-wrapper{justify-content:center;align-items:center;margin:.5rem auto;display:flex;position:relative}.timer-ring-warning{filter:drop-shadow(0 0 10px #f59e0b59);transition:filter .6s}.timer-ring-danger{filter:drop-shadow(0 0 12px #ef444473);transition:filter .3s}.timer-ring-text{flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:3rem 1rem;display:flex}.empty-state svg{opacity:.2;width:48px;height:48px;animation:4s ease-in-out infinite float}.empty-state p:first-of-type{color:var(--text-main);opacity:.7;margin:0;font-size:.9rem;font-weight:500}.empty-state-subtitle{opacity:.6;margin:8px 0 0;font-size:.75rem}.password-wrapper{width:100%;position:relative}.password-input-field{width:100%;padding-right:40px}.password-toggle{color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:6px;transition:color .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{color:var(--accent);transform:translateY(-50%)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.has-bottom-nav{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;overflow-y:auto}.modal-panel{height:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));flex-direction:column;max-height:720px;display:flex;overflow:hidden}@media (width<=480px){.modal-panel{height:calc(100dvh - 1rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}}.sticky-top{z-index:2;background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);margin:-4px 0 4px;padding-bottom:8px;position:sticky;top:0}.page-enter{animation:.25s cubic-bezier(.16,1,.3,1) forwards pageEnter}@keyframes pageEnter{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.skeleton{background:linear-gradient(90deg,#ffffff08 0%,#ffffff0f 20%,#ffffff1f 50%,#ffffff0f 80%,#ffffff08 100%) 0 0/300% 100%;border-radius:8px;animation:2s ease-in-out infinite shimmer}:root[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000a 0%,#00000012 20%,#0000001f 50%,#00000012 80%,#0000000a 100%) 0 0/300% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scale-in{transition:transform .15s,box-shadow .2s;animation:.2s cubic-bezier(.16,1,.3,1) forwards scaleIn}.scale-in:active{transform:scale(.98)}.group-card{border-left:3px solid var(--card-border-color,var(--accent));background:#ffffff0a;border-radius:12px;flex-direction:column;gap:0;transition:background .2s,border-color .2s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.group-card:before{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(120deg,#0000 30%,#3b82f612 50%,#0000 70%) 200%/250% 100%;transition:background-position .6s;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.group-card:hover:before{background-position:-50%}}:root[data-theme=light] .group-card{background:#00000008}@media (hover:hover) and (pointer:fine){.group-card:hover{border-left-color:var(--accent);background:#ffffff12;transform:perspective(800px)translateY(-2px)rotateX(1deg)rotateY(-1deg);box-shadow:0 6px 20px #3b82f61f}:root[data-theme=light] .group-card:hover{border-left-color:var(--accent);background:#0000000f;box-shadow:0 6px 20px #3b82f614}}@media (prefers-reduced-motion:reduce){.group-card:hover{transform:translateY(-2px)!important}}.group-card:active{transform:translateY(0)scale(.99)}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes celebrate{0%,to{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(.95)}75%{transform:scale(1.05)}}.celebrate{animation:.5s celebrate}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";opacity:0;background:#ffffff26;border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ripple:active:after{opacity:1;width:200%;padding-top:200%;transition:width .3s,padding-top .3s,opacity}.ripple:not(:active):after{transition:opacity .4s}:root[data-theme=light] .ripple:after{background:#00000014}@keyframes themeFlash{0%{opacity:.22}to{opacity:0}}.theme-flash-overlay{background:var(--accent);pointer-events:none;z-index:9999;animation:.55s ease-out forwards themeFlash;position:fixed;inset:0}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-100vh)rotate(0)translate(0)scale(1)}25%{opacity:1;transform:translateY(25vh)rotate(180deg)translate(20px)scale(.9)}50%{opacity:.8;transform:translateY(50vh)rotate(360deg)translate(-15px)scale(1.1)}75%{opacity:.4;transform:translateY(75vh)rotate(540deg)translate(10px)scale(.8)}to{opacity:0;transform:translateY(100vh)rotate(720deg)translate(-5px)scale(.6)}}@keyframes confetti-fall-alt{0%{opacity:1;transform:translateY(-100vh)rotate(0)translate(0)scale(.8)}30%{opacity:1;transform:translateY(30vh)rotate(-200deg)translate(-25px)scale(1)}60%{opacity:.6;transform:translateY(60vh)rotate(-400deg)translate(20px)scale(.9)}to{opacity:0;transform:translateY(100vh)rotate(-720deg)translate(-10px)scale(.5)}}@keyframes confetti-fall-wide{0%{opacity:1;transform:translateY(-100vh)rotate(0)translate(0)scale(1)}20%{opacity:1;transform:translateY(20vh)rotate(90deg)translate(40px)scale(1.1)}45%{opacity:.9;transform:translateY(45vh)rotate(270deg)translate(-35px)scale(.9)}70%{opacity:.5;transform:translateY(70vh)rotate(450deg)translate(30px)scale(.8)}to{opacity:0;transform:translateY(100vh)rotate(600deg)translate(-20px)scale(.5)}}@keyframes confetti-fall-slow{0%{opacity:1;transform:translateY(-100vh)rotate(0)translate(0)scale(.9)}35%{opacity:1;transform:translateY(35vh)rotate(150deg)translate(-30px)scale(1.1)}65%{opacity:.7;transform:translateY(65vh)rotate(330deg)translate(25px)scale(.95)}to{opacity:0;transform:translateY(100vh)rotate(540deg)translate(-15px)scale(.6)}}.confetti-container{pointer-events:none;z-index:9999;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.confetti-piece{border-radius:2px;width:10px;height:10px;animation:3s ease-in forwards confetti-fall;position:absolute;top:-10px}.confetti-piece:nth-child(odd){border-radius:50%;animation-name:confetti-fall-alt}.confetti-piece:nth-child(3n){clip-path:polygon(50% 0%,0% 100%,100% 100%);border-radius:0;animation-name:confetti-fall-wide}.confetti-piece:nth-child(4n){border-radius:2px;width:16px;height:5px;animation-name:confetti-fall-slow}.confetti-piece:first-child{background:#ef4444;animation-duration:2.5s;animation-delay:0s;left:4%}.confetti-piece:nth-child(2){background:#3b82f6;width:8px;height:13px;animation-duration:2.8s;animation-delay:.1s;left:13%}.confetti-piece:nth-child(3){background:#facc15;animation-duration:3s;animation-delay:.2s;left:22%}.confetti-piece:nth-child(4){background:#10b981;animation-duration:2.6s;animation-delay:50ms;left:31%}.confetti-piece:nth-child(5){background:#ec4899;animation-duration:2.9s;animation-delay:.3s;left:40%}.confetti-piece:nth-child(6){background:#f59e0b;width:6px;height:15px;animation-duration:2.7s;animation-delay:.15s;left:49%}.confetti-piece:nth-child(7){background:#8b5cf6;animation-duration:3.1s;animation-delay:.25s;left:58%}.confetti-piece:nth-child(8){background:#06b6d4;animation-duration:2.4s;animation-delay:.1s;left:67%}.confetti-piece:nth-child(9){background:#ef4444;animation-duration:2.8s;animation-delay:.35s;left:76%}.confetti-piece:nth-child(10){background:#3b82f6;width:8px;height:12px;animation-duration:3.2s;animation-delay:.2s;left:85%}.confetti-piece:nth-child(11){background:#facc15;width:8px;height:12px;animation-duration:2.6s;animation-delay:.4s;left:9%}.confetti-piece:nth-child(12){background:#10b981;animation-duration:3s;animation-delay:.15s;left:27%}.confetti-piece:nth-child(13){background:#ec4899;animation-duration:2.5s;animation-delay:.3s;left:46%}.confetti-piece:nth-child(14){background:#8b5cf6;animation-duration:2.9s;animation-delay:50ms;left:63%}.confetti-piece:nth-child(15){background:#f59e0b;animation-duration:3.1s;animation-delay:.45s;left:82%}.confetti-piece:nth-child(16){background:#06b6d4;width:12px;height:7px;animation-duration:2.7s;animation-delay:80ms;left:18%}.confetti-piece:nth-child(17){background:#ef4444;animation-duration:3.3s;animation-delay:.55s;left:37%}.confetti-piece:nth-child(18){background:#facc15;width:7px;height:13px;animation-duration:2.6s;animation-delay:.18s;left:54%}.confetti-piece:nth-child(19){background:#ec4899;animation-duration:2.9s;animation-delay:.38s;left:72%}.confetti-piece:nth-child(20){background:#8b5cf6;animation-duration:3s;animation-delay:.12s;left:91%}html,body{overscroll-behavior:none}.has-bottom-nav{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}body.modal-open{width:100%;height:100%;position:fixed;overflow:hidden}.tap-highlight{-webkit-tap-highlight-color:transparent;transition:background .15s,transform .1s}.tap-highlight:active{background:#3b82f60f;transform:scale(.98)}:root[data-theme=light] .tap-highlight:active{background:#3b82f614}@keyframes timerFinishedPop{0%{transform:scale(1)}40%{transform:scale(1.22)}70%{transform:scale(.96)}to{transform:scale(1)}}.timer-finished-pop{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards timerFinishedPop}@keyframes barRipple{0%{opacity:.6;transform:scale(0)}to{opacity:0;transform:scale(3)}}.bar-ripple{background:rgba(var(--accent-rgb,59 130 246) / .5);pointer-events:none;border-radius:50%;animation:.5s ease-out forwards barRipple;position:absolute;inset:0}@keyframes spinnerPulse{0%{opacity:.4;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}@keyframes spinnerIconPop{0%{opacity:.6}60%{opacity:.85}80%{opacity:.85;transform:translate(-50%,-50%)scale(1.2)}to{opacity:.6;transform:translate(-50%,-50%)scale(1)}}@keyframes authBtnRipple{0%{opacity:.45;transform:translate(-50%,-50%)scale(0)}to{opacity:0;transform:translate(-50%,-50%)scale(4)}}.auth-btn-ripple{pointer-events:none;background:#ffffff4d;border-radius:50%;width:80px;height:80px;animation:.55s ease-out forwards authBtnRipple;position:absolute;transform:translate(-50%,-50%)scale(0)}:root[data-theme=light] .auth-btn-ripple{background:#0000001a}.accent-swatch-btn{color:var(--text-muted);background:#ffffff0a;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 6px;font-size:.85rem;font-weight:400;transition:transform .18s,box-shadow .18s;display:flex}.accent-swatch-btn:hover{transform:scale(1.12)}.accent-swatch-btn[data-selected=true]{background:color-mix(in srgb, var(--swatch-color) 13%, transparent);border-color:color-mix(in srgb, var(--swatch-color) 33%, transparent);color:var(--swatch-color);font-weight:600}.accent-swatch-dot{background:var(--swatch-color);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex;position:relative}.accent-swatch-btn[data-selected=true] .accent-swatch-dot{box-shadow:0 0 0 2px color-mix(in srgb, var(--swatch-color) 27%, transparent)}.swatch-check-icon{color:#fff;position:absolute}.accent-swatch-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding:2px 4px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%)}.accent-swatch-scroll::-webkit-scrollbar{display:none}@media (hover:none) and (pointer:coarse){kbd,.desktop-only-kbd{display:none!important}}@media (width<=480px){.glass-panel{border-radius:18px;padding:18px}.timer-ring-wrapper{margin:.25rem auto}.bottom-nav-item{gap:2px;padding:6px 4px;font-size:.7rem}.empty-state{padding:2rem .5rem}.auth-panel{margin-top:6vh!important}.member-row{padding:6px 10px}.stats-grid{gap:8px!important}}@media (width<=380px){#root{padding:.5rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px))}.glass-panel{border-radius:16px;padding:14px}.bottom-nav-item{gap:1px;padding:6px 2px;font-size:.62rem}.bottom-nav-item svg{width:18px;height:18px}.lobby-header{flex-wrap:wrap}.lobby-header-actions{justify-content:flex-end;width:100%;margin-top:4px}.toast-container{max-width:calc(100% - 16px)}.auth-panel{margin-top:4vh!important}}.has-bottom-nav{overscroll-behavior-y:contain}@media (height<=600px){.auth-panel{margin-top:3vh!important}.empty-state{padding:1.5rem .5rem}}@media (width>=768px){#root{max-width:720px;padding:1.5rem}.glass-panel{border-radius:24px;padding:28px}.bottom-nav{border-radius:20px 20px 0 0;max-width:480px;left:50%;transform:translate(-50%);box-shadow:0 -4px 24px #00000026}button{transition:all .2s cubic-bezier(.4,0,.2,1),box-shadow .2s}button:hover{box-shadow:0 2px 12px #00000026}.member-row:hover{background:#3b82f60a}.toast-container{max-width:420px}}@media (width>=1024px){#root{max-width:860px;padding:2rem}.glass-panel{padding:32px}.bottom-nav{border:1px solid var(--glass-border);max-width:420px;box-shadow:0 8px 32px #0003, 0 0 0 1px var(--glass-border);border-radius:20px;bottom:16px}.bottom-nav-item{border-radius:12px;padding:8px 20px;font-size:.75rem}.bottom-nav-item:hover:not(.active){color:var(--text-main);opacity:1}.has-bottom-nav{padding-bottom:100px}.stats-grid{gap:12px;grid-template-columns:repeat(3,1fr)!important}.groups-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.member-row{padding:10px 16px}.toast-container{max-width:460px}}.settings-section{background:#0003;border-radius:14px;flex-direction:column;gap:10px;padding:14px;transition:background .2s;display:flex}@media (hover:hover) and (pointer:fine){.settings-section:hover{background:#3b82f60f}}@media (prefers-reduced-motion:reduce){.settings-section{transition:none}}.settings-section--danger{border:1px solid #ef444426}.settings-section-title{color:var(--text-muted);align-items:center;gap:8px;margin:0;font-size:.9rem;display:flex}:root[data-accent=purple]{--accent:#8b5cf6;--accent-hover:#7c3aed}:root[data-accent=green]{--accent:#10b981;--accent-hover:#059669}:root[data-accent=pink]{--accent:#ec4899;--accent-hover:#db2777}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:6px;transition:color .15s,background .15s;display:inline-flex}.modal-close:hover{color:var(--text-main);background:#ffffff0f}:root[data-theme=light] .modal-close:hover{background:#0000000f}.modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px;color:var(--text-main)}.modal-close:active{transform:scale(.9)}@media (prefers-reduced-motion:reduce){.modal-close:active{transform:none}}:root[data-theme=light] .toast{box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f}:root[data-theme=light] .toast-success{background:#10b9812e;border-color:#10b98199}:root[data-theme=light] .toast-error{background:#ef444424;border-color:#ef444499}:root[data-theme=light] .toast-info{background:#3b82f624;border-color:#3b82f699}@media (width>=1280px){#root{max-width:960px}.bottom-nav{max-width:460px}}.ios-install-banner{bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:9000;background:var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(1.5);border:1px solid var(--glass-border);border-radius:16px;align-items:center;gap:10px;padding:12px 14px;display:flex;position:fixed;left:12px;right:12px;box-shadow:0 4px 24px #00000040}.ios-install-banner__icon{flex-shrink:0;font-size:1.5rem}.ios-install-banner__text{color:var(--text-main);flex:1;font-size:.8rem;line-height:1.4}.ios-install-banner__action{background:linear-gradient(135deg, var(--accent), #8b5cf6);color:#fff;cursor:pointer;border:none;border-radius:999px;flex-shrink:0;min-height:auto;padding:6px 14px;font-size:.8rem;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #3b82f659}.ios-install-banner__action:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f673}.ios-install-banner__action:active{transform:translateY(0)}.ios-install-banner__close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;min-width:auto;min-height:auto;padding:4px;font-size:1rem;line-height:1;transition:color .15s,background .15s}.ios-install-banner__close:hover{color:var(--text-main);background:#ffffff0f}:root[data-theme=light] .ios-install-banner__close:hover{background:#0000000f}@media (hover:hover) and (pointer:fine){.scale-in:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.fade-in[style*=background]:hover{filter:brightness(1.05)}.member-row:hover{cursor:default;background:#3b82f60f}}.flashcard-face{backface-visibility:hidden;box-sizing:border-box;border-radius:20px;justify-content:center;align-items:center;padding:2rem;display:flex;position:absolute;inset:0;overflow:hidden}.flashcard-face-back{transform:rotateY(180deg)}.record-action-btns{align-items:center;gap:2px;display:flex}@media (hover:none){.record-action-btns{opacity:.6}}@media (hover:hover) and (pointer:fine){.record-action-btns{opacity:0;transition:opacity .18s}.record-row:hover .record-action-btns{opacity:1}.record-row:hover{transition:box-shadow .2s,background .2s,border-color .2s;box-shadow:0 8px 24px #00000026}.record-delete-btn{transition:background .2s,transform .22s,opacity .18s;transform:translate(6px)}.record-row:hover .record-delete-btn{transform:translate(0)}}@keyframes deleteShine{0%{background-position:-200%}to{background-position:200%}}.record-delete-btn{color:var(--danger);background:0 0;border:none;border-radius:6px;min-width:auto;min-height:auto;padding:8px;transition:background .2s;position:relative;overflow:hidden}.record-delete-btn[data-deleting]{background:#ef44441f}.record-delete-btn:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.record-delete-btn:active{transform:scale(.9)}@media (prefers-reduced-motion:reduce){.record-delete-btn:active{transform:none}}.record-delete-btn:hover:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,#0000 40%,#ef44442e 50%,#0000 60%) 0 0/200% 100%;animation:.45s forwards deleteShine;position:absolute;inset:0}mark.memo-highlight{color:inherit;background:#6366f147;border-radius:2px;padding:0 1px}[data-theme=light] mark.memo-highlight{background:#6366f133}@keyframes searchPulseRing{0%{box-shadow:0 0 0 0 var(--accent);opacity:.7}to{opacity:0;box-shadow:0 0 0 8px #0000}}.search-pulse-active{animation:.5s ease-out searchPulseRing}.group-create-btn{position:relative;overflow:hidden}.group-create-btn:after{content:"";background:linear-gradient(110deg,#0000 30%,#ffffff1a 50%,#0000 70%);transition:none;position:absolute;inset:0;transform:translate(-100%)}@media (hover:hover){.group-create-btn:hover:after{transition:transform .55s;transform:translate(100%)}.word-list-row:hover{transform:translate(4px);transition:transform .18s!important}}.record-deleting{pointer-events:none;animation:.38s forwards slideOutRight;overflow:hidden}@keyframes recordEnter{0%{opacity:.6;transform:translateY(-6px)scale(.97);box-shadow:0 0 0 2px #10b98166}40%{box-shadow:0 0 0 2px #10b98140}to{box-shadow:none;opacity:1;transform:none}}.record-new{animation:.5s cubic-bezier(.22,1,.36,1) forwards recordEnter}.week-header{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);opacity:.75;align-items:center;gap:5px;padding:10px 4px 3px;font-size:.7rem;font-weight:700;display:flex}@keyframes wordNew{0%{background:#3b82f614;box-shadow:0 0 0 3px #3b82f68c}60%{background:#3b82f608;box-shadow:0 0 0 3px #3b82f633}to{box-shadow:none;background:0 0}}.word-new-glow{border-radius:12px;animation:1.5s forwards wordNew}@keyframes validateCheck{0%{transform:scale(1)}40%{transform:scale(1.1)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes wordMastered{0%{box-shadow:0 0 0 3px #10b98180}60%{box-shadow:0 0 0 3px #10b98133}to{box-shadow:none}}.word-mastered-glow{border-radius:12px;animation:.6s forwards wordMastered}@keyframes badgePulseGreen{0%{transform:scale(1);box-shadow:0 0 #10b9818c}40%{transform:scale(1.04);box-shadow:0 0 0 6px #10b98133}to{transform:scale(1);box-shadow:0 0 #10b98100}}.badge-pulse-green{animation:.55s forwards badgePulseGreen}@keyframes allReadyPulse{0%{transform:scale(1);box-shadow:0 0 #10b98180}30%{transform:scale(1.03);box-shadow:0 0 0 10px #10b9812e}60%{transform:scale(1.01);box-shadow:0 0 0 16px #10b98100}to{transform:scale(1);box-shadow:0 0 #10b98100}}.all-ready-pulse{animation:.7s forwards allReadyPulse}@keyframes iconSpinOnce{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.15)}to{transform:rotate(360deg)scale(1)}}.icon-spin-once{animation:.4s cubic-bezier(.36,.07,.19,.97) iconSpinOnce;display:inline-flex}@keyframes navIconBounce{0%{transform:scale(1)}35%{transform:scale(1.25)}65%{transform:scale(.88)}to{transform:scale(1)}}.nav-icon-bounce{animation:.35s cubic-bezier(.36,.07,.19,.97) navIconBounce,.2s navIconPop}@keyframes navIconPop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes errorSettle{0%{transform:scale(1)}40%{transform:scale(1.08)}70%{transform:scale(.96)}to{transform:scale(1)}}@keyframes iconPulse{0%,to{opacity:.15}50%{opacity:.3}}@media (hover:hover){.scale-in:hover .stat-icon-bg{animation:1.5s ease-in-out infinite iconPulse}}input:invalid{box-shadow:0 0 0 2px #ef444440}input:focus:invalid{border-color:var(--danger);box-shadow:0 0 0 3px #ef44444d}.details-chevron{transition:transform .22s;display:inline-block}details[open] .details-chevron{transform:rotate(180deg)}@keyframes arrowUp{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@keyframes arrowDown{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}@keyframes activityBadgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.04)}}.group-activity-badge-pulse{background:var(--badge-bg,#f59e0b26);color:var(--badge-color,var(--warning));border:1px solid var(--badge-border,#f59e0b40);border-radius:6px;padding:1px 6px;font-size:.6rem;font-weight:600;transition:transform .18s,filter .18s;animation:2.2s ease-in-out infinite activityBadgePulse}.group-activity-badge-pulse[data-activity=active]{--badge-bg:#10b98126;--badge-color:var(--success);--badge-border:#10b98140}.group-activity-badge-pulse[data-activity=recent]{--badge-bg:#f59e0b26;--badge-color:var(--warning);--badge-border:#f59e0b40}@media (hover:hover){.group-activity-badge-pulse:hover{filter:brightness(1.2);animation-play-state:paused;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.group-activity-badge-pulse{animation:none}}.settings-theme-btn{transition:transform .18s,box-shadow .18s}.settings-theme-btn:hover{transform:scale(1.05);box-shadow:0 4px 14px #3b82f638}:root[data-theme=light] .settings-theme-btn:hover{box-shadow:0 4px 14px #3b82f62e}.theme-preview-row{gap:8px;margin-top:6px;display:flex}.theme-preview-card{cursor:pointer;border-radius:10px;flex-direction:column;flex:1;gap:4px;padding:8px 10px;transition:transform .18s,box-shadow .18s,outline .2s;display:flex}.theme-preview-card[data-theme-preview=dark]{background:#0f1117;border:1px solid #ffffff14}.theme-preview-card[data-theme-preview=light]{background:#f8fafc;border:1px solid #00000014}.theme-preview-card[data-active=true]{box-shadow:0 0 0 2px var(--accent), 0 0 12px #6366f14d}.theme-preview-card:hover{transform:scale(1.03);box-shadow:0 4px 16px #00000040}.theme-preview-label{letter-spacing:.02em;font-size:.65rem;font-weight:600}.theme-preview-card[data-theme-preview=dark] .theme-preview-label{color:#e2e8f0}.theme-preview-card[data-theme-preview=light] .theme-preview-label{color:#1e293b}.theme-preview-bar-accent{background:var(--accent);border-radius:3px;width:60%;height:6px}.theme-preview-bar-muted{border-radius:2px;width:80%;height:4px}.theme-preview-card[data-theme-preview=dark] .theme-preview-bar-muted{background:#94a3b899}.theme-preview-card[data-theme-preview=light] .theme-preview-bar-muted{background:#64748b99}.chart-bar-col:hover .chart-bar{filter:brightness(1.35)}.settings-font-btn{transition:transform .18s,box-shadow .18s}.settings-font-btn[data-active=false]{box-shadow:inset 0 -2px #0000}.settings-font-btn[data-active=true]{box-shadow:inset 0 -2px 0 var(--accent)}.settings-font-btn:hover{transform:scale(1.05);box-shadow:0 4px 14px #3b82f638}:root[data-theme=light] .settings-font-btn:hover{box-shadow:0 4px 14px #3b82f62e}.settings-font-preview{text-align:center;color:var(--text-muted);letter-spacing:.03em;background:#3b82f60f;border-radius:8px;padding:8px 12px;font-size:1rem;transition:font-size .2s}.settings-font-preview[data-size=small]{font-size:.85rem}.settings-font-preview[data-size=large]{font-size:1.15rem}.settings-accordion{opacity:0;max-height:0;transition:max-height .35s,opacity .25s;overflow:hidden}.settings-accordion[data-open=true]{opacity:1;max-height:400px}.settings-accordion-form{flex-direction:column;gap:10px;padding-top:2px;display:flex}.group-join-btn:not(:disabled):active{transform:scale(.95);box-shadow:0 1px 4px #00000040}@keyframes pauseIconBlink{0%,to{opacity:1}50%{opacity:.6}}.pause-resume-btn--paused{animation:2s ease-in-out infinite pauseIconBlink}.page-input{transition:border-color .2s,box-shadow .2s}@media (hover:hover){.page-input:not(:focus):hover{border-color:#3b82f673}}.page-input:focus{outline:none;box-shadow:0 0 0 2px #3b82f640;border-color:var(--accent)!important}:root[data-theme=light] .page-input:focus{box-shadow:0 0 0 2px #3b82f62e}.chart-bar{transition:filter .15s,transform .15s,opacity .15s,background .3s,height .3s}.chart-bar-col:hover .chart-bar{transform:translateY(-2px)}@keyframes sectionUnderlineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.settings-section-title{padding-bottom:4px;position:relative}.settings-section-title:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);transform-origin:0;opacity:.45;width:100%;height:1px;animation:.45s forwards sectionUnderlineGrow;position:absolute;bottom:0;left:0;transform:scaleX(0)}.qr-save-btn:not(:disabled):hover{transform:scale(1.04);box-shadow:0 0 14px #3b82f673}.qr-save-btn{transition:transform .18s,box-shadow .18s}.settings-section-title:hover .settings-icon-badge,summary.settings-section-title:hover .settings-icon-badge{transform:rotate(15deg)scale(1.1)}.settings-icon-badge{width:28px;height:28px;color:var(--accent);background:#3b82f61a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .22s;display:inline-flex}.lobby-tab-bar{border-bottom:1px solid var(--border-color);gap:0;display:flex}.lobby-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:0;flex:1;justify-content:center;align-items:center;gap:6px;min-height:auto;padding:8px 12px;font-size:.85rem;font-weight:500;transition:color .2s;display:flex;position:relative}.lobby-tab-btn:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;width:0;height:2px;transition:width .28s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}.lobby-tab-btn[data-active=true]{color:var(--accent)}.lobby-tab-btn[data-active=true]:after{width:80%}.group-card-chevron{color:var(--text-muted);opacity:.45;flex-shrink:0;transition:transform .2s,opacity .2s}.group-card:hover .group-card-chevron{opacity:.7;transform:translate(3px)}@keyframes soundFlash{0%{background:#3b82f659}to{background:0 0}}.sound-flash-active{animation:.32s ease-out forwards soundFlash}@keyframes startBtnIdlePulse{0%,to{box-shadow:0 0 #3b82f600}50%{box-shadow:0 0 0 7px #3b82f638}}.start-btn-idle-pulse{animation:2s ease-in-out infinite startBtnIdlePulse}.heatmap-day-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@keyframes emptyBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.empty-state-bounce-icon{animation:2s ease-in-out infinite emptyBounce}@keyframes correctPop{0%{transform:scale(1)}50%{transform:scale(1.1);box-shadow:0 0 12px #10b98180}to{transform:scale(1)}}@keyframes incorrectShake{0%{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}to{transform:translate(0)}}@keyframes spinReverse{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.pause-resume-btn:active{transform:scale(.94)}.settings-section-title{border-left:2px solid #0000;transition:padding-left .18s,border-left .18s}.settings-section-title:hover,summary.settings-section-title:hover{border-left:2px solid var(--accent);padding-left:6px}.segment-control button[data-selected=false]{opacity:.75}@keyframes ownerCrown{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.owner-crown{font-size:.85em;line-height:1;animation:2s ease-in-out infinite ownerCrown;display:inline-block}@keyframes successPulse{0%{background:var(--accent);box-shadow:0 0 #22c55e99}50%{background:#22c55ed9;box-shadow:0 0 0 6px #22c55e00}to{background:var(--accent);box-shadow:0 0 #22c55e00}}.add-btn-success{animation:.4s forwards successPulse}@keyframes correctFlash{0%{background:#10b98166;border-radius:8px}to{background:0 0}}.quiz-correct-flash{animation:.5s forwards correctFlash}.quiz-feedback-wrapper{margin-top:12px}.quiz-feedback-correct{color:var(--success);padding:4px 8px;font-size:1rem;font-weight:600}.quiz-feedback-icon{vertical-align:middle;margin-right:4px}.quiz-feedback-wrong{color:var(--danger);margin-bottom:4px;font-size:1rem;font-weight:600}.quiz-feedback-answer{color:var(--text-main);opacity:.9;font-size:.9rem}.record-date-header{transition:filter .2s}@media (hover:hover){.record-date-header:hover{filter:brightness(1.25);cursor:pointer}}@keyframes goalAchievedPulse{0%,to{filter:brightness(.7)}50%{filter:brightness()}}.goal-achieved-pulse{animation:2s ease-in-out infinite goalAchievedPulse}@keyframes tabEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tab-enter{animation:.2s forwards tabEnter}@keyframes emptyFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty-state-fadein{animation:.5s forwards emptyFadeIn}.flashcard-action-btn:active{transform:scale(.93)}.flashcard-action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.flashcard-action-btn{transition:filter .18s,transform .18s}@media (hover:hover){.flashcard-action-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}}@media (prefers-reduced-motion:reduce){.flashcard-action-btn{transition:none}.flashcard-action-btn:hover{filter:none;transform:none}}@keyframes selfRowGlow{0%{box-shadow:0 0 #3b82f600}30%{box-shadow:0 0 0 4px #3b82f659,0 0 12px #3b82f640}to{box-shadow:0 0 #3b82f600}}@keyframes goalInputFocus{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb,59 130 246) / 0);border-color:var(--border)}50%{box-shadow:0 0 0 3px #3b82f64d,0 0 8px #3b82f633}to{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f640}}.goal-input:focus{border-color:var(--accent);outline:none;animation:.25s forwards goalInputFocus;box-shadow:0 0 0 2px #3b82f640,0 0 8px #3b82f626}.record-date-header{font-variant-numeric:tabular-nums}@keyframes sectionSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.settings-section{animation:.3s both sectionSlideIn}.settings-section:first-child{animation-delay:0s}.settings-section:nth-child(2){animation-delay:50ms}.settings-section:nth-child(3){animation-delay:.1s}.settings-section:nth-child(4){animation-delay:.15s}.settings-section:nth-child(5){animation-delay:.2s}.settings-section:nth-child(6){animation-delay:.25s}.settings-section:nth-child(7){animation-delay:.3s}.settings-section:nth-child(8){animation-delay:.35s}.settings-section:nth-child(9){animation-delay:.4s}.settings-section:nth-child(10){animation-delay:.45s}@media (prefers-reduced-motion:reduce){.settings-section{animation:none}}@keyframes rankRowSlide{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.rank-row{border-radius:10px;align-items:center;gap:10px;padding:8px 12px;transition:background .2s,filter .2s;display:flex}@media (hover:hover){.rank-row:hover{filter:brightness(1.05);background:#3b82f60d;border-radius:8px}}@media (prefers-reduced-motion:reduce){.rank-row{animation:none!important}}.rank-row[data-rank=me]{background:#3b82f61a;border:1px solid #3b82f640;animation:1.5s ease-out forwards selfRowGlow}.rank-row[data-rank=gold]{animation:.2s both rankRowSlide;animation-delay:var(--rank-delay,0s);background:#f59e0b1a;border:1px solid #f59e0b33}.rank-row[data-rank=silver]{animation:.2s both rankRowSlide;animation-delay:var(--rank-delay,0s);background:#c0c0c012;border:1px solid #c0c0c02e}.rank-row[data-rank=bronze]{animation:.2s both rankRowSlide;animation-delay:var(--rank-delay,0s);background:#cd7f3214;border:1px solid #cd7f322e}.rank-row:not([data-rank]){animation:.2s both rankRowSlide;animation-delay:var(--rank-delay,0s);background:#ffffff08;border:1px solid #0000}.rank-name-col{font-weight:500}.rank-name-col[data-me]{font-weight:600}@keyframes createSuccessFlash{0%{border-color:var(--accent);box-shadow:0 0 #10b98180}50%{border-color:var(--success);box-shadow:0 0 0 6px #10b98100}to{box-shadow:none;border-color:#0000}}.create-success{animation:.5s forwards createSuccessFlash}@media (hover:hover){.heatmap-day-cell[role=button]:hover{filter:brightness(1.3);transition:filter .15s,transform .15s}}.heatmap-day-cell[role=button]:active{transition:transform .1s;transform:scale(.85)}@media (prefers-reduced-motion:reduce){.heatmap-day-cell[role=button]:hover,.heatmap-day-cell[role=button]:active{filter:none;transform:none}}.segment-control button:not([data-selected=true]):active{transform:scale(.92)}.segment-control button[data-selected=true]:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.segment-control button:active{transform:none!important}}.expand-toggle-btn{transition:transform .2s,opacity .2s,color .2s!important}@media (hover:hover){.expand-toggle-btn:hover{opacity:1!important;transform:scale(1.2)rotate(90deg)!important}}.expand-toggle-btn:active{transform:scale(.88)!important}.settings-font-btn:active{transition:transform .1s!important;transform:scale(.93)!important}@media (prefers-reduced-motion:reduce){.settings-font-btn:active{transform:none!important}}.accent-swatch-btn:active{transition:transform .1s!important;transform:scale(.95)!important}@media (prefers-reduced-motion:reduce){.accent-swatch-btn:active{transform:none!important}}.word-list-row{border-left:2px solid #0000;transition:border-left-color .18s,transform .1s}@media (hover:hover){.word-list-row:hover{border-left-color:var(--accent)}}.word-list-row:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.word-list-row{transition:none}.word-list-row:active{transform:none}}@keyframes themeSelectPop{0%{transform:scale(.92)}60%{transform:scale(1.04)}to{transform:scale(1)}}.settings-theme-btn:active{animation:.2s forwards themeSelectPop!important}@media (prefers-reduced-motion:reduce){.settings-theme-btn:active{animation:none!important}}.record-page-range{font-variant-numeric:tabular-nums;letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:6px;font-weight:500;display:flex}.record-glass-card{border-left:3px solid var(--accent);-webkit-user-select:none;user-select:none;background:#ffffff0a;border-radius:12px;flex-direction:column;padding:10px 16px;transition:transform .18s,box-shadow .18s,border-left-color .2s,background .2s,border-color .2s;display:flex}.record-glass-card[data-card-type=delete]{background:#ef44440d;border-color:#ef444433}.record-glass-card[data-card-type=memo]{background:#3b82f612;border-left:3px solid #3b82f673;padding-left:13px}@media (hover:hover){.record-glass-card:not([class*=record-deleting]):hover{border-left-color:color-mix(in srgb, var(--accent) 80%, white 20%);transform:translateY(-2px);box-shadow:0 6px 20px #0000002e}}@media (prefers-reduced-motion:reduce){.record-glass-card{transition:none!important;transform:none!important}}@keyframes monthStrIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.month-str{color:var(--text-muted);align-items:center;gap:8px;margin:0;font-size:.9rem;animation:.2s cubic-bezier(.16,1,.3,1) both monthStrIn;display:flex}@media (prefers-reduced-motion:reduce){.month-str{animation:none!important}}@keyframes langSelectPop{0%{transform:scale(.9)}60%{transform:scale(1.05)}to{transform:scale(1)}}.lang-btn:active{animation:.2s forwards langSelectPop!important}@media (prefers-reduced-motion:reduce){.lang-btn:active{animation:none!important}}@keyframes statValuePulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@media (hover:hover){.stat-value:hover{cursor:default;animation:.2s forwards statValuePulse}}@media (prefers-reduced-motion:reduce){.stat-value:hover{animation:none!important}}.auth-panel{flex-direction:column;gap:1.25rem;width:100%;max-width:400px;margin:10vh auto auto;display:flex}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form input{transition:border-color .2s,box-shadow .2s}.auth-form input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px #ef444438}.auth-input-pw{padding-right:44px}.auth-welcome-text{color:var(--text-muted);text-align:center;margin:0;font-size:.85rem}.auth-input-pw[data-strength="1"]{border-color:#ef4444;box-shadow:0 0 0 2px #ef444426}.auth-input-pw[data-strength="2"]{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b26}.auth-input-pw[data-strength="3"]{border-color:#eab308;box-shadow:0 0 0 2px #eab30826}.auth-input-pw[data-strength="4"]{border-color:var(--success);box-shadow:0 0 0 2px #10b98133}.auth-input-pw[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px #ef444438}.auth-input-pw[data-capslock]{border-color:var(--warning);box-shadow:0 0 0 2px #f59e0b2e}.auth-tab-btn{color:var(--text-muted);background:0 0}.auth-tab-btn[data-active=true]{background:var(--accent);color:#fff}.auth-tab-wrapper{background:var(--input-bg);border-radius:12px;gap:4px;padding:4px;display:flex}.auth-tab-btn{cursor:pointer;border:none;border-radius:10px;flex:1;min-height:40px;padding:10px 0;font-size:.9rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1)}@media (hover:hover){.auth-tab-btn:hover{background:#80808014}}.auth-tab-btn:active{transform:scale(.93);transition:transform .1s!important}.auth-tab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.auth-tab-btn:active{transform:none!important}}@media (hover:hover){.mini-bar:hover{filter:brightness(1.5);cursor:default}}@media (prefers-reduced-motion:reduce){.mini-bar{transition:none!important}}@keyframes refreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.refresh-word-btn:active{animation:.4s forwards refreshSpin!important}@media (prefers-reduced-motion:reduce){.refresh-word-btn:active{animation:none!important}}@keyframes btnStaggerIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.qr-save-btn{animation:.2s both btnStaggerIn}.qr-skip-btn{animation:.2s 60ms both btnStaggerIn}@media (prefers-reduced-motion:reduce){.qr-save-btn,.qr-skip-btn{animation:none}}.segment-control button:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.group-join-btn{transition:transform .15s,box-shadow .15s,filter .15s}@media (hover:hover){.group-join-btn:not(:disabled):hover{filter:brightness(1.08);transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.group-join-btn:not(:disabled):hover{transform:none!important}}@media (hover:hover){.refresh-word-btn:hover{color:var(--accent);opacity:.85}}.start-btn:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.start-btn:active{transform:none!important}}@keyframes dateHeaderFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.record-date-header{animation:.2s both dateHeaderFadeIn}@media (prefers-reduced-motion:reduce){.record-date-header{animation:none}}@keyframes rankHeaderSlide{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.rank-section-header,.stats-section-header{animation:.25s both rankHeaderSlide}@media (prefers-reduced-motion:reduce){.rank-section-header,.stats-section-header{animation:none!important}}.modal-word-detail-panel,.flashcard-stats-panel{background:#3b82f60f;border:1px solid #3b82f626;border-radius:12px;flex-direction:column;gap:8px;width:100%;padding:12px;display:flex}.flashcard-stats-panel{margin-bottom:.75rem}.auth-form-header-row{justify-content:space-between;align-items:center;display:flex}.stats-section-subhead{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:12px;font-size:.9rem;display:flex}.group-create-submit-btn{transition:transform .15s,filter .15s}@media (hover:hover){.group-create-submit-btn:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px)}}@media (prefers-reduced-motion:reduce){.group-create-submit-btn:not(:disabled):hover{transform:none!important}}.group-create-submit-btn[data-disabled=true],.group-join-btn[data-disabled=true]{cursor:not-allowed;opacity:.5}.share-btn:active{transform:scale(.88)}@media (prefers-reduced-motion:reduce){.share-btn:active{transform:none!important}}.records-filter-btn,.records-sort-btn{border-color:var(--border);min-width:auto;min-height:30px;color:var(--text-muted);background:#ffffff0a;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;transition:transform .12s;display:flex}.records-filter-btn:focus-visible,.records-sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.records-filter-btn:active,.records-sort-btn:active{transform:scale(.93)}@media (prefers-reduced-motion:reduce){.records-filter-btn:active,.records-sort-btn:active{transform:none!important}}.modal-reset-confirm-btn,.modal-reset-cancel-btn{transition:transform .12s}.modal-reset-confirm-btn:focus-visible,.modal-reset-cancel-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-reset-confirm-btn:active{transform:scale(.92)}.modal-reset-cancel-btn:active{transform:scale(.94)}@media (prefers-reduced-motion:reduce){.modal-reset-confirm-btn:active,.modal-reset-cancel-btn:active{transform:none!important}}@keyframes goalTextPop{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.goal-achieved-text{animation:.3s both goalTextPop;display:inline-flex}@media (prefers-reduced-motion:reduce){.goal-achieved-text{animation:none!important}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.logo-float-icon{animation:none!important}}.auth-logo-icon{background:linear-gradient(135deg, var(--accent), #8b5cf6, #ec4899);cursor:pointer;border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;animation:3s ease-in-out infinite float;display:flex;box-shadow:0 8px 32px #3b82f659}.auth-title{letter-spacing:-.02em;background:linear-gradient(135deg, var(--accent), #8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.8rem;font-weight:700}.auth-header{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}@keyframes msgFadeSlide{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes spinnerMsgBreathe{0%,to{opacity:1}50%{opacity:.6}}.spinner-message{color:var(--text-muted);font-size:var(--spinner-font-size,.9rem);letter-spacing:.04em;margin:0;animation:.3s both msgFadeSlide,1.5s ease-in-out .2s infinite spinnerMsgBreathe}@media (prefers-reduced-motion:reduce){.spinner-message{animation:none!important}}.lobby-tab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:4px}.lobby-tab-btn:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){.lobby-tab-btn:active{transform:none!important}}.expand-toggle-btn:focus-visible{outline:2px solid var(--accent)!important;outline-offset:3px!important;border-radius:4px!important}.settings-theme-btn:focus-visible,.settings-font-btn:focus-visible,.lang-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.stat-card{cursor:default;border:1px solid #0000;transition:transform .2s,box-shadow .2s,border-color .2s}@media (hover:hover) and (pointer:fine){.stat-card:hover{border-color:#3b82f62e;transform:translateY(-2px);box-shadow:0 4px 16px #0000002e}}.stat-card:active{transition:transform .1s;transform:scale(.97)}@media (prefers-reduced-motion:reduce){.stat-card{transition:none}.stat-card:active{transform:none}}@keyframes groupCardEnter{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.scale-in.group-card{animation:.25s cubic-bezier(.16,1,.3,1) both groupCardEnter;animation-delay:var(--card-delay,0s)}@media (prefers-reduced-motion:reduce){.scale-in.group-card{animation:none}}.month-nav-btn{border-radius:6px;transition:color .15s,transform .12s}@media (hover:hover){.month-nav-btn:not(:disabled):hover{color:var(--text-main)}}.month-nav-btn:not(:disabled):active{transform:scale(.88)}.month-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){.month-nav-btn{transition:none}.month-nav-btn:not(:disabled):active{transform:none}}.toast-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:50%}.word-filter-segment{border-radius:10px;flex:1;padding:2px}.word-filter-segment .word-filter-btn{min-height:28px;padding:4px 6px;font-size:.7rem}.word-sort-btn{min-width:auto;min-height:32px;color:var(--text-muted);white-space:nowrap;cursor:pointer;background:#ffffff0a;border:none;border-radius:8px;align-items:center;gap:3px;padding:6px 8px;font-size:.7rem;display:flex}.word-mark-all-area{flex-direction:column;align-self:flex-start;gap:6px;display:flex}.word-mark-all-btn{min-height:30px;color:var(--success);cursor:pointer;background:#10b9811a;border:1px solid #10b98140;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;display:flex}.word-mark-all-btn[data-open=true]{background:#10b9812e}.word-mark-all-confirm{color:var(--text-muted);background:#10b98112;border:1px solid #10b98133;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;font-size:.72rem;display:flex}.word-mark-confirm-btn{background:var(--success);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:3px 10px;font-size:.72rem;font-weight:600}.word-mark-cancel-btn{color:var(--text-muted);cursor:pointer;background:#ffffff14;border:none;border-radius:6px;padding:3px 10px;font-size:.72rem}.word-filter-btn:focus-visible,.word-sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.word-filter-btn:active,.word-sort-btn:active{transform:scale(.93)}@media (prefers-reduced-motion:reduce){.word-filter-btn:active,.word-sort-btn:active{transform:none}}@media (hover:hover){.pause-resume-btn:not(:disabled):hover{filter:brightness(1.1);transition:filter .15s}}.pause-resume-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}@media (prefers-reduced-motion:reduce){.pause-resume-btn:not(:disabled):hover{filter:none}}.qr-save-btn:focus-visible,.qr-skip-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}@keyframes wordRowEnter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.word-row-stagger{animation:.2s both wordRowEnter;animation-delay:calc(var(--row-i,0) * 30ms)}@media (prefers-reduced-motion:reduce){.word-row-stagger{animation:none}}.qr-range-input:focus{border-color:var(--accent);background:#3b82f60f;outline:none}.join-input:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f633}.toast-close:active{transform:rotate(90deg)scale(.82)}@media (prefers-reduced-motion:reduce){.toast-close:active{transform:none}}details summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (hover:hover){details summary:hover{background:#8080800f;border-radius:6px}}.records-search-input:focus{border-color:var(--accent);background:#3b82f60a;outline:none;box-shadow:0 0 0 3px #3b82f626}.search-clear-btn{transition:color .15s,transform .12s}@media (hover:hover){.search-clear-btn:hover{color:var(--danger)!important}}.search-clear-btn:active{transform:scale(.88)}@media (prefers-reduced-motion:reduce){.search-clear-btn{transition:none}.search-clear-btn:active{transform:none}}.auth-submit-btn:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.auth-submit-btn:active{transform:none}}.auth-submit-btn{transition:filter .18s,transform .18s}@media (hover:hover){.auth-submit-btn:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px)}}@media (prefers-reduced-motion:reduce){.auth-submit-btn{transition:none}.auth-submit-btn:not(:disabled):hover{filter:none;transform:none}}.pw-error-text{color:var(--danger);font-size:.85rem}.pw-submit-btn{flex:1}.pw-cancel-btn{min-width:auto;padding:0 16px}.pw-submit-btn:active{transform:scale(.95);transition:transform .1s!important}.pw-submit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}@media (prefers-reduced-motion:reduce){.pw-submit-btn:active{transform:none!important}}.qr-memo-textarea:focus{border-color:var(--accent);background:#3b82f60a;outline:none;box-shadow:0 0 0 3px #3b82f626}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.stat-card--loading{border-radius:16px;min-height:80px;padding:14px;position:relative;overflow:hidden;background:#0003!important}.stat-card--loading:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff0f 50%,#0000 100%) 0 0/200% 100%;animation:1.4s ease-in-out infinite skeletonShimmer;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.stat-card--loading:after{animation:none}}@media (hover:hover) and (pointer:fine){.records-filter-btn:hover,.records-sort-btn:hover{color:var(--accent);background:#8080801a}.segment-control button:not([data-selected=true]):hover{opacity:1;background:#80808014}}@media (prefers-reduced-motion:no-preference){.segment-control button:not([data-selected=true]):hover{transition:background .15s,opacity .15s}}@media (hover:hover) and (pointer:fine){.share-btn:hover{filter:brightness(1.12);background:#3b82f61f}}.accent-swatch-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:50%}.theme-preview-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:10px}.theme-preview-card:active{transition:transform .1s!important;transform:scale(.96)!important}@media (prefers-reduced-motion:reduce){.theme-preview-card:active{transform:none!important}}.settings-sound-btn{transition:filter .15s,transform .12s}@media (hover:hover) and (pointer:fine){.settings-sound-btn:hover{filter:brightness(1.08)}}.settings-sound-btn:active{transform:scale(.94)}@media (prefers-reduced-motion:reduce){.settings-sound-btn:active{transform:none!important}}.settings-sound-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.start-btn{transition:transform .15s,filter .15s,box-shadow .15s}@media (hover:hover) and (pointer:fine){.start-btn:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f64d}}.start-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:12px}@media (prefers-reduced-motion:reduce){.start-btn:not(:disabled):hover{transform:none!important}}.group-create-btn:focus-visible,.group-join-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}@keyframes iconShake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (hover:hover) and (pointer:fine){.error-icon-fade:hover{animation:.4s iconShake!important}}@media (prefers-reduced-motion:reduce){.error-icon-fade:hover{animation:none!important}}@keyframes circularFadeIn{0%{opacity:0;transform:rotate(-90deg)scale(.92)}to{opacity:1;transform:rotate(-90deg)scale(1)}}.circular-progress-svg{animation:.3s both circularFadeIn}@media (prefers-reduced-motion:reduce){.circular-progress-svg{animation:none}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.slow-connection-warning{color:var(--text-muted);opacity:.75;margin:0;font-size:.78rem;animation:.3s forwards fadeIn,.3s 4.7s forwards fadeOut}@media (prefers-reduced-motion:reduce){.slow-connection-warning{animation:none}}@media (hover:hover){.error-retry-btn:hover{filter:brightness(1.08)}}.error-retry-btn:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){.error-retry-btn:active{transform:none!important}}.error-retry-btn:focus-visible{outline:2px solid var(--danger);outline-offset:2px;border-radius:8px}.group-search-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f626}@media (hover:hover){.lang-btn:not([data-selected=true]):hover{filter:brightness(1.06);background:#80808014}}@keyframes pillExpand{0%{opacity:.7;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}.bottom-nav-pill-inner{animation:.28s cubic-bezier(.16,1,.3,1) both pillExpand}@media (prefers-reduced-motion:reduce){.bottom-nav-pill-inner{animation:none}}@keyframes recordCardEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.record-card-stagger{animation:.22s both recordCardEnter;animation-delay:calc(var(--card-i,0) * 40ms)}@media (prefers-reduced-motion:reduce){.record-card-stagger{animation:none}}@keyframes progressBarGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.progress-bar-fill{transform-origin:0;animation:.6s cubic-bezier(.25,.46,.45,.94) both progressBarGrow}@media (prefers-reduced-motion:reduce){.progress-bar-fill{animation:none}}@keyframes recordEditEnter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.record-edit-form{flex-direction:column;flex:1;gap:8px;animation:.18s both recordEditEnter;display:flex}@media (prefers-reduced-motion:reduce){.record-edit-form{animation:none}}@keyframes miniBarGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.mini-bar-stagger{transform-origin:bottom;animation:.35s both miniBarGrow;animation-delay:calc(var(--bar-i,0) * 40ms)}@media (prefers-reduced-motion:reduce){.mini-bar-stagger{animation:none}}@keyframes fcDoneEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fc-done-screen,.modal-done-screen{flex-direction:column;flex:1;align-items:center;gap:1.5rem;display:flex;overflow-y:auto}.fc-done-screen{animation:.4s cubic-bezier(.16,1,.3,1) both fcDoneEnter}@media (prefers-reduced-motion:reduce){.fc-done-screen{animation:none}}@keyframes chartBarSelect{0%{transform:scaleY(1)}50%{transform:scaleY(1.1)}to{transform:scaleY(1)}}.chart-bar--selected{transform-origin:bottom;animation:.2s both chartBarSelect}.heatmap-day-cell.chart-bar--selected{transform-origin:50%;animation:.2s both chartBarSelect}@media (prefers-reduced-motion:reduce){.chart-bar--selected,.heatmap-day-cell.chart-bar--selected{animation:none}}@keyframes errorStagger{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.error-message-container{background:#ef444414;border:1px solid #ef444426;border-radius:16px;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.error-icon-box{background:#ef44441f;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.error-icon-fade{animation:.28s both errorStagger}.error-text-fade{color:var(--danger);text-align:center;margin:0;font-size:.9rem;animation:.28s .1s both errorStagger}.error-btn-fade{animation:.28s .2s both errorStagger}@media (prefers-reduced-motion:reduce){.error-icon-fade,.error-text-fade,.error-btn-fade{animation:none}}.flashcard-face-back.is-revealed:after{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(105deg,#0000 30%,#fff6 50%,#0000 70%);width:60%;height:100%;animation:.5s .3s both cardFlipShine;position:absolute;top:0;left:-100%}@keyframes cardFlipShine{0%{opacity:0;left:-100%}40%{opacity:.4}to{opacity:0;left:120%}}@media (prefers-reduced-motion:reduce){.flashcard-face-back.is-revealed:after{display:none}}@keyframes searchHighlightPulse{0%,to{background:#6366f147}50%{background:#6366f185}}@keyframes searchHighlightPulseLight{0%,to{background:#6366f133}50%{background:#6366f166}}mark.memo-highlight{animation:1.8s ease-in-out infinite searchHighlightPulse}[data-theme=light] mark.memo-highlight{animation:1.8s ease-in-out infinite searchHighlightPulseLight}@media (prefers-reduced-motion:reduce){mark.memo-highlight{animation:none}}.weekly-chart-bars{z-index:1;align-items:flex-end;gap:6px;height:100%;display:flex;position:relative}.weekly-chart-bars:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.timer-display:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:8px}.fc-progress-dot{top:50%;left:calc(var(--dot-pct,0) * 1% - 4px);background:var(--accent);border-radius:50%;width:8px;height:8px;transition:left .3s,background .2s;position:absolute;transform:translateY(-50%)scale(1.2);box-shadow:0 0 5px #3b82f680}@media (prefers-reduced-motion:reduce){.fc-progress-dot{transition:none}}@keyframes quizInputFlash{0%{box-shadow:0 0}40%{box-shadow:0 0 0 4px}to{box-shadow:0 0}}.quiz-input--correct{color:var(--success);animation:.5s forwards quizInputFlash;border-color:var(--success)!important}.quiz-input--wrong{color:var(--danger);animation:.5s forwards quizInputFlash;border-color:var(--danger)!important}@media (prefers-reduced-motion:reduce){.quiz-input--correct,.quiz-input--wrong{animation:none}}.record-deleting{border-left-color:var(--danger)!important;background:#ef44440f!important}@keyframes lobbyTabIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lobby-tab-content{animation:.22s cubic-bezier(.16,1,.3,1) both lobbyTabIn}@media (prefers-reduced-motion:reduce){.lobby-tab-content{animation:none}}@media (hover:hover){.records-search-input:hover:not(:focus){background:#ffffff09;border-color:#6382f673}}.leave-confirm-btn{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:6px;min-width:auto;min-height:auto;padding:4px 10px;font-size:.78rem;transition:transform .15s,box-shadow .15s!important}@media (hover:hover){.leave-confirm-btn:hover{transform:scale(1.06)!important;box-shadow:0 4px 12px #ef444459!important}}.leave-confirm-btn:active{transform:scale(.94)!important;box-shadow:0 2px 6px #ef444433!important}@media (prefers-reduced-motion:reduce){.leave-confirm-btn:hover,.leave-confirm-btn:active{box-shadow:none!important;transform:none!important}}.word-filter-btn[data-selected=true]{color:var(--accent)!important;background:#3b82f61f!important;border-color:#3b82f659!important}@media (hover:hover){.word-filter-btn[data-selected=false]:hover{background:#ffffff12!important;border-color:#6382c84d!important}}.lobby-daily-stat{border-radius:12px;flex:1;align-items:center;gap:8px;min-width:100px;padding:10px 14px;transition:transform .18s,box-shadow .18s;display:flex}@media (hover:hover){.lobby-daily-stat:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}}.lobby-daily-stat:active{transform:translateY(0)scale(.98)}@media (prefers-reduced-motion:reduce){.lobby-daily-stat{transition:none}.lobby-daily-stat:hover,.lobby-daily-stat:active{box-shadow:none;transform:none}}@media (hover:hover){.record-date-header:hover .lucide{color:inherit;transition:opacity .2s;opacity:1!important}}.mini-chart-container{background:#00000026;border:1px solid #ffffff0f;border-radius:10px;padding:8px 10px;transition:border-color .2s,box-shadow .2s}@media (hover:hover){.mini-chart-container:hover{box-shadow:0 0 8px #3b82f614;border-color:#6382f633!important}}@media (prefers-reduced-motion:reduce){.mini-chart-container{transition:none}.mini-chart-container:hover{box-shadow:none;border-color:inherit!important}}.qr-section-title{color:var(--accent);font-size:.85rem;font-weight:600}.qr-last-memo{color:var(--text-muted);background:#ffffff0a;border-radius:6px;padding:4px 8px;font-size:.75rem}@keyframes quickRecordIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.quick-record-form{animation:.25s cubic-bezier(.22,1,.36,1) both quickRecordIn}@media (prefers-reduced-motion:reduce){.quick-record-form{animation:none}}.goal-edit-btn{border-radius:6px;transition:color .15s,opacity .15s}@media (hover:hover){.goal-edit-btn:hover{opacity:.85;color:color-mix(in srgb, var(--accent) 80%, white 20%)!important}}.goal-edit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.goal-edit-btn{transition:none}}.recent-memo-btn{min-width:auto;min-height:auto;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:#ffffff0f;border-color:#ffffff1f;border-radius:9999px;max-width:120px;padding:2px 8px;font-size:.72rem;transition:background .15s,color .15s,transform .12s;overflow:hidden}@media (hover:hover){.recent-memo-btn:hover{transform:scale(1.02);color:var(--text)!important;background:#ffffff1a!important}}.recent-memo-btn:active{transform:scale(.95)!important}.recent-memo-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:9999px}@media (prefers-reduced-motion:reduce){.recent-memo-btn{transition:none}.recent-memo-btn:hover,.recent-memo-btn:active{transform:none!important}}.bottom-nav-item.active{transition:box-shadow .2s,color .2s;box-shadow:0 0 0 2px #3b82f633}@media (prefers-reduced-motion:reduce){.bottom-nav-item.active{transition:none}}.copy-group-id-btn{cursor:pointer;color:var(--text-muted);background:#ffffff0a;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;transition:color .25s,background .25s,opacity .2s,transform .15s;display:inline-flex}.copy-group-id-btn--copied{color:var(--success);background:#10b9811f}@media (hover:hover) and (pointer:fine){.copy-group-id-btn:not(.copy-group-id-btn--copied):hover{opacity:.85;background:#ffffff14}}.copy-group-id-btn:active{transform:scale(.97)}.copy-group-id-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){.copy-group-id-btn{transition:none}.copy-group-id-btn:active{transform:none}}@media (hover:hover){.group-search-input:hover:not(:focus){background:#ffffff08;border-color:#6382f666}}.words-load-more-btn{transition:filter .15s,transform .12s}@media (hover:hover){.words-load-more-btn:hover{filter:brightness(1.12)}}.words-load-more-btn:active{transform:scale(.97)}.words-load-more-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.words-load-more-btn{transition:none}.words-load-more-btn:active{transform:none}}.lobby-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:0 12px 10px;display:flex}.lobby-card-action-btn{border-color:var(--border);min-width:auto;min-height:32px;color:var(--text-muted);background:#ffffff0a;align-items:center;gap:4px;padding:6px 10px;font-size:.75rem;transition:filter .15s,transform .1s;display:flex}@media (hover:hover){.lobby-card-action-btn:hover{filter:brightness(1.08)}}.lobby-card-action-btn:active{transform:scale(.95)}.lobby-card-action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.lobby-card-action-btn{transition:none}.lobby-card-action-btn:active{transform:none}}.lobby-show-more-btn{color:var(--success);cursor:pointer;background:#10b9810f;border:1px dashed #10b98140;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:500;transition:background .15s,transform .1s,box-shadow .15s;display:flex}@media (hover:hover){.lobby-show-more-btn:hover{box-shadow:0 2px 8px #10b9811f;background:#10b9811f!important}}.lobby-show-more-btn:active{transform:scale(.97)}.lobby-show-more-btn:focus-visible{outline:2px solid var(--success);outline-offset:2px}@media (prefers-reduced-motion:reduce){.lobby-show-more-btn{transition:none}.lobby-show-more-btn:active{transform:none}}.lobby-daily-stat-row{flex-wrap:wrap;gap:10px;display:flex}.lobby-header-actions{align-items:center;gap:6px;display:flex}.group-card-row{align-items:center;gap:10px;padding:12px;display:flex}.lobby-create-preset-row{flex-wrap:wrap;gap:6px;display:flex}.public-group-info{flex-direction:column;flex:1;gap:1px;display:flex}.timer-settings-panel{background:#3b82f60f;border:1px solid #3b82f626;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.timer-settings-header{color:var(--accent);justify-content:space-between;align-items:center;font-size:.85rem;font-weight:600;display:flex}.timer-settings-title{align-items:center;gap:6px;display:flex}.timer-settings-close-btn{color:var(--text-muted);opacity:.5;background:0 0;border:none;min-width:auto;min-height:auto;padding:2px}.timer-settings-input{text-align:center;width:50px;min-height:32px}.timer-settings-unit-label{color:var(--text-muted);font-size:.85rem}.timer-preset-btn{border-color:var(--border);min-width:auto;min-height:36px;color:var(--text-muted);background:#ffffff0a;border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:400;transition:filter .15s,transform .1s}@media (hover:hover){.timer-preset-btn:hover{filter:brightness(1.06)}}.timer-preset-btn:active{transform:scale(.95)}.timer-preset-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.timer-preset-btn{transition:none}.timer-preset-btn:active{transform:none}}.public-group-card{background:#10b9810a;border:1px solid #10b9811a;border-radius:12px;align-items:center;gap:10px;padding:12px;transition:background .2s,transform .18s,box-shadow .18s;display:flex}@media (hover:hover){.public-group-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b9811f;background:#10b98114!important}}.public-group-card:active{transform:scale(.99)}@media (prefers-reduced-motion:reduce){.public-group-card{transition:none!important}.public-group-card:hover,.public-group-card:active{transform:none}}.timer-confirm-leave-actions{align-items:center;gap:6px;display:flex}.leave-cancel-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;min-width:auto;min-height:auto;padding:4px;transition:opacity .15s,transform .1s}@media (hover:hover){.leave-cancel-btn:hover{opacity:.75}}.leave-cancel-btn:active{transform:scale(.97)}.leave-cancel-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){.leave-cancel-btn{transition:none}.leave-cancel-btn:active{transform:none}}.records-export-btn{min-width:auto;min-height:28px;padding:5px 8px;font-size:.7rem;transition:filter .15s,transform .1s}@media (hover:hover){.records-export-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}}.records-export-btn:active{transform:scale(.95)}.records-export-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){.records-export-btn{transition:none}.records-export-btn:active{transform:none}}.record-card-main-row{justify-content:space-between;align-items:center;display:flex}.record-edit-btn{color:var(--text-muted);background:0 0;border:none;border-radius:6px;min-width:auto;min-height:auto;padding:8px;transition:color .15s,transform .1s}@media (hover:hover){.record-edit-btn:hover{transform:scale(1.1);color:var(--accent)!important}}.record-edit-btn:active{transform:scale(.95)}.record-edit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){.record-edit-btn{transition:none}.record-edit-btn:active{transform:none}}@media (hover:hover){.record-delete-btn:hover{background:#ef44441a!important}}.calendar-nav-bar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-nav-side{align-items:center;gap:2px;display:flex}.month-total-badge{color:var(--accent);background:#3b82f626;border:1px solid #3b82f640;border-radius:9px;padding:1px 7px;font-size:.6rem;font-weight:600}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr) auto;gap:4px;display:grid}.calendar-weekday-label{color:var(--text-muted);padding:2px 0;font-size:.65rem}.calendar-today-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:4px;height:4px}.calendar-nav-btn{color:var(--text-muted);background:0 0;border:none;min-width:auto;min-height:auto;padding:4px;transition:color .15s,transform .12s,filter .15s}.calendar-nav-btn[data-year]{opacity:.6}.calendar-nav-btn:disabled{color:#0000}.calendar-nav-btn[data-year]:disabled{opacity:0}@media (hover:hover){.calendar-nav-btn:not(:disabled):hover{filter:brightness(1.1)}}.calendar-nav-btn:not(:disabled):active{transform:scale(.92)}.calendar-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){.calendar-nav-btn{transition:none}.calendar-nav-btn:not(:disabled):active{transform:none}}.record-memo-toggle-btn{border-color:var(--border);min-width:auto;min-height:30px;color:var(--text-muted);background:#ffffff0a;align-self:flex-start;padding:4px 10px;font-size:.75rem;transition:background .15s,transform .12s}.record-memo-toggle-btn[data-active]{color:var(--accent);background:#3b82f61a;border-color:#3b82f640}@media (hover:hover){.record-memo-toggle-btn:hover{background:#ffffff14!important}}.record-memo-toggle-btn:active{transform:scale(.97)}.record-memo-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){.record-memo-toggle-btn{transition:none}.record-memo-toggle-btn:active{transform:none}}.toast-progress{opacity:.3;height:3px;animation:toastProgress var(--toast-duration,3s) linear forwards;background:currentColor;position:absolute;bottom:0;left:0;right:0}.auth-error-msg{color:var(--danger);text-align:center;background:#ef44441a;border-radius:10px;padding:12px;font-size:.9rem}.auth-caps-warning{color:var(--warning);align-items:center;gap:4px;font-size:.75rem;display:flex}.word-owner-text{text-overflow:ellipsis;white-space:nowrap;max-width:10em;overflow:hidden}.password-strength-bar{height:5px;box-shadow:none;background:#ffffff14;border-radius:3px;flex:1;transition:background .3s,transform .2s,box-shadow .3s;transform:scaleY(.7)}.password-strength-bar[data-active=true]{background:var(--strength-color);box-shadow:0 0 8px var(--strength-color);transform:scaleY(1)}.password-strength-label{color:var(--strength-color);font-size:.75rem;font-weight:600;transition:color .3s;display:inline-block}.pw-strength-bar{background:var(--border);border-radius:2px;flex:1;height:3px;transition:background-color .5s}.pw-strength-bar[data-active=true]{background:var(--strength-color)}.pw-strength-label{color:var(--strength-color);font-size:.72rem;font-weight:600;transition:color .3s;display:inline-block}.auth-strength-container{flex-direction:column;gap:6px;display:flex}.pw-req-item{color:var(--text-muted);align-items:center;gap:4px;font-size:.68rem;transition:color .2s;display:flex}.pw-req-item[data-met=true]{color:var(--success)}.pw-req-icon{font-size:.75rem;font-weight:700;line-height:1;display:inline-block}.pw-req-item[data-met=true] .pw-req-icon{animation:.35s validateCheck}.records-mini-stat{border-radius:10px;flex:1;align-items:center;gap:6px;padding:8px 10px;display:flex}.records-mini-stat-icon{flex-shrink:0}.records-mini-stat-value{font-size:1rem;font-weight:700}.records-mini-stat-label{color:var(--text-muted);font-size:.6rem}.records-period-badge{color:var(--accent);background:#3b82f626;border:1px solid #3b82f633;border-radius:8px;padding:2px 7px;font-size:.65rem;font-weight:600}.records-today-stats{flex-wrap:wrap;gap:8px;margin-bottom:.5rem;display:flex}.records-mini-stat[data-variant=accent]{background:#3b82f614;border:1px solid #3b82f626}.records-mini-stat[data-variant=success]{background:#10b98114;border:1px solid #10b98126}.records-mini-stat[data-variant=warning]{background:#f59e0b14;border:1px solid #f59e0b26;min-width:70px}.records-mini-stat[data-variant=accent] .records-mini-stat-icon,.records-mini-stat[data-variant=accent] .records-mini-stat-value{color:var(--accent)}.records-mini-stat[data-variant=success] .records-mini-stat-icon,.records-mini-stat[data-variant=success] .records-mini-stat-value{color:var(--success)}.records-mini-stat[data-variant=warning] .records-mini-stat-icon,.records-mini-stat[data-variant=warning] .records-mini-stat-value{color:#f59e0b}.stats-main-panel{flex-direction:column;gap:1rem;display:flex}.settings-info-list{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.settings-info-row{justify-content:space-between;display:flex}.settings-info-value{color:var(--text-main)}.member-avatar-grid{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.timer-group-id-row{justify-content:flex-start;align-items:center;gap:8px;display:flex}.stats-comparison-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.records-scroll-area{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.pw-req-grid{grid-template-columns:1fr 1fr;gap:3px 12px;display:grid}.timer-header{flex-direction:column;gap:6px;display:flex}.timer-header-top{justify-content:space-between;align-items:center;display:flex}.timer-score-row{justify-content:center;align-items:flex-start;gap:20px;display:flex}.timer-score-col{flex-direction:column;align-items:center;gap:1px;display:flex}.member-list-body{flex-direction:column;gap:3px;display:flex}.timer-qr-range-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.milestone-emoji{font-size:2rem;animation:3s ease-in-out infinite float}.heatmap-legend{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:3px;margin-top:8px;font-size:.6rem;display:flex}.heatmap-legend-cell{background:rgba(59, 130, 246, var(--legend-opacity,.1));border:1px solid #3b82f633;border-radius:3px;flex-shrink:0;width:12px;height:12px}.heatmap-legend-label:first-of-type{margin-right:2px}.heatmap-legend-label:last-of-type{margin-left:2px}.lobby-skeleton-row{background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.word-highlight{color:inherit;background:#f59e0b4d;border-radius:2px;padding:0 1px}.records-week-header{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #ffffff0d;align-items:center;gap:6px;margin-bottom:4px;font-size:.68rem;font-weight:700;display:flex}.stats-chart-block{background:#0003;border-radius:16px;padding:16px}.stats-chart-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.stats-chart-title{color:var(--text-muted);margin:0;font-size:.9rem}.stats-chart-subtitle{color:var(--text-muted);opacity:.6;font-size:.7rem}.stats-chart-canvas{height:120px;position:relative}.stats-chart-gridline{bottom:var(--gridline-bottom);pointer-events:none;z-index:0;border-top:1px dashed #ffffff12;position:absolute;left:0;right:0}.stats-compare-block{background:#0003;border-radius:16px;padding:16px}.public-empty-state{color:var(--text-muted);text-align:center;background:#10b98108;border:1px dashed #10b98126;border-radius:12px;padding:16px;font-size:.85rem}.lobby-public-empty-icon{opacity:.3;margin-bottom:6px}.lobby-public-empty-text{margin:0;font-size:.85rem}.lobby-icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;min-width:auto;min-height:auto;padding:6px;transition:background .15s,color .15s,transform .15s}@media (hover:hover){.lobby-icon-btn:hover{color:var(--text-primary);background:#ffffff14}}.lobby-icon-btn:active{transform:scale(.9)}.lobby-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.lobby-icon-btn{transition:none}.lobby-icon-btn:active{transform:none}}.lobby-tab-content{flex-direction:column;gap:8px;display:flex}.lobby-section-heading{color:var(--text-muted);align-items:center;gap:6px;margin:0;font-size:.9rem;display:flex}.lobby-refresh-btn{color:var(--text-muted);opacity:.6;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;min-width:auto;min-height:auto;padding:2px;transition:opacity .15s,background .15s,transform .15s;display:inline-flex}@media (hover:hover){.lobby-refresh-btn:hover{opacity:1;background:#ffffff14}}.lobby-refresh-btn:active{transform:scale(.88)}.lobby-refresh-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.lobby-refresh-btn{transition:none}.lobby-refresh-btn:active{transform:none}}.filter-clear-btn{color:var(--text-muted);opacity:.5;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;min-width:auto;min-height:auto;padding:2px;transition:opacity .15s,transform .15s;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}@media (hover:hover){.filter-clear-btn:hover{opacity:1}}.filter-clear-btn:active{transform:translateY(-50%)scale(.85)}@media (prefers-reduced-motion:reduce){.filter-clear-btn{transition:none}.filter-clear-btn:active{transform:translateY(-50%)}}.confirm-cancel-btn{min-width:auto;min-height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:6px 8px;font-size:.75rem;transition:background .15s,color .15s,transform .15s;display:inline-flex}@media (hover:hover){.confirm-cancel-btn:hover{color:var(--text-primary);background:#ffffff0f}}.confirm-cancel-btn:active{transform:scale(.92)}@media (prefers-reduced-motion:reduce){.confirm-cancel-btn{transition:none}.confirm-cancel-btn:active{transform:none}}.search-icon-overlay{color:var(--text-muted);pointer-events:none;align-items:center;display:inline-flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}@media (hover:hover){.weekly-chart-bars:hover .chart-bar{opacity:.5}.weekly-chart-bars:hover .chart-bar-col:hover .chart-bar{opacity:1}}.chart-bar-col:active .chart-bar{transform:scale(.95)translateY(0)}@media (prefers-reduced-motion:reduce){.chart-bar{transition:none}.weekly-chart-bars:hover .chart-bar,.weekly-chart-bars:hover .chart-bar-col:hover .chart-bar{opacity:1}.chart-bar-col:active .chart-bar{transform:none}}.timer-leave-trigger-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;min-width:auto;min-height:auto;padding:6px;transition:opacity .15s,transform .1s}@media (hover:hover){.timer-leave-trigger-btn:hover{opacity:.75}}.timer-leave-trigger-btn:active{transform:scale(.92)}.timer-leave-trigger-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){.timer-leave-trigger-btn{transition:none}.timer-leave-trigger-btn:active{transform:none}}.timer-main-container{text-align:center;flex-direction:column;gap:.75rem;display:flex}.timer-group-title{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;min-width:0;margin:0;font-size:1.05rem;font-weight:600;display:flex;overflow:hidden}.timer-settings-icon-btn{color:var(--text-muted);opacity:.7;background:0 0;border:none;flex-shrink:0;min-width:auto;min-height:auto;padding:4px;transition:opacity .15s,transform .1s}@media (hover:hover){.timer-settings-icon-btn:hover{opacity:1}}.timer-settings-icon-btn:active{transform:scale(.9)}.timer-settings-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.timer-settings-icon-btn{transition:none}.timer-settings-icon-btn:active{transform:none}}.timer-conn-online,.timer-conn-offline{align-items:center;gap:3px;font-size:.65rem;display:inline-flex}.timer-conn-online{color:var(--success)}.timer-conn-offline{color:var(--danger);animation:1.5s infinite pulse}@media (prefers-reduced-motion:reduce){.timer-conn-offline{animation:none}}.timer-conn-dot{background:var(--success);border-radius:50%;width:5px;height:5px;display:inline-block}.new-word-notification{background:#3b82f614;border:1px solid #3b82f626;border-radius:12px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;display:flex}.new-word-notification-icon{background:#3b82f626;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}:root[data-theme=light] .new-word-notification{background:#3b82f60f;border-color:#3b82f633}:root[data-theme=light] .new-word-notification-icon{background:#3b82f61a}.timer-summary-box{background:#3b82f612;border:1px solid #3b82f62e;border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-width:200px;margin-top:10px;padding:10px 16px;display:flex}:root[data-theme=light] .timer-summary-box{background:#3b82f60a;border-color:#3b82f626}.timer-streak-badge{color:var(--warning);background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:999px;align-items:center;gap:3px;margin-top:4px;padding:2px 10px;font-size:.72rem;font-weight:700;display:inline-flex}:root[data-theme=light] .timer-streak-badge{background:#f59e0b1a}.timer-score-value-time,.timer-score-value-pages,.timer-score-value-total{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.timer-score-value-time{color:var(--success)}.timer-score-value-pages{color:var(--accent)}.timer-score-value-total{color:var(--warning)}.timer-score-label{color:var(--text-muted);font-size:.6rem}.timer-display-time{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text-main);opacity:1;font-size:clamp(2.5rem,10vw,3.5rem);font-weight:700;transition:color .4s,opacity .3s}.timer-display-time[data-state=starting]{color:var(--warning)}.timer-display-time[data-state=finished]{color:var(--danger)}.timer-display-time[data-state=paused]{color:var(--text-muted);opacity:.5}.timer-display-time[data-state=critical]{color:var(--danger)}.timer-display-time[data-state=caution]{color:var(--warning)}.notif-owner{color:var(--accent);font-weight:600}.notif-verb{color:var(--text-muted)}.notif-word{color:var(--text-main);font-weight:500}.timer-remaining-label{color:var(--text-muted);font-size:.75rem}.timer-celebrate-label{color:var(--success);font-size:.85rem;font-weight:600}.timer-motivation-label{color:var(--text-muted);margin-top:2px;font-size:.7rem}.timer-summary-label{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:.58rem;font-weight:600}.member-list-header{color:var(--text-muted);text-align:left;justify-content:space-between;margin-bottom:2px;font-size:.75rem;display:flex}.member-list-header[data-lobby=true]{margin-bottom:8px}.member-grid-item{flex-direction:column;align-items:center;gap:4px;width:52px;display:flex}.member-avatar-ready-badge{background:var(--success);border:2px solid var(--surface);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:-2px;right:-2px}.member-avatar-name{text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:52px;font-size:.6rem;overflow:hidden}.quick-record-form{text-align:left;background:#3b82f60f;border:1px solid #3b82f626;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.timer-today-summary{background:#3b82f60d;border:1px solid #3b82f61a;border-radius:10px;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.timer-today-summary[data-achieved=true]{background:#10b98114;border-color:#10b98126}.member-row-name{text-align:left;flex:1;font-size:.9rem;font-weight:500}.member-row-you-badge{color:var(--accent);margin-left:4px;font-size:.6rem;font-weight:400}.member-row-lastseen{color:var(--text-muted);margin-left:4px;font-size:.55rem}.member-row-pages{color:var(--success);margin-right:2px;font-size:.65rem}.timer-member-status-icon{color:var(--text-muted);opacity:.2}.timer-member-status-icon[data-online]{opacity:.4}.qr-memo-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:2px;min-width:auto;min-height:auto;padding:0;font-size:.8rem;text-decoration:underline;display:inline-flex}.qr-page-preview{white-space:nowrap;background:#3b82f61a;border:1px solid #3b82f633;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.mini-chart-title{color:var(--text-muted);opacity:.6;letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px;font-size:.58rem}.mini-chart-bar-container{align-items:flex-end;gap:4px;height:48px;display:flex}.timer-member-ready-icon{color:var(--success)}.timer-member-ready-icon[data-running]{animation:1.6s infinite pulse}@media (prefers-reduced-motion:reduce){.timer-member-ready-icon[data-running]{animation:none}}.mini-chart-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;height:100%;display:flex}.mini-chart-bar{width:100%;height:var(--bar-h,2px);background:var(--bar-bg,#ffffff0f);border-radius:3px 3px 2px 2px;transition:height .4s}@media (prefers-reduced-motion:reduce){.mini-chart-bar{transition:none}}.mini-chart-label{color:var(--text-muted);opacity:.65;font-size:.52rem;font-weight:400}.mini-chart-label[data-today]{color:var(--success);opacity:1;font-weight:700}.timer-goal-bar-track{background:#ffffff14;border-radius:2px;flex:1;height:3px;overflow:hidden}.timer-goal-bar-fill{height:100%;width:var(--goal-pct,0%);background:linear-gradient(90deg, var(--accent), #60a5fa);border-radius:2px;transition:width .5s}.timer-goal-bar-fill[data-achieved=true]{background:var(--success)}.spinner-ring-track{border:2px solid #3b82f626;border-radius:50%;position:absolute;inset:0}.spinner-ring-spin{border:2px solid #0000;border-top-color:var(--accent);border-radius:50%;animation:.8s linear infinite spin;position:absolute;inset:0}.spinner-ring-reverse{border:2px solid #0000;border-bottom-color:#3b82f673;border-radius:50%;animation:1.3s linear infinite spinReverse;position:absolute;inset:4px}.spinner-icon{color:var(--accent);animation:1.2s linear infinite spin,1.5s ease-in-out infinite spinnerIconPop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:reduce){.spinner-ring-spin,.spinner-ring-reverse,.spinner-icon{animation:none}}.error-boundary-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;padding:2rem;display:flex}.error-boundary-icon-box{background:#ef44441a;border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;animation:.5s shake;display:flex}@media (prefers-reduced-motion:reduce){.error-boundary-icon-box{animation:none}}.error-boundary-title{margin:0;font-size:1.2rem}.error-boundary-message{color:var(--text-muted);max-width:300px;margin:0;font-size:.85rem;line-height:1.6}.error-boundary-actions{gap:8px;display:flex}.error-boundary-btn{align-items:center;gap:6px;padding:12px 24px;display:flex}.error-boundary-details{text-align:left;width:100%;max-width:480px}.error-boundary-summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:4px 0;font-size:.75rem}.error-boundary-pre{color:var(--text-muted);white-space:pre-wrap;word-break:break-all;background:#ef44440f;border:1px solid #ef444433;border-radius:8px;margin-top:8px;padding:12px;font-size:.7rem;line-height:1.5;overflow-x:auto}.spinner-wrapper{justify-content:center;align-items:center;gap:var(--spinner-gap,1rem);padding:var(--spinner-padding,3rem);flex-direction:column;display:flex}.spinner-wrapper[data-inline=true]{flex-direction:row;gap:.5rem;padding:.25rem .5rem}.spinner-ring-container{width:var(--spinner-size);height:var(--spinner-size);flex-shrink:0;position:relative}.spinner-pulse-glow{inset:calc(-1 * var(--spinner-inset));pointer-events:none;background:radial-gradient(circle,#3b82f62e 0%,#0000 70%);border-radius:50%;animation:1.5s ease-out infinite spinnerPulse;position:absolute}@media (prefers-reduced-motion:reduce){.spinner-pulse-glow{animation:none}}.settings-panel{flex-direction:column;gap:1rem;display:flex}.settings-heading{align-items:center;gap:6px;margin:0;font-size:1rem;display:flex}.settings-row{gap:8px;display:flex}.records-filter-row{align-items:center;gap:6px;display:flex}.records-search-row{align-items:center;gap:6px;margin-top:6px;display:flex;position:relative}.stats-rank-list{flex-direction:column;gap:8px;display:flex}.rank-medal-col{text-align:center;width:24px;font-size:1.1rem}.rank-name-col{flex:1;font-size:.9rem}.rank-you-badge{color:var(--accent);margin-left:4px;font-size:.6rem}.rank-score-col{text-align:right}.rank-score-pages{color:var(--accent);font-size:.9rem;font-weight:600}.rank-score-week{color:var(--success);font-size:.65rem}.stats-compare-col{text-align:center}.stats-compare-label{color:var(--text-muted);margin-bottom:4px;font-size:.7rem}.stats-compare-label--accent{color:var(--accent)}.stats-compare-label--success{color:var(--success)}.stats-compare-value{color:var(--text-muted);font-size:1.3rem;font-weight:700}.stats-compare-value--accent{color:var(--accent)}.stats-compare-value--success{color:var(--success)}.stats-compare-sub{color:var(--text-muted);font-size:.7rem}.modal-header{flex-direction:column;gap:6px;margin-bottom:.75rem;display:flex}.modal-header-row{justify-content:space-between;align-items:center;display:flex}.modal-header-title{align-items:center;gap:6px;margin:0;font-size:1rem;display:flex}.modal-header-count{color:var(--text-muted);font-size:.7rem;font-weight:400}.modal-toolbar{align-items:center;gap:2px;display:flex}.words-header-icon{color:var(--accent);vertical-align:middle}.modal-toolbar-btn{cursor:pointer;min-width:auto;min-height:auto;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:6px}.modal-toolbar-btn[data-active=true]{background:#f59e0b26;border-radius:6px}.modal-toolbar-btn[data-accent=true]{color:var(--accent)}.words-stats-wrapper{flex-direction:column;gap:6px;padding:8px 0;display:flex}.words-stats-row{gap:8px;display:flex}.words-stat-card{text-align:center;border-radius:10px;flex:1;padding:8px 6px}.words-stat-card[data-variant=total]{background:#3b82f614;border:1px solid #3b82f61f}.words-stat-card[data-variant=unmastered]{background:#ef444414;border:1px solid #ef44441f}.words-stat-card[data-variant=mastered]{background:#10b98114;border:1px solid #10b9811f}.words-stat-value{font-size:1.2rem;font-weight:700}.words-stat-card[data-variant=total] .words-stat-value{color:var(--accent)}.words-stat-card[data-variant=unmastered] .words-stat-value{color:var(--danger)}.words-stat-card[data-variant=mastered] .words-stat-value{color:var(--success)}.words-stat-label{color:var(--text-muted);font-size:.65rem}.lobby-daily-stat[data-color=accent]{background:#3b82f60f;border:1px solid #3b82f61f}.lobby-daily-stat[data-color=success]{background:#10b9810f;border:1px solid #10b9811f}.lobby-daily-stat[data-color=warning]{background:#f59e0b0f;border:1px solid #f59e0b1f}.lobby-stat-value{font-size:1.1rem;font-weight:700}.lobby-daily-stat[data-color=accent] .lobby-stat-value{color:var(--accent)}.lobby-daily-stat[data-color=success] .lobby-stat-value{color:var(--success)}.lobby-daily-stat[data-color=warning] .lobby-stat-value{color:#f59e0b}.lobby-stat-label{color:var(--text-muted);font-size:.6rem}.lobby-stat-icon{flex-shrink:0}.lobby-daily-stat[data-color=accent] .lobby-stat-icon{color:var(--accent)}.lobby-daily-stat[data-color=success] .lobby-stat-icon{color:var(--success)}.lobby-daily-stat[data-color=warning] .lobby-stat-icon{color:#f59e0b}.group-card-name{flex-wrap:wrap;align-items:center;gap:4px;font-size:.95rem;font-weight:500;display:flex}.group-card-meta{color:var(--text-muted);align-items:center;gap:4px;font-size:.75rem;display:flex}.heatmap-day-cell{aspect-ratio:1;background:var(--cell-bg,transparent);width:100%;color:var(--cell-color,var(--text-muted));border:var(--cell-border,1px solid transparent);cursor:default;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.7rem;font-weight:400;transition:border .2s;display:flex}.heatmap-day-cell[data-today]{font-weight:700}.heatmap-day-cell[data-clickable]{cursor:pointer}@media (prefers-reduced-motion:reduce){.heatmap-day-cell{transition:none}}.stats-avg-line{bottom:var(--avg-bottom,0px);pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;left:0;right:0}.stats-avg-line-dash{border-top:1.5px dashed #f59e0b73;flex:1}.stats-avg-label{color:#f59e0b;opacity:.75;white-space:nowrap;font-size:.58rem}.group-card-daily-badge{color:var(--accent);background:#3b82f61a;border:1px solid #3b82f633;border-radius:8px;flex-shrink:0;align-items:center;gap:3px;padding:2px 7px;font-size:.62rem;font-weight:700;display:inline-flex}.heatmap-week-total{white-space:nowrap;color:#0000;border-left:1px solid #0000;justify-content:center;align-items:center;padding-left:5px;font-size:.55rem;font-weight:600;line-height:1.2;transition:color .2s,border-color .2s;display:flex}.heatmap-week-total[data-visible]{color:var(--accent);border-left-color:#3b82f633}@media (prefers-reduced-motion:reduce){.heatmap-week-total{transition:none}}.heatmap-tooltip{background:var(--bg-panel,#1e293b);border:1px solid var(--accent);z-index:10;min-width:110px;color:var(--text-main);border-radius:8px;padding:6px 10px;font-size:.7rem;position:absolute;bottom:110%;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.heatmap-tooltip-date{color:var(--accent);white-space:nowrap;margin-bottom:4px;font-weight:600}.heatmap-tooltip-record{color:var(--text-muted);white-space:nowrap;line-height:1.6}.stats-section-card{background:#0003;border-radius:16px;padding:16px}.stats-section-card--col{flex-direction:column;gap:10px;display:flex}.stats-goal-header{justify-content:space-between;align-items:center;display:flex}.stats-section-h3{color:var(--text-muted);align-items:center;gap:6px;margin:0;font-size:.9rem;font-weight:600;display:flex}.records-form-card{background:#0003;border-radius:14px;flex-direction:column;gap:10px;margin-bottom:.75rem;padding:12px;display:flex}.settings-section-icon{color:var(--accent)}.records-header-row{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.records-header-title{align-items:center;gap:6px;margin:0;font-size:1rem;display:flex}.records-header-actions{align-items:center;gap:4px;display:flex}.lobby-modal-overlay{z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.member-avatar-wrapper{position:relative}.member-avatar-lg{width:44px;height:44px;font-size:1.1rem}.member-avatar-sm{width:28px;height:28px;font-size:.75rem}.member-avatar[data-me]{outline:2px solid var(--accent);outline-offset:2px}.member-avatar-sm[data-me]{outline-offset:1px}.member-avatar[data-offline]{filter:grayscale(.6);opacity:.45}.member-avatar-sm[data-offline]{opacity:1}.member-avatar-lg[data-ready]{transform:scale(1.08);box-shadow:0 4px 14px #10b98140}.member-avatar-name[data-me]{color:var(--accent);font-weight:600}.member-avatar-name[data-offline]{opacity:.5}@media (prefers-reduced-motion:reduce){.member-avatar-lg[data-ready]{transform:none}}.stats-header-row{justify-content:space-between;align-items:center;display:flex}.stats-header-title{align-items:center;gap:6px;margin:0;font-size:1rem;display:flex}.stats-header-actions{align-items:center;gap:4px;display:flex}.share-btn{color:var(--text-muted);background:0 0;border:none;min-width:auto;min-height:auto;padding:8px;transition:color .25s}.share-btn[data-shared]{color:var(--success)}@media (prefers-reduced-motion:reduce){.share-btn{transition:none}}.stats-close-btn{min-width:auto;min-height:auto;padding:6px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.stats-empty-msg{text-align:center;color:var(--text-muted);padding:2rem 0}.lobby-root-panel{flex-direction:column;gap:1rem;width:100%;max-width:680px;margin:4vh auto 0;display:flex}.lobby-header{justify-content:space-between;align-items:center;display:flex}.lobby-header-user{align-items:center;gap:10px;display:flex}.lobby-user-avatar-ring{background:linear-gradient(135deg, var(--accent), #8b5cf6, #ec4899);border-radius:50%;flex-shrink:0;width:42px;height:42px;padding:2px}.lobby-user-avatar{border:2px solid var(--bg-color);width:100%;height:100%;font-size:.9rem}.lobby-user-name{font-size:1rem;font-weight:600}.lobby-user-sub{color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.lobby-logout-btn{min-height:auto;padding:6px 12px;font-size:.85rem}.lobby-error-msg{color:var(--danger);text-align:center;background:#ef44441a;border-radius:10px;padding:10px;font-size:.9rem}.member-row-unmastered{color:var(--warning);background:#f59e0b1a;border-radius:6px;margin-right:2px;padding:1px 4px;font-size:.55rem}.timer-milestone-card{text-align:center;color:#f59e0b;background:linear-gradient(135deg,#f59e0b1f,#ec489914);border:1px solid #f59e0b33;border-radius:14px;padding:12px 16px;font-size:.85rem;font-weight:600}.spin{animation:1s linear infinite spin}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.error-icon-box svg{color:var(--danger)}.error-retry-btn{min-height:36px;padding:8px 20px;font-size:.85rem}.records-validation-error{color:var(--danger);font-size:.85rem}.settings-success-msg{color:var(--success);align-items:center;gap:4px;font-size:.85rem;display:flex}.settings-danger-msg{color:var(--danger);font-size:.8rem}.btn-join-sm{min-height:auto;padding:6px 12px;font-size:.8rem}.lobby-tab-header{justify-content:space-between;align-items:center;display:flex}.segment-control--sm button{align-items:center;gap:3px;min-height:auto;padding:3px 8px;font-size:.72rem;display:flex}.group-search-input{width:100%;min-height:36px;padding:6px 12px;font-size:.85rem}.group-search-input[data-has-value]{padding-right:32px}.public-group-globe{color:var(--success);flex-shrink:0}.btn-open-sm{min-height:auto;color:var(--accent);background:#3b82f61a;border-color:#3b82f64d;padding:6px 12px;font-size:.8rem}.error-icon-box{animation:.5s shake,.4s .5s errorSettle,.3s both errorStagger}@media (prefers-reduced-motion:reduce){.error-icon-box{animation:none}}.timer-preset-row{flex-wrap:wrap;gap:4px;display:flex}.timer-settings-input-row{align-items:center;gap:8px;display:flex}.qr-memo-section{flex-direction:column;gap:6px;display:flex}.qr-tag-row{flex-wrap:wrap;gap:4px;display:flex}.qr-btn-row{gap:8px;display:flex}.nav-kbd-badge{opacity:.65;margin-left:6px;font-size:.7rem;font-weight:600}.lobby-accordion{background:#ffffff0a;border-radius:14px;overflow:hidden}.lobby-accordion-toggle{background:0 0;border:none;border-radius:14px;justify-content:space-between;align-items:center;width:100%;min-height:auto;padding:14px 16px;display:flex}.lobby-accordion-toggle[data-open]{border-radius:14px 14px 0 0}.lobby-accordion-label{align-items:center;gap:6px;font-size:1rem;font-weight:600;display:flex}.lobby-accordion-chevron{color:var(--text-muted);font-size:.8rem;transition:transform .25s}.lobby-accordion-chevron[data-open]{transform:rotate(180deg)}.lobby-accordion-form{flex-direction:column;gap:10px;padding:0 16px 16px;display:flex}summary.settings-details-summary{cursor:pointer;gap:6px;list-style:none}summary.settings-details-summary::-webkit-details-marker{display:none}.settings-details-summary--accent{color:var(--accent)}.settings-details-chevron{color:var(--text-muted);-webkit-user-select:none;user-select:none;margin-left:auto;font-size:.7rem}.settings-version-badge{color:var(--accent);background:#3b82f626;border-radius:6px;padding:2px 8px;font-size:.6rem;font-weight:600}.settings-shortcuts-list{color:var(--text-muted);flex-direction:column;gap:6px;margin-top:10px;font-size:.8rem;display:flex}.settings-shortcut-row{justify-content:space-between;align-items:center;display:flex}.settings-whatsnew-list{color:var(--text-muted);flex-direction:column;gap:4px;margin:10px 0 0;padding-left:20px;font-size:.8rem;display:flex}.stats-goal-progress-track{background:#ffffff14;border-radius:4px;height:8px;transition:box-shadow .5s;position:relative;overflow:hidden}.stats-goal-progress-track[data-achieved=true]{box-shadow:0 0 0 2px #10b98140,0 0 12px #10b98159}.stats-goal-fill{width:var(--mastery-width,0%);background:var(--gradient-accent-h);border-radius:4px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.stats-goal-progress-track[data-achieved=true] .stats-goal-fill{background:var(--gradient-success-h)}.stats-goal-footer{justify-content:space-between;font-size:.8rem;display:flex}.stats-goal-current{color:var(--text-muted);align-items:center;gap:4px;display:flex}.stats-goal-current[data-achieved=true]{color:var(--success)}.stats-goal-trophy{color:var(--warning)}.stats-goal-pct{color:var(--text-muted)}.auth-strength-bars{gap:4px;display:flex}.auth-strength-check{color:#10b981;font-size:.65rem}.auth-strength-reqs{grid-template-columns:1fr 1fr;gap:3px 12px;margin-top:2px;display:grid}.stats-milestone-card{background:var(--milestone-bg,#ffffff0a);border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;display:flex}.stats-milestone-info{flex:1}.stats-milestone-title{color:var(--text-main);font-size:.85rem;font-weight:600}.stats-milestone-next-label{color:var(--text-muted);margin-bottom:3px;font-size:.7rem}.stats-milestone-mini-track{background:#ffffff14;border-radius:2px;height:3px;overflow:hidden}.stats-milestone-mini-fill{height:100%;width:var(--mini-fill-width,0%);background:linear-gradient(90deg, var(--accent), #60a5fa);border-radius:2px;transition:width .5s}.toast{z-index:1;margin-bottom:var(--toast-mb,0px);transition:transform .3s,opacity .3s;position:relative;overflow:hidden}.toast[data-depth=stacked]{z-index:0;pointer-events:none;transform:scale(var(--toast-scale,1));opacity:var(--toast-opacity,1)}.toast[data-exiting=true]{opacity:0;transition:opacity .3s,transform .3s;transform:translateY(-12px)scale(.95)}.toast[data-swiping=true]{transform:translateX(var(--toast-translateX,0px));opacity:var(--toast-opacity,1);transition:none}.circular-progress-wrapper{width:var(--cp-size);height:var(--cp-size);display:inline-block;position:relative}.circular-progress-svg{transform:rotate(-90deg)}.progress-ring-pulse-svg{pointer-events:none;position:absolute;top:0;left:0}.progress-ring-pulse-circle{transform-origin:var(--ring-origin);animation:1.2s ease-out forwards ringExpand}@media (prefers-reduced-motion:reduce){.progress-ring-pulse-circle{animation:none}}.progress-ring-inner-glow{transition:fill .5s,opacity .5s}.progress-ring-glow{transition:stroke-dashoffset var(--ring-dashoffset-dur,.4s) var(--ring-dashoffset-ease,ease), opacity .5s ease}.progress-ring-main{filter:var(--glow-filter);transition:stroke-dashoffset var(--ring-dashoffset-dur,.4s) var(--ring-dashoffset-ease,ease), stroke .5s ease}.settings-option-btn{border-color:var(--border);color:var(--text-muted);background:#ffffff0a;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:.95rem;font-weight:400;display:flex}.settings-option-btn[data-active=true]{color:var(--accent);background:#3b82f626;border-color:#3b82f64d;font-weight:600}.stats-day-detail{background:#f59e0b14;border:1px solid #f59e0b33;border-radius:10px;margin-top:8px;overflow:hidden}.stats-day-detail-header{justify-content:space-between;align-items:center;padding:7px 12px;display:flex}.stats-day-detail-header[data-has-records=true]{border-bottom:1px solid #f59e0b1f}.stats-day-detail-title{color:#f59e0b;font-size:.8rem;font-weight:600}.stats-day-detail-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;min-width:auto;min-height:44px;padding:2px 6px;font-size:.8rem;line-height:1}.stats-day-detail-body{flex-direction:column;gap:5px;padding:6px 12px 8px;display:flex}.stats-day-detail-record{align-items:baseline;gap:8px;font-size:.78rem;display:flex}.stats-day-detail-page{color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:500}.stats-day-detail-count{color:var(--text-muted);flex-shrink:0;font-size:.7rem}.stats-day-detail-memo{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.72rem;overflow:hidden}.stats-section-header{color:var(--text-muted);margin-bottom:12px;font-size:.9rem}.stats-compare-arrow{text-align:center;justify-content:center;align-items:center;min-height:48px;font-size:1.3rem;display:flex}.stats-compare-arrow[data-diff=positive]{color:var(--success);animation:1.2s ease-in-out infinite arrowUp}.stats-compare-arrow[data-diff=negative]{color:var(--danger);animation:1.2s ease-in-out infinite arrowDown}.stats-compare-arrow[data-diff=neutral]{color:var(--text-muted);animation:2s infinite pulse}@media (prefers-reduced-motion:reduce){.stats-compare-arrow{animation:none!important}}.stats-compare-indicator{text-align:center;border-radius:8px;margin-top:10px;padding:6px 12px;font-size:.8rem;font-weight:600}.stats-compare-indicator[data-diff=positive]{color:var(--success);background:#10b98114}.stats-compare-indicator[data-diff=negative]{color:var(--danger);background:#ef444414}.stats-compare-indicator[data-diff=neutral]{color:var(--text-muted);background:#ffffff0a}.stat-card{background:#0003;border-radius:16px;flex-direction:column;gap:8px;padding:14px;display:flex}.stat-card-header{color:var(--text-muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.stat-icon-bg{background:color-mix(in srgb, var(--stat-color,var(--accent)) 8%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.stat-icon-color{color:var(--stat-color,var(--accent));display:flex}.stat-value{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:1.5rem;font-weight:700;display:flex}.stat-card-detail{color:var(--text-muted);margin-top:-4px;font-size:.65rem;line-height:1.5}.timer-ready-container{width:100%;position:relative}.timer-ready-progress{height:100%;width:calc(var(--ready-pct,0) * 1%);pointer-events:none;background:#3b82f614;border-radius:12px;transition:width .4s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0}.timer-ready-progress[data-ready]{background:#10b98114}.timer-ready-btn{width:100%;font-size:1.05rem;position:relative}.timer-ready-btn[data-sending]{opacity:.7;cursor:not-allowed}.timer-ready-btn[data-ready]{background:#10b9811a;border-color:#10b9814d}.timer-kbd{color:#ffffff80;background:#ffffff1a;border-radius:4px;margin-left:4px;padding:2px 6px;font-family:monospace;font-size:.6rem;font-weight:400}.records-page-badge{color:var(--accent);background:#3b82f61f;border:1px solid #3b82f640;border-radius:8px;flex-shrink:0;padding:4px 8px;font-size:.72rem;font-weight:600}.records-overlap-warning{color:var(--danger);background:#ef44441a;border:1px solid #ef444433;border-radius:10px;align-self:flex-start;align-items:center;gap:6px;margin-top:-4px;padding:6px 12px;font-size:.8rem;display:inline-flex}.group-name-btn{text-align:left;background:0 0;border:none;flex-direction:column;flex:1;gap:1px;min-height:auto;padding:0;display:flex}.group-memo-form{flex:0 0 100%;order:-1;gap:4px;margin-bottom:4px;display:flex}.group-status-icon{flex-shrink:0}.group-status-icon--pin{color:#f59e0b}.group-status-icon--globe{color:var(--success)}.group-status-icon--lock{color:var(--text-muted)}.settings-delete-form{flex-direction:column;gap:8px;display:flex}.settings-danger-title{color:var(--danger)}.settings-danger-desc{color:var(--text-muted);margin:0;font-size:.8rem}.timer-today-stats-row{justify-content:center;gap:16px;font-size:.8rem;display:flex}.timer-stat-success{color:var(--success);font-weight:600}.timer-stat-accent{color:var(--accent)}.timer-stat-muted{color:var(--text-muted);font-size:.75rem}.timer-goal-row{align-items:center;gap:8px;display:flex}.timer-goal-icon{color:var(--text-muted);flex-shrink:0}.timer-today-summary[data-achieved=true] .timer-goal-icon{color:var(--success)}.timer-goal-label{color:var(--text-muted);white-space:nowrap;font-size:.65rem}.timer-today-summary[data-achieved=true] .timer-goal-label{color:var(--success)}.timer-running-btn{width:100%;font-size:1.15rem}.qr-preview-book{color:var(--accent);flex-shrink:0}.qr-preview-count{color:var(--accent);font-size:.85rem;font-weight:600}.qr-preview-label{color:var(--text-muted);font-size:.7rem}.lobby-card-action-btn[data-variant=memo][data-active]{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b33}.lobby-card-action-btn[data-variant=pin][data-active]{color:#f59e0b;background:#f59e0b1f;border-color:#f59e0b40}.lobby-card-action-btn[data-variant=share]{color:var(--accent);background:#3b82f614;border-color:#3b82f633}.lobby-card-action-btn[data-variant=share][data-active]{color:var(--success)}.lobby-card-action-btn[data-variant=danger]{color:var(--danger);background:#ef444414;border-color:#ef444433}.group-delete-confirm-row{align-items:center;gap:4px;display:flex}.group-action-btn--delete-confirm{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:4px;min-width:auto;min-height:32px;padding:6px 10px;font-size:.75rem;font-weight:600;display:flex}.records-filter-btn[data-active]{color:var(--accent);background:#3b82f61a;border-color:#3b82f640}.records-filter-count{background:#3b82f633;border-radius:8px;margin-left:2px;padding:1px 5px;font-size:.65rem}.records-filter-arrow{font-size:.7rem;transition:transform .2s}.records-filter-arrow[data-open]{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.records-filter-arrow{transition:none}}.segment-control.records-period-control{margin-bottom:8px}.segment-control.records-period-control button{min-height:auto;padding:4px 8px;font-size:.72rem}.lobby-share-overlay{z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.lobby-share-panel{text-align:center;width:100%;max-width:360px}.lobby-share-title{margin:0;font-size:1rem}.lobby-share-group-name{color:var(--text-muted);margin:0;font-size:.85rem}.lobby-share-url-box{border:1px solid var(--border);word-break:break-all;color:var(--accent);background:#ffffff0a;border-radius:12px;padding:12px;font-size:.8rem}.lobby-share-id-section{background:#ffffff0a;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:16px;display:flex}.lobby-share-id-label{color:var(--text-muted);font-size:.75rem}.lobby-share-id-chunks{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.lobby-share-id-chunk{color:var(--accent);letter-spacing:.08em;text-align:center;background:#3b82f61a;border:1px solid #3b82f633;border-radius:10px;min-width:2.4ch;padding:6px 10px;font-family:monospace;font-size:1.6rem;font-weight:700}.lobby-share-btns{gap:8px;display:flex}.record-date-badge{border-radius:6px;padding:1px 6px;font-size:.6rem}.record-date-badge[data-age=today]{color:var(--success);background:#10b98126}.record-date-badge[data-age=yesterday]{color:var(--text-muted);background:#ffffff0f}.record-date-badge[data-age=week]{color:var(--success);background:#10b9811f}.record-date-badge[data-age=month]{color:var(--warning);background:#f59e0b1f}.record-date-badge[data-age=old]{color:var(--text-muted);background:#ffffff0d}.record-date-sessions-badge{color:var(--accent);background:#6366f11f;border:1px solid #6366f133;border-radius:8px;padding:1px 7px;font-size:.6rem}.record-delete-confirm{border-top:1px solid #ef444433;justify-content:flex-end;align-items:center;gap:6px;margin-top:6px;padding-top:8px;display:flex}.record-delete-confirm--hard{background:#ef44440a;border-top-color:#ef44444d;border-radius:0 0 8px 8px;padding:8px 12px}.record-delete-confirm-msg{color:var(--danger);flex:1;font-size:.72rem}.record-delete-confirm-btn{min-width:auto;min-height:28px;color:var(--danger);background:#ef444426;border-color:#ef44444d;align-items:center;gap:4px;padding:5px 10px;font-size:.72rem;display:flex}.record-delete-cancel-btn{min-width:auto;min-height:28px;padding:5px 10px;font-size:.72rem}.lobby-preset-btn{color:var(--accent);cursor:pointer;background:#3b82f614;border:1px solid #3b82f626;border-radius:8px;align-items:center;gap:4px;min-width:auto;min-height:auto;padding:4px 10px;font-size:.7rem;display:flex}.lobby-preset-btn:hover{background:#3b82f624}.lobby-char-counter{color:var(--text-muted);pointer-events:none;font-size:.65rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.lobby-char-counter[data-near]{color:var(--warning)}.lobby-create-toggle-label{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:.9rem;display:flex}.lobby-create-toggle{cursor:pointer;background:#ffffff1a;border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.lobby-create-toggle[data-on]{background:var(--success)}.lobby-create-toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:left .2s;position:absolute;top:2px;left:2px}.lobby-create-toggle-thumb[data-on]{left:22px}.lobby-create-toggle-text{color:var(--text-muted);align-items:center;gap:4px;display:flex}.lobby-create-toggle-text[data-public]{color:var(--success)}.lobby-confirm-panel{flex-direction:column;gap:14px;width:100%;max-width:320px;display:flex}.lobby-confirm-group-info{align-items:center;gap:10px;display:flex}.lobby-confirm-name{font-size:1rem;font-weight:600}.lobby-confirm-member-count{color:var(--text-muted);align-items:center;gap:4px;font-size:.75rem;display:flex}.lobby-confirm-message{color:var(--text-muted);text-align:center;font-size:.9rem}.lobby-confirm-buttons{gap:8px;display:flex}.lobby-confirm-cancel-btn,.lobby-confirm-join-btn{flex:1;font-size:.9rem}.lobby-timer-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;display:flex}.lobby-timer-label,.lobby-timer-unit{color:var(--text-muted);white-space:nowrap}.lobby-timer-input{text-align:center;width:50px;min-height:32px}.lobby-timer-error{color:var(--danger);font-size:.7rem}.expand-toggle-btn{opacity:.4;min-width:auto;min-height:auto;color:var(--text-muted);background:0 0;border:none;padding:6px}.expand-toggle-btn[data-expanded]{opacity:1;color:var(--accent)}.expand-toggle-dots{font-size:1rem}.group-memo-input{flex:1;min-height:32px;padding:4px 8px;font-size:.8rem}.group-memo-save-btn{min-width:auto;min-height:32px;color:var(--accent);background:#3b82f61a;border-color:#3b82f633;padding:4px 10px;font-size:.75rem}.group-memo-cancel-btn{opacity:.5;min-width:auto;min-height:32px;padding:4px 8px;font-size:.75rem}.records-search-row .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:10px}.records-search-input{flex:1;min-height:34px;padding-left:30px;padding-right:10px;font-size:.85rem}.records-search-input[data-has-query]{padding-right:30px}.search-clear-btn{min-width:auto;min-height:auto;color:var(--text-muted);background:0 0;border:none;padding:4px;position:absolute;right:4px}.timer-random-word-badge{color:var(--danger);background:#ef444426;border-radius:9999px;margin-left:4px;padding:2px 8px;font-size:.7rem;font-weight:600}.timer-random-word-card{cursor:pointer;box-shadow:none;background:#f59e0b0f;border:1px solid #f59e0b26;border-radius:12px;align-items:center;gap:8px;padding:8px 12px;transition:all .25s;display:flex}.timer-random-word-card[data-revealed=true]{background:#f59e0b1a;box-shadow:0 2px 12px #f59e0b1a}.timer-random-word-icon{color:#f59e0b;flex-shrink:0}.timer-random-word-content{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.timer-random-word-text{text-shadow:0 0 10px #f59e0b4d;font-size:.9rem;font-weight:600}.timer-random-word-reading{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.timer-random-word-hint{color:var(--text-muted);opacity:.5;font-size:.7rem}.refresh-word-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;min-width:auto;min-height:auto;padding:2px}.record-edit-row{align-items:center;gap:8px;display:flex}.record-edit-input{background:#3b82f614;width:70px;min-height:32px;font-size:.85rem;box-shadow:0 0 0 2px #3b82f640}.record-edit-input[data-invalid]{border-color:var(--danger)}.record-edit-input[data-shaking]{animation:.4s shake}.record-edit-sep{color:var(--text-muted)}.record-edit-calc{color:var(--accent);margin-top:-4px;font-size:.75rem}.record-edit-memo{background:#3b82f614;min-height:32px;font-size:.85rem;box-shadow:0 0 0 2px #3b82f640}.record-edit-memo-counter{color:var(--text-muted);text-align:right;margin-top:-4px;font-size:.7rem}.record-edit-memo-counter[data-over-limit]{color:var(--danger)}.record-edit-error{color:var(--danger);font-size:.8rem}.record-edit-btns{gap:8px;display:flex}.record-edit-save-btn{flex:1;min-height:32px;padding:6px;font-size:.8rem}.record-edit-cancel-btn{min-width:auto;min-height:32px;padding:6px;font-size:.8rem}.qr-range-input{flex:1;min-height:36px;transition:box-shadow .3s,border-color .3s}.qr-range-input[data-invalid=true]{border-color:var(--danger)}.qr-range-input[data-valid=true]{border-color:var(--success);box-shadow:0 0 0 2px #22c55e26}.qr-range-input[data-success=true]{box-shadow:0 0 0 2px var(--success)}.qr-range-input[data-shaking=true]{animation:.4s shake}@media (prefers-reduced-motion:reduce){.qr-range-input[data-shaking=true]{animation:none}}.qr-range-arrow{color:var(--text-muted)}.pause-resume-btn{border-color:var(--border);width:100%;color:var(--text-muted);background:#ffffff0a;justify-content:center;align-items:center;gap:8px;font-size:1rem;display:flex}.pause-resume-btn--paused{color:var(--success);background:#10b9811a;border-color:#10b9814d}.record-pages-badge{color:var(--accent);letter-spacing:.02em;background:#3b82f621;border-radius:6px;padding:1px 6px;font-size:.72rem;font-weight:700}.record-memo-text{color:var(--text-muted);cursor:default;word-break:break-word;margin-top:2px;font-size:.8rem}.record-memo-text[data-long=true]{cursor:pointer}.record-memo-toggle{color:var(--accent);margin-left:4px;font-size:.65rem}.group-activity-badge{color:var(--text-muted);background:#64748b1f;border:1px solid #64748b33;border-radius:6px;flex-shrink:0;align-items:center;padding:1px 5px;font-size:.6rem;font-weight:600;display:inline-flex}.group-activity-badge[data-stale=true]{color:var(--danger);background:#ef44441a;border-color:#ef444440}.records-back-btn{min-width:auto;min-height:auto;padding:6px}.group-my-sort-btn{min-width:auto;min-height:36px;color:var(--text-muted);white-space:nowrap;cursor:pointer;background:#ffffff0a;border:none;border-radius:8px;align-items:center;gap:4px;padding:6px 10px;font-size:.7rem;display:flex}@media (hover:hover){.group-my-sort-btn:hover{color:var(--text-secondary);background:#ffffff14}}.group-my-sort-btn:active{transform:scale(.96)}.lobby-skeleton-avatar{border-radius:12px;flex-shrink:0;width:40px;height:40px}.lobby-skeleton-body{flex-direction:column;flex:1;gap:6px;display:flex}.lobby-skeleton-title{width:120px;height:14px}.lobby-skeleton-sub{width:80px;height:10px}.words-reset-confirm-panel{color:var(--text-muted);background:#f59e0b14;border:1px solid #f59e0b40;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:.78rem;display:flex}.words-reset-confirm-msg{flex:1}.modal-reset-confirm-btn{background:var(--warning);color:#fff;cursor:pointer;border:none;border-radius:6px;min-height:30px;padding:4px 12px;font-size:.75rem;font-weight:600}.modal-reset-cancel-btn{color:var(--text-muted);cursor:pointer;background:#ffffff14;border:none;border-radius:6px;min-height:30px;padding:4px 12px;font-size:.75rem}.words-mastery-bar-row{align-items:center;gap:8px;display:flex}.words-mastery-bar{background:#ffffff14;border-radius:2px;flex:1;height:4px;overflow:hidden}.words-mastery-bar-fill{background:linear-gradient(90deg, var(--accent), #60a5fa);border-radius:2px;height:100%;transition:width .5s}.words-mastery-bar-fill[data-mastered=true]{background:linear-gradient(90deg, var(--success), #34d399)}.words-mastery-count{color:var(--text-muted);white-space:nowrap;font-size:.7rem}.words-mastery-count[data-mastered=true]{color:var(--success)}@media (prefers-reduced-motion:reduce){.words-mastery-bar-fill{transition:none}.group-my-sort-btn:active{transform:none}}.mastery-progress-wrapper{align-items:center;gap:8px;display:flex}.mastery-progress-track{background:#ef444426;border-radius:3px;flex:1;height:6px;overflow:hidden}.mastery-progress-fill{background:linear-gradient(90deg, var(--success), #34d399);height:100%;width:calc(var(--progress-pct,0) * 1%);border-radius:3px;transition:width .5s}.mastery-progress-pct{color:var(--text-muted);white-space:nowrap;font-size:.7rem;font-weight:600}.mastery-progress-pct[data-mastered=true]{color:var(--success)}@media (prefers-reduced-motion:reduce){.mastery-progress-fill{transition:none}}.records-skeleton-card{background:#ffffff0a;border-radius:12px;flex-direction:column;gap:7px;padding:12px 16px;display:flex}.records-skeleton-row{justify-content:space-between;display:flex}.records-skeleton-line{height:11px}.records-skeleton-line--xs{width:45px}.records-skeleton-line--title{height:15px}.records-skeleton-line--muted{opacity:.7;width:80px}.timer-missed-words-btn{background:#3b82f614;border-color:#3b82f633;width:100%;font-size:.95rem;position:relative}.timer-preset-btn[data-selected=true]{color:var(--accent);background:#3b82f633;border-color:#3b82f666;font-weight:600}.record-date-header{color:var(--accent);cursor:default;-webkit-user-select:none;user-select:none;border-bottom:1px solid #3b82f61a;justify-content:space-between;align-items:center;margin-bottom:4px;padding:8px 4px 4px;font-size:.8rem;font-weight:600;display:flex}.record-date-header[data-today=true]{color:var(--success);border-bottom-color:#10b98126}.record-date-header[data-clickable=true]{cursor:pointer}.record-date-header-left{align-items:center;gap:6px;display:flex}.chevron-muted{opacity:.6}.record-date-header-pages{color:var(--text-muted);font-weight:400}.records-week-header-icon{opacity:.5;flex-shrink:0}.records-week-pages-badge{color:var(--accent);background:#6366f11f;border:1px solid #6366f133;border-radius:8px;margin-left:auto;padding:1px 7px;font-size:.65rem;font-weight:700}.records-week-header[data-first=true]{padding:2px 4px 6px}.records-week-header:not([data-first=true]){padding:14px 4px 6px}.records-footer-stats{border-top:1px solid var(--border);color:var(--text-muted);flex-shrink:0;justify-content:flex-end;align-items:center;gap:5px;padding:6px 4px 0;font-size:.72rem;display:flex}.records-footer-stats .lucide{color:var(--accent)}.records-footer-total-count{color:var(--accent);font-weight:600}.quiz-mode-container{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;display:flex}.quiz-progress-bar{background:#ffffff14;border-radius:2px;width:100%;height:4px;overflow:hidden}.quiz-progress-fill{height:100%;width:calc(var(--progress-pct,0) * 1%);background:linear-gradient(90deg,#f59e0b,#f97316);border-radius:2px;transition:width .3s}.quiz-stat-row{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:.8rem;display:flex}.quiz-score-row{align-items:center;gap:6px;font-size:.72rem;display:inline-flex}.quiz-score-correct{color:var(--success);font-weight:600}.quiz-score-wrong{color:var(--danger);font-weight:600}.quiz-reverse-btn{color:#f59e0b;cursor:pointer;background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:12px;align-items:center;gap:4px;min-width:auto;min-height:auto;padding:4px 8px;font-size:.7rem;display:flex}.quiz-question-card{border:1px solid var(--border);background:#0003;border-radius:20px;justify-content:center;align-items:center;width:100%;min-height:120px;padding:1.5rem;transition:all .3s;display:flex}.quiz-question-card[data-checked=correct]{background:#10b9811f;border-color:#10b9814d;animation:.4s successPop}.quiz-question-card[data-checked=wrong]{background:#ef44441f;border-color:#ef44444d;animation:.4s shake}@media (prefers-reduced-motion:reduce){.quiz-question-card[data-checked=correct],.quiz-question-card[data-checked=wrong]{animation:none}}.quiz-type-hint{color:var(--text-muted);text-align:center;margin-bottom:8px;font-size:.75rem}.quiz-question-text{word-break:break-word;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:clamp(1rem,3.6vw,1.5rem);font-weight:600;display:flex}.quiz-speak-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;min-width:auto;min-height:auto;padding:4px}.quiz-answer-form{gap:8px;width:100%;display:flex}.quiz-answer-form .quiz-input{flex:1}.quiz-answer-form .quiz-input[data-checked=true]{opacity:.5}.quiz-controls-row{justify-content:space-between;align-items:center;width:100%;display:flex}.quiz-score-text{color:var(--text-muted);font-size:.85rem}.quiz-skip-btn{color:var(--text-muted);background:0 0;border:none;min-width:auto;min-height:auto;font-size:.8rem}.quiz-end-row{flex-direction:column;align-items:center;gap:8px;display:flex}.quiz-confirm-end-row{align-items:center;gap:8px;display:flex}.quiz-end-confirm-btn{background:var(--danger);color:#fff;border:none;border-radius:6px;min-width:auto;min-height:auto;padding:4px 12px;font-size:.8rem}.quiz-end-cancel-btn{color:var(--text-muted);background:0 0;border:none;min-width:auto;min-height:auto;padding:4px}.quiz-end-btn{color:var(--text-muted);background:0 0;border:none;font-size:.85rem}.quiz-shortcuts{color:var(--text-muted);opacity:.6;font-size:.65rem}.flashcard-scene{perspective:900px;width:100%}.flashcard-inner{height:180px;transform-style:preserve-3d;cursor:pointer;border-radius:20px;position:relative}.flashcard-inner[data-revealed=true]{cursor:default}.flashcard-content{text-align:center}.flashcard-word{justify-content:center;align-items:center;gap:8px;margin-bottom:8px;font-size:1.5rem;font-weight:600;display:flex}.flashcard-hint{color:var(--text-muted);font-size:.8rem}.flashcard-meaning{color:var(--text-main);opacity:.8;margin-bottom:4px;font-size:1rem}.flashcard-owner{color:var(--accent);font-size:.8rem}.flashcard-add-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:3px;min-width:auto;min-height:auto;margin-top:8px;padding:2px 6px;font-size:.7rem;display:inline-flex}.continue-from-last-btn{min-height:auto;color:var(--accent);cursor:pointer;background:#3b82f61a;border:1px solid #3b82f640;border-radius:8px;align-items:center;gap:3px;padding:3px 8px;font-size:.7rem;font-weight:500;display:inline-flex}.stats-goal-form-row{align-items:center;gap:4px;display:flex}.stats-goal-input{width:60px;min-height:28px;padding:4px 8px;font-size:.8rem}.stats-goal-save-btn{min-width:auto;min-height:28px;padding:4px 8px;font-size:.75rem}.stats-goal-edit-btn{min-width:auto;min-height:28px;color:var(--accent);background:0 0;border:none;padding:4px 8px;font-size:.75rem}.auth-submit-btn{padding:14px;font-size:1.05rem;position:relative;overflow:hidden}.group-search-filter-row{align-items:center;gap:8px;display:flex}.modal-panel{min-height:0}.quiz-check-btn{min-width:80px;padding:0 1rem}.timer-save-btn{min-height:36px;font-size:.85rem}.qr-memo-textarea{min-height:36px}.qr-save-btn{flex:1;min-height:36px}.qr-save-btn:disabled{cursor:not-allowed}.qr-skip-btn{min-width:auto;min-height:36px;padding:0 12px}.lobby-empty-state{padding:1.5rem}.lobby-empty-hint{opacity:.6;margin:8px 0 0;font-size:.75rem}.lobby-empty-create-btn{min-height:36px;margin-top:8px;padding:8px 20px;font-size:.85rem}.pw-strength-section{flex-direction:column;gap:6px;margin-top:-4px;display:flex}.pw-strength-bar-row{gap:4px;display:flex}.stats-weekday-chart{align-items:flex-end;gap:6px;height:80px;display:flex}.stats-weekday-col{justify-content:flex-end;align-items:center;gap:4px;height:100%}.stats-weekday-bar{width:100%;height:var(--bar-height,2px);background:#ffffff0d;border-radius:4px;transition:background .3s,height .3s}.stats-weekday-bar.chart-bar{background:#3b82f64d}.stats-weekday-bar.chart-bar[data-best]{background:var(--gradient-accent-v)}.stats-bar-label-top{color:var(--text-muted);font-size:.65rem}.stats-bar-label-top[data-best]{color:var(--accent)}.stats-bar-label-bottom{color:var(--text-muted);font-size:.7rem;font-weight:400}.stats-bar-label-bottom[data-best]{color:var(--accent);font-weight:700}.stats-avg-note{text-align:center;color:var(--accent);margin-top:10px;font-size:.85rem}.group-card-timestamp{color:var(--text-muted);opacity:.75;align-items:center;gap:3px;margin-top:1px;font-size:.7rem;display:flex}.qr-toggle-chevron{transition:transform .25s}.qr-toggle-chevron[data-open=true]{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.qr-toggle-chevron{transition:none}}.modal-celebrate-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.modal-celebrate-emoji{font-size:2rem;line-height:1;position:absolute}.records-filter-stats-row{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;margin:0;font-size:.8rem;display:flex}.records-filter-stats-left{align-items:center;gap:6px;display:inline-flex}.records-memo-counter{color:var(--text-muted);text-align:right;margin-top:-4px;font-size:.7rem}.records-memo-counter[data-over-limit]{color:var(--danger)}.records-delete-confirm-panel{background:rgba(var(--danger-rgb,239, 68, 68), .08);border:1px solid rgba(var(--danger-rgb,239, 68, 68), .25);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.records-delete-confirm-msg{color:var(--danger);font-size:.82rem}.records-delete-confirm-actions{gap:8px;display:flex}.records-delete-confirm-btn{flex:1;min-height:auto;padding:6px 0;font-size:.82rem}.records-delete-confirm-btn--danger{background:var(--danger);color:#fff;border:none;border-radius:6px}.records-filter-input{transition:border-color .2s}.records-filter-input[data-invalid=true]{border-color:var(--danger)}.records-filter-input[data-shake=true]{animation:.4s shake}.records-filter-action-row{align-items:center;gap:8px;display:flex}.records-filter-range-info{background:#3b82f61a;border:1px solid #3b82f633;border-radius:10px;align-self:flex-start;align-items:center;gap:6px;margin-top:-4px;padding:6px 12px;display:inline-flex}.records-filter-range-info-count{color:var(--accent);font-size:.9rem;font-weight:600}.records-filter-range-info-label{color:var(--text-muted);font-size:.75rem}.settings-delete-confirm-text{color:var(--danger);margin:0;font-size:.8rem;font-weight:500}.settings-delete-submit-btn{flex:1;font-size:.85rem}.settings-delete-cancel-btn,.settings-delete-trigger-btn{font-size:.85rem}.flashcard-result-progress-track{background:#ef444433;border-radius:3px;height:6px;margin-top:10px;display:flex;overflow:hidden}.flashcard-result-progress-fill{width:calc(var(--progress-pct,0) * 1%);background:linear-gradient(90deg, var(--success), #34d399);transition:width .6s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){.flashcard-result-progress-fill{transition:none}}.fc-progress-track{background:#ffffff14;border-radius:3px;width:100%;height:6px;position:relative}.fc-progress-seen{width:calc(var(--seen-pct,0) * 1%);background:linear-gradient(90deg,#3b82f659,#60a5fa59);border-radius:3px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.fc-progress-mastered{width:calc(var(--mastered-pct,0) * 1%);background:linear-gradient(90deg, var(--success), #34d399);border-radius:3px;transition:width .4s;position:absolute;top:0;bottom:0;left:0}@media (prefers-reduced-motion:reduce){.fc-progress-seen,.fc-progress-mastered{transition:none}}.fc-mode-container{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;display:flex}.fc-stats-row{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;font-size:.8rem;display:flex}.fc-stats-badge{align-items:center;gap:6px;display:flex}.fc-missed-wrapper{width:100%;max-width:300px}.fc-missed-header{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.8rem;display:flex}.quiz-done-wrapper{text-align:center}.quiz-done-title{margin-bottom:8px;font-size:1.3rem;font-weight:600}.quiz-done-score{color:var(--danger);font-size:.9rem;font-weight:600}.quiz-done-score[data-level=high]{color:var(--success)}.quiz-done-score[data-level=mid]{color:var(--warning)}.quiz-done-score[data-level=low]{color:var(--danger)}.quiz-done-avgtime{color:var(--text-muted);margin-top:6px;font-size:.75rem}.fc-done-header{text-align:center;width:100%;max-width:320px}.fc-done-title{margin-bottom:8px;font-size:1.3rem;font-weight:600}.fc-done-subtitle{color:var(--text-muted);font-size:.9rem}.fc-done-success-span{color:var(--success);margin-left:6px;font-weight:700}.fc-missed-list{flex-direction:column;gap:4px;display:flex}.fc-missed-item{background:#ef444414;border-radius:8px;justify-content:space-between;align-items:center;min-height:48px;padding:8px 12px;font-size:.85rem;display:flex}.fc-missed-item-meaning{color:var(--text-muted);font-size:.75rem}.fc-copy-all-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;min-width:auto;min-height:auto;padding:2px 6px;font-size:.75rem;transition:color .2s;display:flex}.fc-copy-all-btn[data-copied=true]{color:var(--success)}@media (prefers-reduced-motion:reduce){.fc-copy-all-btn{transition:none}}.fc-add-form-label{color:var(--accent);align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:flex}.fc-add-form-input{font-size:.9rem}.fc-add-form-btn-row{gap:8px;display:flex}.fc-add-form-submit{flex:1;padding:8px;font-size:.85rem}.fc-add-form-cancel{padding:8px;font-size:.85rem}.fc-delete-area{flex-direction:column;align-items:center;gap:8px;display:flex}.fc-delete-confirm-row{align-items:center;gap:8px;display:flex}.fc-delete-end-btn{background:var(--danger);color:#fff;border:none;border-radius:6px;min-width:auto;min-height:auto;padding:4px 12px;font-size:.8rem}.fc-delete-cancel-btn{color:var(--text-muted);background:0 0;border:none;min-width:auto;min-height:auto;padding:4px}.fc-delete-trigger-btn{color:var(--text-muted);background:0 0;border:none;font-size:.85rem}.fc-shortcuts-hint{color:var(--text-muted);opacity:.6;font-size:.65rem}.fc-action-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.fc-action-btn{min-width:140px}.word-detail-body{flex:1;min-width:0}.word-detail-meta{color:var(--accent);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;font-size:.75rem;display:flex}.quiz-action-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.quiz-action-btn{min-width:140px}.fc-stats-badge-success{color:var(--success);align-items:center;gap:2px;font-size:.78rem;font-weight:600;display:flex}.fc-stats-badge-muted{color:var(--text-muted);opacity:.4;font-size:.7rem}.fc-stats-badge-danger{color:var(--danger);align-items:center;gap:2px;font-size:.78rem;font-weight:600;display:flex}.quiz-btn-row{gap:12px;width:100%;display:flex}.quiz-btn-wrong{color:var(--danger);background:#ef44441a;border-color:#ef44444d;flex:1;padding:14px;font-size:1rem}.quiz-btn-wrong[data-anim=wrong]{animation:.2s incorrectShake}.quiz-btn-correct{flex:1;padding:14px;font-size:1rem}.quiz-btn-correct[data-anim=correct]{animation:.2s correctPop}.word-inline-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;min-width:auto;min-height:auto;padding:2px;transition:color .2s}.word-inline-action-btn[data-copied=true]{color:var(--success)}.word-inline-action-btn[data-pinned=true]{color:#f59e0b}@media (prefers-reduced-motion:reduce){.word-inline-action-btn{transition:none}}.word-owner-btn-row,.word-delete-confirm-row{align-items:center;gap:2px;display:flex}.word-delete-confirm-btn{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:6px;min-width:auto;min-height:auto;padding:4px 8px;font-size:.72rem;font-weight:600}.word-delete-cancel-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;min-width:auto;min-height:auto;padding:4px 6px}.word-delete-trigger-btn{color:var(--danger);opacity:.6;background:0 0;border:none;min-width:auto;min-height:auto;padding:8px}.word-display-row{align-items:center;gap:6px;display:flex}.word-text-span{word-break:break-word;font-size:1rem}.word-text-span[data-mastered=true]{text-decoration:line-through}.word-meaning-text{color:var(--text-muted);margin-top:2px;font-size:.8rem}.word-edit-form{flex-direction:column;flex:1;gap:6px;display:flex}.word-edit-input{min-height:32px;font-size:.875rem}.word-edit-form-btn-row{gap:6px;display:flex}.word-edit-submit-btn{flex:1;min-height:32px;font-size:.8rem}.word-edit-cancel-btn{min-width:auto;min-height:32px;padding:0 10px;font-size:.8rem}.word-list-inner{-webkit-overflow-scrolling:touch;flex-direction:column;gap:8px;height:100%;min-height:0;display:flex;overflow-y:auto}.words-load-more-btn{color:var(--accent);cursor:pointer;background:#3b82f614;border:1px solid #3b82f626;border-radius:12px;flex-shrink:0;padding:10px;font-size:.85rem}.word-add-form{flex-direction:column;gap:6px;margin-bottom:.75rem;display:flex}.word-add-input-row{gap:8px;display:flex}.word-char-counter{color:var(--text-muted);text-align:right;font-size:.7rem}.word-char-counter[data-danger]{color:var(--danger)}.meaning-char-counter{color:var(--text-muted);text-align:right;font-size:.7rem}.meaning-char-counter[data-danger]{color:var(--danger)}.bulk-section-title{color:var(--accent);font-size:.8rem;font-weight:600}.bulk-section-header{justify-content:space-between;align-items:center;display:flex}.bulk-section-hint{color:var(--text-muted);font-size:.7rem}.bulk-action-row{gap:8px;display:flex}.word-search-area{flex-direction:column;gap:8px;margin-bottom:.75rem;display:flex}.word-search-input-wrapper{position:relative}.word-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.word-search-input{min-height:40px;padding-left:36px;padding-right:16px}.word-search-input[data-has-value=true]{padding-right:36px}.word-search-clear-btn{color:var(--text-muted);cursor:pointer;opacity:.6;background:0 0;border:none;min-width:auto;min-height:auto;padding:4px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.word-filter-row{align-items:center;gap:6px;display:flex}.word-edit-icon-btn{color:var(--text-muted);opacity:.6;cursor:pointer;background:0 0;border:none;min-width:auto;min-height:auto;padding:6px}.word-mastery-btn{cursor:pointer;background:0 0;border:none;min-width:auto;min-height:auto;padding:8px}.fc-auto-speak-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:#ffffff0a;border-radius:12px;align-items:center;gap:4px;min-width:auto;min-height:auto;padding:4px 8px;font-size:.7rem;display:flex}.fc-auto-speak-btn[data-active]{color:var(--accent);background:#3b82f626;border-color:#3b82f64d}.bulk-import-textarea{resize:vertical;border:1px solid var(--border);min-height:80px;color:var(--text-main);background:#0003;border-radius:8px;padding:10px;font-size:.85rem}.bulk-word-count-row{color:var(--accent);align-items:center;gap:6px;font-size:.75rem;display:flex}.bulk-word-count-badge{background:#3b82f626;border-radius:8px;padding:2px 8px;font-weight:600}.bulk-import-submit{flex:1}.bulk-import-cancel{min-width:auto;padding:0 12px}.records-empty-state{padding:2rem 1rem}.accent-icon{color:var(--accent)}.records-range-arrow{color:var(--text-muted);flex-shrink:0}.records-memo-input{min-height:40px}.records-submit-btn{width:100%}.records-period-section{margin-bottom:.5rem}.joining-screen{text-align:center;color:var(--text-muted);margin-top:20vh}.banner-icon{font-size:1rem}.offline-banner{z-index:10000;color:#000;text-align:center;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:linear-gradient(90deg,#f59e0b,#f97316);justify-content:center;align-items:center;gap:8px;font-size:.8rem;font-weight:600;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 12px #f59e0b4d}.update-banner{z-index:10000;background:linear-gradient(135deg, var(--accent), #8b5cf6);color:#fff;text-align:center;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:.85rem;font-weight:600;transition:transform .2s;display:flex;position:fixed;bottom:80px;left:16px;right:16px;box-shadow:0 4px 20px #3b82f659}
