:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#10223d;background:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--navy: #071f43;--navy-2: #0b2f61;--gold: #e7b83f;--gold-deep: #b88920;--ink: #10223d;--muted: #6d7b90;--line: #dce4ee;--soft: #f4f7fb;--success: #23703b}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--soft)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top right,rgba(231,184,63,.12),transparent 34%),linear-gradient(180deg,#f8fafc,#eef3f8)}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}.app-shell{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.card,.welcome-card{width:min(100%,680px);background:#fffffffa;border:1px solid rgba(15,43,73,.08);border-radius:28px;box-shadow:0 20px 70px #0d233d1f}.welcome-card{padding:32px 28px;text-align:center;overflow:hidden}.logo-panel{margin:-32px -28px 26px;padding:18px 26px;background:#fff}.epuzzle-logo{display:block;width:auto;max-width:82%;height:185px;margin:0 auto;object-fit:contain}.welcome-kicker,.eyebrow{margin:0 0 8px;color:var(--gold-deep);font-size:.76rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{font-size:clamp(1.7rem,5vw,2.55rem);line-height:1.08;margin-bottom:14px}h2{margin-bottom:0}.subtitle,.page-intro,.result-copy,.welcome-user p{color:var(--muted);line-height:1.55}.field-label{display:block;margin:26px 0 8px;text-align:left;font-weight:750}input,textarea{width:100%;border:1px solid #ced7e2;border-radius:16px;padding:15px 16px;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:#0b4f8a;box-shadow:0 0 0 4px #0b4f8a1a}textarea{min-height:130px;resize:vertical}.primary,.gold-cta,.secondary-button{border:0;border-radius:16px;padding:15px 18px;font-weight:850;cursor:pointer}.primary{width:100%;margin-top:18px;background:var(--navy);color:#fff;transition:transform .15s ease,opacity .15s ease}.gold-button,.gold-cta{background:linear-gradient(135deg,#f2cb61,#dba72d);color:var(--navy);box-shadow:0 9px 24px #c18f1d38}.gold-button{margin-top:18px}.primary:not(:disabled):active,.gold-cta:active,.secondary-button:active{transform:scale(.985)}.primary:disabled{opacity:.42;cursor:not-allowed}.connection-message{margin-top:14px;padding:12px 14px;border-radius:14px;background:#fff7e6;color:#7a5200;font-size:.88rem;line-height:1.45}.dashboard-shell{min-height:100vh;background:radial-gradient(circle at 100% 0%,rgba(231,184,63,.11),transparent 28%),#f4f7fb;padding-bottom:96px}.dashboard-content{width:min(100%,760px);margin:0 auto;padding:18px 18px 24px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0 20px}.header-logo{width:76px;height:84px;object-fit:contain}.avatar-circle{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:var(--gold);font-size:1.05rem;font-weight:900;border:2px solid rgba(231,184,63,.55)}.welcome-user{padding:6px 2px 18px}.welcome-user h1{margin-bottom:7px}.welcome-user p{margin-bottom:0}.course-card{position:relative;overflow:hidden;padding:24px;border-radius:25px;background:radial-gradient(circle at 92% 10%,rgba(231,184,63,.25),transparent 32%),linear-gradient(145deg,#071f43,#0d356b);color:#fff;box-shadow:0 18px 46px #071f4338}.course-card:after{content:"✦";position:absolute;right:20px;top:13px;color:#e7b83f9e;font-size:2.5rem}.course-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:#e7b83f24;color:#f0c85d;border:1px solid rgba(231,184,63,.32);font-weight:900;font-size:.74rem;letter-spacing:.1em}.course-card h2{margin-top:15px;font-size:1.75rem}.course-card>p{margin:7px 0 22px;color:#d4deeb}.course-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.course-progress>div{padding:13px 14px;border-radius:16px;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.course-progress strong,.course-progress span{display:block}.course-progress strong{color:var(--gold);font-size:1.35rem}.course-progress span{margin-top:2px;color:#d5deea;font-size:.75rem}.gold-cta{width:100%}.section-block,.section-page{margin-top:26px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}.section-heading h2{font-size:1.15rem}.section-heading button{border:0;background:transparent;color:var(--gold-deep);font-weight:800}.lesson-tile,.lesson-list-card{width:100%;display:flex;align-items:center;gap:14px;border:1px solid var(--line);background:#fff;border-radius:19px;padding:15px;text-align:left;color:var(--ink);box-shadow:0 8px 26px #0b26460f}.lesson-number{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--navy);color:var(--gold);font-size:1.05rem;font-weight:900}.lesson-info{min-width:0;flex:1}.lesson-info strong,.lesson-info span,.lesson-info small{display:block}.lesson-info strong{margin-bottom:4px;font-size:1rem}.lesson-info span{color:var(--muted);font-size:.8rem;line-height:1.35}.lesson-info small{margin-top:5px;color:var(--success);font-weight:750}.lesson-score{color:var(--success);font-weight:900}.section-page h1{margin-bottom:8px}.page-intro{margin-bottom:22px}.lesson-list-card{margin-bottom:12px}.lesson-list-card.available{cursor:pointer}.lesson-list-card.locked{opacity:.55;box-shadow:none}.lesson-status{font-weight:900;color:var(--success)}.progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.progress-grid article{min-height:116px;padding:17px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px #0b26460e}.progress-grid span,.progress-grid strong{display:block}.progress-grid span{color:var(--muted);font-size:.76rem;font-weight:750}.progress-grid strong{margin-top:12px;color:var(--navy);font-size:1.65rem}.progress-grid .date-value{font-size:1rem;line-height:1.3}.progress-course-card{margin-top:18px;padding:19px;border-radius:20px;background:#fff;border:1px solid var(--line)}.progress-course-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:14px}.progress-course-card span{font-weight:750}.progress-course-card strong{color:var(--success)}.mini-progress-track{height:9px;margin-top:14px;border-radius:999px;overflow:hidden;background:#e8eef5}.mini-progress-track>div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--navy-2),var(--gold))}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translate(-50%);width:min(100%,760px);display:grid;grid-template-columns:repeat(3,1fr);padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#fffffff2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav button{border:0;background:transparent;color:#7c8796;padding:7px 4px 4px;font-size:.69rem;font-weight:750}.bottom-nav button span{display:block;margin-bottom:2px;font-size:1.35rem;line-height:1}.bottom-nav button.active{color:var(--navy)}.lesson-page,.result-page{background:#fff}.lesson-card{padding:26px}.lesson-header{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px}.back-button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:#edf2f8;color:var(--navy);font-size:1.6rem;line-height:1}.question-count{padding:9px 12px;border-radius:999px;background:#edf2f8;color:#31455f;font-weight:800;font-size:.85rem}.sync-indicator{display:inline-flex;align-items:center;margin-top:16px;padding:7px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.sync-indicator.connected{background:#e8f7ee;color:#166534}.progress-track{height:10px;margin:22px 0 30px;border-radius:999px;background:#e7edf4;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--navy),var(--gold));transition:width .25s ease}.question-label{margin-bottom:8px;color:#718096;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.question-text{margin-bottom:24px;font-size:clamp(1.35rem,4.8vw,2rem)}.options{display:grid;gap:12px}.option{width:100%;border:1px solid #d8e0e9;border-radius:16px;padding:15px 16px;text-align:left;background:#fff;color:#18304f;font-weight:650;cursor:pointer}.option.selected{border-color:var(--gold-deep);background:#fff9eb;box-shadow:0 0 0 3px #b48b331f}.feedback{margin-top:22px;padding:16px;border-radius:16px;line-height:1.45}.feedback.correct{background:#e8f7ee;color:#166534}.feedback.incorrect{background:#fff1f2;color:#9f1239}.result-card{padding:28px;text-align:center}.result-logo{display:block;width:auto;max-width:70%;height:130px;margin:0 auto 20px;object-fit:contain}.score-circle{width:150px;height:150px;margin:28px auto 18px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:var(--gold);font-weight:900;font-size:2.1rem}.save-status{margin:20px 0 4px;padding:13px 15px;border-radius:14px;font-weight:750;line-height:1.4}.save-status.saving{background:#eef3f8;color:#31455f}.save-status.saved{background:#e8f7ee;color:#166534}.save-status.error{background:#fff7e6;color:#7a5200}.review-section{margin-top:28px;text-align:left}.review-section h2{margin-bottom:14px;font-size:1.25rem}.review-perfect{padding:16px;border-radius:16px;background:#e8f7ee;color:#166534;font-weight:700}.review-item{margin-top:12px;padding:16px;border-radius:16px;line-height:1.5}.review-item p{margin-bottom:8px}.review-item p:last-child{margin-bottom:0}.correct-review{background:#eef8f1;border:1px solid #cfe8d7}.incorrect-review{background:#fff4f4;border:1px solid #f3c9ce}.review-question{color:var(--ink)}.all-answers{margin-top:16px}.all-answers summary{font-weight:800;color:var(--navy)}.all-answers-list{margin-top:10px}.result-actions{margin-top:22px}.secondary-button{width:100%;margin-top:10px;background:#edf2f8;color:var(--navy)}@media(max-width:520px){.app-shell{padding:0;place-items:stretch}.card,.welcome-card{min-height:100vh;border-radius:0;border:0;box-shadow:none}.welcome-card,.result-card,.lesson-card{padding:28px 20px}.logo-panel{margin:-28px -20px 25px}.dashboard-content{padding:14px 16px 24px}}.audio-button{width:100%;display:grid;grid-template-columns:46px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:12px;padding:15px 18px;border:2px solid var(--gold-deep);border-radius:18px;background:#fff8e8;color:var(--navy);text-align:left;box-shadow:0 8px 22px #b48b3324;cursor:pointer}.audio-button .audio-icon{grid-row:1 / 3;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:var(--navy);font-size:1.35rem}.audio-button>span:not(.audio-icon){font-size:1rem;font-weight:900}.audio-button small{margin-top:2px;color:#64748b;font-size:.76rem;font-weight:650}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:24px 0 4px;padding:5px;border-radius:16px;background:#edf2f8}.auth-tabs button{border:0;border-radius:12px;padding:11px 10px;background:transparent;color:#64748b;font-size:.88rem;font-weight:850}.auth-tabs button.active{background:#fff;color:var(--navy);box-shadow:0 4px 14px #071f4317}.pin-label{margin-top:16px}.pin-input{text-align:center;font-size:1.3rem;font-weight:900;letter-spacing:.28em}.pin-help,.privacy-note{color:var(--muted);font-size:.78rem;line-height:1.45}.pin-help{margin:7px 2px 0;text-align:left}.privacy-note{margin:18px 0 0}.header-account{display:flex;align-items:center;gap:9px}.logout-button{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(7,31,67,.18);border-radius:12px;padding:9px 12px;background:#f7f9fc;color:var(--navy);font-size:.8rem;font-weight:900;cursor:pointer;white-space:nowrap}.logout-button span:first-child{font-size:1rem;line-height:1}@media(max-width:520px){.app-header{align-items:center;gap:10px}.header-account{gap:6px}.logout-button{padding:8px 10px;font-size:.78rem}}.header-account{position:relative}.avatar-button{border:0;padding:0;margin:0;background:transparent;border-radius:50%;cursor:pointer}.avatar-button:focus-visible{outline:3px solid rgba(231,184,63,.45);outline-offset:3px}.account-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:50;width:220px;padding:10px;border:1px solid rgba(7,31,67,.12);border-radius:16px;background:#fff;box-shadow:0 16px 40px #071f4329}.account-menu-name{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;border-bottom:1px solid rgba(7,31,67,.08)}.account-menu-name strong{color:var(--navy);font-size:.92rem}.account-menu-name span{color:var(--muted);font-size:.74rem}.account-menu-logout{width:100%;display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 11px;border:0;border-radius:12px;background:#f7f9fc;color:var(--navy);font-weight:900;cursor:pointer;text-align:left}.account-menu-logout:hover{background:#eef3f9}.account-trigger{display:inline-flex;flex-direction:column;align-items:center;gap:4px;border:0;padding:0;background:transparent;color:var(--navy);cursor:pointer}.account-trigger-label{font-size:.72rem;font-weight:900}.bottom-nav{bottom:76px;width:min(calc(100% - 24px),736px);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 30px #071f431f}.dashboard-shell{padding-bottom:176px}@media(max-width:520px){.bottom-nav{bottom:82px;left:12px;right:12px;width:auto;transform:none}.dashboard-shell{padding-bottom:190px}}.password-label{margin-top:16px}.password-input{letter-spacing:.04em}.privacy-note{margin:18px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}.avatar-button{display:inline-grid;place-items:center;border:0;padding:0;margin:0;background:transparent;border-radius:50%;cursor:pointer}.avatar-button:focus-visible{outline:3px solid rgba(231,184,63,.48);outline-offset:3px}.account-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;display:flex;justify-content:center;align-items:flex-end;padding:18px;background:#071f436b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.account-sheet{width:min(100%,520px);padding:22px;border-radius:24px;background:#fff;box-shadow:0 24px 70px #071f4347}.account-sheet-header{display:flex;align-items:center;justify-content:space-between}.account-sheet-avatar{width:50px;height:50px}.account-sheet-close{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;background:#edf2f8;color:var(--navy);font-size:1.45rem;line-height:1}.account-sheet h2{margin:16px 0 3px;color:var(--navy)}.account-username{margin:0;color:var(--gold-deep);font-size:.9rem;font-weight:850}.account-help{margin:12px 0 18px;color:var(--muted);font-size:.86rem;line-height:1.5}.account-logout-button{width:100%;border:1px solid #e2e8f0;border-radius:15px;padding:14px 16px;background:#f7f9fc;color:var(--navy);font-weight:900;cursor:pointer}.header-account{display:flex;align-items:center;gap:12px}.header-logout-button{border:1px solid rgba(7,31,67,.2);border-radius:12px;padding:10px 15px;background:#fff;color:#071f43;font-size:14px;font-weight:800;cursor:pointer;min-height:44px}
