.tutorial-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tutorial-modal{background-color:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2rem 1.75rem 1.5rem;width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;animation:tutorial-in .2s ease}@keyframes tutorial-in{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.tutorial-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;animation:tutorial-step-in .22s ease}@keyframes tutorial-step-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.tutorial-icon{font-size:2.75rem;line-height:1.2;padding:.1em .15em}.tutorial-title{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text)}.tutorial-body{margin:0;font-size:.9375rem;color:var(--color-text-muted);line-height:1.6}.tutorial-body p{margin:0 0 .5rem}.tutorial-body p:last-child{margin-bottom:0}.tutorial-options{list-style:none;padding:0;margin:.25rem 0 .5rem;display:flex;flex-direction:column;gap:.3rem;text-align:left}.tutorial-options li{padding:.35rem .75rem;background:var(--color-bg);border-radius:var(--radius);font-size:.875rem}.tutorial-dots{display:flex;gap:.4rem;margin-top:.25rem}.tutorial-dot{width:7px;height:7px;border-radius:50%;background-color:var(--color-border);transition:background-color .2s}.tutorial-dot.active{background-color:var(--color-primary)}.tutorial-actions{display:flex;gap:.75rem;align-items:center;width:100%;margin-top:.5rem}.tutorial-btn-skip{flex:1;padding:.65rem 1rem;border:2px solid var(--color-border);border-radius:var(--radius-full);background:none;color:var(--color-text-muted);font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.tutorial-btn-skip:hover{border-color:var(--color-text-muted);color:var(--color-text)}.tutorial-btn-next{flex:2;padding:.65rem 1rem;border:none;border-radius:var(--radius-full);background-color:var(--color-primary);color:#fff;font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #673ab859;transition:background-color .15s,box-shadow .15s}.tutorial-btn-next:hover{background-color:var(--color-primary-dark);box-shadow:0 4px 16px #673ab873}.btn-help{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:2px solid var(--color-border);background:none;color:var(--color-text-muted);font-size:.8125rem;font-weight:700;cursor:pointer;line-height:1;transition:border-color .15s,color .15s;flex-shrink:0}.btn-help:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn,.btn-start{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.5rem;border:2px solid transparent;border-radius:var(--radius-full);font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:transform .1s,box-shadow .15s,background-color .15s,opacity .15s,color .15s,border-color .15s;white-space:nowrap}.btn:active,.btn-start:active{transform:scale(.97)}.btn:disabled,.btn-start:disabled{opacity:.4;cursor:not-allowed}.select-screen{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding-bottom:5rem}.select-screen.has-buttons{padding-bottom:9rem}.select-screen.has-two-buttons{padding-bottom:14rem}.select-screen.has-buttons:after{content:"";position:fixed;bottom:0;left:0;right:0;height:8rem;background:linear-gradient(to bottom,transparent,var(--color-bg) 15%);pointer-events:none;z-index:9}.select-screen.has-two-buttons:after{height:13rem}.select-screen h1{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.03em;color:var(--color-text)}.subtitle-row{display:flex;align-items:center;gap:.5rem;margin:-.75rem 0 0}.select-screen .subtitle{margin:0;font-size:.9375rem;color:var(--color-text-muted)}.module-list{list-style:none;padding:0;margin:0;width:100%;display:flex;flex-direction:column;gap:.625rem}.module-item{display:flex;flex-direction:column}.module-item .module-card{border-radius:var(--radius)}.module-item.open .module-card{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.btn-chevron{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.2rem;background:none;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:4px;transition:color .15s,background-color .15s}.btn-chevron svg{transition:transform .2s}.module-item.open .btn-chevron svg{transform:rotate(180deg)}.btn-chevron:hover{color:var(--color-primary);background-color:#673ab814}.card-preview-list{list-style:none;padding:0;margin:0;border:2px solid var(--color-border);border-top:none;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);overflow:hidden}.card-preview-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.875rem;border-top:1px solid var(--color-border)}.card-preview-row:first-child{border-top:none}.card-preview-term{font-weight:600;color:var(--color-text);flex:1;display:flex;align-items:center;gap:6px}.card-preview-translation{color:var(--color-text-muted);flex:1;display:flex;align-items:center;justify-content:flex-end;gap:6px;text-align:right;white-space:pre-line}.card-dot{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%}.card-dot-mastered{background-color:#16a34a}.card-dot-hard{background-color:#f59e0b}.card-dot-new{background-color:var(--color-border)}.module-card{display:flex;flex-direction:column;padding:.875rem 1rem;background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s;box-shadow:var(--shadow-sm);gap:.625rem}.module-card-row{display:flex;align-items:center;gap:.875rem}.module-mastery{font-size:.75rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.module-mastery-bar-wrap{height:4px;border-radius:2px;background-color:var(--color-border);overflow:hidden}.module-mastery-bar-fill{height:100%;border-radius:2px;background-color:var(--color-primary);transition:width .3s ease}.module-mastery-bar-fill.complete{background-color:#16a34a}.module-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.module-card.selected{border-color:var(--color-primary);background-color:#673ab80a;box-shadow:0 0 0 3px #673ab820,var(--shadow-sm)}.module-card input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;border:2px solid var(--color-border);border-radius:6px;background-color:var(--color-bg);cursor:pointer;transition:background-color .15s,border-color .15s;position:relative}.module-card input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.module-card input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:8px;height:12px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}.module-name{flex:1;font-weight:600;font-size:.9375rem;color:var(--color-text)}.module-count{font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background-color:var(--color-bg);padding:.2rem .6rem;border-radius:var(--radius-full);border:1px solid var(--color-border)}.btn-start{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);width:min(420px,calc(100% - 2rem));padding:.8rem 1.5rem;font-size:1rem;background-color:var(--color-primary);color:#fff;box-shadow:0 8px 28px #673ab899,0 2px 8px #0003;z-index:10}.btn-start:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:0 12px 36px #673ab8b3,0 4px 12px #00000040}.btn-start:disabled{transform:translate(-50%);opacity:0;pointer-events:none}.btn-start-group{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);width:min(420px,calc(100% - 2rem));display:flex;flex-direction:column;gap:.5rem;z-index:10}.btn-start-group .btn-start{position:static;transform:none;width:auto;flex:1}.btn-outline{background-color:#ede9f8;color:var(--color-primary);border-color:#c4b5fd;box-shadow:0 6px 20px #673ab859,0 2px 6px #0000001f}.btn-outline:hover:not(:disabled){background-color:#ddd6f3;box-shadow:0 10px 28px #673ab873,0 3px 10px #00000026}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-outline{background-color:#2a1f4a;border-color:#4c3680;color:#c4b5fd}}:root[data-theme=dark] .btn-outline{background-color:#2a1f4a;border-color:#4c3680;color:#c4b5fd}.btn-start-group .btn-start,.btn-start{flex-direction:column;gap:.2rem;padding:.7rem .75rem}.btn-start-group .btn-start{position:relative;bottom:auto;left:auto;transform:none;width:auto;flex:1}.btn-count{font-size:.75rem;font-weight:600;opacity:.7}.btn-label-row{display:block}.btn-arrow{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);font-size:1.25rem;line-height:1}.credits{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding-top:.5rem}.credits-section{display:flex;flex-direction:column;align-items:center;gap:.6rem}.credits-title{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.credits-people{display:flex;justify-content:center;align-items:flex-start;gap:2rem}.credits-person{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-decoration:none;color:inherit;justify-content:flex-start;width:80px}.credits-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border);transition:border-color .15s}a.credits-person:hover .credits-avatar{border-color:var(--color-primary)}.credits-name{font-size:.8125rem;font-weight:600;color:var(--color-text);text-align:center;max-width:80px;white-space:normal;line-height:1.3}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .module-count{background-color:var(--color-bg)}}:root[data-theme=dark] .module-count{background-color:var(--color-bg)}.btn,.btn-reveal,.btn-wrong,.btn-hard,.btn-right{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.5rem;border:2px solid transparent;border-radius:var(--radius-full);font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:transform .1s,box-shadow .15s,background-color .15s,opacity .15s,color .15s,border-color .15s;white-space:nowrap}.btn:active,.btn-reveal:active,.btn-wrong:active,.btn-hard:active,.btn-right:active{transform:scale(.97)}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:0 2px 8px #673ab859}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:0 4px 16px #673ab873}.study-screen{width:100%;max-width:480px;align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding-bottom:6rem;position:relative}.study-screen .card-area{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.progress{width:100%;display:flex;flex-direction:column;gap:.4rem}.progress-label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.01em;text-align:center}.progress-bar-wrap{width:100%;height:6px;background-color:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background-color:var(--color-primary);border-radius:var(--radius-full);transition:width .3s ease}.card{width:100%;perspective:1000px}.card-inner{display:grid;width:100%;transform-style:preserve-3d;transition:transform .45s ease;border-radius:var(--radius)}@keyframes flash-right{0%{box-shadow:0 0 #15803d00}25%{box-shadow:0 0 0 6px #15803d8c}to{box-shadow:0 0 0 8px #15803d00}}@keyframes flash-hard{0%{box-shadow:0 0 #b4530900}25%{box-shadow:0 0 0 6px #b453098c}to{box-shadow:0 0 0 8px #b4530900}}@keyframes flash-wrong{0%{box-shadow:0 0 #dc262600}25%{box-shadow:0 0 0 6px #dc26268c}to{box-shadow:0 0 0 8px #dc262600}}.card-inner.flash-right{animation:flash-right .2s ease-out forwards}.card-inner.flash-hard{animation:flash-hard .2s ease-out forwards}.card-inner.flash-wrong{animation:flash-wrong .2s ease-out forwards}.card.is-flipped .card-inner{transform:rotateY(180deg)}.card-face{grid-area:1 / 1;backface-visibility:hidden;-webkit-backface-visibility:hidden;background-color:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);padding:3rem 2rem;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.card-front{font-size:2.5rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text);line-height:1.2;text-align:center}.card-back{transform:rotateY(180deg);gap:1.5rem}.card-back-question{font-size:2.5rem;font-weight:800;letter-spacing:-.02em;text-align:center;color:var(--color-text);line-height:1.2}.card-back-divider{display:block;width:100%;height:1px;background-color:var(--color-border)}.card-back-answer{font-size:2.5rem;font-weight:800;letter-spacing:-.02em;text-align:center;white-space:pre-line;color:var(--color-text);line-height:1.2}.btn-reveal{background-color:#f3effe;color:var(--color-primary);border-color:#c4b5fd}.btn-reveal:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-container{position:absolute;bottom:2rem;left:0;right:0;display:grid}.btn-reveal,.answer-buttons{grid-area:1 / 1;width:100%}.answer-buttons{display:flex;gap:.75rem}.btn-wrong,.btn-hard,.btn-right{flex:1;white-space:normal;text-align:center}.btn-wrong{background-color:#fef2f2;color:var(--color-wrong);border-color:#fecaca}.btn-wrong:hover{background-color:var(--color-wrong);color:#fff;border-color:var(--color-wrong)}.btn-hard{background-color:#fffbeb;color:#b45309;border-color:#fde68a}.btn-hard:hover{background-color:var(--color-hard);color:#fff;border-color:var(--color-hard)}.btn-right{background-color:#f0fdf4;color:#15803d;border-color:#bbf7d0}.btn-right:hover{background-color:var(--color-right);color:#fff;border-color:var(--color-right)}.complete-screen{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.complete-icon{font-size:4rem;line-height:1;margin-bottom:.5rem}.complete-screen h1{margin:0;font-size:2rem;font-weight:800;letter-spacing:-.03em}.complete-screen p{margin:0;color:var(--color-text-muted);font-size:1rem}.complete-duration{font-size:.875rem!important;font-weight:700;color:var(--color-text-muted)!important;background:var(--color-border);border-radius:var(--radius-full);padding:.25rem .75rem}.stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;width:100%;margin:.5rem 0}.stat{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.9rem .5rem;border-radius:var(--radius);border:1px solid var(--color-border);background-color:var(--color-surface)}.stat-value{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1}.stat-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.stat-right .stat-value{color:#15803d}.stat-hard .stat-value{color:#b45309}.stat-wrong .stat-value{color:var(--color-wrong)}.stat-pct .stat-value{color:var(--color-primary)}.btn-back{margin-top:.5rem;background-color:var(--color-primary);color:#fff;box-shadow:0 2px 8px #673ab859}.btn-back:hover{background-color:var(--color-primary-dark);box-shadow:0 4px 16px #673ab873}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-reveal{background-color:#1e1533;border-color:#4c3680}:root:not([data-theme=light]) .btn-wrong{background-color:#2d1515;border-color:#5a2020}:root:not([data-theme=light]) .btn-hard{background-color:#2d2415;border-color:#5a4520}:root:not([data-theme=light]) .btn-right{background-color:#152d1b;border-color:#205a2b}}:root[data-theme=dark] .btn-reveal{background-color:#1e1533;border-color:#4c3680}:root[data-theme=dark] .btn-wrong{background-color:#2d1515;border-color:#5a2020}:root[data-theme=dark] .btn-hard{background-color:#2d2415;border-color:#5a4520}:root[data-theme=dark] .btn-right{background-color:#152d1b;border-color:#205a2b}@media(max-width:480px){.card-face{padding:2rem 1.25rem;min-height:180px}.card-front,.card-back-question,.card-back-answer{font-size:2rem}}.module-cards-screen{width:100%;max-width:420px;display:flex;flex-direction:column;gap:1rem}.module-cards-header{display:flex;align-items:center;gap:.75rem}.module-cards-header h2{flex:1;margin:0;font-size:1.25rem;font-weight:700;color:var(--color-text)}.back-btn{padding:.4rem .75rem;font-size:1rem}.btn-ghost{background:none;border-color:var(--color-border);color:var(--color-text-muted)}.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}.cards-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.card-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-term{font-weight:600;font-size:.9375rem;color:var(--color-text)}.card-translation{font-size:.875rem;color:var(--color-text-muted);text-align:right}.history-page{width:100%;max-width:600px;display:flex;flex-direction:column;gap:1.25rem;align-self:flex-start}.history-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.history-header h1{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.03em}.session-count{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text-muted)}.history-empty{color:var(--color-text-muted);font-size:.9375rem;margin:0}.session-list{display:flex;flex-direction:column;gap:.75rem}.session-row{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow-sm)}.session-meta{display:flex;flex-direction:column;gap:.2rem}.session-meta-top{display:flex;align-items:center;gap:.5rem}.session-date{font-size:.8125rem;color:var(--color-text-muted);font-weight:500}.session-duration{font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:var(--color-border);border-radius:var(--radius-full);padding:.1rem .5rem}.session-modules{font-size:.9375rem;font-weight:700;color:var(--color-text)}.session-stats{display:flex;gap:.5rem}.ssstat{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:1;padding:.5rem .25rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.ssstat-value{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;line-height:1}.ssstat-label{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.ssstat-right .ssstat-value{color:#15803d}.ssstat-hard .ssstat-value{color:#b45309}.ssstat-wrong .ssstat-value{color:var(--color-wrong)}.ssstat-pct .ssstat-value{color:var(--color-primary)}@media(max-width:480px){.ssstat-label{font-size:.625rem}}.struggle-page{width:100%;max-width:600px;display:flex;flex-direction:column;gap:1.25rem;align-self:flex-start}.struggle-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.struggle-header h1{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.03em}.struggle-empty{color:var(--color-text-muted);font-size:.9375rem;margin:0}.struggle-count{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text-muted)}.struggle-list{display:flex;flex-direction:column;gap:.75rem}.struggle-row{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow-sm)}.struggle-terms{display:flex;flex-direction:column;gap:.2rem}.struggle-thai{font-size:1rem;font-weight:700;color:var(--color-text)}.struggle-pt{font-size:.9375rem;color:var(--color-text-muted)}.direction-badge{display:inline-block;margin-top:.25rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .5rem;border-radius:var(--radius-full);width:fit-content}.direction-badge-fwd{background-color:#673ab814;color:var(--color-primary)}.direction-badge-rev{background-color:#f59e0b14;color:#b45309}.struggle-stats{display:flex;gap:.5rem}.sstat{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:1;padding:.5rem .25rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.sstat-value{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;line-height:1}.sstat-label{font-size:.6875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.sstat-wrong .sstat-value{color:var(--color-wrong)}.sstat-hard .sstat-value{color:#b45309}.sstat-right .sstat-value{color:#15803d}.sstat-pct .sstat-value{color:var(--color-wrong)}@media(max-width:480px){.sstat-label{font-size:.625rem}}.settings-page{width:100%;max-width:480px;align-self:flex-start}.settings-page h1{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin:0 0 1.5rem}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.settings-section h2{font-size:.875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem}.theme-options{display:flex;gap:.75rem}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem .5rem;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:border-color .15s,color .15s,background-color .15s}.theme-option:hover{border-color:var(--color-primary);color:var(--color-text)}.theme-option.active{border-color:var(--color-primary);background-color:#673ab814;color:var(--color-primary)}.theme-option-icon{font-size:1.25rem;line-height:1}.theme-option-label{font-size:.8rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-row-info{display:flex;flex-direction:column;gap:.2rem}.settings-row-label{font-size:.9375rem;font-weight:500;color:var(--color-text)}.settings-row-desc{font-size:.8125rem;color:var(--color-text-muted)}.btn-toggle{position:relative;width:2.75rem;height:1.5rem;border-radius:var(--radius-full);border:none;background-color:var(--color-border);cursor:pointer;transition:background-color .2s;flex-shrink:0;padding:0}.btn-toggle.active{background-color:var(--color-primary)}.btn-toggle-thumb{position:absolute;top:3px;left:3px;width:1.125rem;height:1.125rem;border-radius:50%;background-color:#fff;transition:transform .2s;display:block}.btn-toggle.active .btn-toggle-thumb{transform:translate(1.25rem)}.btn-danger{padding:.4rem .9rem;border:1px solid var(--color-wrong);border-radius:var(--radius-full);background:transparent;color:var(--color-wrong);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s;white-space:nowrap;flex-shrink:0}.btn-danger:hover{background-color:var(--color-wrong);color:#fff}.confirm-dialog{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:1.5rem;max-width:360px;width:calc(100vw - 2rem);box-shadow:var(--shadow-lg)}.confirm-dialog::backdrop{background:#0006}.success-dialog h3{color:var(--color-right)}.confirm-dialog h3{margin:0 0 .75rem;font-size:1.125rem;font-weight:700}.confirm-dialog p{margin:0 0 1.5rem;font-size:.9375rem;color:var(--color-text-muted);line-height:1.5}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.btn-confirm-yes,.btn-confirm-no{padding:.5rem 1rem;border-radius:var(--radius-sm);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s}.btn-confirm-yes{border:1px solid var(--color-wrong);background:var(--color-wrong);color:#fff}.btn-confirm-yes:hover{background-color:#dc2626;border-color:#dc2626}.btn-confirm-no{border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted)}.btn-confirm-no:hover{background-color:var(--color-border);color:var(--color-text)}:root{--color-primary: #673ab8;--color-primary-dark: #4e2a8e;--color-bg: #f5f4f8;--color-surface: #ffffff;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-wrong: #ef4444;--color-hard: #f59e0b;--color-right: #22c55e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .12), 0 4px 16px rgba(0, 0, 0, .08);--radius: 12px;--radius-sm: 8px;--radius-full: 9999px;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;color:var(--color-text);background-color:var(--color-bg)}*,*:before,*:after{box-sizing:border-box}body{margin:0}#app{display:flex;flex-direction:column;min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 1.5rem;height:56px;box-shadow:var(--shadow-sm)}.header-brand{font-weight:700;font-size:1rem;color:var(--color-primary);text-decoration:none;letter-spacing:-.01em}header nav{display:flex;gap:.25rem}header a{color:var(--color-text-muted);padding:.4rem .75rem;text-decoration:none;font-size:.875rem;font-weight:500;border-radius:var(--radius-sm);transition:color .15s,background-color .15s}header a.active{color:var(--color-primary);background-color:#673ab814}header a:hover{color:var(--color-text);background-color:var(--color-border)}header a.icon-link{display:flex;align-items:center;padding:.4rem .5rem}main{flex:auto;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;align-self:stretch}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #0f0e17;--color-surface: #1c1b2e;--color-text: #e8e6f0;--color-text-muted: #8b8fa8;--color-border: #2e2d42;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .5)}}:root[data-theme=dark]{--color-bg: #0f0e17;--color-surface: #1c1b2e;--color-text: #e8e6f0;--color-text-muted: #8b8fa8;--color-border: #2e2d42;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .5)}.install-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;background-color:var(--color-primary);color:#fff;font-size:.875rem;line-height:1.4;flex-wrap:wrap}.install-banner-body{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.install-banner-text{flex:1;min-width:0}.install-banner-text strong{font-weight:700}.install-banner-share-icon{display:inline-block;width:1.1em;height:1.1em;vertical-align:middle;filter:invert(1);border:1.5px solid rgba(255,255,255,.8);border-radius:4px;padding:1px}.install-banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.install-banner-btn{padding:.35rem .9rem;border-radius:var(--radius-sm);border:1.5px solid rgba(255,255,255,.6);background:transparent;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color .15s}.install-banner-btn:hover{background-color:#ffffff26}.install-banner-btn.primary{background-color:#fff3;border-color:#fff}
