:root{--fq-bg: #F4F1EA;--fq-surface: #FFFFFF;--fq-ink: #1B1A1F;--fq-muted: #5E5B66;--fq-border: #DDD8CC;--fq-border-soft: #E4DFD3;--fq-primary: #3B45C4;--fq-primary-hover: #2A328F;--fq-primary-subtle: #E6E8FA;--fq-success: #1E7A4C;--fq-success-subtle: #E2F2E8;--fq-success-ink: #14532D;--fq-danger: #B93A12;--fq-danger-hover: #962F0E;--fq-danger-subtle: #FBE5DC;--fq-danger-ink: #8A2A0A;--fq-dimmed-bg: #FBFAF7;--fq-dimmed-border: #E9E5DC;--fq-font-display: "Fraunces", Georgia, serif;--fq-radius-sm: 10px;--fq-radius: 16px;--fq-radius-card: 20px;--fq-radius-lg: 24px;--bs-body-bg: var(--fq-bg);--bs-body-color: var(--fq-ink);--bs-body-font-family: "DM Sans", system-ui, sans-serif;--bs-secondary-color: var(--fq-muted);--bs-border-color: var(--fq-border);--bs-primary: var(--fq-primary);--bs-primary-rgb: 59, 69, 196;--bs-success: var(--fq-success);--bs-success-rgb: 30, 122, 76;--bs-danger: var(--fq-danger);--bs-danger-rgb: 185, 58, 18;--bs-border-radius: 1rem;--bs-border-radius-lg: 1.5rem;--bs-link-color: var(--fq-primary);--bs-link-hover-color: var(--fq-primary-hover)}body{min-height:100dvh}.quiz-page{max-width:480px}.btn{min-height:44px}.quiz{max-width:480px;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom))}.btn-icon{width:44px;height:44px;flex-shrink:0;padding:0;border-radius:50rem;border:1px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-ink);display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--fq-bg)}.progress{--bs-progress-height: .5rem;--bs-progress-bg: var(--fq-border-soft);--bs-progress-bar-bg: var(--fq-primary);--bs-progress-border-radius: 50rem}.progress-bar{border-radius:50rem;transition:width .24s ease}.score-chip{height:44px;flex-shrink:0;padding:0 12px;border-radius:50rem;background:var(--fq-success-subtle);color:var(--fq-success-ink);display:flex;align-items:center;gap:6px;font-weight:700;font-size:15px}.flashcard{--bs-card-bg: var(--fq-surface);--bs-card-border-color: var(--fq-border-soft);--bs-card-border-radius: 1.5rem;box-shadow:0 1px 2px #1b1a1f0a,0 8px 24px #1b1a1f0f}.flashcard .card-body{padding:28px 24px 32px;gap:12px}.badge-prompt{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fq-primary);background:var(--fq-primary-subtle);padding:6px 10px;border-radius:50rem}.display-word{font-family:var(--fq-font-display);font-size:46px;font-weight:600;line-height:1.1;letter-spacing:-.01em;margin-top:20px;overflow-wrap:anywhere}.word-pos{font-size:15px;color:var(--fq-muted);font-style:italic;margin-bottom:8px}.deck-summary{background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:var(--fq-radius-card);padding:16px;display:flex;align-items:center;gap:14px;box-shadow:0 1px 2px #1b1a1f0a,0 6px 18px #1b1a1f0a}.deck-title{font-family:var(--fq-font-display);font-size:22px;font-weight:600;line-height:1.2}.deck-pair{font-size:14px;color:var(--fq-muted)}.dir-option{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;margin:0;padding:10px 14px;border-radius:1rem;border:2px solid var(--fq-border-soft);background:var(--fq-surface);cursor:pointer}.dir-option input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.dir-option:has(input:focus-visible){outline:3px solid var(--fq-primary);outline-offset:2px}.dir-option:has(input:checked){border-color:var(--fq-primary);background:var(--fq-primary-subtle);color:var(--fq-primary-hover)}.dir-flags{display:flex;align-items:center;gap:6px;flex-shrink:0}.dir-flags .flag{width:24px;height:17px;border-radius:3px}.dir-label{font-size:16px;font-weight:600}.dir-sub{font-size:13px;color:var(--fq-muted)}.dir-radio{width:22px;height:22px;flex-shrink:0;border-radius:50rem;border:2px solid #B9B3A6;background:#fff}.dir-option:has(input:checked) .dir-radio{border:7px solid var(--fq-primary)}.count-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.count-option{position:relative;border-radius:18px;border:2px solid var(--fq-border-soft);background:var(--fq-surface);color:var(--fq-ink);cursor:pointer;margin:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-height:96px;padding:14px 16px;transition:background-color .15s,border-color .15s}.count-option:hover{border-color:var(--fq-border)}.count-option input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.count-option:has(input:focus-visible){outline:3px solid var(--fq-primary);outline-offset:2px}.count-value{font-family:var(--fq-font-display);font-size:34px;font-weight:600;line-height:1}.count-sub{font-size:13px;font-weight:600}.count-check{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50rem;background:var(--fq-primary);display:none;align-items:center;justify-content:center}.count-option:has(input:checked){background:var(--fq-primary-subtle);border-color:var(--fq-primary);color:var(--fq-primary-hover)}.count-option:has(input:checked) .count-check{display:flex}.count-option:has(input:disabled){background:var(--fq-dimmed-bg);border-color:var(--fq-dimmed-border);color:#6b6772;cursor:not-allowed}.count-option-all{flex-direction:row;align-items:baseline;gap:10px;min-height:64px;padding:18px 16px}.count-option-all .count-value{font-size:24px}.count-option-all .count-check{top:50%;margin-top:-11px;right:14px}.count-note{margin:0;text-align:center;font-size:13px;color:var(--fq-muted)}@media (prefers-reduced-motion: reduce){.count-option{transition:none}}.btn-answer{width:100%;min-height:64px;border-radius:1rem;border:2px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-ink);padding:10px 16px 10px 10px;display:flex;align-items:center;gap:14px;font-size:18px;font-weight:600;text-align:left;transition:background-color .16s,border-color .16s,transform 80ms}.btn-answer:hover:not(:disabled){border-color:var(--fq-primary)}.btn-answer:active:not(:disabled){transform:scale(.985)}.btn-answer:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}.btn-answer .answer-letter{width:36px;height:36px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;background:var(--fq-bg);color:var(--fq-ink)}.btn-answer .answer-text{flex-grow:1}.btn-answer .answer-icon{flex-shrink:0;display:none}.btn-answer:disabled{opacity:1;cursor:default}.btn-answer:disabled:not(.is-correct):not(.is-wrong){background:var(--fq-dimmed-bg);border-color:var(--fq-dimmed-border);color:var(--fq-muted)}.btn-answer:disabled:not(.is-correct):not(.is-wrong) .answer-letter{background:#f0ede5;color:var(--fq-muted)}.btn-answer.is-correct{background:var(--fq-success-subtle);border-color:var(--fq-success);color:var(--fq-success-ink)}.btn-answer.is-correct .answer-letter{background:var(--fq-success);color:#fff}.btn-answer.is-correct .icon-check{display:block;color:var(--fq-success)}.btn-answer.is-wrong{background:var(--fq-danger-subtle);border-color:var(--fq-danger);color:var(--fq-danger-ink)}.btn-answer.is-wrong .answer-letter{background:var(--fq-danger);color:#fff}.btn-answer.is-wrong .icon-x{display:block;color:var(--fq-danger)}.btn-lg{--bs-btn-padding-y: 1rem;--bs-btn-font-size: 17px;--bs-btn-font-weight: 700;--bs-btn-border-radius: 1rem}.btn-primary{--bs-btn-bg: var(--fq-primary);--bs-btn-border-color: var(--fq-primary);--bs-btn-hover-bg: var(--fq-primary-hover);--bs-btn-hover-border-color: var(--fq-primary-hover);--bs-btn-active-bg: var(--fq-primary-hover);--bs-btn-active-border-color: var(--fq-primary-hover)}.btn-continue{border:0;color:#fff}.btn-continue:disabled{background:var(--fq-border-soft);color:#6b6772;opacity:1}.feedback{border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:14px}.feedback.d-none{display:none!important}.feedback.is-correct{background:var(--fq-success-subtle);color:var(--fq-success-ink)}.feedback.is-wrong{background:var(--fq-danger-subtle);color:var(--fq-danger-ink)}.feedback-icon{width:32px;height:32px;flex-shrink:0;border-radius:50rem;display:flex;align-items:center;justify-content:center;color:#fff}.feedback.is-correct .feedback-icon,.feedback.is-correct .btn-continue{background:var(--fq-success)}.feedback.is-wrong .feedback-icon,.feedback.is-wrong .btn-continue{background:var(--fq-danger)}.feedback.is-correct .btn-continue:hover{background:#17603b}.feedback.is-wrong .btn-continue:hover{background:#962f0e}.btn-speak{width:48px;height:48px;flex-shrink:0;margin:-4px -4px 0 0;padding:0;border:0;border-radius:50rem;background:#fff;color:currentColor;display:flex;align-items:center;justify-content:center;transition:background-color .15s}.btn-speak:hover{filter:brightness(.96)}.feedback.is-correct .btn-speak[aria-pressed=true]{background:var(--fq-success);color:#fff}.feedback.is-wrong .btn-speak[aria-pressed=true]{background:var(--fq-danger);color:#fff}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fq-muted)}.result-score{font-family:var(--fq-font-display);font-size:80px;font-weight:600;line-height:1;margin-top:12px}.result-total{font-size:36px;color:var(--fq-muted)}.result-title{font-family:var(--fq-font-display);font-size:24px;font-weight:500;margin-top:12px}.review-item{background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:1rem;padding:12px 14px;display:flex;align-items:center;gap:12px}.review-dot{width:28px;height:28px;flex-shrink:0;border-radius:50rem;display:flex;align-items:center;justify-content:center;color:#fff}.review-word{font-family:var(--fq-font-display);font-size:18px;font-weight:600}.review-answer{font-size:14px;color:var(--fq-muted)}.review-tag{font-size:13px;font-weight:700;padding:4px 10px;border-radius:50rem}.review-item.is-correct .review-dot{background:var(--fq-success)}.review-item.is-correct .review-tag{background:var(--fq-success-subtle);color:var(--fq-success-ink)}.review-item.is-wrong .review-dot{background:var(--fq-danger)}.review-item.is-wrong .review-tag{background:var(--fq-danger-subtle);color:var(--fq-danger-ink)}@media (prefers-reduced-motion: reduce){.progress-bar,.btn-answer{transition:none}}.login{max-width:480px;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom))}.brand{height:44px;gap:10px}.brand-mark{width:32px;height:32px;border-radius:10px;background:var(--fq-primary);color:#fff;display:flex;align-items:center;justify-content:center}.brand-name{font-family:var(--fq-font-display);font-size:20px;font-weight:600}.hero-art{position:relative;height:300px;margin-top:36px}.hero-card{position:absolute;left:50%;border-radius:24px}.hero-card--back{top:34px;width:250px;height:200px;margin-left:-125px;background:var(--fq-primary-subtle);border:1px solid #D5D9F5;transform:rotate(-7deg)}.hero-card--mid{top:24px;width:250px;height:200px;margin-left:-125px;background:var(--fq-surface);border:1px solid var(--fq-border-soft);transform:rotate(4deg)}.hero-card--front{top:20px;width:262px;height:214px;margin-left:-131px;background:var(--fq-surface);border:1px solid var(--fq-border-soft);box-shadow:0 1px 2px #1b1a1f0a,0 12px 32px #1b1a1f1a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.hero-pill{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fq-primary);background:var(--fq-primary-subtle);padding:5px 9px;border-radius:50rem}.hero-word{font-family:var(--fq-font-display);font-size:40px;font-weight:600;line-height:1.1;margin-top:8px}.hero-pos{font-size:14px;color:var(--fq-muted);font-style:italic}.hero-answer{position:absolute;right:22px;top:212px;height:44px;padding:0 14px 0 8px;border-radius:14px;background:var(--fq-success-subtle);border:2px solid var(--fq-success);color:var(--fq-success-ink);display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;transform:rotate(-3deg);box-shadow:0 8px 20px #1b1a1f1a}.hero-answer-letter{width:26px;height:26px;border-radius:8px;background:var(--fq-success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}@media (max-height: 700px){.hero-art{transform:scale(.8);transform-origin:top center;height:240px;margin-top:16px}}.login-title{font-family:var(--fq-font-display);font-size:36px;font-weight:600;line-height:1.12;letter-spacing:-.01em;margin:0}.login-lead{font-size:17px;line-height:1.5;color:var(--fq-muted);margin:0}.btn-signin{height:56px;width:100%;border-radius:var(--fq-radius);border:0;background:var(--fq-primary);color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .15s;text-decoration:none}.btn-signin:hover,.btn-signin:active{background:var(--fq-primary-hover);color:#fff}.btn-signin:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}.login-loading{height:56px;width:100%;border-radius:16px;border:1px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-muted);font-size:16px;font-weight:600;display:none;align-items:center;justify-content:center;gap:12px}.login-spinner,.new-deck-spinner{animation:fq-spin .9s linear infinite}@keyframes fq-spin{to{transform:rotate(360deg)}}.login-error{display:none;border-radius:16px;padding:12px 14px;background:var(--fq-danger-subtle);color:var(--fq-danger-ink);font-size:15px;gap:10px;align-items:flex-start}.login-error.d-flex{display:flex}.login.is-loading .btn-signin{display:none}.login.is-loading .login-loading{display:flex}.login-legal{font-size:13px;line-height:1.5;color:var(--fq-muted);margin:0}@media (prefers-reduced-motion: reduce){.login-spinner,.new-deck-spinner{animation-duration:2.4s}.btn-signin{transition:none}}.section-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fq-muted);margin:0}.flag{width:40px;height:28px;flex-shrink:0;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 0 1px #1b1a1f1f;background-color:var(--fq-border-soft);background-size:cover;background-position:center}.flag.fi{width:40px;height:28px}.pair-card{position:relative;display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 14px;border-radius:18px;cursor:pointer;border:2px solid var(--fq-border-soft);background:var(--fq-surface);transition:background-color .15s,border-color .15s}.pair-card:hover{border-color:var(--fq-border)}.pair-card input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.pair-card:has(input:focus-visible){outline:3px solid var(--fq-primary);outline-offset:2px}.pair-radio{width:22px;height:22px;flex-shrink:0;border-radius:50rem;border:2px solid #B9B3A6;background:var(--fq-surface);display:flex;align-items:center;justify-content:center}.pair-flags{display:flex;align-items:center;gap:8px}.pair-name{font-size:16px;font-weight:600}.pair-sub{font-size:13px;color:var(--fq-muted)}.pair-badge{display:none;font-size:12px;font-weight:700;color:#fff;background:var(--fq-primary);padding:4px 10px;border-radius:50rem}.pair-card.is-active{background:var(--fq-primary-subtle);border-color:var(--fq-primary)}.pair-card.is-active .pair-radio{background:var(--fq-primary);border-color:var(--fq-primary)}.pair-card.is-active .pair-radio:after{content:"";width:10px;height:10px;border-radius:50rem;background:#fff}.pair-card.is-active .pair-badge{display:inline-block}.pair-remove{width:48px;height:48px;flex-shrink:0;border-radius:20px;border:1px solid var(--fq-border-soft);background:var(--fq-surface);color:var(--fq-muted);padding:0;display:flex;align-items:center;justify-content:center}.pair-remove:hover{background:var(--fq-danger-subtle);color:var(--fq-danger-ink);border-color:var(--fq-danger)}.pair-remove:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}.pair-remove:disabled{opacity:.45;cursor:not-allowed}.pair-remove:disabled:hover{background:var(--fq-surface);color:var(--fq-muted);border-color:var(--fq-border-soft)}.add-card{--bs-card-bg: var(--fq-surface);--bs-card-border-color: var(--fq-border-soft);--bs-card-border-radius: 1.5rem;box-shadow:0 1px 2px #1b1a1f0a,0 8px 24px #1b1a1f0d}.add-card .card-body{padding:20px;gap:16px}.form-select{height:52px;border-radius:14px;border-color:var(--fq-border);background-color:var(--fq-dimmed-bg);font-size:16px;font-weight:500;padding-left:14px;cursor:pointer}.form-select:focus{border-color:var(--fq-primary);box-shadow:0 0 0 .25rem #3b45c433}.btn-swap{color:var(--fq-primary)}.form-error{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:500;color:var(--fq-danger-ink);background:var(--fq-danger-subtle);border-radius:12px;padding:10px 12px}.btn-add{height:56px;border-radius:16px;border:0;font-size:17px;font-weight:700;background:var(--fq-primary);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px}.btn-add:hover{background:var(--fq-primary-hover);color:#fff}.btn-add:disabled{background:var(--fq-border-soft);color:#6b6772;opacity:1;cursor:not-allowed}@media (prefers-reduced-motion: reduce){.pair-card{transition:none}}.pair-chip{height:44px;box-sizing:border-box;padding:0 12px 0 8px;border-radius:999px;border:1px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-ink);display:inline-flex;align-items:center;gap:6px;text-decoration:none}.pair-chip:hover{border-color:var(--fq-muted);color:var(--fq-ink)}.pair-chip:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}.decks-title{margin:0;font-family:var(--fq-font-display);font-size:34px;font-weight:600;line-height:1.1;letter-spacing:-.01em}.decks-subtitle{margin:0;font-size:16px;line-height:1.5;color:var(--fq-muted)}.deck-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.deck-card{display:flex;align-items:center;gap:14px;min-height:88px;box-sizing:border-box;padding:14px 14px 14px 12px;border-radius:20px;border:1px solid var(--fq-border-soft);background:var(--fq-surface);color:var(--fq-ink);text-decoration:none;box-shadow:0 1px 2px #1b1a1f0a,0 6px 18px #1b1a1f0a;transition:border-color .15s}.deck-card:hover{border-color:var(--fq-border);color:var(--fq-ink)}.deck-card:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}.deck-count-badge{width:60px;height:64px;flex-shrink:0;border-radius:14px;background:var(--fq-primary-subtle);color:var(--fq-primary-hover);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.deck-count-number{font-family:var(--fq-font-display);font-size:24px;font-weight:600;line-height:1}.deck-count-unit{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.deck-card-body{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:3px}.deck-card-title{font-family:var(--fq-font-display);font-size:20px;font-weight:600;line-height:1.2}.deck-card-desc{font-size:14px;line-height:1.4;color:var(--fq-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-card-chevron{flex-shrink:0;color:var(--fq-muted)}.field-input{height:52px;width:100%;border-radius:14px;border:1px solid var(--fq-border);background-color:var(--fq-dimmed-bg);font-size:16px;font-weight:500;padding:0 14px}.field-input:focus{border-color:var(--fq-primary);box-shadow:0 0 0 .25rem #3b45c433;outline:none}@media (prefers-reduced-motion: reduce){.deck-card{transition:none}}.new-deck-page{max-width:480px;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom))}.pair-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--fq-primary-subtle);color:var(--fq-primary-hover);font-size:14px;font-weight:500}.pair-banner a{font-weight:700;text-decoration:none}.prompt-label{font-size:15px;font-weight:600}.prompt-input{min-height:148px;resize:none;border-radius:16px;border:1px solid var(--fq-border);background:var(--fq-surface);font-size:16px;line-height:1.5;padding:14px 16px}.prompt-input::placeholder{color:var(--fq-placeholder, var(--fq-muted))}.prompt-input:focus{border-color:var(--fq-primary);box-shadow:0 0 0 4px #3b45c42e;outline:none}.prompt-meta{font-size:13px;color:var(--fq-muted)}.idea-chip{min-height:40px;padding:8px 14px;border-radius:50rem;border:1px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-ink);font-size:14px;font-weight:500}.idea-chip:hover{border-color:var(--fq-primary)}.btn-secondary-fq{height:52px;border-radius:16px;border:1px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-ink);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;text-decoration:none}.btn-secondary-fq:hover{background:var(--fq-bg);color:var(--fq-ink)}.ai-note{font-size:13px;color:var(--fq-muted);text-align:center;margin:0}.stack-art{position:relative;width:200px;height:160px}.stack-art>span{position:absolute;border-radius:20px}.stack-art .s1{left:20px;top:18px;width:160px;height:120px;background:var(--fq-primary-subtle);border:1px solid #D5D9F5;transform:rotate(-8deg)}.stack-art .s2{left:20px;top:14px;width:160px;height:120px;background:var(--fq-surface);border:1px solid var(--fq-border-soft);transform:rotate(5deg)}.stack-art .s3{left:16px;top:10px;width:168px;height:126px;background:var(--fq-surface);border:1px solid var(--fq-border-soft);box-shadow:0 12px 32px #1b1a1f1a;display:flex;align-items:center;justify-content:center}.request-box{width:100%;background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:16px;padding:14px 16px;text-align:left}.loading-title,.ready-title{font-family:var(--fq-font-display);font-weight:600;margin:0}.loading-title{font-size:28px}.ready-title{font-size:34px;line-height:1.1}.ready-badge{align-self:flex-start;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--fq-success-ink);background:var(--fq-success-subtle);padding:6px 12px;border-radius:50rem}.preview-card{background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:20px;box-shadow:0 1px 2px #1b1a1f0a,0 8px 24px #1b1a1f0f;overflow:hidden}.preview-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--fq-border-soft)}.count-pill{font-size:14px;font-weight:700;color:var(--fq-primary-hover);background:var(--fq-primary-subtle);padding:4px 10px;border-radius:50rem}.preview-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #F0EDE5}.preview-src{flex:1 1 0;font-family:var(--fq-font-display);font-size:17px;font-weight:600}.preview-tgt{flex:1 1 0;font-size:16px;color:var(--fq-muted);text-align:right}.preview-more{padding:12px 16px;font-size:14px;color:var(--fq-muted);text-align:center}.error-box{display:flex;gap:10px;align-items:flex-start;border-radius:16px;padding:12px 14px;background:var(--fq-danger-subtle);color:var(--fq-danger-ink);font-size:15px}.new-deck-view{display:none!important}.new-deck-page.is-form .new-deck-view-form,.new-deck-page.is-error .new-deck-view-form,.new-deck-page.is-loading .new-deck-view-loading,.new-deck-page.is-ready .new-deck-view-ready{display:flex!important}.new-deck-page .error-box{display:none}.new-deck-page.is-error .error-box{display:flex}.deck-item{display:flex;align-items:stretch;gap:8px}.deck-item .deck-card{flex-grow:1;min-width:0}.deck-edit{width:48px;flex-shrink:0;border-radius:20px;border:1px solid var(--fq-border-soft);background:var(--fq-surface);color:var(--fq-primary);display:flex;align-items:center;justify-content:center;text-decoration:none}.deck-edit:hover{border-color:var(--fq-border);color:var(--fq-primary-hover)}.deck-edit:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}.manage-words-page{max-width:480px;height:100dvh;padding:max(16px,env(safe-area-inset-top)) 0 0;margin:0 auto}.manage-words-pad{padding-left:20px;padding-right:20px}.manage-words-title{font-family:var(--fq-font-display);font-size:32px;font-weight:600;line-height:1.1;letter-spacing:-.01em;margin:0}.manage-words-lead{font-size:15px;color:var(--fq-muted);margin:0}.btn-delete-deck{height:44px;padding:0 12px;border-radius:12px;border:0;background:transparent;color:var(--fq-danger-ink);display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}.btn-delete-deck:hover{background:var(--fq-danger-subtle)}.rename-form{display:none;align-items:flex-start;gap:10px}.rename-input{height:44px;border-radius:12px;border:1px solid var(--fq-primary);background:var(--fq-surface);font-family:var(--fq-font-display);font-size:22px;font-weight:600;padding:0 12px;width:100%}.rename-input:focus{outline:none;box-shadow:0 0 0 4px #3b45c42e}.rename-counter{font-size:12px;color:var(--fq-muted)}.field-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:6px}.field-label .flag{width:28px;height:20px;border-radius:4px}.word-input{height:48px;border-radius:12px;border:1px solid var(--fq-border);background:var(--fq-dimmed-bg);font-size:16px;padding:0 12px}.word-input:focus{border-color:var(--fq-primary);box-shadow:0 0 0 4px #3b45c42e;background:var(--fq-surface)}.word-list{flex-grow:1;min-height:0;overflow-y:auto;padding-bottom:12px}.word-row{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 8px 8px 16px;border-radius:16px;border:1px solid var(--fq-border-soft);background:var(--fq-surface);transition:background-color .6s,border-color .6s}.word-row.is-new{border-color:var(--fq-primary);background:var(--fq-primary-subtle);transition:none}.word-src{flex:1 1 0;min-width:0;font-family:var(--fq-font-display);font-size:17px;font-weight:600;overflow-wrap:anywhere}.word-tgt{flex:1 1 0;min-width:0;font-size:16px;color:var(--fq-muted);overflow-wrap:anywhere}.btn-remove{width:44px;height:44px;flex-shrink:0;border-radius:12px;border:0;padding:0;background:transparent;color:var(--fq-muted);display:flex;align-items:center;justify-content:center}.btn-remove:hover{background:var(--fq-danger-subtle);color:var(--fq-danger-ink)}.manage-words-footer{border-top:1px solid var(--fq-border-soft);background:var(--fq-bg);padding:12px 20px max(24px,env(safe-area-inset-bottom))}.btn-add.is-disabled{background:var(--fq-border-soft);color:#6b6772;pointer-events:none}.too-few{margin:0;text-align:center;font-size:14px;color:var(--fq-danger-ink)}.toast-undo{position:fixed;left:50%;transform:translate(-50%);bottom:calc(max(24px,env(safe-area-inset-bottom)) + 80px);width:calc(100% - 40px);max-width:440px;background:var(--fq-ink);color:#fff;border-radius:14px;padding:6px 6px 6px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 32px #1b1a1f40;z-index:20}.toast-undo button{height:44px;padding:0 14px;border-radius:10px;border:0;background:transparent;color:#c9cdf7;font-size:15px;font-weight:700}.toast-undo button:hover{background:#ffffff14}.empty-state{border:1px dashed var(--fq-border);border-radius:20px;padding:28px 20px;text-align:center;color:var(--fq-muted);list-style:none}.user-menu{position:relative;flex-shrink:0}.user-menu-btn{width:44px;height:44px;padding:0;border-radius:50rem;overflow:hidden;border:1px solid #D5D9F5;background:var(--fq-primary-subtle);color:var(--fq-primary-hover);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center}.user-menu-btn img{width:100%;height:100%;object-fit:cover}.user-menu-btn:hover{border-color:var(--fq-primary)}.user-menu-btn[aria-expanded=true]{background:var(--fq-primary);border-color:var(--fq-primary);color:#fff}.user-menu-panel{position:absolute;right:0;top:52px;z-index:1050;width:248px;background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:16px;box-shadow:0 12px 32px #1b1a1f29;padding:8px;display:flex;flex-direction:column;gap:4px}.user-menu-panel[hidden]{display:none}.user-menu-head{display:flex;align-items:center;gap:10px;padding:8px 8px 12px;border-bottom:1px solid #F0EDE5}.user-menu-avatar{width:40px;height:40px;flex-shrink:0;border-radius:50rem;overflow:hidden;background:var(--fq-primary-subtle);color:var(--fq-primary-hover);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700}.user-menu-avatar img{width:100%;height:100%;object-fit:cover}.user-menu-name{font-size:15px;font-weight:600}.user-menu-email{font-size:13px;color:var(--fq-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{height:44px;border-radius:10px;padding:0 10px;border:0;background:transparent;width:100%;display:flex;align-items:center;gap:10px;text-align:left;font-size:15px;font-weight:600;color:var(--fq-danger-ink)}.user-menu-item:hover,.user-menu-item:focus-visible{background:var(--fq-danger-subtle);outline:none}.user-menu-item.is-neutral{color:var(--fq-ink);text-decoration:none}.user-menu-item.is-neutral svg{color:var(--fq-primary)}.user-menu-item.is-neutral:hover,.user-menu-item.is-neutral:focus-visible{background:var(--fq-primary-subtle);color:var(--fq-ink)}@media (prefers-reduced-motion: reduce){.word-row{transition:none}}.p-card{background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:24px;padding:18px 18px 20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 2px #1b1a1f0a,0 6px 18px #1b1a1f0a}.p-h2{font-family:var(--fq-font-display);font-size:24px;font-weight:600;line-height:1.15;margin:0}.p-h2--sm{font-size:22px;margin-top:4px}.p-eyebrow{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fq-muted);margin:0}.p-muted{color:var(--fq-muted)}.streak-icon{width:52px;height:52px;flex-shrink:0;border-radius:16px;background:var(--fq-danger-subtle);color:var(--fq-danger);display:flex;align-items:center;justify-content:center}.week{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between}.week li{display:flex;flex-direction:column;align-items:center;gap:6px}.day-dot{width:36px;height:36px;border-radius:50%;background:#f0ede5;display:flex;align-items:center;justify-content:center}.day-dot.is-played{background:var(--fq-primary)}.day-dot.is-future{background:transparent;border:2px dashed var(--fq-border)}.day-dot.is-today{box-shadow:0 0 0 3px var(--fq-surface),0 0 0 5px var(--fq-primary)}.day-letter{font-size:12px;font-weight:700;color:var(--fq-muted)}.day-letter.is-today{color:var(--fq-primary)}.big-num{font-family:var(--fq-font-display);font-size:46px;font-weight:600;line-height:1}.mastery-bar{display:flex;gap:2px;height:12px;border-radius:50rem;overflow:hidden;background:var(--fq-border-soft)}.mastery-bar--sm{height:8px}.seg-learned{background:var(--fq-success)}.seg-learning{background:var(--fq-primary)}.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px}.legend li{display:flex;align-items:center;gap:10px}.legend-key{width:12px;height:12px;border-radius:4px;flex-shrink:0}.legend-key.k-new{background:var(--fq-border-soft);box-shadow:inset 0 0 0 1px var(--fq-border)}.review-card{background:var(--fq-primary-subtle);border:1px solid #C9CDF7;border-radius:24px;padding:18px 18px 20px;display:flex;flex-direction:column;gap:14px}.review-lead{margin:0;font-size:15px;color:var(--fq-primary-hover)}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.chips li{height:36px;padding:0 12px;border-radius:50rem;background:var(--fq-surface);border:1px solid #D5D9F5;display:flex;align-items:center;gap:6px;font-size:14px}.chips li.more{background:transparent;border:0;padding:0 4px;font-weight:600;color:var(--fq-primary-hover)}.btn-cta{height:56px;border-radius:var(--fq-radius, 1rem);font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px}.ok-card{flex-direction:row;align-items:center;padding:18px}.ok-icon{width:52px;height:52px;flex-shrink:0;border-radius:50%;background:var(--fq-success-subtle);color:var(--fq-success);display:flex;align-items:center;justify-content:center}.deck-row{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:20px;border:1px solid var(--fq-border-soft);background:var(--fq-surface);color:var(--fq-ink);text-decoration:none}.deck-row:hover{border-color:var(--fq-border);color:var(--fq-ink)}.deck-row .deck-row-title{font-family:var(--fq-font-display);font-size:18px;font-weight:600;line-height:1.2}.hard-list{list-style:none;margin:0;padding:0;background:var(--fq-surface);border:1px solid var(--fq-border-soft);border-radius:20px;overflow:hidden}.hard-list li{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 16px}.hard-list li+li{border-top:1px solid #F0EDE5}.hard-rank{width:26px;flex-shrink:0;font-family:var(--fq-font-display);font-size:18px;font-weight:600;color:var(--fq-muted)}.hard-stat{font-size:13px;color:var(--fq-danger-ink)}.btn-speak-sm{width:44px;height:44px;flex-shrink:0;border-radius:12px;border:0;background:transparent;color:var(--fq-primary);display:flex;align-items:center;justify-content:center;padding:0}.btn-speak-sm:hover{background:var(--fq-primary-subtle)}.btn-speak-sm[aria-pressed=true]{background:var(--fq-primary);color:#fff}.no-speech .btn-speak-sm,.no-speech .btn-speak{display:none}.empty-state-progress{background:var(--fq-surface);border:1px dashed var(--fq-border);border-radius:24px;padding:32px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.empty-art{width:120px;height:84px;margin-bottom:8px;display:flex;align-items:flex-end;justify-content:center;gap:10px}.empty-art span{width:22px;border-radius:8px 8px 4px 4px;background:var(--fq-primary-subtle);border:2px dashed #C9CDF7}.empty-art span:last-child{background:var(--fq-primary);border:0}.empty-title{font-family:var(--fq-font-display);font-size:24px;font-weight:600;margin:0}.empty-text{font-size:15px;line-height:1.5;color:var(--fq-muted);margin:0}@media (prefers-reduced-motion: reduce){.day-dot,.seg-learned,.seg-learning{transition:none}}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1060;background:#1b1a1f73;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;animation:cs-fade .16s ease-out}.confirm-sheet{width:100%;max-width:480px;background:var(--fq-surface);border-radius:var(--fq-radius-lg) var(--fq-radius-lg) 0 0;padding:12px 20px max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px;box-shadow:0 -12px 32px #1b1a1f2e;animation:cs-up .2s ease-out}.confirm-handle{align-self:center;width:40px;height:4px;border-radius:50rem;background:var(--fq-border)}.confirm-title{font-family:var(--fq-font-display);font-size:26px;font-weight:600;line-height:1.15;margin:0}.confirm-body{font-size:15px;line-height:1.5;color:var(--fq-muted);margin:0}.confirm-extra:empty{display:none}.confirm-danger{height:56px;border-radius:var(--fq-radius);border:0;width:100%;background:var(--fq-danger);color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px}.confirm-danger:hover{background:var(--fq-danger-hover)}.confirm-cancel{height:52px;border-radius:var(--fq-radius);width:100%;border:1px solid var(--fq-border);background:var(--fq-surface);color:var(--fq-ink);font-size:16px;font-weight:600}.confirm-cancel:hover{background:var(--fq-bg)}.confirm-sheet button:focus-visible{outline:3px solid var(--fq-primary);outline-offset:2px}@keyframes cs-fade{0%{opacity:0}}@keyframes cs-up{0%{transform:translateY(24px);opacity:.6}}@media (prefers-reduced-motion: reduce){.confirm-backdrop,.confirm-sheet{animation:none}}.confirm-primary{height:56px;border-radius:var(--fq-radius);border:0;width:100%;background:var(--fq-primary);color:#fff;font-size:17px;font-weight:700}.confirm-primary:hover{background:var(--fq-primary-hover)}.confirm-leave{color:var(--fq-danger-ink)}
