:root{--accent-green: #4CAF50;--accent-purple: #32BAAE;--accent-red: #F44336;--accent-warning: #FF9800;--accent-info: #2196F3;--accent-blue: #64B5F6;--accent-yellow: #FFD700;--accent-orange: #FFA726;--word-correct: #4CAF50;--word-warning: #FFC107;--word-error: #F44336;--radius-lg: 24px;--radius-md: 12px;--radius-sm: 8px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: .95rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.4;--line-height-normal: 1.5;--line-height-relaxed: 1.6;--line-height-loose: 1.8;--primary-bg: #121212;--secondary-bg: #1E1E1E;--card-bg: #2C2C2C;--card-hover: #3C3C3C;--text-primary: #FFFFFF;--text-secondary: #B3B3B3;--text-muted: #888888;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--overlay-bg: rgba(255, 255, 255, .05);--overlay-bg-medium: rgba(255, 255, 255, .08);--overlay-bg-strong: rgba(255, 255, 255, .1);--overlay-bg-stronger: rgba(255, 255, 255, .15);--border-subtle: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--border-strong: rgba(255, 255, 255, .3);--hover-overlay: rgba(255, 255, 255, .04);--backdrop-overlay: rgba(0, 0, 0, .8);--scrollbar-track: rgba(255, 255, 255, .05);--scrollbar-thumb: rgba(255, 255, 255, .2);--scrollbar-thumb-hover: rgba(255, 255, 255, .3);--loading-bg: rgba(18, 18, 18, .8)}[data-theme=dark]{--primary-bg: #121212;--secondary-bg: #1E1E1E;--card-bg: #2C2C2C;--card-hover: #3C3C3C;--text-primary: #FFFFFF;--text-secondary: #B3B3B3;--text-muted: #888888;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--overlay-bg: rgba(255, 255, 255, .05);--overlay-bg-medium: rgba(255, 255, 255, .08);--overlay-bg-strong: rgba(255, 255, 255, .1);--overlay-bg-stronger: rgba(255, 255, 255, .15);--border-subtle: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--border-strong: rgba(255, 255, 255, .3);--hover-overlay: rgba(255, 255, 255, .04);--backdrop-overlay: rgba(0, 0, 0, .8);--scrollbar-track: rgba(255, 255, 255, .05);--scrollbar-thumb: rgba(255, 255, 255, .2);--scrollbar-thumb-hover: rgba(255, 255, 255, .3);--loading-bg: rgba(18, 18, 18, .8)}[data-theme=light]{--primary-bg: #F5F7FA;--secondary-bg: #FFFFFF;--card-bg: #FFFFFF;--card-hover: #F0F2F5;--surface-elevated: #FFFFFF;--surface-sunken: #F0F2F5;--text-primary: #1A1A1A;--text-secondary: #6B7280;--text-muted: #9CA3AF;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .16);--overlay-bg: rgba(0, 0, 0, .03);--overlay-bg-medium: rgba(0, 0, 0, .05);--overlay-bg-strong: rgba(0, 0, 0, .08);--overlay-bg-stronger: rgba(0, 0, 0, .12);--border-subtle: rgba(0, 0, 0, .08);--border-medium: rgba(0, 0, 0, .12);--border-strong: rgba(0, 0, 0, .18);--hover-overlay: rgba(0, 0, 0, .04);--backdrop-overlay: rgba(0, 0, 0, .5);--scrollbar-track: rgba(0, 0, 0, .03);--scrollbar-thumb: rgba(0, 0, 0, .15);--scrollbar-thumb-hover: rgba(0, 0, 0, .25);--loading-bg: rgba(248, 250, 251, .9)}@media(prefers-color-scheme:light){:root:not([data-theme]){--primary-bg: #F5F7FA;--secondary-bg: #FFFFFF;--card-bg: #FFFFFF;--card-hover: #F0F2F5;--text-primary: #1A1A1A;--text-secondary: #6B7280;--text-muted: #9CA3AF;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .16);--overlay-bg: rgba(0, 0, 0, .03);--overlay-bg-medium: rgba(0, 0, 0, .05);--overlay-bg-strong: rgba(0, 0, 0, .08);--overlay-bg-stronger: rgba(0, 0, 0, .12);--border-subtle: rgba(0, 0, 0, .08);--border-medium: rgba(0, 0, 0, .12);--border-strong: rgba(0, 0, 0, .18);--hover-overlay: rgba(0, 0, 0, .04);--backdrop-overlay: rgba(0, 0, 0, .5);--scrollbar-track: rgba(0, 0, 0, .03);--scrollbar-thumb: rgba(0, 0, 0, .15);--scrollbar-thumb-hover: rgba(0, 0, 0, .25);--loading-bg: rgba(248, 250, 251, .9)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-family);-webkit-tap-highlight-color:transparent}html,body{height:100%;width:100%;background-color:var(--primary-bg);color:var(--text-primary);overscroll-behavior:none;touch-action:manipulation}.loading-spinner{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.small{width:24px;height:24px;border-width:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop-overlay);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-5);transition:opacity .3s ease}.modal-overlay.hidden{opacity:0;pointer-events:none}.modal-content{background:var(--card-bg);border-radius:var(--radius-lg);padding:var(--space-8);width:100%;max-width:360px;box-shadow:var(--shadow-lg);animation:modalFadeIn .3s ease-out}.modal-content.large{max-width:600px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease;user-select:none;-webkit-user-select:none}.btn:active{transform:scale(.98)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent-purple);color:#fff}.btn-primary:hover{filter:brightness(1.1)}.btn-secondary{background:transparent;color:var(--text-primary);border:2px solid var(--border-medium)}.btn-secondary:hover{background:var(--hover-overlay)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover{filter:brightness(1.1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseGlow{0%,to{box-shadow:0 0 10px var(--accent-purple)}50%{box-shadow:0 0 20px var(--accent-purple)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-select{user-select:none;-webkit-user-select:none}.safe-area-top{padding-top:env(safe-area-inset-top,0)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.safe-area-left{padding-left:env(safe-area-inset-left,0)}.safe-area-right{padding-right:env(safe-area-inset-right,0)}.lp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:var(--backdrop-overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}.lp-overlay.visible{opacity:1;pointer-events:auto}body.lp-modal-open{overflow:hidden}.lp-card{width:440px;max-width:calc(100% - 32px);max-height:80vh;background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;transform:translateY(12px) scale(.97);transition:transform .25s ease}.lp-overlay.visible .lp-card{transform:translateY(0) scale(1)}.lp-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);flex:0 0 auto}.lp-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.lp-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--overlay-bg-medium);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;flex-shrink:0}.lp-close:hover{background:var(--overlay-bg-stronger);color:var(--text-primary)}.lp-close:active{transform:scale(.92)}.lp-breadcrumb{display:none;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--border-subtle);flex:0 0 auto;overflow-x:auto;white-space:nowrap;font-size:var(--font-size-sm);-webkit-overflow-scrolling:touch}.lp-breadcrumb.visible{display:flex}.lp-breadcrumb-item{color:var(--accent-purple);cursor:pointer;background:none;border:none;font-size:inherit;padding:var(--space-1) var(--space-1);border-radius:var(--radius-sm);transition:background .15s ease;white-space:nowrap}.lp-breadcrumb-item:hover{background:var(--hover-overlay);text-decoration:underline}.lp-breadcrumb-item.current{font-weight:var(--font-weight-bold);color:var(--text-primary);cursor:default;pointer-events:none}.lp-breadcrumb-sep{color:var(--text-muted);font-size:var(--font-size-xs);flex-shrink:0;-webkit-user-select:none;user-select:none}.lp-body{flex:1 1 auto;overflow-y:auto;padding:var(--space-2) 0;min-height:0}.lp-option{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);cursor:pointer;transition:background .15s ease;border:none;background:none;width:100%;text-align:left;color:var(--text-primary);font-size:var(--font-size-base);gap:var(--space-3);opacity:0;transform:translateY(8px);animation:lp-slide-in .25s ease forwards}.lp-option:hover{background:var(--hover-overlay)}.lp-option:active{background:var(--overlay-bg-medium)}.lp-option-name{font-weight:var(--font-weight-medium);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-option-meta{font-size:var(--font-size-xs);color:var(--text-muted);flex-shrink:0;margin-left:auto}.lp-option-arrow{color:var(--text-muted);font-size:var(--font-size-xs);flex-shrink:0;margin-left:var(--space-2);transition:transform .15s ease}.lp-option:hover .lp-option-arrow{transform:translate(2px)}@keyframes lp-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lp-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--text-muted);font-size:var(--font-size-sm);gap:var(--space-3)}.lp-loading .fa-spinner{color:var(--accent-purple);font-size:var(--font-size-lg)}.lp-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--accent-red);font-size:var(--font-size-sm);text-align:center;gap:var(--space-2)}.lp-error i{font-size:var(--font-size-xl)}.lp-search{flex:0 0 auto;padding:0 var(--space-5) var(--space-3)}.lp-search-divider{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3)}.lp-search-divider:before,.lp-search-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.lp-search-divider span{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap}.lp-search-input-wrapper{position:relative;display:flex;align-items:center}.lp-search-icon{position:absolute;left:var(--space-3);color:var(--text-muted);font-size:var(--font-size-sm);pointer-events:none}.lp-search-input{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) + 20px);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--overlay-bg);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-family);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.lp-search-input::placeholder{color:var(--text-muted)}.lp-search-input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 2px #32baae33}.lp-search-results{max-height:240px;overflow-y:auto;margin-top:var(--space-2)}.lp-search-item{display:flex;align-items:center;padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary);transition:background .15s ease;gap:var(--space-2)}.lp-search-item:hover{background:var(--hover-overlay)}.lp-search-item:active{background:var(--overlay-bg-medium)}.lp-search-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-search-label mark{background:#32baae40;color:var(--accent-purple);border-radius:2px;padding:0 1px}.lp-search-empty{padding:var(--space-4) var(--space-3);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.lp-landing{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-6);text-align:center;gap:var(--space-4);flex:1 1 auto;min-height:200px}.lp-landing-icon{width:72px;height:72px;object-fit:contain;opacity:.9}.lp-landing-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.lp-landing-desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed);max-width:280px}.lp-landing-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--accent-purple);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:filter .15s ease,transform .1s ease}.lp-landing-btn:hover{filter:brightness(1.1)}.lp-landing-btn:active{transform:scale(.97)}.lp-landing-btn:focus-visible{outline:2px solid var(--accent-purple);outline-offset:3px}.lp-landing-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.lp-landing-btn-secondary{background:transparent;color:var(--accent-purple);border:1px solid var(--accent-purple)}.lp-landing-btn-secondary:hover{background:var(--accent-purple);color:#fff;filter:none}@media(max-width:480px){.lp-card{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}.lp-overlay{align-items:stretch}.lp-header,.lp-option{padding:var(--space-4)}.lp-search{padding:0 var(--space-4)}.lp-landing{padding:var(--space-8) var(--space-4)}.lp-landing-actions{flex-direction:column;width:100%}.lp-landing-actions .lp-landing-btn{width:100%;justify-content:center}}@media print{.lp-overlay,.lp-landing{display:none!important}}@media(prefers-reduced-motion:reduce){.lp-overlay,.lp-card{transition:none}.lp-option{animation:none;opacity:1;transform:none}.lp-close:active,.lp-landing-btn:active{transform:none}}:root{--dock-bg: #1E1E1E}[data-theme=dark],:root:not([data-theme]){--dock-bg: #1E1E1E}[data-theme=light]{--dock-bg: #FFFFFF}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease}.loading-overlay.hidden{opacity:0;pointer-events:none}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-subtle);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}html,body{height:100%;width:100%;overflow:hidden;background-color:var(--primary-bg);color:var(--text-primary);overscroll-behavior:none;overscroll-behavior-y:none;touch-action:manipulation}.focus-container{display:flex;flex-direction:column;height:100vh;height:-webkit-fill-available;height:100dvh;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh;position:relative;background-color:var(--primary-bg)}.focus-header{height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;padding-top:env(safe-area-inset-top,0);z-index:10;background:linear-gradient(180deg,var(--primary-bg) 0%,transparent 100%);flex-shrink:0}@media(max-width:480px){.focus-header{height:48px;padding:0 12px;padding-top:env(safe-area-inset-top,0)}.card-stage{padding:4px 0 calc(85px + env(safe-area-inset-bottom,0px)) 0}}@media(max-height:700px){.focus-header{height:44px}.card-stage{padding:4px 0 calc(80px + env(safe-area-inset-bottom,0px)) 0}}.mode-switch{display:flex;gap:4px;background:var(--overlay-bg-medium);padding:3px;border-radius:12px}.mode-btn{background:none;border:none;font-weight:500;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:6px 10px;min-height:36px;border-radius:9px;transition:all .2s ease;touch-action:manipulation}.mode-btn.disabled,.mode-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.mode-btn.disabled:hover,.mode-btn[aria-disabled=true]:hover{background:none;color:var(--text-secondary)}.mode-btn.active{color:var(--text-primary);background-color:#32baae33;border:1px solid rgba(50,186,174,.4)}.gamification-badges{display:flex;gap:10px}.progress-indicator{font-weight:400;font-size:.8rem;color:var(--text-secondary);font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;gap:6px;position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:.5;z-index:5}.info-text{display:flex;align-items:center;gap:6px;color:var(--text-secondary);transition:opacity .2s}.streak-badge{font-weight:400;background:#ff6b6b26;color:#ff6b6b;padding:5px 10px;border-radius:12px;font-size:.9rem;display:flex;align-items:center;gap:4px}.streak-badge i{font-size:1.1rem}.quota-badge{font-weight:400;background:#64b5f626;color:#64b5f6;padding:5px 10px;border-radius:12px;font-size:.9rem;display:flex;align-items:center;gap:4px;transition:transform .1s}.quota-badge i{font-size:1.1rem}.quota-badge.pulse,.streak-badge.pulse{animation:badgePulse .4s ease-in-out}@keyframes badgePulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.label-bar{flex:0 0 auto;padding:0 16px;display:flex;align-items:center}.label-bar-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:var(--overlay-bg-medium);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease;text-align:left}.label-bar-btn:hover{background:var(--overlay-bg-stronger);border-color:var(--border-medium)}.label-bar-btn:active{transform:scale(.99)}.label-bar-icon{color:var(--accent-purple);font-size:var(--font-size-base);flex-shrink:0}.label-bar-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.label-bar-arrow{color:var(--text-muted);font-size:var(--font-size-xs);flex-shrink:0;transition:transform .15s ease}.label-bar-btn:hover .label-bar-arrow{transform:translate(2px)}.label-bar.has-label .label-bar-btn{background:var(--overlay-bg);border-color:var(--accent-purple)}.label-bar.has-label .label-bar-text{color:var(--text-primary);font-weight:var(--font-weight-medium)}@media(max-width:480px){.label-bar{padding:0 12px}.label-bar-btn{padding:8px 12px;font-size:var(--font-size-xs)}}@media(prefers-reduced-motion:reduce){.label-bar-btn:active{transform:none}}.main-layout{flex:1;display:flex;position:relative;overflow:hidden;min-height:0}.sidebar-list{display:none;width:350px;background:var(--secondary-bg);border-right:1px solid var(--border-subtle);overflow-y:auto;padding:20px 20px 120px;touch-action:pan-y}.sidebar-item{padding:15px;margin-bottom:10px;background:var(--overlay-bg);border-radius:12px;cursor:pointer;transition:all .2s;border:1px solid transparent}.sidebar-item:hover{background:var(--overlay-bg-strong)}.sidebar-item.active{background:var(--dock-bg);border-color:var(--accent-purple);box-shadow:var(--shadow-md)}.sidebar-item h3{font-size:.95rem;margin-bottom:5px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item p{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-status-icon{font-size:.9rem;margin-right:4px}.sidebar-status-icon.gold{color:gold;filter:drop-shadow(0 0 5px rgba(255,215,0,.5))}.sidebar-status-icon.green{color:var(--accent-green)}.card-stage{flex:1;display:flex;justify-content:center;align-items:center;position:relative;padding:4px 0 calc(90px + env(safe-area-inset-bottom,0px)) 0;min-height:0}@media(min-width:769px){.sidebar-list{display:block}.focus-container{max-width:1400px;margin:0 auto;border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);position:relative;overflow:hidden}.camera-preview-modal{padding:0}.camera-preview-content{width:90%;max-width:600px;height:auto;max-height:90vh;border-radius:var(--radius-lg);overflow:hidden}#camera-video{max-height:60vh;height:auto}.camera-preview-header{padding:16px 20px;min-height:auto}.camera-preview-actions{padding:20px;min-height:auto}.command-dock{width:calc(100% - 350px)!important;left:350px!important;transform:none;border-radius:0;border-top:1px solid rgba(255,255,255,.05)}}.card-layout-wrapper{width:95%;max-width:500px;min-height:75%;max-height:98%;height:85%;display:flex;flex-direction:column;position:relative}.card-stack{width:100%;flex:1;position:relative;perspective:1000px;touch-action:pan-y pinch-zoom;min-height:0}.practice-card{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:24px;text-align:center;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;transition:transform .2s ease,opacity .2s ease,filter .2s ease;-webkit-transition:-webkit-transform .2s ease,opacity .2s ease,filter .2s ease;-webkit-transform:translateX(30%) scale(.92) translateZ(0);transform:translate(30%) scale(.92) translateZ(0);opacity:0;pointer-events:none;border:1px solid var(--overlay-bg);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.practice-card::-webkit-scrollbar{width:6px}.practice-card::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:3px}.practice-card::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px;transition:background .2s}.practice-card::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.practice-card{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.practice-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(to top,var(--card-bg) 0%,rgba(44,44,44,.8) 50%,transparent 100%);pointer-events:none;opacity:0;transition:opacity .3s ease;border-radius:0 0 var(--radius-lg) var(--radius-lg);z-index:1}.practice-card.scrollable:after{opacity:1}.practice-card.scrolled-to-bottom:after{opacity:0}.practice-card .scroll-indicator{position:absolute;bottom:12px;left:50%;transform:translate(-50%);color:var(--text-secondary);font-size:1.2rem;pointer-events:none;opacity:0;transition:opacity .3s ease,transform .3s ease;z-index:2;animation:scrollBounce 2s ease-in-out infinite}.practice-card.scrollable .scroll-indicator{opacity:1}.practice-card.scrolled-to-bottom .scroll-indicator{opacity:0}@keyframes scrollBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-8px)}}@media(max-width:480px){.card-layout-wrapper{max-height:100%;min-height:90%;height:95%}.practice-card{padding:16px}}@media(max-width:360px){.practice-card{padding:12px}.card-content{padding:4px 0}.card-content h2{margin-bottom:10px;line-height:1.35}.card-translation{margin-bottom:12px;line-height:1.45}.card-layout-wrapper{max-height:100%;min-height:92%;height:96%}}@media(max-height:700px){.card-layout-wrapper{max-height:100%;min-height:85%;height:92%}.practice-card{padding:14px}.card-content h2,.card-translation{margin-bottom:10px}}@media(min-height:800px){.card-layout-wrapper{max-height:95%;height:80%}}@media(min-height:1000px){.card-layout-wrapper{max-height:90%;height:75%}}@media(orientation:landscape)and (max-height:500px){.card-layout-wrapper{max-height:100%;min-height:80%;height:95%}.practice-card{padding:10px 16px}.card-content h2,.card-translation{margin-bottom:8px}.card-stage{padding:2px 0 calc(75px + env(safe-area-inset-bottom,0px)) 0}}.practice-card.active{opacity:1;-webkit-transform:translateX(0) scale(1) translateZ(0);transform:translate(0) scale(1) translateZ(0);filter:blur(0);-webkit-filter:blur(0);pointer-events:auto;z-index:2}.practice-card.playing{box-shadow:0 0 30px var(--accent-purple),0 0 60px #32baae66;border-color:var(--accent-purple)}.practice-card.playing-user{box-shadow:0 0 30px var(--accent-green),0 0 60px #4caf5066;border-color:var(--accent-green)}.practice-card.prev{opacity:.08;-webkit-transform:translateX(-92%) scale(.88) translateZ(0);transform:translate(-92%) scale(.88) translateZ(0);filter:blur(8px);-webkit-filter:blur(8px);z-index:1;pointer-events:none}.practice-card.next{opacity:.08;-webkit-transform:translateX(92%) scale(.88) translateZ(0);transform:translate(92%) scale(.88) translateZ(0);filter:blur(8px);-webkit-filter:blur(8px);z-index:1;pointer-events:none}.card-content{width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center;flex:1;min-height:0;overflow-wrap:break-word;word-break:break-word;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;padding:8px 0}.card-content h2{font-size:var(--card-text-size, clamp(1.4rem, 5vw, 2rem));margin-bottom:clamp(12px,4vw,20px);color:var(--text-primary);line-height:1.4;font-weight:700;max-width:100%;overflow-wrap:break-word;word-break:break-word;word-wrap:break-word;min-font-size:1rem}.word-good{color:var(--accent-green)}.word-fair{color:#ffc107}.word-poor{color:var(--accent-red);border-bottom:2px dotted var(--accent-red)}.word-omission{color:var(--text-secondary);opacity:.5;text-decoration:line-through}.word-insertion{color:#9c27b0;font-style:italic}.card-translation{font-size:var(--card-translation-size, 1rem);color:var(--text-secondary);margin-bottom:clamp(12px,3vw,20px);min-height:1.5em;cursor:pointer;transition:filter .3s;max-width:100%;overflow-wrap:break-word;word-break:break-word;word-wrap:break-word;line-height:1.5}.card-translation.blur{filter:blur(6px);opacity:.6}.card-feedback{margin-top:10px;width:100%;min-height:80px;display:flex;flex-direction:column;align-items:center;gap:12px}.card-feedback .score-container{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;border-radius:var(--radius-md);background:var(--overlay-bg)}.card-feedback .score-container .score-value{font-size:2.5rem;font-weight:700;line-height:1}.card-feedback .score-container .score-stars{font-size:1.5rem;letter-spacing:2px}.card-feedback .score-container.score-excellent{color:var(--accent-green);background:#4caf501a;border:1px solid rgba(76,175,80,.3)}.card-feedback .score-container.score-excellent .score-stars{color:gold}.card-feedback .score-container.score-good{color:#ffc107;background:#ffc1071a;border:1px solid rgba(255,193,7,.3)}.card-feedback .score-container.score-good .score-stars{color:#ffc107}.card-feedback .score-container.score-fair{color:#ff9800;background:#ff98001a;border:1px solid rgba(255,152,0,.3)}.card-feedback .score-container.score-fair .score-stars{color:#ff9800}.feedback-message{font-size:.9rem;background:var(--overlay-bg);padding:12px;border-radius:var(--radius-md);margin-bottom:10px;text-align:left}.feedback-praise{color:var(--accent-green);margin-bottom:4px;font-weight:700}.feedback-improve{color:#ffb74d;margin-bottom:4px;font-weight:700}.feedback-encourage{color:#64b5f6;font-size:.85rem}.feedback-words{font-size:1.1rem;font-weight:600;line-height:1.6}.word-correct{color:var(--accent-green)}.word-error{color:var(--accent-red);border-bottom:2px dotted var(--accent-red)}.word-omitted{color:var(--text-secondary);opacity:.5;text-decoration:none}.word-pending{color:var(--text-secondary);opacity:.7}.word-punct{color:var(--text-primary)}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);background:var(--overlay-bg-stronger);border:none;width:48px;height:48px;min-width:44px;min-height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:5;font-size:1.2rem;color:var(--text-primary);transition:background .2s,opacity .2s;touch-action:manipulation}.nav-arrow:hover{background:var(--border-medium)}.nav-arrow:disabled{opacity:.3;cursor:not-allowed}.nav-arrow.prev{left:10px}.nav-arrow.next{right:10px}@media(min-width:768px){.nav-arrow{width:44px;height:44px}.nav-arrow.prev{left:20px}.nav-arrow.next{right:20px}}.command-dock{position:absolute;bottom:0;left:0;width:100%;height:calc(95px + env(safe-area-inset-bottom,0px));background:var(--dock-bg);display:flex;justify-content:space-between;align-items:flex-start;padding:12px 10px;padding-bottom:env(safe-area-inset-bottom,10px);border-top-left-radius:24px;border-top-right-radius:24px;box-shadow:var(--shadow-lg);z-index:100}.command-dock:after{content:"";position:absolute;bottom:0;left:0;right:0;height:env(safe-area-inset-bottom,0px);background:var(--dock-bg);z-index:-1}@media(max-height:700px){.command-dock{height:calc(85px + env(safe-area-inset-bottom,0px));padding:10px;padding-bottom:env(safe-area-inset-bottom,8px)}}@media(max-width:480px){.command-dock{height:calc(90px + env(safe-area-inset-bottom,0px));padding:10px 8px;padding-bottom:env(safe-area-inset-bottom,8px);border-top-left-radius:20px;border-top-right-radius:20px}}.dock-left,.dock-right{display:flex;align-items:center;gap:15px;flex:1}.dock-left{justify-content:flex-start;padding-left:5px}.dock-right{justify-content:flex-end;padding-right:5px}.dock-center{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.dock-timer{font-family:monospace;font-size:.9rem;color:var(--text-secondary);margin-bottom:8px;background:var(--overlay-bg-medium);padding:2px 8px;border-radius:10px;opacity:0;transition:opacity .3s;position:absolute;top:-25px;z-index:151}.record-btn.recording~.dock-timer,.dock-timer:not(.hidden){opacity:1}.dock-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-width:44px;min-height:44px}.dock-btn:active{transform:scale(.92)}.record-btn{width:72px;height:72px;border-radius:50%;background:var(--accent-green);color:#000;font-size:1.8rem;box-shadow:0 0 20px #4caf5066;position:relative;z-index:1000;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.record-btn.recording{background-color:var(--accent-red);box-shadow:0 0 30px #f4433699;transform:scale(1.1)}.record-btn.locked{opacity:.6;cursor:not-allowed;background-color:var(--text-secondary);box-shadow:none;transform:scale(.95);position:relative}.record-btn.locked:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:50%;border:3px solid transparent;border-top-color:#fffc;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:50px;height:50px;border-radius:20px;background-color:var(--overlay-bg-medium);color:var(--text-primary);font-size:1.2rem}.icon-btn-sm{width:32px;height:32px;border-radius:10px;background-color:var(--overlay-bg);color:var(--text-secondary);font-size:.85rem;margin-left:8px;transition:all .2s}.icon-btn-sm:hover{background-color:var(--overlay-bg-stronger);color:var(--text-primary)}.speed-btn{width:50px;height:50px;border-radius:20px;background-color:var(--overlay-bg-medium);color:var(--accent-purple);font-weight:700;font-size:.85rem;display:flex;flex-direction:column;justify-content:center;gap:2px}.user-audio-group{display:flex;align-items:center;gap:6px;background:var(--overlay-bg);padding:4px 8px 4px 4px;border-radius:24px;transition:all .3s;position:relative;overflow:hidden}.user-audio-group .icon-btn{width:40px;height:40px;border-radius:16px;font-size:1rem}.audio-progress-bar{position:absolute;bottom:0;left:0;width:100%;height:3px;background:var(--border-subtle)}.progress-fill{height:100%;background:var(--accent-green);width:0%;transition:width .1s linear}.audio-duration{font-size:.8rem;color:var(--accent-green);font-family:monospace;font-weight:600;position:relative;z-index:1}.hidden{display:none!important}.dock-visualizer{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:140px;height:140px;pointer-events:none;z-index:1;opacity:0;transition:opacity .3s;border-radius:50%;border:2px solid rgba(244,67,54,.3)}.record-btn.recording+.dock-visualizer{opacity:1;animation:ripple 1.5s infinite}@keyframes ripple{0%{width:72px;height:72px;opacity:.8;border-width:4px}to{width:140px;height:140px;opacity:0;border-width:0px}}.fullscreen-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--backdrop-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:200;padding:20px;display:flex;flex-direction:column;justify-content:center}.overlay-content{max-width:500px;margin:0 auto;width:100%;background:var(--card-bg);padding:30px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-primary);display:flex;flex-direction:column;max-height:90vh;height:90vh;overflow:hidden}@media(min-height:800px){.overlay-content{height:93vh;max-height:93vh}.input-container{gap:16px}}@media(min-height:900px){.overlay-content{height:95vh;max-height:95vh}.input-container{gap:18px}}@media(min-height:1000px){.overlay-content{height:96vh;max-height:96vh}}@media(max-width:375px){.overlay-content{padding:12px;max-height:98vh;height:98vh}.fullscreen-overlay{padding:4px}.input-container{gap:10px}.overlay-header h2{font-size:1rem}.overlay-header{margin-bottom:12px}.rate-limit-indicator{padding:8px 10px;margin-bottom:6px}.rate-limit-label,.rate-limit-text{font-size:.8rem}.input-group label{font-size:.8rem;margin-bottom:6px}textarea{padding:10px;font-size:.9rem}.btn-generate{padding:10px;font-size:.85rem}.estimated-requests{font-size:.75rem;margin-top:6px}.byot-history-separator{margin:10px 0}.byot-history-container{margin-top:8px}.byot-history-container h3{font-size:.9rem;margin-bottom:10px}.byot-history-item{padding:10px}.byot-history-item-title{font-size:.85rem}.byot-history-item-meta{font-size:.75rem}.byot-export-btn{padding:4px 8px;font-size:.8rem}}.feature-disabled-banner{display:flex;gap:12px;align-items:flex-start;background:var(--overlay-bg-medium);border:1px dashed var(--border-medium);padding:14px 16px;border-radius:var(--radius-md);margin-bottom:20px;color:var(--text-secondary)}.feature-disabled-banner i{font-size:1.2rem;color:var(--accent-purple);margin-top:2px}.feature-disabled-banner .banner-title{color:var(--text-primary);font-weight:600;margin-bottom:4px}.feature-disabled-banner .banner-desc{font-size:.9rem;line-height:1.4}.overlay-header{display:flex;justify-content:center;align-items:center;margin-bottom:30px;position:relative;flex-shrink:0}.overlay-header h2{font-size:1.4rem}.close-btn{background:var(--overlay-bg-stronger);border:1px solid var(--border-medium);color:var(--text-primary);width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;position:absolute;right:0;transition:all .2s ease}.close-btn:hover{background:var(--accent-red);border-color:var(--accent-red);color:#fff;transform:scale(1.05)}.close-btn:active{transform:scale(.95)}.input-container{display:flex;flex-direction:column;gap:20px;flex:1 1 0;min-height:0;overflow:hidden}#byot-editor .input-container{justify-content:flex-start}.byot-scrollable-content{display:flex;flex-direction:column;gap:16px;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb-hover) transparent}.byot-scrollable-content::-webkit-scrollbar{width:6px}.byot-scrollable-content::-webkit-scrollbar-track{background:transparent}.byot-scrollable-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-hover);border-radius:3px}.byot-scrollable-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.byot-footer{flex-shrink:0;padding-top:16px;border-top:1px solid var(--border-subtle);margin-top:8px}.byot-footer .btn-generate{width:100%}.rate-limit-indicator{background:var(--overlay-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 16px;flex-shrink:0;position:relative}.rate-limit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rate-limit-label{font-size:.9rem;color:var(--text-primary);font-weight:600;display:flex;align-items:center;gap:6px}.rate-limit-help{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0;font-size:.85rem;opacity:.7;transition:opacity .2s ease,color .2s ease}.rate-limit-help:hover{opacity:1;color:var(--accent)}.rate-limit-text{font-size:.9rem;color:var(--text-secondary);font-weight:500}.rate-limit-text.warning{color:#ff9800}.rate-limit-text.danger{color:#f44336}.rate-limit-progress-container{width:100%;height:6px;background:var(--border-subtle);border-radius:3px;overflow:hidden}.rate-limit-progress{height:100%;background-color:#4caf50;border-radius:3px;transition:width .3s ease,background-color .3s ease}.rate-limit-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:.8rem;color:var(--text-secondary);min-height:1.2em}.rate-limit-reset{opacity:.8}.estimated-requests{text-align:right}.estimated-requests.warning{color:#ff9800}.estimated-requests.danger{color:#f44336}.rate-limit-tooltip{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--card-bg);border:1px solid var(--overlay-bg-stronger);border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow-lg);z-index:10;animation:tooltipFadeIn .2s ease}.rate-limit-tooltip.hidden{display:none}.rate-limit-tooltip p{margin:0;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.rate-limit-tooltip p:first-child{color:var(--text-primary);margin-bottom:4px}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.byot-history-separator{width:100%;height:1px;background:var(--border-subtle);margin:16px 0;flex-shrink:0}.byot-history-container{margin-top:0;flex:1 1 0;display:flex;flex-direction:column;min-height:0;overflow:hidden;max-height:none}.byot-history-container h3{font-size:1.1rem;color:var(--text-primary);margin-bottom:16px;font-weight:600;flex-shrink:0;display:flex;align-items:center;gap:8px}.byot-history-container h3 i{font-size:1rem}.byot-history-list{display:flex;flex-direction:column;gap:12px;flex:1 1 0;overflow-y:auto;overflow-x:hidden;padding-right:4px;min-height:0;max-height:none;touch-action:pan-y}.byot-history-list::-webkit-scrollbar{width:6px}.byot-history-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.byot-history-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.byot-history-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media(max-width:375px){.byot-history-separator{margin:8px 0}.byot-history-container{margin-top:0}.byot-history-list{max-height:150px;gap:8px}.byot-continue-badge{font-size:.65rem;padding:3px 7px;margin-bottom:6px;gap:4px}.byot-continue-badge i{font-size:.6rem}.byot-history-empty{padding:12px;font-size:.8rem}}.byot-history-item{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:16px;cursor:pointer;transition:all .2s ease}.byot-history-item:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-2px)}.byot-history-item.active{border-color:var(--accent-purple);background:#32baae1a}.byot-continue-badge{display:inline-flex;align-items:center;gap:6px;background:var(--accent-purple);color:#fff;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:12px;margin-bottom:8px;flex-shrink:0}.byot-continue-badge i{font-size:.7rem}.byot-history-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.byot-history-item-title{font-size:1rem;color:var(--text-primary);font-weight:500;flex:1;display:flex;align-items:center;gap:6px}.byot-history-item-title i{font-size:.9rem;flex-shrink:0}.byot-export-btn{background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-secondary);padding:6px 10px;cursor:pointer;transition:all .2s ease;font-size:.9rem;display:flex;align-items:center;justify-content:center}.byot-export-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:var(--text-primary)}.byot-history-item-meta{font-size:.85rem;color:var(--text-secondary)}.byot-history-empty{text-align:center;color:var(--text-secondary);font-size:.9rem;padding:24px;font-style:italic}.byot-manager-container{display:flex;flex-direction:column;gap:16px;padding:20px 0;flex:1 1 0;min-height:0;overflow:hidden}.byot-slots-container{display:flex;flex-direction:column;gap:16px;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;touch-action:pan-y}.byot-slot{background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:16px;height:140px;min-height:140px;max-height:140px;flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .3s ease;cursor:pointer;box-shadow:0 2px 8px #00000026;position:relative;overflow:visible;box-sizing:border-box;margin-top:20px}.byot-slot:hover{background:#ffffff14;border-color:#ffffff40;transform:translateY(-3px);box-shadow:0 4px 12px #00000040}.byot-slot-empty{border-style:dashed;border-color:#ffffff26;background:#ffffff05}.byot-slot-empty:hover{border-color:#32baae66;background:#32baae0d}.byot-slot-filled{align-items:flex-start;justify-content:space-between;cursor:pointer;border-color:#ffffff26;background:#ffffff0f}.byot-slot-filled:hover{border-color:#ffffff40;background:#ffffff1a}.byot-slot-last{border-color:#32baae99;border-width:2.5px;margin-top:24px}.byot-slot-last:hover{border-color:#32baaecc;background:#32baae0d}.byot-slot-content{width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.byot-last-practice-badge{position:absolute;top:0;left:50%;transform:translate(-50%) translateY(-100%);display:inline-flex;align-items:center;gap:4px;background:var(--accent-purple);color:#fff;font-size:.7rem;font-weight:600;padding:4px 12px;border-radius:8px 8px 0 0;white-space:nowrap;z-index:10;box-shadow:0 -2px 4px #0003;border-bottom:none}.byot-last-practice-badge i{font-size:.65rem}.byot-slot-title{font-size:1.1rem;color:var(--text-primary);font-weight:600;flex-shrink:0;display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.byot-slot-title i{font-size:1rem;color:var(--accent-purple);flex-shrink:0}.byot-slot-actions{display:flex;gap:8px;flex-shrink:0;justify-content:flex-start;width:100%}.byot-slot-btn{background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-secondary);padding:6px 12px;cursor:pointer;transition:all .2s ease;font-size:.85rem;display:flex;align-items:center;gap:6px}.byot-slot-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:var(--text-primary)}.byot-slot-btn.download-btn:hover{border-color:var(--accent-green);color:var(--accent-green)}.byot-slot-btn.delete-btn:hover{border-color:var(--accent-red);color:var(--accent-red)}.byot-slot-meta{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:12px;flex-shrink:0;width:100%}.byot-slot-add-btn{background:var(--accent-purple);color:#fff;border:none;border-radius:var(--radius-md);padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.byot-slot-add-btn:hover{background:#32baaecc;transform:translateY(-2px)}.delete-confirm-body{padding:20px 0}.delete-confirm-body p{color:var(--text-primary);font-size:1rem;margin-bottom:24px;line-height:1.6}.delete-confirm-actions{display:flex;gap:12px;justify-content:flex-end}.btn-danger{background:var(--accent-red);color:#fff;border:none;border-radius:var(--radius-md);padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:#f44336cc}.btn-secondary{background:#ffffff1a;color:var(--text-primary);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#ffffff26}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary{background:var(--accent-purple);color:#fff;border:none;border-radius:var(--radius-md);padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#32baaed9;box-shadow:0 4px 12px #32baae4d}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{background:#ffffff1a;color:var(--text-secondary);cursor:not-allowed;box-shadow:none}.byot-slots-container::-webkit-scrollbar{width:6px}.byot-slots-container::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.byot-slots-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.byot-slots-container::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media(max-width:480px){.byot-manager-container{padding:16px 0;gap:12px}.byot-slots-container{gap:12px}.byot-slot{padding:12px;height:140px;min-height:140px;max-height:140px;margin-top:20px}.byot-slot-last{margin-top:24px}.byot-slot-title{font-size:1rem}.byot-slot-meta{font-size:.85rem;gap:10px}.byot-slot-btn{padding:6px 10px;font-size:.8rem}.byot-slot-add-btn{padding:10px 20px;font-size:.9rem}.byot-last-practice-badge{font-size:.65rem;padding:3px 8px}}@media(max-width:375px){.byot-slot{padding:12px;height:140px;min-height:140px;max-height:140px;border-width:1.5px;margin-top:20px}.byot-slot-last{margin-top:24px;border-width:2px}.byot-slot-title{font-size:.95rem}.byot-slot-meta{font-size:.8rem;gap:8px}.byot-slot-btn{padding:6px 10px;font-size:.75rem}.byot-last-practice-badge{font-size:.6rem;padding:3px 8px}}.estimated-requests{font-size:.85rem;color:var(--text-secondary);margin-top:8px;display:none;align-items:center;gap:6px}.estimated-requests:not([style*="display: none"]){display:flex}.estimated-requests i{font-size:.8rem}.input-group{flex-shrink:0}.input-group label{display:block;margin-bottom:10px;font-weight:600;color:var(--text-secondary);font-size:.9rem}textarea{width:100%;padding:15px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);font-size:1rem;color:var(--text-primary);resize:none;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}@media(max-width:375px){#english-input{min-height:70px}}@media(min-height:800px){#english-input{min-height:120px}}@media(min-height:900px){#english-input{min-height:150px}}textarea:focus{outline:none;border-color:var(--accent-purple)}textarea.feature-disabled-field,textarea[readonly]{opacity:.45;cursor:not-allowed}.radio-group{display:flex;gap:15px;background:#0003;padding:10px;border-radius:var(--radius-md)}.radio-label{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.btn-generate{background-color:var(--accent-purple);color:#fff;border:none;padding:16px;border-radius:var(--radius-md);font-weight:700;font-size:1rem;cursor:pointer;margin-top:10px;transition:transform .1s;flex-shrink:0}.btn-generate:active{transform:scale(.98)}.btn-generate.disabled,.btn-generate[aria-disabled=true]{background-color:#ffffff1a;color:var(--text-secondary);cursor:not-allowed;box-shadow:none}.ocr-upload-section{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.ocr-buttons{display:flex;gap:10px;flex-wrap:wrap}.btn-ocr{flex:1;min-width:120px;background-color:#ffffff1a;color:var(--text-primary);border:1px solid rgba(255,255,255,.2);padding:12px 16px;border-radius:var(--radius-md);font-weight:500;font-size:.9rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.btn-ocr:hover{background-color:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.btn-ocr:active{transform:translateY(0)}.btn-ocr i{font-size:1rem}.btn-ocr.hidden{display:none}.image-preview-container{position:relative;width:100%;max-height:300px;border-radius:var(--radius-md);overflow:hidden;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.image-preview-container.hidden{display:none}.image-preview-container img{width:100%;height:auto;max-height:300px;object-fit:contain;display:block}.btn-remove-image{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;background:#000000b3;border:1px solid rgba(255,255,255,.2);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.btn-remove-image:hover{background:#f44336cc;border-color:var(--accent-red)}.btn-remove-image i{font-size:.9rem}.ocr-progress{display:flex;flex-direction:column;gap:8px;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md)}.ocr-progress.hidden{display:none}.ocr-progress-bar{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.ocr-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-purple),var(--accent-green));border-radius:3px;transition:width .3s ease;width:0%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.ocr-progress-text{font-size:.85rem;color:var(--text-secondary);text-align:center}.camera-preview-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;z-index:10000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.camera-preview-modal.hidden{display:none}.camera-preview-content{width:90%;max-width:600px;background:var(--card-bg);border-radius:var(--radius-lg);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;max-height:90vh;height:100%;min-height:0;position:relative}.camera-preview-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);min-height:60px;position:relative;z-index:1}.camera-preview-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.btn-close-camera{width:32px;height:32px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-close-camera:hover{background:#fff3}.camera-video-container{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;background:#000}#camera-video{width:100%;height:100%;min-height:0;max-height:100%;object-fit:cover;background:#000;overflow:hidden}.camera-square-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.camera-square-guide{width:min(100%,100vw);aspect-ratio:1 / 1;max-width:100%;max-height:100%;border:2px solid rgba(255,255,255,.7);border-radius:8px;box-shadow:0 0 0 9999px #00000080;z-index:1}.camera-preview-actions{padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px;min-height:180px;position:relative;z-index:1}.camera-usage-info{width:100%;text-align:center;padding:12px;background:#ffffff0d;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1)}.camera-usage-text{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.95rem;color:var(--text-primary);margin-bottom:6px}.camera-usage-text i{color:var(--accent-purple);font-size:1rem}.camera-usage-text #camera-usage-count{font-weight:700;font-size:1.1rem;color:#4caf50}.camera-usage-label{color:var(--text-secondary);font-size:.85rem}.camera-reset-time{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.85rem;color:var(--accent-purple);margin-top:6px;padding:6px 10px;background:#9c27b01a;border-radius:var(--radius-sm);border:1px solid rgba(156,39,176,.2)}.camera-reset-time i{font-size:.9rem}.camera-reset-time #camera-reset-time-text{font-weight:500;font-variant-numeric:tabular-nums}.camera-usage-hint{font-size:.8rem;color:var(--text-secondary);margin-top:4px;font-style:italic}.btn-capture{width:64px;height:64px;border-radius:50%;background:var(--accent-purple);border:4px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .2s ease;box-shadow:0 4px 12px #32baae66}.btn-capture:hover{transform:scale(1.05);box-shadow:0 6px 16px #32baae99}.btn-capture:active{transform:scale(.95)}.btn-capture:disabled{opacity:.5!important;cursor:not-allowed!important;pointer-events:none}@media(max-width:768px){.ocr-buttons{flex-direction:column}.btn-ocr{width:100%;min-width:unset}.image-preview-container,.image-preview-container img{max-height:200px}.camera-preview-content{width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;overflow:hidden}.camera-video-container{max-height:calc(100dvh - 280px)}#camera-video{width:100%;min-height:0;max-height:calc(100dvh - 280px);object-fit:cover}.camera-preview-header{padding:12px 16px;min-height:48px}.camera-preview-actions{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:10px;min-height:auto}.camera-usage-info{padding:8px}.camera-usage-text{font-size:.85rem;margin-bottom:2px}.camera-usage-hint{font-size:.75rem;margin-top:2px}.camera-reset-time{font-size:.8rem;padding:4px 8px;margin-top:2px}.btn-capture{width:56px;height:56px;font-size:1.3rem;flex-shrink:0}}.star-rating{display:flex;justify-content:center;gap:8px;font-size:1.8rem;color:gold;margin:5px 0;text-shadow:0 0 12px rgba(255,215,0,.4)}.star-dim{opacity:.2;filter:grayscale(100%);text-shadow:none}.detail-btn{margin-top:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--text-secondary);padding:6px 16px;border-radius:20px;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.detail-btn:hover{background:#fff3;color:var(--text-primary);transform:translateY(-1px)}[data-theme=light] .detail-btn{background:#00000014;border:1px solid rgba(0,0,0,.15);color:var(--text-primary);font-weight:500}[data-theme=light] .detail-btn:hover{background:#0000001f;border-color:#00000040;color:var(--text-primary)}.assessment-summary{text-align:center;margin-bottom:30px}.assessment-section{margin-bottom:25px}.assessment-section h3{font-size:1rem;color:var(--text-secondary);margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:5px}.score-bars{display:flex;flex-direction:column;gap:15px}.score-bar-item{display:flex;align-items:center;gap:12px;font-size:.95rem}.score-bar-label{width:110px;font-weight:600}.score-bar-track{flex:1;height:10px;background:#ffffff1a;border-radius:5px;overflow:hidden}.score-bar-fill{height:100%;background:var(--accent-purple);border-radius:5px;transition:width 1s ease-out}.score-bar-value{width:35px;text-align:right;font-weight:700;font-family:monospace}.sandwich-box{background:#ffffff0d;padding:20px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.05)}.sandwich-item{margin-bottom:15px;display:flex;gap:12px;line-height:1.5}.sandwich-item:last-child{margin-bottom:0}.sandwich-icon{font-size:1.4rem;min-width:24px;text-align:center}.error-words-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.error-word-chip{background:#f4433626;color:#ff8a80;border:1px solid rgba(244,67,54,.3);padding:4px 12px;border-radius:16px;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.error-word-chip:hover{background:#f443364d;transform:scale(1.05)}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background:#1e1e1ef2;color:var(--text-primary);padding:12px 24px;border-radius:50px;box-shadow:0 4px 12px #0000004d;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:8px;animation:slideDown .3s ease-out forwards;pointer-events:auto;font-size:.9rem;max-width:90vw;white-space:nowrap}.toast i{font-size:1rem;flex-shrink:0}@media(max-width:480px){.toast{padding:10px 16px;font-size:.8rem;gap:6px;max-width:95vw}.toast i{font-size:.9rem}}.toast.warning{border-color:#ffb74d;color:#ffb74d}.toast.error{border-color:var(--accent-red);color:var(--accent-red)}.toast.success{border-color:var(--accent-green);color:var(--accent-green)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{to{opacity:0;transform:translateY(-20px)}}.share-template{position:fixed;left:-9999px;top:0;width:1080px;height:1080px;background:radial-gradient(circle at 50% 30%,#2d3436,#000);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:80px;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#fff;z-index:-1;overflow:hidden}.share-bg-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:800px;height:800px;background:radial-gradient(circle,#ffd70026,#0000 70%);border-radius:50%;z-index:0}.share-bg-particles{position:absolute;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(white 1px,transparent 1px),radial-gradient(rgba(255,215,0,.5) 2px,transparent 2px);background-size:50px 50px,120px 120px;background-position:0 0,25px 25px;opacity:.3;z-index:0}.share-header{font-size:3.5rem;font-weight:800;color:var(--accent-green);display:flex;align-items:center;gap:24px;z-index:1;text-shadow:0 4px 20px rgba(76,175,80,.3);letter-spacing:1px}.share-body{flex:1;display:flex;align-items:center;justify-content:center;width:100%;z-index:1;position:relative}.share-body:before{content:'"';position:absolute;top:100px;left:-40px;font-size:15rem;font-family:Georgia,serif;color:#ffffff0d;z-index:-1}.share-body h2{font-size:5.5rem;line-height:1.3;text-align:center;margin:0;color:#fff;text-shadow:0 10px 30px rgba(0,0,0,.8);font-weight:800;max-width:90%}.share-footer{display:flex;flex-direction:column;align-items:center;gap:40px;z-index:1;width:100%}.share-status{display:flex;flex-direction:column;align-items:center;gap:15px}.share-stars{font-size:6rem;color:gold;gap:25px;display:flex;filter:drop-shadow(0 0 20px rgba(255,215,0,.6))}.share-badge{font-size:2.5rem;font-weight:700;background:linear-gradient(90deg,gold,orange);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:4px;text-transform:uppercase;text-shadow:0 4px 20px rgba(255,165,0,.3)}.share-date{font-size:1.8rem;color:#ffffff80;font-family:monospace;letter-spacing:2px;margin-top:20px;border-top:2px solid rgba(255,255,255,.1);padding-top:20px;width:60%;text-align:center}.card-share-glory{margin-top:16px;display:flex;justify-content:center;align-items:center}.card-share-glory.hidden{display:none}.btn-share-glory-inline{background:linear-gradient(45deg,gold,orange);border:none;border-radius:50px;padding:10px 20px;font-size:1rem;font-weight:700;color:#000;cursor:pointer;display:flex;align-items:center;gap:8px;margin:0;box-shadow:0 4px 15px #ffd7004d;transition:transform .2s,box-shadow .2s;animation:pulse-glow 2s ease-in-out infinite}.btn-share-glory-inline:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ffd70080;animation:pulse-glow 1.5s ease-in-out infinite}.btn-share-glory-inline:active{transform:translateY(0)}@keyframes pulse-glow{0%,to{box-shadow:0 4px 15px #ffd7004d,0 0 #ffd70066}50%{box-shadow:0 4px 15px #ffd70080,0 0 0 8px #ffd70000}}.celebration-animation{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:200;overflow:hidden}.celebration-animation.hidden{display:none}.confetti-container{position:absolute;width:100%;height:100%;overflow:hidden}.confetti{position:absolute;width:12px;height:12px;background:gold;top:-12px;border-radius:2px;animation:confetti-fall linear forwards}@keyframes confetti-fall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}to{transform:translateY(100vh) translate(calc(var(--drift) * 50px)) rotate(720deg);opacity:0}}.streamers-container{position:absolute;width:100%;height:100%;overflow:hidden}.streamer{position:absolute;width:5px;height:250px;top:-250px;background:linear-gradient(to bottom,gold,orange,#ff6b6b,#4ecdc4,#95e1d3);border-radius:2px;animation:streamer-fall linear forwards;box-shadow:0 0 10px #ffd70080}@keyframes streamer-fall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}to{transform:translateY(calc(100vh + 250px)) translate(calc(var(--sway) * 30px)) rotate(360deg);opacity:0}}@keyframes burst-out{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--end-x),var(--end-y)) scale(0);opacity:0}}.burst-particle{z-index:201}.card-content h2 u strong,.sidebar-item h3 u strong{color:var(--accent-purple);text-decoration-color:var(--accent-purple)}.cache-refresh-btn{width:28px;height:28px;border-radius:50%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);font-size:11px;cursor:pointer;opacity:.4;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;margin:0}.cache-refresh-btn:hover{opacity:.8;background:#ffffff1a;color:var(--text-primary)}.cache-refresh-btn:active{transform:scale(.9)}.cache-refresh-btn.refreshing i{animation:spin 1s linear infinite}#assessment-modal .overlay-content{display:flex;flex-direction:column;overflow:hidden}#assessment-detail-body{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:8px;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}#assessment-detail-body::-webkit-scrollbar{width:6px}#assessment-detail-body::-webkit-scrollbar-track{background:transparent}#assessment-detail-body::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}#assessment-detail-body::-webkit-scrollbar-thumb:hover{background:#ffffff80}.assessment-empty{text-align:center;color:var(--text-secondary);padding:40px 20px}.sandwich-comment{background:linear-gradient(135deg,#32baae1a,#4caf501a);border-radius:16px;padding:20px;margin-bottom:24px;border:1px solid rgba(255,255,255,.1)}.sandwich-comment p{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;font-size:14px;line-height:1.5}.sandwich-comment p:last-child{margin-bottom:0}.sandwich-comment i{flex-shrink:0;width:20px;text-align:center;margin-top:2px}.comment-praise,.comment-praise i{color:#4caf50}.comment-suggestion,.comment-suggestion i{color:#ffc107}.comment-encouragement,.comment-encouragement i{color:#e91e63}.assessment-overall{margin-bottom:24px}.assessment-overall h3,.assessment-sentence h3,.assessment-words h3,.assessment-tips h3{font-size:14px;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.score-item{background:#ffffff0d;border-radius:12px;padding:16px 8px;text-align:center;border:1px solid rgba(255,255,255,.1)}.score-item.score-excellent{border-color:#4caf5080;background:#4caf501a}.score-item.score-good{border-color:#ffc10780;background:#ffc1071a}.score-item.score-fair{border-color:#ff980080;background:#ff98001a}.score-item.score-poor{border-color:#f4433680;background:#f443361a}.score-icon{font-size:18px;margin-bottom:8px;color:var(--text-secondary)}.score-value{font-size:28px;font-weight:700;color:var(--text-primary)}.score-label{font-size:11px;color:var(--text-secondary);margin-top:4px}.assessment-sentence{margin-bottom:24px}.assessment-sentence p{font-size:18px;line-height:1.6;color:var(--text-primary);padding:16px;background:#ffffff0d;border-radius:12px}.assessment-words{margin-bottom:24px}.word-list{display:flex;flex-wrap:wrap;gap:8px}.word-item{background:#ffffff0d;border-radius:8px;padding:8px 12px;text-align:center;min-width:60px;border:1px solid rgba(255,255,255,.1);position:relative;cursor:pointer;transition:all .2s ease}.word-item:hover{background:#ffffff1a;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.word-item:focus{outline:2px solid var(--accent-green);outline-offset:2px}.word-item:active{transform:translateY(0)}.word-play-hint{position:absolute;top:4px;right:4px;font-size:10px;color:var(--text-secondary);opacity:0;transition:opacity .2s ease}.word-item:hover .word-play-hint{opacity:1}.word-item.score-excellent{border-color:#4caf5080}.word-item.score-good{border-color:#ffc10780}.word-item.score-fair{border-color:#ff980080}.word-item.score-poor{border-color:#f4433680}.word-text{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.word-score{font-size:20px;font-weight:700}.word-item.score-excellent .word-score{color:#4caf50}.word-item.score-good .word-score{color:#ffc107}.word-item.score-fair .word-score{color:#ff9800}.word-item.score-poor .word-score{color:#f44336}.word-error{font-size:10px;color:#f44336;margin-top:4px;background:#f4433633;padding:2px 6px;border-radius:4px}.word-details{display:flex;justify-content:center;gap:8px;margin-top:4px;font-size:10px;color:var(--text-secondary)}.assessment-tips{background:#2196f31a;border:1px solid rgba(33,150,243,.3);border-radius:12px;padding:16px}.assessment-tips ul{margin:0;padding-left:20px}.assessment-tips li{color:var(--text-primary);margin-bottom:8px;line-height:1.5}.assessment-tips li:last-child{margin-bottom:0}@media(max-width:480px){.score-grid{grid-template-columns:repeat(2,1fr)}.score-value{font-size:24px}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-overlay.hidden{display:none}.modal-content{background:var(--card-bg);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:360px;box-shadow:0 20px 60px #00000080;animation:modalFadeIn .3s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.login-modal h2{margin:0 0 8px;font-size:1.5rem;color:var(--text-primary);text-align:center}.login-subtitle{margin:0 0 16px;font-size:.9rem;color:var(--text-secondary);text-align:center}.login-modal{text-align:center}.login-logo{width:64px;height:64px;margin-bottom:16px;border-radius:12px}.login-description{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:.5rem 0 1.5rem;text-align:center}.login-actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.login-divider{display:flex;align-items:center;gap:1rem;color:var(--text-secondary);font-size:.85rem}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-subtle, rgba(128,128,128,.3))}.btn-guest{font-size:.9rem}.guest-hint{color:var(--text-secondary);font-size:.8rem;margin-top:1rem;text-align:center}.guest-hint i{margin-right:.3rem}.btn-login{margin-top:8px;padding:14px 24px;font-size:1rem;font-weight:600;width:100%;background:var(--accent-purple);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-login:hover:not(:disabled){background:#32baaed9;box-shadow:0 4px 12px #32baae4d}.btn-login:active:not(:disabled){transform:scale(.98)}.switch-modal h3{margin:0 0 16px;font-size:1.2rem;color:var(--text-primary);text-align:center}.current-user-info{background:var(--overlay-bg);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.current-user-info p{margin:0;padding:8px 0;color:var(--text-secondary);font-size:.95rem}.current-user-info p:last-child{padding-bottom:0}.user-name-display{font-size:1.1rem;font-weight:500;color:var(--text-primary)}.user-name-display i{margin-right:.4rem}.sync-status{font-size:.85rem}.sync-status i{margin-right:.3rem;color:var(--accent-purple)}.guest-warning{color:var(--warning-color, #FFA726);font-size:.9rem}.guest-warning i{margin-right:.3rem}.upgrade-hint{font-size:.85rem;line-height:1.5}.modal-actions{display:flex;gap:12px}.modal-actions .btn{flex:1;padding:12px 16px;font-size:.95rem}.btn-secondary{background:var(--overlay-bg-strong);color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover{background:var(--overlay-bg-stronger)}.header-right{display:flex;align-items:center;gap:12px}.btn-icon{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:var(--radius-sm);transition:color .2s ease,background .2s ease}.btn-icon:hover{color:var(--text-primary);background:var(--overlay-bg-strong)}.btn-icon i{font-size:1rem}@media(max-width:480px){.modal-content{padding:24px;max-width:100%}.login-modal h2{font-size:1.3rem}.btn-login{padding:12px 20px}}.theme-toggle-section{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--overlay-bg);border-radius:var(--radius-md);margin-bottom:16px;border:1px solid var(--border-subtle)}.theme-label{font-size:.9rem;color:var(--text-primary);font-weight:500}.theme-toggle-switch{display:flex;gap:4px;background:var(--overlay-bg-medium);padding:3px;border-radius:10px}.theme-option{background:none;border:none;padding:8px 12px;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:40px}.theme-option:hover{color:var(--text-primary);background:var(--overlay-bg-strong)}.theme-option.active{background:var(--accent-purple);color:#fff;box-shadow:0 2px 8px #32baae4d}.theme-option i{font-size:.95rem}[data-theme=light] .practice-card{box-shadow:0 8px 32px #00000014,0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.06)}[data-theme=light] .command-dock{box-shadow:0 -4px 20px #00000014;border-top:1px solid rgba(0,0,0,.06)}[data-theme=light] .sidebar-item.active{box-shadow:0 2px 8px #00000014}[data-theme=light] .overlay-content{box-shadow:0 16px 48px #0000001f}[data-theme=light] .record-btn{box-shadow:0 0 15px #4caf504d}[data-theme=light] .record-btn.recording{box-shadow:0 0 20px #f4433666}[data-theme=light] .loading-spinner{border-color:#0000001a;border-top-color:var(--accent-purple)}[data-theme=light] .byot-history-list::-webkit-scrollbar-track{background:#00000008}[data-theme=light] .byot-history-list::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] .byot-history-list::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=light] .byot-history-item{background:#00000005;border:1px solid rgba(0,0,0,.08)}[data-theme=light] .byot-history-item:hover{background:#0000000a;border-color:#0000001f}[data-theme=light] .assessment-section h3{border-bottom-color:#0000001a}[data-theme=light] .score-bar-track{background:#00000014}[data-theme=light] .detail-btn{background:#0000000d;border:1px solid rgba(0,0,0,.12)}[data-theme=light] .word-chip{background:#0000000a;border:1px solid rgba(0,0,0,.08)}[data-theme=light] .word-chip:hover{background:#00000014}[data-theme=light] .celebration-container{background:#00000005;border:1px solid rgba(0,0,0,.08)}[data-theme=light] .share-preview-container{scrollbar-color:rgba(0,0,0,.2) transparent}[data-theme=light] .share-preview-container::-webkit-scrollbar-thumb{background:#0003}[data-theme=light] .share-preview-container::-webkit-scrollbar-thumb:hover{background:#0000004d}[data-theme=light] .error-word-chip{background:#00000008;border:1px solid rgba(0,0,0,.08)}[data-theme=light] .theme-toggle-switch{background:#0000000d}[data-theme=light] .theme-option{color:var(--text-secondary)}[data-theme=light] .theme-option.active{background:var(--card-bg);box-shadow:0 2px 8px #0000001a}[data-theme=light] .toast{background:#fffffffa;border-color:#0000001f;box-shadow:0 4px 12px #00000026}[data-theme=light] .app-header{background:var(--card-bg);border-bottom:1px solid rgba(0,0,0,.06)}[data-theme=light] .sidebar-list{background:var(--primary-bg);border-right:1px solid rgba(0,0,0,.06)}[data-theme=light] .sidebar-item{border:1px solid rgba(0,0,0,.06)}[data-theme=light] .camera-preview-content{border:1px solid rgba(0,0,0,.1)}[data-theme=light] .rate-limit-tooltip{border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px #0000001a}[data-theme=light] .modal-content{box-shadow:0 20px 60px #0003}.share-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:16px;animation:shareModalFadeIn .16s ease-out}.share-modal__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.share-modal__card{position:relative;width:100%;max-width:420px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--card-bg, #1a1a1a);color:var(--text-primary, #fff);border-radius:16px;padding:24px 24px 28px;box-shadow:0 20px 60px #00000080;text-align:center;animation:shareModalSlideUp .18s ease-out}.share-modal__close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#ffffff14;color:var(--text-primary, #fff);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .16s ease}.share-modal__close:hover,.share-modal__close:focus-visible{background:#ffffff2e;outline:none}.share-modal__title{margin:0 0 16px;font-size:1.1rem;font-weight:600;color:var(--text-primary, #fff)}.share-modal__preview-wrap{margin:0 0 20px;border-radius:12px;overflow:hidden;background:#0000004d;line-height:0}.share-modal__preview{width:100%;height:auto;display:block;cursor:grab;-webkit-user-select:none;user-select:none}.share-modal__preview:active{cursor:grabbing}.share-modal__cta{width:100%;padding:14px 20px;border:none;border-radius:10px;background:var(--brand-primary, #32BAAE);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .16s ease,transform 80ms ease}.share-modal__cta:hover,.share-modal__cta:focus-visible{background:var(--brand-primary-hover, #2aa89c);outline:none}.share-modal__cta:active{transform:scale(.98)}.share-modal__hint{margin:14px 0 0;font-size:.85rem;line-height:1.55;color:var(--text-secondary, rgba(255, 255, 255, .7))}@keyframes shareModalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes shareModalSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}[data-theme=light] .share-modal__card{background:#fff;color:#1a1a1a;box-shadow:0 20px 60px #0000002e}[data-theme=light] .share-modal__close{background:#0000000d;border-color:#0000001a;color:#1a1a1a}[data-theme=light] .share-modal__close:hover,[data-theme=light] .share-modal__close:focus-visible{background:#0000001a}[data-theme=light] .share-modal__title{color:#1a1a1a}[data-theme=light] .share-modal__preview-wrap{background:#0000000a}[data-theme=light] .share-modal__hint{color:#000000a6}@media(max-width:480px){.share-modal{padding:12px}.share-modal__card{padding:20px 18px 22px}.share-modal__title{font-size:1rem}}.retirement-notice{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;background:var(--overlay-bg, rgba(255, 167, 38, .12));border-bottom:1px solid var(--border-medium, rgba(255, 167, 38, .35));color:var(--text-secondary, #ccc);font-size:.85rem;line-height:1.5}.retirement-notice.hidden{display:none}.retirement-notice-text{flex:1}.retirement-notice-close{flex-shrink:0;background:none;border:none;color:inherit;opacity:.6;cursor:pointer;padding:2px 4px;font-size:.9rem}.retirement-notice-close:hover{opacity:1}.switch-user-action{margin-bottom:20px}#btn-switch-new-user i+i{margin-left:2px;margin-right:.4rem}#switch-confirm-view.hidden{display:none}.switch-confirm-text{margin:0 0 20px;color:var(--text-secondary);font-size:.9rem;line-height:1.6;text-align:center}.switch-profile-status{margin:0 0 16px;text-align:center}.switch-profile-hint{margin:0 0 10px;color:var(--text-secondary);font-size:.85rem;line-height:1.6}.switch-profile-warning{color:var(--accent-red)}.switch-profile-form{display:flex;flex-direction:column;gap:12px}.switch-profile-field{display:flex;flex-direction:column;gap:6px;color:var(--text-primary);font-size:.9rem;text-align:left}.switch-profile-field input{padding:10px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-primary);font-size:1rem}.switch-profile-field input:focus{outline:none;border-color:var(--accent-purple)}.switch-form-error{margin:0;color:var(--accent-red);font-size:.85rem;text-align:left}.switch-profile-form .modal-actions{margin-top:8px}#btn-switch-confirm:disabled{opacity:.4;cursor:not-allowed}
