*,*::before,*::after{margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--lc-font);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}
[data-theme='dark'] body,body:not(.light){background:var(--bg);color:var(--text)}
body.light,[data-theme='light'] body{background:var(--bg);color:var(--text)}
[data-theme='dark']{--surface:#242429;--surface2:#2C2C33}
.app{max-width:1200px;margin:0 auto;padding:0 24px 120px}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap}
.topbar-brand{display:flex;align-items:center;gap:12px;cursor:pointer;min-width:0}
.topbar-brand .logo-name{font-size:18px}
.topbar-brand .logo-sub{font-size:13px;padding-left:12px;border-left:1px solid var(--border);margin-left:4px}
.topbar-right{display:flex;align-items:center;gap:10px}
#profileBar,#appNav{display:none!important}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer}
.logo-icon{width:32px;height:32px;flex-shrink:0}
.logo-name{font-size:16px;font-weight:700;letter-spacing:-.02em}
.logo-name b{font-weight:700}
.logo-sep{width:1px;height:18px;background:var(--border2);margin:0 4px}
.logo-sub{font-size:11px;color:var(--text-muted);letter-spacing:.06em}
.header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.user-menu-wrap{position:relative}
.user-btn{display:flex;align-items:center;gap:8px;background:var(--surface);border:.5px solid var(--border2);border-radius:100px;padding:5px 12px 5px 6px;cursor:pointer;font-family:var(--lc-font);font-size:12px;font-weight:600;color:var(--text-secondary);transition:all .2s}
.user-btn:hover,.user-btn[aria-expanded="true"]{background:var(--surface2);color:var(--text)}
.user-btn__caret{font-size:10px;opacity:.7;margin-left:2px}
.user-avatar{width:24px;height:24px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:260px;background:var(--bg2);border:.5px solid var(--border2);border-radius:14px;padding:6px 0;box-shadow:0 16px 48px rgba(0,0,0,.5);z-index:300;display:none}
.user-dropdown.open{display:block}
.user-dropdown__head{padding:12px 16px 10px}
.user-dropdown__name{font-size:14px;font-weight:700;color:var(--text)}
.user-dropdown__email{font-size:11px;color:var(--text-muted);margin-top:3px;word-break:break-all}
.user-dropdown__meta{padding:4px 16px 10px;font-size:12px;color:var(--text-secondary);line-height:1.55}
.user-dropdown__meta-rows{display:flex;flex-direction:column;gap:8px}
.user-dropdown__meta-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:12px;line-height:1.4}
.user-dropdown__meta-label{color:var(--text-muted);flex:0 0 auto}
.user-dropdown__meta-value{color:var(--text-secondary);font-weight:600;text-align:right;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.user-dropdown__meta-hint{font-size:10px;font-weight:500;color:var(--text-muted)}
.ai-credit-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:100px;background:var(--purple-bg,rgba(124,108,255,.15));color:var(--purple,#7c6cff);margin-left:6px;vertical-align:middle}
.user-dropdown__plan{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:100px;margin-top:6px}
.user-dropdown__plan--pro{background:var(--brand-light);color:var(--brand)}
.user-dropdown__plan--free{background:var(--surface2);color:var(--text-secondary)}
.user-dropdown__plan--guest{background:var(--purple-bg);color:var(--purple)}
.user-dropdown__sep{height:.5px;background:var(--border);margin:4px 0}
.user-dropdown__btn{display:block;width:100%;text-align:left;padding:10px 16px;background:none;border:none;font-family:var(--lc-font);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;text-decoration:none}
.user-dropdown__btn[hidden]{display:none!important}
.user-dropdown__btn:hover{background:var(--surface);color:var(--text)}
.user-dropdown__btn--danger{color:#f87171}
.user-dropdown__btn--danger:hover{background:rgba(248,113,113,.1);color:#f87171}
.theme-btn{background:var(--surface);border:.5px solid var(--border2);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px;transition:all .2s}
/* AUTH */
#authOverlay{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(14px);z-index:500;display:none;align-items:center;justify-content:center}
#authOverlay.open{display:flex;animation:fadeIn .3s ease}
.auth-box{background:var(--bg2);border:.5px solid var(--border2);border-radius:20px;padding:40px;width:100%;max-width:420px;animation:scaleIn .3s ease}
.auth-logo{text-align:center;margin-bottom:22px}
.auth-logo img{width:48px;height:48px;margin:0 auto 10px;display:block}
.auth-logo .ln{font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.auth-tabs{display:flex;border:.5px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:18px}
.auth-tab{flex:1;padding:10px;font-family:var(--lc-font);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:all .2s}
.auth-tab.active{background:var(--surface2);color:var(--text)}
.auth-field{width:100%;background:var(--bg3);border:.5px solid var(--border2);border-radius:var(--radius-md);padding:11px 15px;font-family:var(--lc-font);font-size:14px;color:var(--text);margin-bottom:9px;outline:none;transition:border-color .15s}
.auth-field:focus{border-color:var(--brand)}
.auth-field::placeholder{color:var(--text-muted)}
.btn-auth{width:100%;background:var(--brand);color:#fff;border:none;border-radius:var(--radius-md);padding:13px;font-family:var(--lc-font);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:11px}
.btn-auth:hover{background:var(--brand-dark)}
.auth-or{text-align:center;font-size:11px;color:var(--text-muted);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin:10px 0;position:relative}
.auth-or::before,.auth-or::after{content:'';position:absolute;top:50%;width:42%;height:.5px;background:var(--border)}
.auth-or::before{left:0}
.auth-or::after{right:0}
.btn-google{width:100%;background:var(--bg3);border:.5px solid var(--border2);border-radius:var(--radius-md);padding:12px;font-family:var(--lc-font);font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px}
.btn-google:hover{background:var(--surface)}
.btn-guest{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;background:transparent;border:.5px solid var(--border2);border-radius:var(--radius-md);padding:12px;font-family:var(--lc-font);font-size:13px;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:all .2s;margin:0;text-decoration:none}
.btn-guest:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}
.auth-guest-section{margin-top:16px;padding-top:16px;border-top:.5px solid var(--border)}
.auth-guest-note{font-size:11px;color:var(--text-muted);text-align:center;margin:12px 0 0;line-height:1.55;font-weight:400}
.auth-msg{font-size:12px;color:var(--red);margin-bottom:7px;min-height:15px;text-align:center}
.auth-msg.ok{color:var(--green)}
#authPending{display:none;text-align:center;padding:4px 0 8px}
#authPending p{font-size:14px;color:var(--text);line-height:1.65;margin-bottom:14px;font-weight:400}
#authPendingEmail{color:var(--brand);font-weight:700}
.auth-pending-hint{font-size:12px;color:var(--text-muted);display:block;margin-top:6px}
.btn-auth:disabled{opacity:.6;cursor:wait}
/* PLAN BADGE */
.plan-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:3px 9px;border-radius:100px;letter-spacing:.06em;text-transform:uppercase}
.plan-free{background:var(--surface);color:var(--text-muted);border:.5px solid var(--border)}
.plan-pro{background:linear-gradient(135deg,var(--brand),var(--teal));color:#fff;border:none}
/* UPGRADE MODAL */
#upgradeModal{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(14px);z-index:600;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px 16px 24px}
#upgradeModal.show{display:flex}
.upgrade-box{background:var(--bg2);border:.5px solid var(--border2);border-radius:20px;padding:32px 24px 24px;width:100%;max-width:min(720px,100%);max-height:calc(100vh - 40px);overflow-y:auto;text-align:center;animation:scaleIn .3s ease;position:relative;margin:auto}
.upgrade-close{position:absolute;top:10px;right:10px;width:36px;height:36px;border:none;border-radius:10px;background:var(--surface);color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}
.upgrade-close:hover{background:var(--surface2);color:var(--text)}
.upgrade-box h2{font-family:var(--lc-font),serif;font-size:28px;margin-bottom:8px;padding-right:36px}
.upgrade-box h2 em{color:var(--brand);font-style:italic}
.upgrade-box p{font-size:13px;color:var(--text-secondary);line-height:1.7;margin-bottom:24px;font-weight:400}
.plan-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.plan-cards--tiers{grid-template-columns:repeat(3,1fr)}
@media (max-width:720px){.plan-cards--tiers{grid-template-columns:1fr}}
.plan-card.pro-max-card{border-color:rgba(124,58,237,.35);background:var(--purple-bg,rgba(124,58,237,.08))}
.plan-card.pro-max-card .plan-card-label{color:var(--purple,#7c3aed)}
.plan-card.plan-card--current{outline:2px solid var(--brand);outline-offset:-1px}
.plan-card.pro-max-card.plan-card--current{outline-color:var(--purple,#7c3aed)}
.upgrade-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.upgrade-actions .btn-upgrade{margin-bottom:0}
.upgrade-actions [hidden]{display:none!important}
.plan-card{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;text-align:left;cursor:pointer;transition:all .2s}
.plan-card:hover{border-color:var(--border2)}
.plan-card.pro-card{border-color:rgba(37,99,235,.35);background:var(--brand-light);cursor:default}
.plan-card-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}
.plan-card.pro-card .plan-card-label{color:var(--brand)}
.plan-price{font-size:26px;font-weight:800;letter-spacing:-1px;margin-bottom:4px}
.plan-price span{font-size:12px;font-weight:400;color:var(--text-muted)}
.plan-features{font-size:12px;color:var(--text-secondary);line-height:1.9;font-weight:400}
.plan-features b{color:var(--text);font-weight:700}
.btn-upgrade{width:100%;background:var(--brand);color:#fff;border:none;border-radius:var(--radius-md);padding:14px;font-family:var(--lc-font);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:10px}
.btn-upgrade:hover{filter:brightness(1.08)}
.btn-upgrade-skip{background:none;border:none;font-family:var(--lc-font);font-size:12px;color:var(--text-muted);cursor:pointer;padding:4px}
.quota-bar{background:var(--bg2);border:.5px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.quota-count{font-size:13px;font-weight:700;color:var(--text);font-family:'DM Mono',monospace}
.quota-count.low{color:var(--orange)}
.quota-count.none{color:var(--red)}
#quotaExceededModal{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(14px);z-index:650;display:none;align-items:center;justify-content:center}
#quotaExceededModal.show{display:flex}
#creditPackModal{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(14px);z-index:660;display:none;align-items:center;justify-content:center}
#creditPackModal.show{display:flex}
.credit-pack-box{max-width:440px}
.credit-pack-subtitle{color:var(--text-muted);font-size:13px;margin-top:0}
.credit-pack-offers{display:grid;grid-template-columns:1fr;gap:10px;margin:16px 0}
.credit-pack-offers--row{grid-template-columns:repeat(3,1fr);gap:8px}
@media (max-width:560px){.credit-pack-offers--row{grid-template-columns:1fr}}
.credit-pack-offer{text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;position:relative}
.credit-pack-offer__head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.credit-pack-offer__meta{font-size:12px;color:var(--text-muted)}
.credit-pack-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px;background:var(--green-bg,#ecfdf5);color:var(--green,#059669);border:.5px solid rgba(5,150,105,.25);white-space:nowrap}
.credit-pack-primary{margin:12px 0 4px}
.credit-pack-divider{font-size:12px;color:var(--text-muted);text-align:center;margin:8px 0 4px}
.credit-pack-auto{margin:12px 0;text-align:left}
.credit-pack-auto__label{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--text-secondary)}
.credit-pack-auto__label input{margin-top:3px}
#quotaConfirmModal{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(14px);z-index:645;display:none;align-items:center;justify-content:center}
#quotaConfirmModal.show{display:flex}
.fc-type-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.fc-type-filter{font-size:11px;font-weight:700;padding:6px 12px;border-radius:100px;border:.5px solid var(--border);background:var(--bg2);color:var(--text-muted);cursor:pointer;transition:all .2s}
.fc-type-filter.active{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}
.fc-type-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;border:.5px solid;margin-left:6px;text-transform:uppercase;letter-spacing:.04em;display:inline-block}
.exam-badge.pool{background:var(--blue-bg);color:var(--blue);border:.5px solid rgba(93,184,232,.3)}
.saved-src-badge{font-size:9px;font-weight:700;padding:2px 8px;border-radius:100px;background:var(--surface);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}
.speaking-eval-block{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px}
.speak-crit-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px}
.speak-crit-bar{flex:1;height:6px;background:var(--surface);border-radius:3px;overflow:hidden}
.speak-crit-fill{height:100%;background:var(--purple);border-radius:3px}
.corr-diff mark{background:rgba(249,115,22,.25);color:var(--orange);border-radius:2px;padding:0 2px}
.writing-ai-block{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-md);padding:14px;margin-top:12px}
#pdf-export-container{display:none;position:absolute;left:-9999px;top:0;width:210mm;background:#fff;color:#111;padding:16mm 18mm;font-family:'Segoe UI',system-ui,sans-serif;font-size:10pt;line-height:1.45}
.pdf-doc{color:#111}
.pdf-header{border-bottom:2px solid #1a1a1a;padding-bottom:10px;margin-bottom:14px}
.pdf-brand{font-size:9pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#555}
.pdf-meta{font-size:9pt;color:#444;margin:4px 0 8px}
.pdf-candidate{font-size:16pt;font-weight:700;margin:0 0 4px;color:#111}
.pdf-scoreline{font-size:11pt;margin:0;color:#222}
.pdf-section{margin-bottom:16px;page-break-inside:avoid}
.pdf-section h2{font-size:11pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#333;margin:0 0 8px;border-bottom:1px solid #ddd;padding-bottom:4px}
.pdf-section h3{font-size:10pt;font-weight:700;margin:8px 0 4px;color:#222}
.pdf-table{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:9.5pt}
.pdf-table td{border:1px solid #ccc;padding:5px 8px;color:#222}
.pdf-table .pdf-num{text-align:right;font-weight:700;width:56px}
.pdf-grammar-group{margin-bottom:10px;page-break-inside:avoid}
.pdf-badge{font-size:8pt;font-weight:600;color:#666}
.pdf-explain{font-size:9.5pt;color:#333;margin:0 0 6px;padding-left:8px;border-left:2px solid #ccc}
.pdf-coach-topic{margin-bottom:10px;page-break-inside:avoid}
.pdf-examples{margin:4px 0 8px;padding-left:18px;font-size:9.5pt}
.pdf-tip{font-size:9pt;color:#444}
.pdf-writing-block{margin-bottom:12px;page-break-inside:avoid}
.pdf-corrected{white-space:pre-wrap;font-size:9.5pt;background:#f8f8f8;padding:8px;border-radius:4px;border:1px solid #e5e5e5}
.pdf-errors{margin:6px 0;padding-left:16px;font-size:9pt}
.pdf-muted{font-size:9pt;color:#555}
.pdf-detail-block{margin-bottom:10px;page-break-inside:avoid}
.pdf-fail-row{font-size:9pt;margin:0 0 6px;page-break-inside:avoid}
.pdf-x{color:#c0392b;font-weight:700}
.pdf-footer{margin-top:20px;padding-top:8px;border-top:1px solid #ddd;font-size:8pt;color:#888;text-align:center}
.pdf-print-hint-overlay{position:fixed;inset:0;z-index:2000;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.pdf-print-hint-box{max-width:420px;background:var(--bg,#fff);color:var(--text,#111);border:1px solid var(--border,#ddd);border-radius:var(--radius-lg,12px);padding:22px 24px;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.pdf-print-hint-box h2{font-size:15px;font-weight:700;margin:0 0 10px}
.pdf-print-hint-box p{font-size:13px;line-height:1.55;color:var(--text-secondary,#444);margin:0 0 10px}
.pdf-print-hint-note{font-size:12px;color:var(--text-muted,#666)!important}
.pdf-print-hint-btn{margin-top:8px}
.nb-fab{position:fixed;right:18px;bottom:72px;z-index:1200;touch-action:none}
.nb-fab-main{width:52px;height:52px;border-radius:50%;border:none;background:var(--purple,#7c6cff);color:#fff;font-size:22px;box-shadow:0 4px 18px rgba(0,0,0,.22);cursor:pointer}
.nb-panel{position:fixed;right:12px;bottom:132px;width:min(360px,calc(100vw - 24px));max-height:min(420px,55vh);background:var(--bg2,#fff);border:1px solid var(--border,#ddd);border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.18);z-index:1199;display:none;flex-direction:column;overflow:hidden}
.nb-panel.open{display:flex}
.nb-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border,#eee);background:var(--surface,#fafafa)}
.nb-head-title{font-size:12px;font-weight:700}
.nb-toolbar{display:flex;gap:6px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--border,#eee)}
.nb-hl{width:22px;height:22px;border-radius:50%;border:1px solid rgba(0,0,0,.08);cursor:pointer}
.nb-tabs{display:flex;gap:4px;overflow-x:auto;padding:6px 8px;border-bottom:1px solid var(--border,#eee)}
.nb-tab{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid var(--border,#ddd);background:transparent;cursor:pointer;white-space:nowrap}
.nb-tab.active{background:var(--purple-bg,rgba(124,108,255,.15));border-color:var(--purple,#7c6cff)}
.nb-editor{flex:1;overflow:auto;padding:12px 14px;line-height:1.7;font-size:14px;background:linear-gradient(var(--bg,#fff),var(--bg,#fff)),repeating-linear-gradient(transparent,transparent 27px,#eee 28px);min-height:160px;outline:none}
.ai-credits-indicator{margin-left:8px}
@media print{@page{size:A4;margin:14mm 12mm 20mm 12mm}
body>*:not(#pdf-export-container){display:none!important}
#pdf-export-container{display:block!important;position:static;left:0;width:100%;padding:0}
.pdf-page-break{page-break-before:auto}}
/* HOME */
#homeScreen{padding:0 0 0;animation:fadeUp .4s ease}
.hero{position:relative;margin:0 -24px 36px;padding:48px 24px 44px;overflow:hidden;border-bottom:.5px solid var(--border)}
.mode-card{padding:17px 19px;border-radius:var(--radius-md);border:.5px solid var(--border);background:var(--bg2)}
.mode-card h3{font-size:13px;font-weight:700;margin-bottom:5px;display:flex;align-items:center;gap:8px}
.mode-card p{font-size:12px;color:var(--text-secondary);line-height:1.6;font-weight:400}
.hqc-body h3{font-size:14px;font-weight:700;margin-bottom:2px}
.hqc-body p{font-size:12px;color:var(--text-secondary);font-weight:400}
.badge-pill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px;white-space:nowrap}
.badge-purple{background:var(--purple-bg);color:var(--purple);border:.5px solid rgba(167,139,250,.25)}
.quick-btns{display:flex;gap:6px;flex-wrap:wrap}
.quick-btn{font-size:11px;font-weight:700;padding:6px 12px;border-radius:6px;background:var(--surface);border:.5px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .2s;font-family:var(--lc-font)}
.quick-btn:hover{background:var(--orange-bg);color:var(--orange);border-color:rgba(249,115,22,.3)}
.back-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;font-family:var(--lc-font);letter-spacing:.06em;text-transform:uppercase;margin-bottom:26px;transition:color .2s}
.back-btn:hover{color:var(--text)}
.screen-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:9px}
.screen-h1{font-family:var(--lc-font);font-size:27px;font-weight:700;letter-spacing:-.02em;margin-bottom:5px}
.screen-sub{font-size:13px;color:var(--text-secondary);margin-bottom:25px;font-weight:400}
.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:22px}
.level-card{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));padding:17px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;text-align:center}
.level-card:hover{border-color:var(--border-strong,var(--border2));transform:translateY(-1px)}
.level-card.selected{border-color:var(--brand);background:var(--brand-light)}
.level-card--soon{opacity:.72;cursor:pointer;border-style:dashed}
.level-card--soon:hover{border-color:var(--orange)}
.level-card__badge{display:block;margin-top:6px}
.level-card__hint{font-size:10px;color:var(--text-muted);margin-top:6px}
.lc-code{font-size:21px;font-weight:700;letter-spacing:-.02em;margin-bottom:3px}
.lc-name{font-size:10px;color:var(--text-secondary);font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.btn-block{width:100%}
.btn-start{width:100%;background:var(--brand);color:#fff;border:none;border-radius:var(--radius-md);padding:14px;font-family:var(--lc-font);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px}
.btn-start:hover{background:var(--brand-dark);transform:translateY(-1px)}
.btn-start:disabled{opacity:.35;cursor:not-allowed;transform:none}
.exam-badge.demo{background:var(--green-bg);color:var(--green);border-color:rgba(93,232,160,.25)}
.corr-wrap{margin-top:22px;display:flex;flex-direction:column;gap:14px}
.corr-mod{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}
.corr-mod h3{font-size:13px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.corr-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:8px;margin-bottom:8px;font-size:12px;line-height:1.55}
.corr-row.ok{background:var(--green-bg);border:.5px solid rgba(93,232,160,.2)}
.corr-row.bad{background:rgba(255,90,90,.08);border:.5px solid rgba(255,90,90,.2)}
.corr-q{font-weight:700;color:var(--text)}
.corr-ans{color:var(--text-secondary)}
.corr-fix{color:var(--green);font-weight:600;margin-top:3px}
.corr-model{margin-top:12px;padding:12px;background:var(--bg3);border-radius:8px;font-size:12px;line-height:1.65;color:var(--text-secondary);white-space:pre-wrap}
.off-header{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px;margin-bottom:24px}
.off-board{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.off-cert{font-family:var(--lc-font),serif;font-size:26px;margin-bottom:4px}
.off-note{font-size:12px;color:var(--text-secondary);line-height:1.6;margin-top:8px}
.off-instr{background:var(--bg3);border-left:3px solid var(--brand);padding:12px 14px;margin-bottom:16px;font-size:13px;color:var(--text-secondary);line-height:1.65;white-space:pre-wrap;border-radius:0 6px 6px 0}
.off-teil{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:6px}
.off-mod-head{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:18px}
.off-mod-head h2{font-size:15px;font-weight:700;margin-bottom:4px}
.off-mod-time{font-size:11px;color:var(--text-muted);font-family:'DM Mono',monospace}
.off-ads{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
@media(max-width:600px){.off-ads{grid-template-columns:1fr}}
.off-ad{background:var(--bg3);border:.5px solid var(--border);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.6;color:var(--text-secondary)}
.off-ad b{color:var(--text);display:block;margin-bottom:4px;font-size:12px}
.off-sign{background:var(--bg3);border:.5px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:12px;font-size:14px;line-height:1.7;color:var(--text);border-left:3px solid var(--brand)}
.off-sign-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.form-row{margin-bottom:10px}
.form-row label{display:block;font-size:11px;font-weight:700;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}
.form-input{width:100%;background:var(--bg3);border:.5px solid var(--border2);border-radius:8px;padding:10px 13px;font-family:var(--lc-font);font-size:13px;color:var(--text);outline:none}
.form-input:focus{border-color:var(--brand)}
.off-card-scene{background:var(--purple-bg);border:.5px solid rgba(167,139,250,.25);border-radius:var(--radius-lg);padding:16px;margin:12px 0;font-size:13px;color:var(--text-secondary);line-height:1.6}
.off-ad{background:var(--bg3);border:.5px solid var(--border);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.6;color:var(--text-secondary)}
.off-ad b{color:var(--text);display:block;margin-bottom:4px;font-size:12px}
@media(max-width:640px){.off-ads{grid-template-columns:1fr}}
/* LOADING */
#loadingScreen{display:none;text-align:center;padding:100px 0;animation:fadeUp .3s ease}
.loader-orbit{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--border2);border-top-color:var(--brand);animation:spin .7s linear infinite;margin:0 auto 22px}
.loader-title{font-size:18px;font-weight:700;margin-bottom:5px}
.loader-sub{font-size:13px;color:var(--text-secondary);font-weight:400}
.personal-gen-progress{margin:16px auto 0;max-width:380px;text-align:left;font-size:12px;color:var(--text-secondary)}
.personal-gen-progress__list{list-style:none;padding:0;margin:0}
.personal-gen-progress__list li{padding:4px 0;border-bottom:1px solid var(--border)}
.personal-gen-progress__list li.ok{color:var(--green,#2a9d4a)}
.personal-gen-progress__list li.fail{color:var(--red,#c44)}
.personal-gen-banner{background:var(--blue-bg);border:1px solid rgba(93,184,232,.25);border-radius:var(--radius-lg);padding:12px 16px;margin-bottom:14px;font-size:13px;color:var(--text-secondary)}
.personal-gen-banner .btn-sm{margin-top:8px}
/* EXAM */
#examScreen{display:none;animation:fadeUp .4s ease}
.exam-topbar{display:flex;align-items:center;justify-content:space-between;padding:17px 0 0;border-bottom:.5px solid var(--border);margin-bottom:28px;gap:10px;flex-wrap:wrap}
.exam-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.exam-badge{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:100px;background:var(--surface);color:var(--text-secondary);border:.5px solid var(--border)}
.exam-badge.practice{background:var(--blue-bg);color:var(--blue);border-color:rgba(93,184,232,.25)}
.exam-badge.real{background:var(--brand-light);color:var(--brand);border-color:rgba(232,197,71,.25)}
.exam-badge.vocab{background:var(--purple-bg);color:var(--purple);border-color:rgba(167,139,250,.25)}
.exam-badge.quick{background:var(--orange-bg);color:var(--orange);border-color:rgba(249,115,22,.25)}
.exam-title{font-size:13px;font-weight:600}
.exam-actions{display:flex;gap:7px;flex-shrink:0;flex-wrap:wrap}
/* DESIGN SYSTEM PRIMITIVES (Fase B) */
.card{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
.note-card{padding:14px 16px;font-size:13px;font-weight:500;color:var(--text-secondary);line-height:1.6}
.note-card b{color:var(--text);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--lc-font);font-weight:600;font-size:14px;line-height:1;border-radius:var(--radius-md);padding:12px 20px;cursor:pointer;border:1px solid var(--border-strong,var(--border2));background:var(--surface,var(--bg2));color:var(--text);transition:background .15s,border-color .15s,color .15s}
.btn:hover:not(:disabled){background:var(--surface2,var(--bg3))}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-primary:hover:not(:disabled){background:var(--brand-dark)}
.btn-sm{background:var(--surface);border:.5px solid var(--border2);border-radius:8px;padding:6px 13px;font-family:var(--lc-font);font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s;letter-spacing:.04em}
.btn-sm:hover{background:var(--surface2);color:var(--text)}
.btn-sm.accent{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn-sm.accent:hover{background:var(--brand-dark)}
.btn-sm.purple{background:var(--purple-bg);color:var(--purple);border-color:rgba(167,139,250,.3)}
.btn-sm.blue{background:var(--blue-bg);color:var(--blue);border-color:rgba(93,184,232,.3)}
.btn-sm.red{background:var(--red-bg);color:var(--red);border-color:rgba(232,93,93,.3)}
.timer-wrap{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;font-family:'DM Mono',monospace}
.timer-val{color:var(--text)}
.timer-val.warn{color:var(--orange)}
.timer-val.crit{color:var(--red);animation:blink .5s ease infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.progress-wrap{margin-bottom:26px}
.progress-row{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);margin-bottom:5px;font-weight:600;letter-spacing:.04em}
.progress-track{height:2px;background:var(--surface);border-radius:2px;overflow:hidden}
.progress-fill{height:2px;background:var(--brand);border-radius:2px;transition:width .4s ease}
.module-wrap{background:var(--bg-surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:var(--radius-md,12px);padding:22px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm,0 1px 3px rgba(15,23,42,.06))}
.module-tag{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 14px;border-radius:100px;margin-bottom:14px}
.tag-lesen{background:rgba(93,184,232,.1);color:var(--blue);border:.5px solid rgba(93,184,232,.2)}
.tag-horen{background:rgba(93,232,160,.1);color:var(--green);border:.5px solid rgba(93,232,160,.2)}
.tag-schreiben{background:rgba(232,197,71,.1);color:var(--brand);border:.5px solid rgba(232,197,71,.2)}
.tag-sprechen{background:rgba(232,93,93,.1);color:var(--red);border:.5px solid rgba(232,93,93,.2)}
.tag-gap{background:rgba(167,139,250,.1);color:var(--purple);border:.5px solid rgba(167,139,250,.2)}
.module-title{font-family:var(--lc-font);font-size:25px;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}
.module-desc{font-size:13px;color:var(--text-secondary);margin-bottom:20px;font-weight:400;line-height:1.65;max-width:580px}
.text-display{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px}
.text-display h3{font-family:var(--lc-font),serif;font-size:18px;margin-bottom:12px}
.audio-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-muted);background:var(--surface);padding:4px 11px;border-radius:100px;margin-bottom:11px;letter-spacing:.04em;border:.5px solid var(--border)}
.readable-text{font-size:14px;line-height:2;color:var(--text);font-weight:400}
.dlg-line{margin-bottom:10px;line-height:1.85}
.dlg-line:last-child{margin-bottom:0}
.dlg-speaker{font-weight:700;color:var(--brand);margin-right:4px}
.vocab-word{cursor:pointer;border-bottom:1px dashed var(--text-muted);transition:all .15s;padding:0 1px;border-radius:2px}
.vocab-word:hover,.vocab-word.vocab-active{color:var(--brand);border-bottom-color:var(--brand);background:var(--brand-light)}
.vocab-word.vocab-saved{font-weight:600;border-radius:3px;padding:0 2px}
.vocab-word.vocab-saved:not([class*="vocab-pos-"]){color:var(--green);border-bottom:1px solid rgba(93,232,160,.55);background:var(--green-bg)}
.vocab-word.vocab-saved.vocab-pos-noun{color:var(--blue);border-bottom:2px solid var(--blue);background:var(--blue-bg)}
.vocab-word.vocab-saved.vocab-pos-verb{color:var(--orange);border-bottom:2px solid var(--orange);background:rgba(245,158,11,.14)}
.vocab-word.vocab-saved.vocab-pos-adjective{color:var(--green);border-bottom:2px solid var(--green);background:var(--green-bg)}
.vocab-word.vocab-saved.vocab-pos-adverb{color:var(--purple);border-bottom:2px solid var(--purple);background:var(--purple-bg)}
.vocab-word.vocab-saved.vocab-pos-phrase,.vocab-word.vocab-saved.vocab-pos-other{color:var(--text-secondary);border-bottom:2px solid var(--text-muted);background:rgba(127,127,127,.12)}
.vocab-word.vocab-marked{color:var(--orange);border-bottom:0;background:rgba(245,158,11,.18);font-weight:600;border-radius:3px;padding:0 2px}
.vocab-word.vocab-marked:hover{color:var(--orange);background:rgba(245,158,11,.28)}
.vocab-word.vocab-marked-official{color:var(--orange);border-bottom:2px solid var(--orange);background:rgba(245,158,11,.24);font-weight:700;border-radius:3px;padding:0 3px;box-shadow:inset 0 -2px 0 rgba(245,158,11,.35)}
.vocab-word.vocab-marked-official:hover{background:rgba(245,158,11,.34)}
.vocab-word.vocab-target{color:var(--blue);background:var(--blue-bg);border-bottom:1px solid var(--blue);font-weight:600}
.vocab-word.vocab-target:hover{color:var(--blue);border-bottom-color:var(--blue);background:rgba(93,184,232,.18)}
.vocab-word.vocab-saved.vocab-target,.vocab-word.vocab-marked.vocab-target,.vocab-word.vocab-marked-official.vocab-target{color:inherit;border-bottom-width:1px}
#examScreen.mode-official .vocab-word{border-bottom-color:transparent;background:transparent;font-weight:inherit}
#examScreen.mode-official .vocab-word:hover{color:var(--brand);border-bottom:1px dashed var(--brand);background:var(--brand-light)}
#examScreen.mode-official .vocab-word.vocab-marked-official{color:var(--orange);border-bottom:2px solid var(--orange);background:rgba(245,158,11,.24);font-weight:700}
.vocab-legend{font-size:11px;font-weight:700;padding:1px 6px;border-radius:4px;margin:0 2px}
.vocab-legend.vocab-pos-noun{color:var(--blue);background:var(--blue-bg)}
.vocab-legend.vocab-pos-verb{color:var(--orange);background:rgba(245,158,11,.14)}
.vocab-legend.vocab-pos-adjective{color:var(--green);background:var(--green-bg)}
.vocab-legend.vocab-pos-adverb{color:var(--purple);background:var(--purple-bg)}
.listen-box{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:28px;margin-bottom:16px;text-align:center}
.listen-info{font-size:12px;color:var(--text-muted);margin-bottom:14px;font-family:'DM Mono',monospace}
/* ?? Pool-test style: T3 Anzeigen + letter pills ?? */
.pt-ads-block{margin-bottom:18px}
.pt-ads-header{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.pt-ad-item{display:flex;gap:10px;background:var(--bg-elevated,#f8fafc);border:1px solid var(--border,#e2e8f0);border-radius:8px;padding:11px 14px;margin-bottom:8px;font-size:13px;line-height:1.6;color:var(--text-primary,#1e293b)}
.pt-ad-key{font-weight:700;color:var(--brand,#2563eb);min-width:20px;flex-shrink:0}
.pt-ad-body{flex:1}
.pt-match-question{margin-bottom:18px;background:var(--bg-surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:8px;padding:14px 16px}
.pt-match-situation{font-size:14px;font-weight:500;margin-bottom:10px;color:var(--text-primary,#1e293b);line-height:1.5}
.pt-match-num{font-weight:700;color:var(--brand,#2563eb);margin-right:4px}
.pt-match-pills{display:flex;flex-wrap:wrap;gap:7px}
.pt-letter-pill{padding:6px 14px;border:1.5px solid var(--border-strong,#cbd5e1);border-radius:8px;background:var(--bg-surface,#fff);color:var(--text-primary,#1e293b);font-weight:700;font-size:14px;cursor:pointer;transition:all .15s;min-width:42px;text-align:center}
.pt-letter-pill:hover{border-color:var(--brand,#2563eb);background:var(--brand-light,#dbeafe);color:var(--brand,#2563eb)}
.pt-letter-pill.selected{border-color:var(--brand,#2563eb);background:var(--brand-light,#dbeafe);color:var(--brand-dark,#1d4ed8)}
.horen-picture-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;align-items:start;margin:14px 0}
.horen-picture-bank{padding:12px;background:var(--bg-elevated,#f8fafc);border:1px solid var(--border,#e2e8f0);border-radius:10px}
.horen-picture-header{font-size:12px;font-weight:700;margin-bottom:12px;color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:.04em}
/* Desktop ≥721px: Propuesta B — 2 cols, letra → emoji → label (vertical en celda) */
.horen-picture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.horen-picture-item{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:8px;padding:12px 10px 14px;background:var(--bg-surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:10px;font-size:13px;min-width:0}
.horen-picture-key{min-width:40px;padding:5px 12px;font-size:13px;font-weight:700;pointer-events:none;cursor:default;flex-shrink:0}
.horen-picture-icon{font-size:1.75rem;line-height:1;flex-shrink:0}
.horen-picture-label{width:100%;font-size:12px;line-height:1.45;color:var(--text-primary,#1e293b);word-break:break-word}
.horen-picture-questions{min-width:0}
.horen-picture-match{margin-bottom:12px}
@media(max-width:720px){
  .horen-picture-layout{grid-template-columns:1fr}
  /* Propuesta A — lista vertical, letra izquierda + emoji + label */
  .horen-picture-grid{grid-template-columns:1fr;gap:10px}
  .horen-picture-item{flex-direction:row;align-items:center;text-align:left;gap:12px;padding:12px 14px;border-radius:8px}
  .horen-picture-key{min-width:36px;padding:4px 10px;font-size:12px}
  .horen-picture-icon{font-size:1.5rem}
  .horen-picture-label{flex:1;min-width:0;font-size:13px;line-height:1.5;text-align:left}
}
@media(min-width:721px){
  .horen-picture-bank{min-width:280px}
}
.pt-t3-layout{display:grid;grid-template-columns:minmax(0,1fr) min(320px,36%);gap:20px;align-items:start;margin-top:4px}
.pt-t3-main{min-width:0}
.pt-t3-ads{position:sticky;top:72px;max-height:calc(100vh - 96px);overflow-y:auto;padding-right:4px}
.pt-situations-header{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:4px 0 12px}
@media(max-width:820px){
  .pt-t3-layout{grid-template-columns:1fr}
  .pt-t3-ads{position:static;max-height:none;order:-1;margin-bottom:8px;padding:12px;background:var(--bg-elevated,#f8fafc);border:1px solid var(--border,#e2e8f0);border-radius:10px}
}
.exam-mode-banner{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.32);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:12px;font-weight:600;line-height:1.55;color:var(--text-secondary)}
.exam-prac-banner.exam-mode-banner{background:rgba(37,99,235,.07);border-color:rgba(37,99,235,.22)}
.exam-official-banner.exam-mode-banner{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.32)}
.exam-lang-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:8px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:10px}
.exam-lang-label{font-size:12px;font-weight:700;color:var(--text-muted);margin-right:4px}
.horen-transcript-details{border:1px solid color-mix(in srgb,var(--brand) 25%,transparent);border-radius:8px;margin-top:14px;overflow:hidden}
.horen-transcript-details>summary{display:flex;align-items:center;gap:8px;padding:10px 14px;background:color-mix(in srgb,var(--brand) 8%,var(--bg));cursor:pointer;font-size:13px;font-weight:600;color:var(--brand);user-select:none;list-style:none}
.horen-transcript-details>summary::-webkit-details-marker{display:none}
.horen-transcript-details>summary::before{
  content:'';
  flex-shrink:0;
  width:1.125rem;
  height:1.125rem;
  opacity:.9;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E") center/contain no-repeat;
}
.horen-transcript-details[open]>summary{border-bottom:1px solid color-mix(in srgb,var(--brand) 20%,transparent)}
.horen-transcript-details>summary .tr-arrow{margin-left:auto;transition:transform .2s;font-size:10px;opacity:.7}
.horen-transcript-details[open]>summary .tr-arrow{transform:rotate(180deg)}
.horen-transcript-details>.transcript-body{padding:14px 16px;font-size:13px;line-height:1.7;white-space:pre-wrap;color:var(--text)}
.wave{display:flex;align-items:center;justify-content:center;gap:3px;height:32px;margin-bottom:16px}
.wb{width:3px;background:var(--brand);border-radius:2px;animation:wv 1s ease infinite}
.wb:nth-child(1){height:12px;animation-delay:0s}
.wb:nth-child(2){height:20px;animation-delay:.1s}
.wb:nth-child(3){height:28px;animation-delay:.2s}
.wb:nth-child(4){height:22px;animation-delay:.3s}
.wb:nth-child(5){height:16px;animation-delay:.4s}
.wb:nth-child(6){height:26px;animation-delay:.5s}
.wb:nth-child(7){height:18px;animation-delay:.6s}
.wb:nth-child(8){height:24px;animation-delay:.7s}
.wb:nth-child(9){height:14px;animation-delay:.8s}
.wb.paused{animation-play-state:paused;height:4px;background:var(--surface2)}
@keyframes wv{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.8)}}
.question-block{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:10px}
.q-number{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px}
.q-text{font-size:14px;font-weight:600;margin-bottom:13px;line-height:1.55}
.options{display:flex;flex-direction:column;gap:7px}
.opt{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s;font-size:14px;font-weight:400}
.opt:hover{border-color:var(--border2);background:var(--bg3)}
.opt.selected{border-color:var(--brand);background:var(--brand-light)}
.opt input[type=radio]{margin-top:2px;accent-color:var(--brand)}
.rf-row{display:flex;gap:8px}
.rf-btn{flex:1;padding:10px;border:.5px solid var(--border2);border-radius:8px;background:var(--bg3);font-family:var(--lc-font);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;color:var(--text-secondary)}
.rf-btn:hover{background:var(--surface2);color:var(--text)}
.rf-btn.sel-r{background:var(--green-bg);border-color:rgba(93,232,160,.4);color:var(--green)}
.rf-btn.sel-f{background:var(--red-bg);border-color:rgba(232,93,93,.4);color:var(--red)}
.rf-btn.sel-n{background:rgba(167,139,250,.12);border-color:rgba(167,139,250,.35);color:var(--purple)}
.gap-select{width:100%;max-width:100%;background:var(--bg3);border:.5px solid var(--border2);border-radius:8px;padding:9px 11px;font-family:var(--lc-font);font-size:13px;color:var(--text);margin-top:6px}
.opt input[type=checkbox]{margin-top:2px;accent-color:var(--brand)}
.gap-input{background:transparent;border:none;border-bottom:2px solid var(--brand);padding:2px 8px;font-family:var(--lc-font);font-size:14px;font-weight:700;color:var(--brand);width:120px;outline:none;font-family:'DM Mono',monospace}
.write-field{width:100%;background:var(--bg3);border:.5px solid var(--border2);border-radius:var(--radius-md);padding:14px;font-family:var(--lc-font);font-size:14px;color:var(--text);outline:none;resize:vertical;min-height:200px;line-height:1.7;transition:border-color .15s}
.write-field:focus{border-color:var(--brand)}
.write-brief{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:13px}
.write-brief h3{font-size:14px;font-weight:700;margin-bottom:8px}
.write-brief p{font-size:13px;color:var(--text-secondary);line-height:1.7;font-weight:400}
.criteria-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.criteria-chip{font-size:11px;font-weight:600;padding:3px 10px;border-radius:100px;background:var(--surface);color:var(--text-muted);border:.5px solid var(--border)}
.word-meter{font-size:11px;color:var(--text-muted);margin-top:6px;font-family:'DM Mono',monospace}
.word-meter.ok{color:var(--green)}
.speak-points{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.speak-points-label{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin:4px 0 8px}
.speak-points-list{list-style:none;padding:0;margin:0}
.sprechen-briefing{background:var(--bg3);border-left:3px solid var(--brand);padding:12px 14px;margin-bottom:16px;border-radius:0 8px 8px 0}
.sprechen-briefing-intro,.sprechen-briefing-outro{font-size:13px;color:var(--text-secondary);line-height:1.65;white-space:pre-wrap}
.sprechen-briefing-outro{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.speak-brief-section-label{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin:12px 0 8px}
.speak-brief-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:4px}
@media(max-width:520px){.speak-brief-cards{grid-template-columns:1fr}}
.speak-brief-item.speak-point{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);font-size:13px;line-height:1.55;color:var(--text-secondary)}
.speak-brief-card-title{color:var(--text);display:block;margin-bottom:4px}
.speak-brief-agendas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 4px}
@media(max-width:640px){.speak-brief-agendas{grid-template-columns:1fr}}
.speak-brief-agenda{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg2)}
.speak-brief-agenda-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:8px}
.speak-brief-agenda-lines{list-style:none;margin:0;padding:0;font-size:12px;line-height:1.55;color:var(--text-secondary)}
.speak-brief-agenda-lines li{padding:3px 0;border-bottom:1px solid var(--border)}
.speak-brief-agenda-lines li:last-child{border-bottom:0}
.speak-path-stack{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.speak-path{border-radius:12px;padding:14px 16px;margin:0}
.speak-path-head{font-size:13px;font-weight:800;letter-spacing:.02em;margin:0 0 8px;color:var(--text)}
.speak-path-lead{font-size:12px;color:var(--text-secondary);margin:0 0 10px;line-height:1.5}
.speak-path-hint{font-size:12px;color:var(--text-muted);margin:0 0 10px;line-height:1.5}
.speak-path--ai{border:2px solid var(--purple,rgba(124,58,237,.55));background:rgba(124,58,237,.06)}
.speak-path--solo{border:1.5px solid var(--border);background:var(--bg2)}
.speak-path--solo .speak-path-head{color:var(--text-secondary);font-weight:700}
.speak-path--ai .speak-conv-panel{border:none;padding:0;background:transparent;margin-bottom:0}
.speak-point{font-size:13px;padding:9px 13px;background:var(--bg2);border:.5px solid var(--border);border-radius:8px;color:var(--text-secondary);font-weight:400}
.starter-msg{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:14px}
.starter-av{font-size:24px}
.starter-who{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}
.starter-line{font-size:14px;font-style:italic;color:var(--text);line-height:1.55}
.submit-bar{position:sticky;bottom:0;background:var(--bg);border-top:.5px solid var(--border);padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:32px;flex-wrap:wrap;z-index:10}
.section-div{border:none;border-top:.5px solid var(--border);margin:30px 0}
/* VOCAB TOOLTIP */
.vocab-tooltip{position:fixed;z-index:800;width:290px;background:var(--bg2);border:.5px solid var(--border2);border-radius:14px;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .15s;font-size:13px}
.vocab-tooltip.show{opacity:1;pointer-events:none}
.vocab-tooltip.show .vt-interactive,.vocab-tooltip.show .vt-interactive-row .vt-interactive,.vocab-tooltip.show .vt-lang-row .vt-lb{pointer-events:auto}
.vt-interactive-row{margin-top:4px}
.vocab-word{display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.vt-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.vt-word{font-size:18px;font-weight:700}
.vt-phonetic{font-size:11px;color:var(--text-muted);font-family:'DM Mono',monospace;margin-bottom:5px}
.vt-pos{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--surface);color:var(--text-muted);display:inline-block;margin-bottom:8px;border:.5px solid var(--border)}
.vt-translation{font-size:15px;font-weight:700;color:var(--brand);margin-bottom:7px}
.vt-example{font-size:11px;color:var(--text-secondary);line-height:1.6;font-style:italic;margin-bottom:10px}
.vt-lang-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}
.vt-lb{font-size:10px;font-weight:700;padding:3px 7px;border-radius:5px;background:var(--surface);border:.5px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all .15s;font-family:var(--lc-font)}
.vt-lb.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.vt-ab{background:none;border:none;font-size:16px;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity .15s}
.vt-ab:hover,.vt-ab.playing{opacity:1}
.vt-save{width:100%;background:var(--surface);border:.5px solid var(--border2);border-radius:8px;padding:8px;font-family:var(--lc-font);font-size:12px;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:all .2s}
.vt-save:hover{background:var(--purple-bg);color:var(--purple);border-color:rgba(167,139,250,.3)}
.vt-save.saved{background:var(--green-bg);color:var(--green);border-color:rgba(93,232,160,.3)}
.vt-loading{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:5px;margin-top:5px}
.vt-dot{width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:pulse .9s ease infinite}
.vt-dot:nth-child(2){animation-delay:.2s}
.vt-dot:nth-child(3){animation-delay:.4s}
/* RESULTS */
#resultsScreen{display:none;padding:38px 0;animation:fadeUp .4s ease}
.results-hero{text-align:center;padding:40px 0 32px;margin-bottom:22px}
.res-score{font-size:72px;font-weight:700;letter-spacing:-.02em;line-height:1;font-family:var(--lc-font);font-variant-numeric:tabular-nums}
.res-score.pass{color:var(--green)}
.res-score.mid{color:var(--orange)}
.res-score.fail{color:var(--red)}
.res-label{font-size:14px;color:var(--text-secondary);margin-top:6px;font-weight:600}
.module-scores-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:22px}
.mod-score{padding:16px;text-align:center}
.mod-score__val{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:3px;font-variant-numeric:tabular-nums}
.mod-score__lbl{font-size:11px;color:var(--text-muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
/* HISTORY */
.chart-wrap{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:22px;margin-bottom:18px}
.chart-bars{display:flex;align-items:flex-end;gap:5px;height:80px;margin-top:12px}
.chart-bar{flex:1;border-radius:3px 3px 0 0;min-width:14px;transition:all .3s}
.hist-list{display:flex;flex-direction:column;gap:9px}
.hist-card{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;display:flex;align-items:center;gap:13px;cursor:pointer;transition:all .2s}
.hist-card:hover{border-color:var(--border2);background:var(--bg3)}
.hist-score{font-size:22px;font-weight:800;min-width:48px;text-align:center;font-family:'DM Mono',monospace}
.hist-score.pass{color:var(--green)}
.hist-score.mid{color:var(--brand)}
.hist-score.fail{color:var(--red)}
.hist-info{flex:1}
.hist-title{font-size:13px;font-weight:700;margin-bottom:2px}
.hist-meta{font-size:11px;color:var(--text-muted);font-weight:400}
.hist-empty{text-align:center;padding:48px;color:var(--text-muted);font-size:13px;font-weight:400;border:.5px dashed var(--border2);border-radius:var(--radius-lg)}
.hist-empty span{font-size:28px;display:block;margin-bottom:10px;opacity:.4}
/* FLASHCARDS */
#flashcardScreen{display:none;padding:8px 0 40px;animation:fadeUp .35s ease}
.fc-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;gap:12px;flex-wrap:wrap}
.fc-title p{font-size:13px;color:var(--text-secondary);font-weight:500}
.fc-head-actions{display:flex;gap:7px;flex-wrap:wrap}
.fc-tabs{display:flex;background:var(--bg3);border:.5px solid var(--border2);border-radius:10px;padding:3px;gap:2px;margin-bottom:18px}
.fc-tab{flex:1;padding:7px 10px;font-family:var(--lc-font);font-size:11px;font-weight:700;letter-spacing:.03em;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:7px;transition:all .2s;white-space:nowrap}
.fc-tab.active{background:var(--surface2);color:var(--text)}
.fc-add-row{display:flex;gap:7px;margin-bottom:16px;flex-wrap:wrap}
.fc-add-input{flex:1;min-width:130px;background:var(--bg2);border:.5px solid var(--border2);border-radius:var(--radius-md);padding:10px 13px;font-family:var(--lc-font);font-size:13px;color:var(--text);outline:none;transition:border-color .15s}
.fc-add-input:focus{border-color:var(--brand)}
.fc-add-input::placeholder{color:var(--text-muted)}
.fc-lang-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:10px 13px;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-md)}
.fc-dir-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:10px 13px;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-md)}
.fc-lang-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}
.fc-lang-btns{display:flex;gap:4px;flex-wrap:wrap}
.fc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:11px;margin-bottom:24px}
.fc-type-section{grid-column:1/-1;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:8px 0 2px;padding-top:6px;border-top:.5px solid var(--border)}
.fc-type-section:first-child{border-top:none;margin-top:0;padding-top:0}
.fc-empty{text-align:center;padding:48px 0;color:var(--text-muted);font-size:13px;font-weight:400;border:.5px dashed var(--border2);border-radius:var(--radius-lg);grid-column:1/-1}
.fc-empty span{font-size:28px;display:block;margin-bottom:9px;opacity:.4}
.fc-card{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));padding:16px;cursor:pointer;transition:border-color .2s,transform .2s;position:relative;min-height:126px;display:flex;flex-direction:column;justify-content:space-between}
.fc-card:hover{border-color:var(--border-strong,var(--border2));transform:translateY(-2px)}
.fc-card.due-now{border-color:rgba(249,115,22,.45)!important}
.fc-card.due-now::before{content:'Review';position:absolute;top:-6px;right:10px;font-size:9px;font-weight:700;background:var(--orange);color:#fff;padding:1px 7px;border-radius:4px}
.fc-card.flipped .fc-front{display:none}
.fc-card.flipped .fc-back{display:flex}
.fc-front{display:flex;flex-direction:column;height:100%}
.fc-back{display:none;flex-direction:column;height:100%}
.fc-word{font-size:18px;font-weight:700;margin-bottom:3px}
.fc-word-line{display:inline-flex;align-items:baseline;gap:.35em;flex-wrap:nowrap;max-width:100%}
.fc-word-line .vv-art{font-size:.92em;font-weight:700;flex-shrink:0;width:auto;min-width:0;margin-right:.12em;padding-top:0;line-height:1.2}
.fc-word-line .fc-word-lemma{flex:0 1 auto;min-width:0}
.fc-single-word .fc-word-line,.fc-study-word .fc-word-line{gap:.4em}
.fc-single-word .fc-word-line,.fc-study-word .fc-word-line{justify-content:center}
.fc-single-word .vv-art{font-size:1.05em}
.fc-study-word .vv-art{font-size:.72em}
.exam-config-chip .vv-art{font-weight:700;margin-right:1px}
.vv-art--masc{color:var(--art-masc)}
.vv-art--fem{color:var(--art-fem)}
.vv-art--neut{color:var(--art-neut)}
.vt-word .fc-word-line{align-items:baseline}
.ve-opt .fc-word-line{justify-content:center}
.fc-phonetic{font-size:10px;color:var(--text-muted);font-family:'DM Mono',monospace;margin-bottom:5px}
.fc-pos{font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--surface);color:var(--text-muted);display:inline-block;margin-bottom:7px;border:.5px solid var(--border)}
.fc-aud{position:absolute;top:9px;right:30px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;opacity:0;transition:opacity .15s}
.fc-del{position:absolute;top:9px;right:9px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;opacity:0;transition:opacity .15s}
.fc-card:hover .fc-aud,.fc-card:hover .fc-del{opacity:1}
.fc-card.fc-selected{border-color:var(--brand)!important;background:var(--brand-light);box-shadow:0 0 0 1px rgba(37,99,235,.2)}
.fc-check{position:absolute;top:9px;left:9px;z-index:2;width:18px;height:18px;accent-color:var(--brand);cursor:pointer;opacity:.85}
.fc-select-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg)}
.fc-select-bar span{font-size:12px;color:var(--text-secondary);margin-right:auto;font-weight:600}
.fc-select-bar .sel-count{color:var(--brand);font-family:'DM Mono',monospace}
.fc-sel-btn{font-family:var(--lc-font);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;border-radius:6px;border:.5px solid var(--border2);background:var(--bg3);color:var(--text-secondary);cursor:pointer;transition:all .15s}
.fc-sel-btn:hover{border-color:var(--brand);color:var(--brand)}
.fc-sel-btn.accent{background:var(--brand-light);border-color:rgba(232,197,71,.35);color:var(--brand)}
.fc-personal-sec{background:linear-gradient(135deg,var(--brand-light),var(--purple-bg));border:.5px solid rgba(232,197,71,.25);border-radius:var(--radius-lg);padding:20px;margin-top:12px}
.fc-personal-sec h3{font-size:15px;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fc-personal-sec p{font-size:12px;color:var(--text-secondary);line-height:1.65;margin-bottom:14px;font-weight:400}
.fc-del:hover{color:var(--red)}
.fc-trans{font-size:17px;font-weight:700;color:var(--purple);margin-bottom:3px}
.fc-ex{font-size:11px;color:var(--text-secondary);font-style:italic;line-height:1.5;font-weight:400;margin-bottom:auto}
.fc-hint{font-size:9px;color:var(--text-muted);text-align:right;margin-top:7px;letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.fc-src{font-size:9px;color:var(--text-muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-top:auto}
.srs-row{display:flex;gap:5px;margin-top:7px}
.srs-btn{flex:1;padding:5px;border-radius:6px;border:none;font-family:var(--lc-font);font-size:9px;font-weight:700;cursor:pointer;letter-spacing:.04em;transition:all .15s}
.srs-a{background:var(--red-bg);color:var(--red)}
.srs-h{background:var(--orange-bg);color:var(--orange)}
.srs-g{background:var(--blue-bg);color:var(--blue)}
.srs-e{background:var(--green-bg);color:var(--green)}
.fc-exam-sec{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-top:4px}
.fc-exam-sec h3{font-size:14px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fc-exam-sec p{font-size:12px;color:var(--text-secondary);font-weight:400;margin-bottom:12px;line-height:1.6}
/* VOCAB EXAM / QUICK DRILL */
#vocabExamScreen{display:none;padding:8px 0 40px;animation:fadeUp .35s ease}
.ve-question-panel{text-align:center;padding:28px 20px!important;margin-bottom:16px}
.ve-prompt-lbl{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px}
.ve-word{font-size:34px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px;font-family:var(--lc-font);color:var(--text)}
.ve-word.ve-hint{font-size:22px;font-weight:600;line-height:1.35;letter-spacing:-.01em}
.ve-meta{font-size:12px;color:var(--text-muted);margin-bottom:4px;font-family:'DM Mono',monospace}
.ve-aud{margin-top:4px}
.ve-aud.playing{background:var(--blue-bg)!important;color:var(--blue)!important;border-color:rgba(93,184,232,.3)!important}
.ve-opts{margin-bottom:14px}
.ve-opt.dis{cursor:not-allowed;opacity:.85}
.ve-opt.correct{border-color:var(--green)!important;background:rgba(16,185,129,.12)!important;color:var(--green)}
.ve-opt.wrong{border-color:var(--red)!important;background:rgba(239,68,68,.1)!important;color:var(--red)}
.ve-feedback{margin:0 0 14px;padding:14px 16px;border-radius:var(--radius-md);font-size:14px;line-height:1.45;text-align:center}
.ve-feedback.ok{border:1px solid rgba(16,185,129,.35);background:rgba(16,185,129,.08);color:var(--text)}
.ve-feedback.bad{border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.06);color:var(--text)}
.ve-feedback-word{font-size:20px;font-weight:800;margin:4px 0 2px;color:var(--text)}
.ve-feedback-tr{font-size:13px;color:var(--text-muted)}
.ve-next{display:block;max-width:220px;margin:0 auto}
.ve-results-panel{text-align:center;padding:36px 24px!important}
.ve-big{font-size:58px;font-weight:800;letter-spacing:-3px;line-height:1;margin-bottom:4px}
.ve-big.pass{color:var(--green)}
.ve-big.mid{color:var(--brand)}
.ve-big.fail{color:var(--red)}
/* SAVED EXAMS (cards reused by workspace wsSavedGrid) */
.saved-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.saved-card{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:all .2s;position:relative}
.saved-card:hover{border-color:var(--brand);background:var(--bg3)}
.saved-card-title{font-size:14px;font-weight:700;margin-bottom:4px}
.saved-card-meta{font-size:11px;color:var(--text-muted);margin-bottom:12px}
.saved-card-score{font-size:22px;font-weight:800;font-family:'DM Mono',monospace}
.saved-card-score.pass{color:var(--green)}
.saved-card-score.mid{color:var(--brand)}
.saved-card-score.fail{color:var(--red)}
/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
/* APP NAV */
.app-nav{display:flex;gap:4px;padding:0 0 18px;border-bottom:1px solid var(--border);margin-bottom:24px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.app-nav__item{flex:1;min-width:max-content;font-family:var(--lc-font);font-size:12px;font-weight:600;padding:10px 14px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}
.app-nav__item:hover{background:var(--bg3);color:var(--text)}
.app-nav__item.active{background:var(--brand-light);color:var(--brand);font-weight:700}
@media(min-width:900px){.goal-row{grid-template-columns:repeat(auto-fill,minmax(280px,320px))}}
.goal-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:32px;justify-content:start}
.goal-card{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;transition:box-shadow .18s,border-color .18s;position:relative;cursor:pointer;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
.goal-card:not(.goal-wiz):not(.dashed){display:flex;flex-direction:column;align-items:stretch;max-width:320px;width:100%;min-height:0;padding:0}
.goal-card-inner{display:grid;grid-template-columns:32px minmax(0,1fr) auto;column-gap:10px;row-gap:12px;align-items:center;padding:16px;width:100%;box-sizing:border-box}
.goal-card:not(.dashed):hover{box-shadow:0 8px 28px rgba(15,23,42,.08)}
.goal-card.active{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}
.goal-card:not(.dashed):hover{border-color:var(--brand)}
.goal-card-icon{grid-column:1;grid-row:1;width:32px;height:32px;border-radius:8px;background:var(--brand-light);color:var(--brand);display:inline-flex;align-items:center;justify-content:center;justify-self:center;align-self:start}
.goal-card-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.goal-head{grid-column:2;grid-row:1;min-width:0;align-self:start;display:flex;flex-direction:column;gap:6px}
.goal-card-tools{grid-column:3;grid-row:1;display:flex;gap:6px;flex-shrink:0;align-self:start;justify-self:end}
.goal-card-tool{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--lc-font);font-size:14px;color:var(--text-secondary);padding:0;transition:border-color .15s,color .15s}
.goal-card-tool:hover{border-color:var(--brand);color:var(--brand)}
.goal-card-tool--danger:hover{border-color:var(--red);color:var(--red)}
.goal-card-tool svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.goal-card.dashed{border:1.5px dashed var(--border-strong,var(--border));background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);max-width:320px;width:100%;min-height:280px;cursor:pointer;box-shadow:none;text-align:center;gap:8px;padding:24px 20px}
.goal-card.dashed b{font-size:15px;font-weight:700;color:var(--text)}
.goal-card.dashed p{font-size:12px;font-weight:500;color:var(--text-muted);margin:0;line-height:1.45;max-width:200px}
.goal-card.dashed:hover{border-color:var(--brand);color:var(--brand);transform:none}
.goal-add-icon{width:44px;height:44px;border-radius:999px;border:1.5px dashed var(--border-strong,var(--border));display:inline-flex;align-items:center;justify-content:center;color:var(--brand);margin-bottom:4px}
.goal-add-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.goal-date-banner{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:10px;align-items:center;width:100%;padding:10px 12px 10px 0;border-radius:12px;border:1px solid var(--border);background:var(--elevated,var(--bg3));text-align:left;font-family:var(--lc-font);cursor:pointer;transition:border-color .15s,background .15s;box-sizing:border-box}
.goal-date-banner:hover{border-color:var(--brand);background:var(--brand-light)}
.goal-date-banner--set{cursor:default}
.goal-date-banner--set:hover{border-color:var(--border);background:var(--elevated,var(--bg3))}
.goal-date-banner-ico{width:32px;height:32px;border-radius:8px;background:var(--surface,var(--bg2));color:var(--brand);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;justify-self:center}
.goal-date-banner-ico svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.goal-date-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.goal-date-banner-text strong{font-size:12px;font-weight:700;color:var(--text);line-height:1.3}
.goal-date-banner-text span{font-size:11px;font-weight:500;color:var(--text-muted);line-height:1.3}
.goal-ring{grid-column:1;grid-row:3;width:32px;height:32px;justify-self:center;align-self:center;flex-shrink:0}
.goal-ring--dash{width:32px;height:32px}
.goal-ring svg{display:block;width:32px;height:32px}
.goal-readiness-text{grid-column:2;grid-row:3;display:flex;flex-direction:column;gap:2px;min-width:0;align-self:center}
.goal-readiness-val{font-size:13px;font-weight:700;color:var(--text);line-height:1.25;white-space:normal}
.goal-readiness-lbl{font-size:11px;font-weight:600;color:var(--text-muted)}
.goal-days{grid-column:3;grid-row:3;text-align:center;min-width:76px;flex-shrink:0;justify-self:end;align-self:center}
.goal-days-n{font-size:24px;font-weight:800;line-height:1;color:var(--text)}
.goal-days-l{font-size:10px;color:var(--text-muted);font-weight:600;margin-top:2px}
.goal-date-btn{grid-column:3;grid-row:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:76px;padding:10px 8px;border:1.5px dashed var(--brand);border-radius:12px;background:var(--brand-light);color:var(--brand);cursor:pointer;font-family:var(--lc-font);font-size:10px;font-weight:700;line-height:1.2;transition:border-color .15s,background .15s,border-style .15s;flex-shrink:0;justify-self:end;align-self:center}
.goal-date-btn:hover{border-style:solid;background:rgba(37,99,235,.14)}
.goal-date-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.goal-card-foot{grid-column:1/-1;grid-row:4;display:flex;justify-content:center;padding-top:4px;margin-top:4px}
.goal-open{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;border:1px solid var(--border);background:var(--surface,var(--bg2));border-radius:999px;padding:8px 16px;font-weight:600;font-size:12px;color:var(--brand);cursor:pointer;font-family:var(--lc-font);box-shadow:0 2px 8px rgba(15,23,42,.06);transition:background .15s,border-color .15s,box-shadow .15s}
.goal-open svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.goal-open:hover{background:var(--brand-light);border-color:var(--brand);box-shadow:0 4px 12px rgba(37,99,235,.12)}
.dash-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:8px 0 16px;flex-wrap:wrap}
.dash-sec-head h1{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.dash-sec-head p{font-size:14px;color:var(--text-muted);margin-top:2px;font-weight:500}
.dash-head-actions{display:flex;gap:10px;flex-wrap:wrap}
.dash-coach{display:flex;align-items:center;gap:20px;background:linear-gradient(120deg,var(--brand-light),rgba(37,99,235,.06));border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 26px;margin-bottom:18px;flex-wrap:wrap}
.dash-coach-ico{width:54px;height:54px;border-radius:14px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}
.dash-coach-body{flex:1;min-width:200px}
.dash-coach-body .dash-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:3px}
.dash-coach-body h2{font-size:22px;font-weight:700;margin:0 0 4px;letter-spacing:-.01em;color:var(--text)}
.dash-coach-body p{font-size:14px;color:var(--text-secondary);margin:0;font-weight:500;line-height:1.45}
.dash-coach-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:center}
.dash-coach-ws{background:var(--surface,var(--bg2));border:1px solid var(--border-strong,var(--border));color:var(--text-secondary)}
.dash-coach-ws:hover{border-color:var(--brand);color:var(--brand)}
.dash-coach-art{flex-shrink:0;opacity:.85}
.dash-kpi-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}
@media(min-width:700px){.dash-kpi-row{grid-template-columns:repeat(4,1fr)}}
.dash-kpi{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
.dash-kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dash-kpi-label{font-size:12px;color:var(--text-muted);font-weight:600}
.dash-kpi-val{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--text)}
.dash-kpi-delta{font-size:12px;font-weight:600;color:var(--green);margin-top:4px}
.dash-kpi-note{font-size:12px;color:var(--text-muted);margin-top:4px;font-weight:600}
.dash-bottom-row{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:16px}
@media(min-width:900px){.dash-bottom-row{grid-template-columns:1fr 1fr 1fr}}
.dash-panel{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
.dash-panel h3{font-size:13px;font-weight:700;margin-bottom:14px;color:var(--text-secondary)}
.dash-skill{margin-bottom:12px}
.dash-skill-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:5px;font-weight:600}
.dash-bar{height:7px;border-radius:999px;background:var(--elevated,var(--bg3));overflow:hidden}
.dash-bar i{display:block;height:100%;border-radius:999px}
.dash-panel-link{display:block;text-align:center;margin-top:10px;font-size:13px;font-weight:600;color:var(--brand);cursor:pointer;border-top:1px solid var(--border);padding-top:12px;background:none;border-left:none;border-right:none;border-bottom:none;font-family:var(--lc-font);width:100%}
.dash-act{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.dash-act:last-of-type{border-bottom:none}
.dash-act-ico{width:34px;height:34px;border-radius:9px;background:var(--elevated,var(--bg3));display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.dash-act-body{flex:1;min-width:0}
.dash-act-title{font-size:13px;font-weight:600;color:var(--text)}
.dash-act-sub{font-size:12px;color:var(--text-muted);font-weight:500}
.dash-act-time{font-size:12px;color:var(--text-muted);white-space:nowrap}
.dash-qa{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid var(--border);border-radius:var(--r-md,12px);margin-bottom:8px;cursor:pointer;transition:border-color .15s,background .15s;background:var(--surface,var(--bg2))}
.dash-qa:hover{border-color:var(--brand);background:var(--brand-light)}
.dash-qa-ico{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.dash-qa-body{flex:1;min-width:0}
.dash-qa-title{font-size:13px;font-weight:600;color:var(--text)}
.dash-qa-sub{font-size:12px;color:var(--text-muted);font-weight:500}
.dash-qa-go{color:var(--text-muted);font-size:14px}
.dash-foot{display:flex;align-items:center;justify-content:space-between;background:var(--brand-light);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-top:8px;flex-wrap:wrap;gap:12px}
.dash-foot-l{display:flex;align-items:center;gap:12px}
.dash-foot-ico{width:36px;height:36px;border-radius:10px;background:var(--surface,var(--bg2));display:flex;align-items:center;justify-content:center;font-size:17px}
.dash-foot p{font-size:13px;color:var(--text-secondary);font-weight:500;line-height:1.45;margin:0}
.dash-foot b{color:var(--brand)}
.rec-exam-card{display:flex;align-items:center;gap:20px;background:linear-gradient(120deg,var(--brand-light),rgba(37,99,235,.06));border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 26px;margin-bottom:18px;flex-wrap:wrap}
.rec-exam-card--compact{padding:18px 20px;margin-bottom:16px}
.rec-exam-card--ws{margin-bottom:14px}
.rec-exam-main{flex:1;min-width:220px}
.rec-exam-main h2{font-size:20px;font-weight:700;margin:4px 0 6px;letter-spacing:-.01em;color:var(--text)}
.rec-exam-main p{font-size:14px;color:var(--text-secondary);margin:0;font-weight:500;line-height:1.45}
.rec-exam-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.rec-exam-badge{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:rgba(37,99,235,.12);color:var(--brand)}
.rec-exam-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mastery-tag-chip{font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--elevated,var(--bg3));color:var(--text-secondary);border:1px solid var(--border)}
.rec-exam-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:center}
.rec-exam-secondary{background:var(--surface,var(--bg2));border:1px solid var(--border-strong,var(--border));color:var(--text-secondary)}
.rec-exam-secondary:hover{border-color:var(--brand);color:var(--brand)}
.rec-exam-art{flex-shrink:0;opacity:.85}
.mastery-panel{margin-bottom:16px}
.mastery-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mastery-seclbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:14px 0 8px}
.mastery-meta{font-size:11px;font-weight:600;color:var(--text-muted);margin:0}
.mastery-bar-row{margin-bottom:12px}
.mastery-bar-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:5px;font-weight:600;gap:8px}
.mastery-weak-row{display:block;width:100%;padding:0;margin:0 0 8px;border:none;background:none;text-align:left;cursor:pointer;font-family:var(--lc-font)}
.mastery-weak-row:hover .mastery-bar-top span:first-child{color:var(--brand)}
.mastery-gap-list{margin:0;padding-left:18px;font-size:13px;font-weight:600;color:var(--text-secondary);line-height:1.7}
.btn-dash-ghost{font-family:var(--lc-font);font-weight:600;font-size:14px;border-radius:var(--r-md,12px);padding:10px 16px;cursor:pointer;border:1px solid var(--border-strong,var(--border2));background:var(--surface,var(--bg2));color:var(--text-secondary)}
.btn-dash-ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn-dash-ghost.on{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}
.goal-drag-handle{position:absolute;top:14px;left:14px;width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);display:inline-flex;align-items:center;justify-content:center;cursor:grab;font-size:12px;color:var(--text-muted);letter-spacing:-2px;z-index:2;touch-action:none}
.goal-drag-handle:active{cursor:grabbing}
.goal-card.has-drag .goal-card-inner{padding-left:36px}
.goal-card.dragging{opacity:.45;transform:none}
.goal-card.drag-over{outline:2px dashed var(--brand);outline-offset:2px}
.dash-custom-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:900;display:flex;align-items:flex-end;justify-content:center;padding:0}
@media(min-width:640px){.dash-custom-backdrop{align-items:center;padding:24px}}
.dash-custom-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:480px;max-height:88vh;overflow:auto;padding:22px 20px 20px;box-shadow:0 20px 60px rgba(15,23,42,.2);animation:fadeUp .25s ease}
@media(min-width:640px){.dash-custom-panel{border-radius:var(--radius-lg)}}
.dash-custom-panel h2{font-size:20px;font-weight:700;margin:0 0 4px;letter-spacing:-.02em}
.dash-custom-lede{font-size:13px;font-weight:500;color:var(--text-secondary);margin:0 0 18px;line-height:1.5}
.dash-custom-seclbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}
.dash-custom-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.dash-custom-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md,12px);background:var(--bg3)}
.dash-custom-item label{flex:1;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:10px}
.dash-custom-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);flex-shrink:0}
.dash-custom-move{display:flex;flex-direction:column;gap:2px}
.dash-custom-move button{width:28px;height:22px;border:1px solid var(--border);border-radius:6px;background:var(--bg2);font-family:var(--lc-font);font-size:11px;color:var(--text-secondary);cursor:pointer;padding:0}
.dash-custom-move button:hover{border-color:var(--brand);color:var(--brand)}
.dash-custom-move button:disabled{opacity:.35;cursor:not-allowed}
.dash-custom-note{font-size:12px;font-weight:600;color:var(--text-muted);margin:0 0 16px;line-height:1.5;padding:10px 12px;border-radius:var(--radius-md);background:var(--brand-light);border:1px solid var(--border)}
.dash-custom-actions{display:flex;gap:10px;flex-wrap:wrap}
.dash-custom-actions .btn-start{flex:1;min-width:140px;margin:0}
.goal-name{font-size:16px;font-weight:700;color:var(--text);line-height:1.25;white-space:normal;word-break:break-word}
.goal-badges{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.goal-pill{font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--bg3);color:var(--text-secondary);flex-shrink:0;letter-spacing:.02em}
.goal-pill--level{background:var(--brand-light);color:var(--brand)}
.goal-date{font-size:11px;font-weight:600;color:var(--amber);margin:0 0 8px;line-height:1.35;white-space:normal}
.goal-date.muted{color:var(--text-muted)}
.goal-plus{font-size:26px;font-weight:300;line-height:1}
.goal-cta{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:13px;font-weight:700;color:var(--brand);background:none;border:none;cursor:pointer;font-family:var(--lc-font);padding:0}
.goal-empty{text-align:center;margin:8px 0 22px}
.goal-h1{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
@media(min-width:640px){.goal-h1{font-size:26px}}
.goal-lede{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0}
.goal-wiz{max-width:600px;margin:0 auto 24px;padding:18px}
.goal-step{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 12px}
.goal-tiles{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}
@media(min-width:560px){.goal-tiles{grid-template-columns:1fr 1fr}}
.goal-tile{border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;cursor:pointer;background:var(--bg2)}
.goal-tile.sel{border:2px solid var(--brand);background:var(--brand-light)}
.goal-tile h3{font-size:15px;font-weight:700;margin:6px 0 2px}
.goal-tile span{font-size:12px;font-weight:500;color:var(--text-secondary)}
.goal-levels{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.goal-lvl{min-height:44px;min-width:62px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;background:var(--bg2);padding:6px 10px;gap:2px}
.goal-lvl.sel{border:2px solid var(--brand);background:var(--brand-light);color:var(--brand)}
.goal-lvl--soon{opacity:.72;border-style:dashed;cursor:pointer}
.goal-lvl-soon{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--orange)}
.level-soon-panel{position:fixed;inset:0;z-index:9000;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:20px}
.level-soon-panel__card{position:relative;background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:16px;padding:24px;max-width:420px;width:100%;box-shadow:0 20px 50px rgba(15,23,42,.2)}
.level-soon-panel__close{position:absolute;top:10px;right:12px;border:none;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--text-muted)}
.level-soon-panel__lede{font-size:13px;color:var(--text-muted);margin:0 0 14px;line-height:1.5}
.level-soon-form{display:flex;flex-direction:column;gap:10px}
.level-soon-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px}
.level-soon-done{font-size:13px;color:var(--green);margin:12px 0 0}
.goal-date{width:100%;min-height:44px;border:1px solid var(--border);border-radius:10px;padding:0 12px;font-size:13px;font-family:var(--lc-font);color:var(--text);background:var(--bg2);margin-bottom:24px}
.goal-opt-note{font-size:11px;color:var(--text-muted);font-weight:500}
.goal-wiz-actions{display:flex;flex-direction:column;gap:10px}
.goal-wiz-cancel{font-size:12px;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:8px;font-family:var(--lc-font)}
/* GOAL WORKSPACE */
#goalWorkspaceScreen{display:none;padding:8px 0 40px;animation:fadeUp .35s ease}
.ws-gh{display:flex;align-items:center;gap:12px;margin-bottom:4px;flex-wrap:wrap}
.ws-h1{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0}
@media(min-width:640px){.ws-h1{font-size:26px}}
.ws-ghsub{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 4px}
.ws-ghsub b{color:var(--orange)}
.ws-seclbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}
.ws-act-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:border-color .2s}
.ws-act-card:hover{border-color:var(--brand)}
.ws-act-card.accent{border-color:var(--brand);background:var(--brand-light)}
.ws-act-card.span{grid-column:1/-1}
.ws-act-card h3{font-size:15px;font-weight:700;margin:0 0 4px;color:var(--text)}
.ws-act-card.accent h3{font-size:17px}
.ws-act-card p{font-size:12px;font-weight:500;color:var(--text-secondary);margin:0;line-height:1.5}
.ws-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px}
.ws-resume{background:var(--bg2);border:1px solid var(--brand);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px;text-align:center}
.ws-resume .ws-resume-ic{font-size:28px;margin-bottom:8px}
.ws-resume h3{font-size:15px;font-weight:700;margin:0 0 6px;color:var(--text)}
.ws-resume p{font-size:12px;font-weight:500;color:var(--text-secondary);margin:0 0 14px;line-height:1.5}
.ws-resume-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.saved-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:99px;display:inline-block}
.saved-status.completed{background:rgba(16,185,129,.12);color:var(--green)}
.saved-status.in_progress{background:var(--brand-light);color:var(--brand)}
.saved-status.auto{background:rgba(139,92,246,.12);color:var(--purple)}
.saved-card--auto{border-style:dashed;opacity:.95}
.saved-card--selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand-light)}
.saved-card-check{position:absolute;top:12px;right:12px;margin:0;cursor:pointer}
.saved-card-check input{width:16px;height:16px;cursor:pointer}
.saved-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);grid-column:1/-1}
.saved-toolbar-check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;margin-right:auto}
.saved-topic-hdr{display:flex;align-items:center;gap:8px}
.saved-topic-count{font-size:11px;font-weight:700;color:var(--text-muted);background:var(--bg3);padding:2px 8px;border-radius:999px}
.saved-archived-summary{cursor:pointer;list-style:none}
.saved-archived-summary::-webkit-details-marker{display:none}
.saved-archived-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;opacity:.92}
@media(max-width:720px){.saved-archived-grid,.saved-grid{grid-template-columns:1fr}}
.saved-status.aborted{background:rgba(245,158,11,.12);color:var(--amber)}
.ws-weak{margin:0;padding-left:18px;font-size:13px;font-weight:600;color:var(--text-secondary);line-height:1.7}
.ws-tabs{display:flex;gap:6px;margin:0 0 18px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:10px}
.ws-tabpanel{display:none}
.ws-tabpanel.on{display:block}
.ws-tabs-nav{display:flex;gap:0;margin:0 0 20px;border-bottom:1px solid var(--border)}
.ws-tabs-nav-btn{min-height:44px;padding:0 18px 12px;border:none;border-bottom:2px solid transparent;background:none;font-family:var(--lc-font);font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;margin-bottom:-1px}
.ws-tabs-nav-btn:hover{color:var(--text-secondary)}
.ws-tabs-nav-btn.on{color:var(--text);border-bottom-color:var(--brand);font-weight:700}
.ws-exam-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:22px}
@media(max-width:480px){.ws-exam-grid{grid-template-columns:1fr}}
.ws-exam-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:108px;padding:16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg2);cursor:pointer;font-family:var(--lc-font);transition:border-color .2s,transform .15s}
.ws-exam-card:hover{border-color:var(--brand);transform:translateY(-1px)}
.ws-exam-card-ic{font-size:22px;line-height:1;margin-bottom:8px}
.ws-exam-card-title{font-size:15px;font-weight:700;color:var(--text);display:block}
.ws-exam-card-desc{font-size:12px;font-weight:500;color:var(--text-secondary);margin-top:4px;line-height:1.45}
.ws-exam-card--official{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.08)}
.ws-exam-card--official .ws-exam-card-title{color:var(--green)}
.ws-exam-card--practice{border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.08)}
.ws-exam-card--practice .ws-exam-card-title{color:var(--blue)}
.ws-exam-card--personal{border-color:rgba(139,92,246,.35);background:rgba(139,92,246,.08)}
.ws-exam-card--personal .ws-exam-card-title{color:var(--purple)}
.ws-exam-card--oral{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.ws-exam-card--oral .ws-exam-card-title{color:var(--orange)}
.ws-exam-card--picked{outline:2px solid var(--brand);outline-offset:2px;box-shadow:0 0 0 1px rgba(59,130,246,.25)}
.vv-pick-bar{margin:0 0 12px;padding:14px 16px;border-radius:var(--radius-lg);border:1px solid rgba(59,130,246,.35);background:rgba(59,130,246,.06)}
.vv-pick-bar-title{font-size:13px;margin:0 0 6px;color:var(--text);line-height:1.45}
.vv-pick-bar-hint{font-size:12px;margin:0 0 12px;color:var(--text-muted);line-height:1.4}
.vv-pick-bar-actions{display:flex;flex-wrap:wrap;gap:8px}
.vv-list-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 10px}
.vv-ghead-actions{display:inline-flex;flex-wrap:wrap;gap:10px;margin-left:auto}
.vv-ghead{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%}
.vv-selnone{color:var(--text-secondary)}
.vv-used-mark{font-size:11px;line-height:1;margin-left:6px;opacity:.88;flex-shrink:0;cursor:help;letter-spacing:.02em}
.vv-legend-used{font-size:11px;color:var(--text-muted);font-weight:500}
.vv-word-cell .vv-used-mark{align-self:center}
.ws-recent-list{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.ws-recent-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg2);cursor:pointer;font-family:var(--lc-font);text-align:left}
.ws-recent-item:hover{border-color:var(--brand)}
.ws-recent-score{min-width:44px;font-size:15px;font-weight:700;text-align:center}
.ws-recent-score.pass{color:var(--green)}
.ws-recent-score.mid{color:var(--brand)}
.ws-recent-score.fail{color:var(--red)}
.ws-recent-info{flex:1;min-width:0}
.ws-recent-info b{display:block;font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-recent-info span{font-size:12px;font-weight:600;color:var(--text-muted)}
.ws-recent-cta{font-size:12px;font-weight:700;color:var(--brand);flex-shrink:0}
.ws-recent-empty{font-size:13px;font-weight:600;color:var(--text-muted);margin:0 0 22px}
.ws-vkpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
@media(max-width:520px){.ws-vkpi-row{grid-template-columns:repeat(2,1fr)}}
.ws-vkpi{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 10px;text-align:center}
.ws-vkpi b{display:block;font-size:20px;font-weight:700;color:var(--brand);line-height:1.2}
.ws-vkpi span{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.vv-filter--static{cursor:default;pointer-events:none}
.ws-prog-top{display:grid;gap:14px;grid-template-columns:1fr;margin-bottom:16px}
@media(min-width:640px){.ws-prog-top{grid-template-columns:1fr 1fr}}
.ws-prog-readiness{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ws-prog-readiness-ring{position:relative;width:84px;height:84px;flex-shrink:0}
.ws-prog-readiness-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--text)}
.ws-skill-list{display:flex;flex-direction:column;gap:10px}
.ws-skill-row{display:flex;align-items:center;gap:10px}
.ws-skill-lbl{min-width:120px;font-size:12px;font-weight:600;color:var(--text-secondary)}
.ws-skill-bar{flex:1;height:8px;background:var(--bg3);border-radius:99px;overflow:hidden}
.ws-skill-fill{height:100%;border-radius:99px;transition:width .4s ease}
.ws-skill-pct{min-width:36px;font-size:12px;font-weight:700;color:var(--text);text-align:right}
.ws-coach-banner--compact{padding:14px 16px;margin-bottom:14px}
.ws-coach-banner--compact .ws-coach-lead{font-size:14px}
.ws-coach-banner--compact .readiness-row{margin-top:8px}
.ws-quota{margin-bottom:16px}
.profile-bar--workspace .profile-bar__label{color:var(--brand)}
.profile-bar--dash .profile-bar__change{display:inline-flex}
.deck-hub-seclbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}
.deck-hub-ways{display:grid;gap:14px;grid-template-columns:1fr;margin-bottom:24px}
@media(min-width:560px){.deck-hub-ways{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}
.deck-way{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:border-color .2s}
.deck-way:hover{border-color:var(--brand)}
.deck-way.accent{border-color:var(--brand);background:var(--brand-light)}
.deck-way.soon{opacity:.6;cursor:default;pointer-events:none}
.deck-way h3{font-size:14px;font-weight:700;margin:0 0 3px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text)}
.deck-way.accent h3{font-size:15px}
.deck-way p{font-size:12px;font-weight:500;color:var(--text-secondary);margin:0;line-height:1.45}
.deck-way-cta{display:inline-flex;margin-top:10px;font-size:13px;font-weight:700;color:var(--brand)}
.badge-due{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--orange);padding:2px 7px;border-radius:6px}
.badge-soon{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--orange);background:rgba(245,158,11,.12);padding:2px 7px;border-radius:6px}
.deck-hub-foot{font-size:11px;font-weight:500;color:var(--text-muted);margin:12px 0 18px;line-height:1.5}
.deck-empty-state{text-align:center;padding:34px 20px}
.deck-empty-state .ic{font-size:30px;margin-bottom:8px}
.deck-empty-state h3{font-size:16px;font-weight:700;margin:12px 0 6px}
.deck-empty-state p{font-size:13px;font-weight:500;color:var(--text-secondary);margin:0 auto 16px;max-width:360px;line-height:1.5}
/* EXAM CONFIGURATOR */
#examConfigScreen{display:none;padding:8px 0 110px;animation:fadeUp .35s ease}
.exam-config-h1{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
@media(min-width:640px){.exam-config-h1{font-size:26px}}
.exam-config-lede{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0 0 18px;line-height:1.55}
.exam-config-seclbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.exam-config-panel{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));padding:18px;margin-bottom:18px}
.exam-config-chips{display:flex;flex-wrap:wrap;gap:8px}
.exam-config-chip{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 13px;border:1px solid var(--border);border-radius:99px;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;background:var(--bg2)}
.exam-config-chip.on{border-color:var(--brand);background:var(--brand-light);color:var(--brand)}
.exam-config-chip .tk{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:#fff;flex:none}
.exam-config-chip.on .tk{background:var(--brand);border-color:var(--brand)}
.exam-config-chip .due-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);flex:none}
.vv-panel{--art-masc:var(--blue);--art-fem:var(--red);--art-neut:var(--green);padding-bottom:32px}
.vv-panel--fc{padding-bottom:32px}
.vv-panel .exam-config-h1{margin-top:0}
.vv-filters--merged{margin-bottom:12px}
.vv-add-toggle{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;border:1px dashed var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--lc-font)}
.vv-add-toggle:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-light)}
.vv-add-toggle-ic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--brand-light);color:var(--brand);font-size:16px;line-height:1;font-weight:700}
.vv-add-expand{margin:0 0 14px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg2)}
.vv-actions-panel--top{margin-bottom:10px}
.vv-actions-panel--top .ws-seclbl{display:none}
.vv-smart-panel,.vv-add-panel,.vv-actions-panel,.vv-list-panel,.vv-saved-quizzes-panel{margin-bottom:14px}
.vv-list-panel .vv-legend{margin-top:0}font-size:13px;color:var(--text-secondary);margin:0 0 14px;line-height:1.5}
.svq-list{display:flex;flex-direction:column;gap:10px}
.svq-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface,var(--bg2));box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
@media(max-width:560px){.svq-card{flex-direction:column}}
.svq-card-main{flex:1;min-width:0}
.svq-card-title{font-size:14px;font-weight:700;margin:0 0 4px;color:var(--text);line-height:1.35}
.svq-card-meta{font-size:12px;color:var(--text-muted);margin:0;line-height:1.45}
.svq-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}
.svq-score{font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;background:var(--bg2);color:var(--text-secondary);border:1px solid var(--border)}
.svq-score--good{color:var(--green);border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}
.svq-score--mid{color:var(--amber,#f59e0b);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.svp-section{margin-top:18px}
.svp-section:first-of-type{margin-top:12px}
.svp-section-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 8px}
.vp-mean-btn{margin-top:8px}
.fc-saved-quizzes{margin-top:18px}
.vv-fc-panel{padding:18px!important}
.vv-fc-lang{border:none!important;background:transparent!important;padding:0!important;margin-bottom:16px!important}
.ws-exam-grid--vocab{grid-template-columns:1fr 1fr 1fr;margin-bottom:10px}
@media(max-width:640px){.ws-exam-grid--vocab{grid-template-columns:1fr}}
.ws-exam-grid--soon{grid-template-columns:1fr 1fr;margin-bottom:18px;opacity:.55}
button.ws-exam-card:disabled{opacity:.45;cursor:not-allowed;transform:none}
button.ws-exam-card:disabled:hover{border-color:var(--border);transform:none}
.vv-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.vv-filter{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--border);border-radius:99px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;background:var(--bg2);font-family:var(--lc-font)}
.vv-filter.on{border-color:var(--brand);background:var(--brand-light);color:var(--brand)}
.vv-legend{font-size:12px;font-weight:500;color:var(--text-secondary);margin:0 0 12px;line-height:1.55}
.vv-legend-hint{color:var(--text-muted);font-weight:600}
.vv-legend .art-masc{color:var(--art-masc);font-weight:700}
.vv-legend .art-fem{color:var(--art-fem);font-weight:700}
.vv-legend .art-neut{color:var(--art-neut);font-weight:700}
.vv-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}
@media(max-width:520px){.vv-actions{grid-template-columns:1fr}}
.vv-soon-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--amber);background:rgba(245,158,11,.12);padding:1px 6px;border-radius:5px;margin-left:4px;vertical-align:middle}
.vv-pro-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--brand);background:rgba(232,197,71,.15);padding:1px 6px;border-radius:5px;margin-left:4px;vertical-align:middle}
.vv-selnote{font-size:12px;font-weight:600;color:var(--text-secondary);text-align:center;margin:10px 0 16px;line-height:1.5}
.vv-selnote b{color:var(--brand)}
.vv-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;align-items:start;margin-top:4px}
.vv-grp{background:var(--surface,var(--bg2));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));padding:12px 14px;margin-bottom:0;min-height:120px;display:flex;flex-direction:column;overflow:visible}
.vv-ghead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.vv-gh{font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}
.vv-selall{font-size:12px;font-weight:600;color:var(--brand);background:none;border:none;cursor:pointer;font-family:var(--lc-font);padding:4px 0;min-height:36px}
.vv-row{display:flex;align-items:flex-start;gap:8px;padding:9px 0;border-top:1px solid var(--border);font-family:var(--lc-font)}
.vv-row-main{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0;cursor:pointer;margin:0}
.vv-word-cell{display:inline-flex;align-items:baseline;gap:4px;flex:1;min-width:0;max-width:100%}
.vv-word-cell .vv-art{width:auto;min-width:0;flex-shrink:0;padding-top:0;margin-right:1px}
.vv-word-cell .vv-row-word{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal}
.vv-grp .vv-row:first-of-type{border-top:0}
.vv-row input[type=checkbox]{width:19px;height:19px;flex-shrink:0;margin-top:2px;cursor:pointer;accent-color:var(--brand)}
.vv-del{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;padding:2px 8px;border-radius:6px;min-width:32px;min-height:32px;font-family:var(--lc-font);opacity:.55;transition:opacity .15s,color .15s,background .15s}
.vv-row:hover .vv-del{opacity:1}
.vv-del:hover{color:var(--red);background:var(--red-bg)}
.vv-row-word{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--text);line-height:1.45;word-break:normal;overflow-wrap:normal;position:relative;cursor:help}
.vv-row-word[data-tip]::after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 6px);max-width:min(240px,90vw);padding:6px 10px;border-radius:8px;background:var(--text);color:var(--bg2);font-size:12px;font-weight:600;line-height:1.4;white-space:normal;box-shadow:var(--shadow-card);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease;z-index:20}
.vv-row-word[data-tip]:hover::after,.vv-row-word[data-tip]:focus-visible::after{opacity:1;visibility:visible}
.vv-art{font-weight:700;width:30px;flex-shrink:0;line-height:1.45;padding-top:1px}
.vv-art--empty{width:0;min-width:0;overflow:hidden;padding:0;margin:0;border:0}
.vv-art--masc{color:var(--art-masc)}
.vv-art--neut{color:var(--art-neut)}
.vv-art--fem{color:var(--art-fem)}
.vv-rows{flex:1;overflow:visible}
.vv-more{display:block;width:100%;margin:8px 0 0;min-height:36px;border-radius:8px;border:1px dashed var(--border);background:transparent;font-family:var(--lc-font);font-size:12px;font-weight:700;color:var(--brand);cursor:pointer;flex-shrink:0}
.vv-more:hover{border-color:var(--brand);background:var(--brand-light)}
.vv-add-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px}
.vv-add-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.vv-add-row .fc-add-input{flex:1;min-width:120px;margin:0}
.vv-add-hint{font-size:12px;font-weight:600;color:var(--text-secondary);margin:10px 0 0;line-height:1.55}
.vv-add-hint b{color:var(--text)}
.vv-spell-fix{display:inline-block;margin-top:0;border:none;background:none;padding:0;font:inherit;font-size:11px;font-weight:700;color:var(--brand);cursor:pointer;text-decoration:underline;font-family:var(--lc-font)}
.vv-spell-wrap{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;margin-left:4px}
.vv-spell-dismiss{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;border-radius:6px;min-width:28px;min-height:28px;font-family:var(--lc-font)}
.vv-spell-dismiss:hover{color:var(--text-secondary);background:var(--bg2)}
.vv-conj-select{font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:6px 8px;width:100%;max-width:100%;cursor:pointer;font-family:var(--lc-font);margin-top:6px}
.vv-conj-details{margin:0;width:100%}
.vv-conj-summary{font-size:11px;font-weight:700;color:var(--brand);cursor:pointer;list-style:none;margin-top:6px;user-select:none}
.vv-conj-summary::-webkit-details-marker{display:none}
.vv-conj-panel{margin-top:6px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg2)}
.vv-conj-panel-title{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px}
.vv-conj-tense-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
.vv-conj-tense-tab{font-size:10px;font-weight:700;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;font-family:var(--lc-font)}
.vv-conj-tense-tab--active{background:var(--brand-light,var(--purple-bg));border-color:var(--brand,var(--purple));color:var(--brand,var(--purple))}
.vv-conj-tense-panels{position:relative}
.vv-conj-tense-panel{display:none}
.vv-conj-tense-panel--active{display:block}
.vv-conj-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.vv-conj-item{display:flex;align-items:baseline;gap:8px;font-size:11px;line-height:1.4;color:var(--text-secondary)}
.vv-conj-pron{min-width:2.6em;font-weight:700;color:var(--text-muted);flex-shrink:0}
.vv-conj-form{font-weight:600;color:var(--text);word-break:break-word}
.vv-conj-row{grid-column:1/-1;width:100%;padding-left:27px;margin-top:2px;margin-bottom:6px;position:relative;z-index:0}
.vv-row--verb{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:start;row-gap:2px;position:relative;isolation:isolate}
.vv-row--verb .vv-del{grid-column:2;grid-row:1}
.vv-row--verb .vv-row-main{grid-column:1;grid-row:1}
.vv-row--verb .vv-conj-row{grid-column:1/-1;grid-row:2}
.exam-config-part-card{min-height:56px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;cursor:pointer;background:var(--surface,var(--bg2));box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));display:flex;align-items:center;gap:10px;margin-bottom:10px}
.exam-config-part-card.on{border-color:var(--brand);background:var(--brand-light)}
.exam-config-part-card .n{flex:1;min-width:0;font-size:15px;font-weight:700;color:var(--text)}
.exam-config-part-card .n small{display:block;font-size:11px;font-weight:500;color:var(--text-muted);margin-top:2px}
.exam-config-part-card .tk{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--text-muted);flex:none}
.exam-config-part-card.on .tk{background:var(--brand);border-color:var(--brand)}
.exam-config-part-card.soon{opacity:.55;cursor:default;pointer-events:none}
.exam-config-radio-dot{font-size:18px;line-height:1;flex:none;width:18px;text-align:center;color:var(--text-muted);transition:color .15s}
.exam-config-part-card.on .exam-config-radio-dot{color:var(--brand)}
.exam-config-part-meta{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto}
.exam-config-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:6px;flex:none}
.exam-config-badge--ready{color:var(--green);background:rgba(34,197,94,.12)}
.exam-config-badge--soon{color:var(--orange);background:rgba(245,158,11,.12)}
.exam-config-seed{margin-bottom:16px;font-size:13px}
.exam-config-quota-warn{color:var(--orange);font-weight:700}
.speak-mic-zone{text-align:center;padding:8px 0 4px}
.speak-mic-warn{font-size:12px;color:var(--orange);margin-bottom:10px}
.speak-mic-ring{width:72px;height:72px;border-radius:50%;border:2px solid var(--border);margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:28px;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.speak-mic-ring.recording{border-color:var(--red);box-shadow:0 0 0 6px rgba(239,68,68,.15)}
.speak-mic-status{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}
.speak-mic-status.recording{color:var(--red)}
.speak-mic-timer{font-size:13px;font-weight:700;font-family:'DM Mono',monospace;color:var(--text-muted);min-height:18px;margin-bottom:8px}
.speak-mic-wave{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:28px;margin-bottom:10px}
.speak-mic-bar{width:4px;height:6px;border-radius:2px;background:var(--border);transition:height .15s}
.speak-mic-bar.active{background:var(--brand);animation:speakMicPulse .6s ease-in-out infinite alternate}
.speak-mic-bar.active:nth-child(2){animation-delay:.08s}
.speak-mic-bar.active:nth-child(3){animation-delay:.16s}
.speak-mic-bar.active:nth-child(4){animation-delay:.24s}
.speak-mic-bar.active:nth-child(5){animation-delay:.32s}
.speak-mic-bar.active:nth-child(6){animation-delay:.4s}
.speak-mic-bar.active:nth-child(7){animation-delay:.48s}
@keyframes speakMicPulse{from{height:6px}to{height:22px}}
.speak-mic-btns{display:flex;gap:8px;justify-content:center;margin-bottom:12px}
.speak-mic-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);text-align:left;margin:0 0 6px}
#oralPracticeScreen{display:none;padding:8px 0 40px;animation:fadeUp .35s ease}
.oral-practice-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.oral-task-card{margin-bottom:18px}
.oral-task-text{font-size:15px;font-weight:600;color:var(--text);line-height:1.6;margin:0}
.oral-task-hints{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.oral-task-hint{font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg3);padding:6px 10px;border-radius:8px}
.oral-results-head{text-align:center;margin-bottom:20px}
.oral-score-ring{display:inline-flex;align-items:baseline;gap:2px;margin:12px 0}
.oral-score-big{font-size:48px;font-weight:700;letter-spacing:-.03em}
.oral-score-big.pass{color:var(--green)}
.oral-score-big.mid{color:var(--orange)}
.oral-score-big.fail{color:var(--red)}
.oral-score-denom{font-size:18px;font-weight:600;color:var(--text-muted)}
.oral-results-summary{font-size:14px;font-weight:500;color:var(--text-secondary);line-height:1.55;max-width:480px;margin:0 auto}
.oral-criteria-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:16px}
@media(max-width:520px){.oral-criteria-grid{grid-template-columns:1fr}}
.oral-crit-card{padding:14px!important}
.oral-crit-top{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;margin-bottom:6px}
.oral-crit-val{font-size:12px;font-weight:700}
.oral-crit-val.high{color:var(--green)}
.oral-crit-val.mid{color:var(--orange)}
.oral-crit-val.low{color:var(--red)}
.oral-crit-comment{font-size:12px;font-weight:500;color:var(--text-secondary);line-height:1.5;margin:0}
.oral-fb-list{margin:8px 0 0;padding-left:18px;font-size:13px;color:var(--text-secondary);line-height:1.6}
.fc-single-wrap{max-width:420px;margin:0 auto;padding:8px 0 24px}
.fc-single-card{perspective:900px;margin-bottom:16px}
.fc-single-inner{position:relative;min-height:220px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface,var(--bg2));box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));transition:transform .45s,border-color .2s;transform-style:preserve-3d;cursor:pointer}
.fc-single-inner:hover{border-color:var(--border-strong,var(--border2))}
.vp-phrase{font-size:20px;line-height:1.5}
.vp-order-built{min-height:48px;padding:12px 14px;border:1px dashed var(--border);border-radius:10px;margin:12px 0;text-align:left;line-height:1.6}
.vp-built-tok{display:inline-block;margin:2px 4px;padding:4px 8px;background:var(--brand-light,var(--purple-bg));border-radius:6px;font-weight:600}
.vp-order-pool{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}
.vp-tok-chip{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:14px}
.vp-tok-chip.used{opacity:.35;pointer-events:none}
.ws-exam-grid--vocab-second{margin-top:10px}
.fc-single-conj{width:100%;max-width:280px;margin-top:10px;text-align:left}
.fc-single-conj .vv-conj-summary{font-size:12px}
.fc-single-hint{font-size:11px;color:var(--text-muted);margin-top:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.fc-single-inner.flipped{transform:rotateY(180deg)}
.fc-single-face{position:absolute;inset:0;padding:24px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;backface-visibility:hidden;border-radius:var(--radius-lg)}
.fc-single-back{transform:rotateY(180deg)}
.fc-single-word{font-size:32px;font-weight:700;font-family:var(--lc-font);letter-spacing:-.02em;margin-bottom:8px;color:var(--text)}
.fc-single-phon{font-size:12px;color:var(--text-muted);font-family:'DM Mono',monospace;margin-bottom:10px}
.fc-single-trans{font-size:22px;font-weight:700;color:var(--purple);margin-bottom:8px}
.fc-single-ex{font-size:12px;color:var(--text-secondary);font-style:italic;line-height:1.5}
.fc-single-nav{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:4px}
.fc-single-nav .btn-sm{min-height:44px;padding:0 18px}
.ws-act-card.soon{opacity:.55;cursor:default;pointer-events:none}
.exam-config-hint{font-size:11px;font-weight:500;color:var(--text-muted);margin-top:8px;line-height:1.5}
.exam-config-teil-select{display:block;width:100%;max-width:100%;margin:0 0 10px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface,var(--bg2));color:var(--text);font-size:14px;font-weight:600;font-family:var(--lc-font);cursor:pointer;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
.exam-config-meta{font-size:12.5px;color:var(--text-muted);margin:0 0 22px;line-height:1.5}
.ec-step-label{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);font-weight:700;margin:24px 0 10px;display:flex;align-items:center;gap:8px}
.ec-step-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;font-weight:700;flex:none}
.ec-skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
@media(max-width:520px){.ec-skills-grid{grid-template-columns:1fr}}
.ec-skill-card{position:relative;background:var(--surface,var(--bg2));border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;cursor:pointer;display:flex;align-items:flex-start;gap:10px;transition:border-color .15s,background .15s;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06))}
.ec-skill-card:hover{border-color:var(--border-strong,var(--border2))}
.ec-skill-card.on{border-color:var(--brand);background:var(--brand-light)}
.ec-skill-dot{width:9px;height:9px;border-radius:50%;border:2px solid var(--text-muted);flex-shrink:0;margin-top:5px;transition:.15s}
.ec-skill-card.soon{opacity:.55;cursor:default}
.ec-skill-card.soon.on{opacity:.65}
.ec-skill-body{flex:1;min-width:0;padding-right:52px}
.ec-skill-name{font-weight:650;font-size:15px;color:var(--text)}
.ec-skill-desc{font-size:12.5px;color:var(--text-secondary);margin-top:3px;line-height:1.4}
.ec-skill-card .exam-config-badge{position:absolute;top:14px;right:14px}
.exam-config-topic-select{display:block;width:100%;max-width:100%;margin:0 0 8px;padding:13px 15px;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface,var(--bg2));color:var(--text);font-size:15px;font-weight:600;font-family:var(--lc-font);cursor:pointer;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235A6478' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}
.exam-config-topic-select:focus{outline:2px solid var(--brand-light);border-color:var(--brand)}
.exam-config-topic-hint{display:flex;align-items:flex-start;gap:7px;margin:0 0 14px;font-size:12.5px;color:var(--text-secondary);line-height:1.45}
.exam-config-topic-hint--ok{color:var(--green);font-weight:600}
.ec-hint-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;margin-top:6px}
.ec-vocab-card{background:var(--surface,var(--bg2));border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));margin-bottom:8px}
.ec-vocab-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
.ec-vocab-title{font-weight:650;font-size:14px;color:var(--text)}
.ec-vocab-count{font-size:12.5px;color:var(--brand);font-weight:700;background:var(--brand-light);padding:3px 9px;border-radius:20px;white-space:nowrap}
.ec-vocab-sub{font-size:12px;color:var(--text-muted);margin:0 0 12px;line-height:1.45}
.ec-vocab-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:14px}
.ec-vocab-actions button{background:none;border:none;color:var(--brand);font-size:12.5px;font-weight:600;cursor:pointer;padding:0;font-family:var(--lc-font)}
.ec-vocab-cols{margin-top:0}
.ec-vocab-col{min-height:100px}
.ec-vocab-row .due-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);flex-shrink:0;margin-left:2px}
.ec-vocab-legend{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:11px;color:var(--text-muted)}
.ec-vocab-card--disabled{opacity:.72;background:var(--bg2,#f8fafc)}
.ec-vocab-card--disabled .ec-vocab-cols--readonly{pointer-events:none;filter:grayscale(.35)}
.ec-vocab-card--disabled .ec-vocab-sub{color:var(--text-muted)}
.vv-row--cap-lock .vv-row-main--disabled{opacity:.55;cursor:not-allowed}
.vv-row--cap-lock input[type=checkbox]:disabled{cursor:not-allowed;opacity:.45}
.ec-foot-note{display:block;margin-top:4px;font-size:11px;font-weight:500;color:var(--text-muted)}
.exam-config-footbar .summary b{font-weight:700}
.personal-teil-alt-note{margin:-4px 0 10px;padding:8px 12px;border-radius:var(--radius-md);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);font-size:12px;font-weight:600;color:var(--orange)}
.exam-config-teil-select:focus{outline:2px solid var(--brand-light);border-color:var(--brand)}
.exam-config-cta{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:13px;font-weight:700;color:var(--brand);background:none;border:none;cursor:pointer;font-family:var(--lc-font);padding:0}
.exam-config-footbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--bg2);border-top:1px solid var(--border);padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:none;align-items:center;gap:12px}
.exam-config-footbar .summary{flex:1;font-size:12px;font-weight:600;color:var(--text-secondary)}
.exam-config-footbar .summary b{color:var(--text)}
.exam-config-footbar .btn-gen{min-height:44px;padding:0 20px;border-radius:12px;font-family:var(--lc-font);font-size:15px;font-weight:700;cursor:pointer;border:none;background:var(--brand);color:#fff;white-space:nowrap}
.exam-config-footbar .btn-gen:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:639px){.exam-config-footbar{flex-direction:column;align-items:stretch}
.exam-config-footbar .summary{text-align:center}
.exam-config-footbar .btn-gen{width:100%}}
.marked-word-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}
.marked-word-row:last-child{border-bottom:0}
.marked-word{display:inline-block;padding:3px 10px;border-radius:6px;font-size:15px;font-weight:700;color:var(--text);min-width:120px}
.marked-word--noun{color:var(--blue);background:var(--blue-bg)}
.marked-word--verb{color:var(--orange);background:rgba(245,158,11,.14)}
.marked-word--adjective{color:var(--green);background:var(--green-bg)}
.marked-word--adverb{color:var(--purple);background:var(--purple-bg)}
.marked-word--phrase,.marked-word--other{color:var(--text-secondary);background:rgba(127,127,127,.12)}
.marked-trans{flex:1;min-width:180px;font-size:13px;color:var(--text-secondary)}
.speak-mode-banner{border-radius:10px;padding:10px 14px;margin:12px 0;font-size:12px;font-weight:600;line-height:1.55;color:var(--text-secondary)}
.speak-mode-banner--free{background:rgba(37,99,235,.07);border:1px solid rgba(37,99,235,.2)}
.speak-mode-banner--pro{background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.22)}
.speak-mode-upgrade{display:block;margin-top:6px;font-size:11px;color:var(--text-muted);font-weight:600}
.speak-persona-picker{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.speak-persona-pill{padding:7px 14px;border-radius:999px;border:1.5px solid var(--border);background:var(--bg2);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s}
.speak-persona-pill:hover{border-color:var(--purple);color:var(--purple)}
.speak-persona-pill.active{border-color:var(--purple);background:var(--purple-bg,rgba(124,58,237,.12));color:var(--purple)}
.speak-persona-desc{font-size:12px;color:var(--text-muted);margin:0 0 12px;line-height:1.5}
.speak-conv-panel{padding:14px 16px;border:1px dashed var(--border);border-radius:10px;background:var(--bg2);margin-bottom:12px}
.speak-conv-status{font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px}
.speak-conv-transcript-live{min-height:48px;font-size:13px;line-height:1.6;color:var(--text-secondary);margin-bottom:10px;white-space:pre-wrap}
.speak-conv-actions{display:flex;flex-wrap:wrap;gap:8px}
.speak-conv-fallback[hidden]{display:none!important}
.speak-conv-meta{display:none!important}
.speak-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}
.speak-consent input{margin-top:3px}
.speak-mode-tabs{display:flex;gap:8px;margin:0 0 12px}
.speak-mode-tab{padding:7px 14px;border-radius:999px;border:1.5px solid var(--border);background:var(--bg2);font-size:12px;font-weight:700;cursor:pointer}
.speak-mode-tab.active{border-color:var(--purple);background:var(--purple-bg,rgba(124,58,237,.12));color:var(--purple)}
.speak-live-voice{padding:14px 16px;border:1px dashed var(--purple);border-radius:10px;background:var(--bg2);margin-bottom:12px}
.speak-live-voice[hidden]{display:none!important}
.speak-live-status{font-size:13px;font-weight:600;margin-bottom:8px}
.speak-live-timer{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;margin-bottom:10px}
.speak-live-timer.warn{color:var(--danger,#991b1b)}
.speak-live-transcript{min-height:48px;font-size:13px;line-height:1.6;margin-bottom:10px}
.speak-live-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.speak-live-ptt{min-width:180px;touch-action:none;user-select:none}
.speak-live-ptt.recording{background:var(--purple);color:#fff;border-color:var(--purple)}
.speak-live-hint{font-size:11px;color:var(--text-muted);margin:10px 0 0;line-height:1.45}
.speak-voice-consent-modal{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px}
.speak-voice-consent-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.speak-voice-consent-card{position:relative;max-width:440px;width:100%;background:var(--bg,#fff);border-radius:12px;padding:20px;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.speak-voice-consent-card h3{margin:0 0 10px;font-size:17px}
.speak-voice-consent-card p{font-size:13px;line-height:1.55;color:var(--text-secondary)}
.speak-voice-consent-check{display:flex;gap:8px;align-items:flex-start;font-size:12px;margin:12px 0}
.speak-voice-consent-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.coach-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:border-color .2s}
.coach-card--action{grid-column:1/-1;border-color:var(--brand);background:var(--brand-light);cursor:pointer}
.coach-card--action:hover{border-color:var(--brand);transform:translateY(-1px)}
.nav-route-recovery{margin:0 0 20px;padding:16px 18px;border-radius:var(--radius-lg);background:var(--surface2);border:1px solid var(--border)}
.nav-route-recovery__title{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--text)}
.nav-route-recovery__msg{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}
.ws-coach-banner:hover{transform:none}
.ws-coach-lead{font-size:15px;font-weight:700;color:var(--text);margin:0 0 4px;line-height:1.45}
.ws-coach-more{font-size:12px;font-weight:600;color:var(--text-muted);margin:0}
.ws-coach-desc{font-size:12px;font-weight:600;color:var(--text-secondary);margin:8px 0 0;line-height:1.5}
.coach-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}
.readiness-row{display:flex;align-items:center;gap:10px}
.readiness-bar{flex:1;height:7px;background:var(--bg3);border-radius:99px;overflow:hidden}
.readiness-fill{height:100%;background:linear-gradient(90deg,var(--brand),var(--teal));border-radius:99px;transition:width .4s ease}
.readiness-estlbl{font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap}
.readiness-estlbl b{color:var(--text-secondary);font-weight:600}
.weak-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.weak-list li{font-size:13px;font-weight:600;color:var(--text);padding:8px 12px;background:var(--bg3);border-radius:var(--radius-md);display:flex;align-items:center;gap:8px}
.weak-list li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--orange);flex-shrink:0}
.weak-empty{font-size:12px;color:var(--text-muted);font-weight:600}
.stat-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat-tile{text-align:center;padding:12px 8px;background:var(--bg3);border-radius:var(--radius-md)}
.stat-tile__val{font-size:20px;font-weight:700;color:var(--text)}
.stat-tile__lbl{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.stat-tile__val.up{color:var(--green)}
.results-loop{margin:18px 0;padding:16px 18px;background:var(--brand-light);border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-lg)}
.results-loop h4{font-size:13px;font-weight:700;color:var(--brand);margin-bottom:6px}
.results-loop p{font-size:13px;font-weight:600;color:var(--text-secondary);line-height:1.55}
.results-detail{margin:14px 0;padding:14px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-lg)}
.results-detail h4{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.results-weak-list,.results-vocab-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.results-weak-list li{font-size:12px;font-weight:700;padding:6px 12px;border-radius:99px;background:var(--red-bg);color:var(--red);border:1px solid rgba(255,107,107,.2)}
.results-vocab-list li{font-size:12px;font-weight:600;padding:6px 12px;border-radius:99px;background:var(--bg2);color:var(--text);border:1px solid var(--border)}
.results-action{margin:16px 0;padding:14px 16px;background:var(--brand-light);border:1px solid rgba(37,99,235,.25);border-radius:var(--radius-lg)}
.results-action h4{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px}
.results-action p{font-size:12px;font-weight:600;color:var(--text-secondary);line-height:1.5;margin-bottom:10px}
.results-guest{margin:16px 0;padding:14px 16px;background:var(--blue-bg);border:1px solid rgba(93,184,232,.25);border-radius:var(--radius-lg)}
.results-guest p{font-size:13px;font-weight:600;color:var(--text-secondary);line-height:1.55;margin-bottom:10px}
.fc-evidence{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:4px;line-height:1.4}
.fc-miss{font-size:10px;font-weight:700;color:var(--brand);margin-top:2px}
.profile-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--brand-light);border-bottom:1px solid rgba(37,99,235,.15);flex-wrap:wrap}
.profile-bar__label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.profile-bar__exam{font-size:14px;font-weight:700;color:var(--text)}
.profile-bar__demo{font-size:10px;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--brand);color:#fff}
.profile-bar__change{font-size:12px;font-weight:700;color:var(--brand);background:none;border:none;cursor:pointer;padding:0}
.profile-switch-list{display:flex;flex-direction:column;gap:8px}
.profile-switch-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}
.profile-switch-item.active{border-color:var(--brand);background:var(--brand-light)}
.profile-switch-item__label{font-size:13px;font-weight:700}
.profile-switch-item__meta{font-size:11px;color:var(--text-muted);font-weight:600}
.setup-screen{display:none;padding:38px 0;animation:fadeUp .35s ease;max-width:640px;margin:0 auto}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}
.setup-card{padding:18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg2);cursor:pointer;transition:all .2s;text-align:center}
.setup-card:hover,.setup-card.selected{border-color:var(--brand);background:var(--brand-light)}
.setup-card h3{font-size:15px;font-weight:700;margin-bottom:4px}
.setup-card p{font-size:12px;font-weight:600;color:var(--text-secondary)}
.hist-card{cursor:pointer;transition:background .15s}
.hist-card:hover{background:var(--bg3)}
.demo-banner{background:var(--brand-light);border:1px solid rgba(37,99,235,.25);border-radius:var(--radius-md);padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:14px}
.demo-banner b{color:var(--brand)}
@media(max-width:620px){.stat-tiles{grid-template-columns:1fr 1fr 1fr}
header{flex-direction:column;align-items:flex-start}
.fc-grid{grid-template-columns:1fr 1fr}
.app-nav{display:none}
.app{padding-bottom:88px}
.logo-sub{display:none}}
@media(max-width:380px){.fc-grid{grid-template-columns:1fr}}

/* ?? Vocab game section ?? */
.vocab-game-section {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  background: var(--bg2, #f9fafb);
}
.vocab-game-section h3 {
  margin: 0 0 16px;
  font-size: 15px;
  font-weight: 600;
}
.vocab-game-block {
  margin-bottom: 14px;
}
.vocab-game-label {
  font-size: 12px;
  color: var(--muted, #6b7280);
  margin: 0 0 8px;
}
.vocab-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.vocab-pill {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 500;
}
.vocab-found {
  background: #d1fae5;
  color: #065f46;
}
.vocab-not-found {
  background: #fee2e2;
  color: #991b1b;
}
@media (prefers-color-scheme: dark) {
  .vocab-found { background: #064e3b; color: #6ee7b7; }
  .vocab-not-found { background: #7f1d1d; color: #fca5a5; }
  .vocab-game-section { border-color: var(--border-dark, #374151); background: var(--bg2-dark, #1f2937); }
}

/* ?? Grammar reference ?? */
.ws-grammar-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--brand);text-decoration:none;padding:6px 12px;border-radius:var(--radius-md);border:1px solid rgba(37,99,235,.25);background:var(--brand-light);margin-left:10px;white-space:nowrap}
.ws-grammar-link:hover{filter:brightness(.97)}
.grammar-book-ic{flex-shrink:0;opacity:.85}
#grammarScreen{display:none;padding:0 0 48px;animation:fadeUp .35s ease}
.grammar-loading{display:flex;gap:8px;justify-content:center;padding:48px 0}
.grammar-toolbar{margin-bottom:20px}
.grammar-toolbar-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.grammar-h1{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:800;margin:0;flex:1;min-width:200px}
.grammar-toolbar-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}
.grammar-level-pill,.grammar-meta-pill{font-family:var(--lc-font);font-size:12px;font-weight:700;padding:7px 14px;border-radius:99px;border:1px solid var(--border);background:var(--bg2);color:var(--text-secondary);cursor:pointer;transition:all .15s}
.grammar-level-pill.on,.grammar-meta-pill.on{background:var(--brand-light);border-color:var(--brand);color:var(--brand)}
.grammar-level-pill:disabled{opacity:.4;cursor:not-allowed}
.grammar-search{flex:1;min-width:180px;font-family:var(--lc-font);font-size:13px;font-weight:600;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text)}
.grammar-print-btn{margin-left:auto}
.grammar-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}
.grammar-nav{position:sticky;top:16px;max-height:calc(100vh - 120px);overflow-y:auto;padding:12px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg2)}
.grammar-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.grammar-nav-link{display:block;font-size:12px;font-weight:600;padding:8px 10px;border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;line-height:1.35}
.grammar-nav-link:hover{background:var(--bg3);color:var(--text)}
.grammar-nav-link[aria-current="location"]{background:var(--brand-light);color:var(--brand);font-weight:700}
.grammar-doc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.grammar-doc-head{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.grammar-scope{font-size:14px;font-weight:600;color:var(--text-secondary);line-height:1.6;margin:0}
.grammar-section{margin-bottom:28px;scroll-margin-top:80px}
.grammar-section-title{font-size:18px;font-weight:800;margin:0 0 12px;color:var(--text)}
.grammar-p{font-size:14px;font-weight:600;line-height:1.65;color:var(--text);margin:0 0 12px}
.grammar-note{font-size:13px;font-weight:600;line-height:1.55;padding:12px 14px;border-radius:var(--radius-md);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);color:var(--text);margin:0 0 12px}
.grammar-example{border-left:3px solid var(--brand);padding:10px 14px;margin:0 0 12px;background:var(--bg2);border-radius:0 var(--radius-md) var(--radius-md) 0}
.grammar-ex-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:4px}
.grammar-ex-text{font-size:14px;font-weight:600;line-height:1.55;color:var(--text)}
.grammar-list{margin:0 0 12px;padding-left:20px;font-size:14px;font-weight:600;line-height:1.6;color:var(--text)}
.grammar-table-wrap{overflow-x:auto;margin:0 0 12px}
.grammar-table{width:100%;border-collapse:collapse;font-size:13px;font-weight:600}
.grammar-table th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:8px 10px;border-bottom:2px solid var(--border);background:var(--bg2)}
.grammar-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:top}
.grammar-mark{background:rgba(245,158,11,.35);border-radius:2px;padding:0 1px}
.grammar-prep{padding:48px 24px;text-align:center}
.grammar-prep-inner{font-size:15px;font-weight:700;color:var(--text-secondary);padding:24px;border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--bg2)}
.grammar-empty{font-size:14px;font-weight:600;color:var(--text-muted);padding:24px 0}
.grammar-type-tabs{gap:6px;margin-bottom:4px}
.grammar-type-tab{font-family:var(--lc-font);font-size:12px;font-weight:700;padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg2);color:var(--text-secondary);cursor:pointer;transition:all .15s}
.grammar-type-tab.on{background:var(--brand);border-color:var(--brand);color:#fff}
.ref-items-section .ref-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:4px}
.ref-item-card{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg2)}
.ref-item-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px}
.ref-item-primary{font-size:15px;font-weight:800;color:var(--text)}
.ref-item-secondary{font-size:13px;font-weight:600;color:var(--brand)}
.ref-item-secondary--block{display:block;margin-bottom:6px}
.ref-item-tag{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:99px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);margin-bottom:6px}
.ref-item-tag--formal{background:rgba(37,99,235,.1);border-color:rgba(37,99,235,.25);color:var(--brand)}
.ref-item-tag--informal{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.25);color:var(--green,#10b981)}
.ref-item-example,.ref-item-usage{font-size:12px;font-weight:600;line-height:1.5;color:var(--text-secondary);font-style:italic}
@media(max-width:860px){.grammar-layout{grid-template-columns:1fr}.grammar-nav{position:relative;top:0;max-height:none}}
@media print{
  body.grammar-active *{visibility:hidden}
  body.grammar-active #grammarScreen,body.grammar-active #grammarScreen *{visibility:visible}
  body.grammar-active #grammarScreen{position:absolute;left:0;top:0;width:100%;display:block!important;padding:0}
  body.grammar-active .grammar-nav,body.grammar-active .grammar-toolbar,body.grammar-active .nav-back-btn,body.grammar-active .topbar,body.grammar-active .profile-bar{display:none!important}
  body.grammar-active .grammar-layout{grid-template-columns:1fr;display:block}
  body.grammar-active .grammar-doc{border:none;box-shadow:none;padding:0}
  body.grammar-active .grammar-section{page-break-inside:avoid;break-inside:avoid}
}

/* Cookie consent (GDPR/ePrivacy) ? non-blocking bottom bar */
.lc-consent{
  position:fixed;left:0;right:0;bottom:0;z-index:1150;
  padding:0 12px calc(12px + env(safe-area-inset-bottom));
  pointer-events:none;
}
.lc-consent[hidden]{display:none!important}
.lc-consent__bar{
  pointer-events:auto;
  max-width:960px;margin:0 auto;
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 16px;
  padding:14px 16px;border-radius:14px 14px 0 0;
  background:var(--bg2,#fff);border:1px solid var(--border,#ddd);
  border-bottom:none;box-shadow:0 -4px 24px rgba(15,23,42,.12);
}
.lc-consent__copy{flex:1 1 260px;min-width:0}
.lc-consent__title{font-size:13px;font-weight:700;color:var(--text-primary);margin:0 0 4px;line-height:1.35}
.lc-consent__text{font-size:12px;font-weight:500;color:var(--text-secondary);margin:0;line-height:1.55}
.lc-consent__link{color:var(--brand);font-weight:600;text-decoration:none;margin-left:4px}
.lc-consent__link:hover{text-decoration:underline}
.lc-consent__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:0 0 auto}
.lc-consent__btn{
  font-family:var(--lc-font);font-size:12px;font-weight:700;
  padding:8px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--surface,var(--bg2));color:var(--text-secondary);cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.lc-consent__btn:hover{border-color:var(--border-strong,var(--border2));color:var(--text-primary)}
.lc-consent__btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}
.lc-consent__btn--primary:hover{background:var(--brand-dark,var(--brand));border-color:var(--brand-dark,var(--brand));color:#fff}
.lc-consent__btn--ghost{background:transparent}
.lc-consent__prefs{
  pointer-events:auto;
  max-width:960px;margin:0 auto;
  padding:14px 16px 16px;
  background:var(--elevated,var(--bg3));border:1px solid var(--border);
  border-top:none;border-radius:0 0 12px 12px;
  box-shadow:0 -2px 16px rgba(15,23,42,.08);
}
.lc-consent__prefs[hidden]{display:none!important}
.lc-consent__prefs-title{font-size:13px;font-weight:700;margin:0 0 6px;color:var(--text-primary)}
.lc-consent__prefs-intro{font-size:12px;font-weight:500;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}
.lc-consent__cats{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}
.lc-consent__cat-label{display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:600;color:var(--text-primary);cursor:pointer}
.lc-consent__cat-hint{display:block;font-size:11px;font-weight:500;color:var(--text-muted);margin:4px 0 0 26px;line-height:1.45}
.lc-consent__tag{font-style:normal;font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.lc-consent__prefs-actions{display:flex;flex-wrap:wrap;gap:8px}
body.lc-consent-open .u-site-footer{padding-bottom:56px}
@media(max-width:640px){
  .lc-consent__bar{border-radius:12px 12px 0 0}
  .lc-consent__actions{width:100%}
  .lc-consent__btn{flex:1 1 auto;text-align:center}
}

/* ------------------------------------------------------------
   POOL-TEST EXAM STYLE ? hace que el examen sea igual que
   pool-test.html: limpio, tarjetas blancas, sin banners extra
   ------------------------------------------------------------ */

/* Ocultar banners fuera de official/practice */
.exam-prac-banner,
.exam-lang-toolbar,
.exam-official-banner,
.officialH-banner,
.mode-markmsg { display: none !important; }
#examScreen.mode-official .exam-official-banner,
#examScreen.mode-practice .exam-prac-banner,
#examScreen.mode-practice .exam-lang-toolbar { display: block !important; }
#examScreen.mode-practice .exam-lang-toolbar { display: flex !important; }

/* Exam screen: fondo suave como pool-test */
#examScreen {
  background: #f8fafc;
  padding: 20px 0;
}

/* Eliminar borde superior del topbar del examen */
.exam-topbar {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 16px;
}

/* Tarjeta de cada m?dulo ? id?ntica a pool-test .card */
.module-wrap {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  padding: 20px !important;
  margin-bottom: 16px !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.06) !important;
}

/* Encabezado del m?dulo ? badge de color */
.module-tag {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  padding: 4px 12px !important;
  border-radius: 12px !important;
  margin-bottom: 12px !important;
  display: inline-block !important;
}
.tag-lesen   { background: #dbeafe !important; color: #1e40af !important; border: none !important; }
.tag-horen   { background: #dcfce7 !important; color: #166534 !important; border: none !important; }
.tag-schreiben { background: #fef3c7 !important; color: #92400e !important; border: none !important; }
.tag-sprechen  { background: #fce7f3 !important; color: #9d174d !important; border: none !important; }

/* Instrucci?n ? box gris con borde izquierdo */
.off-instr {
  background: #f8fafc !important;
  border-left: 3px solid #cbd5e1 !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 10px 14px !important;
  margin-bottom: 14px !important;
  font-size: 13.5px !important;
  color: #475569 !important;
  font-style: italic !important;
  line-height: 1.65 !important;
}

/* Pasaje de texto ? igual que pool-test .passage */
.text-display {
  background: #f1f5f9 !important;
  border-left: 3px solid #2563eb !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 14px 16px !important;
  margin-bottom: 14px !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
}
.text-display h3 {
  font-size: 1rem !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
  color: #1e293b !important;
}
.readable-text {
  font-size: 14px !important;
  line-height: 1.75 !important;
  color: #1e293b !important;
}

/* Bloque de pregunta */
.question-block {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  margin-bottom: 10px !important;
  box-shadow: none !important;
}
.q-number {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1e293b !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin-bottom: 10px !important;
  line-height: 1.5 !important;
}
.q-text { display: none !important; }

/* Opciones de respuesta */
.options { display: flex !important; flex-direction: column !important; gap: 6px !important; }
.opt {
  padding: 9px 12px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #1e293b !important;
  background: #fff !important;
  cursor: pointer !important;
}
.opt:hover { border-color: #2563eb !important; background: #eff6ff !important; }
.opt.selected { border-color: #2563eb !important; background: #eff6ff !important; }

/* Botones Richtig / Falsch / Ja / Nein */
.rf-row { display: flex !important; gap: 8px !important; flex-wrap: wrap !important; }
.rf-btn {
  padding: 8px 22px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  background: #fff !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  color: #1e293b !important;
  min-width: 90px !important;
  text-align: center !important;
  transition: all .15s !important;
}
.rf-btn:hover { border-color: #2563eb !important; background: #eff6ff !important; color: #1d4ed8 !important; }
.rf-btn.sel-r { border-color: #16a34a !important; background: #f0fdf4 !important; color: #166534 !important; }
.rf-btn.sel-f { border-color: #dc2626 !important; background: #fef2f2 !important; color: #b91c1c !important; }
.rf-btn.sel-n { border-color: #d97706 !important; background: #fffbeb !important; color: #92400e !important; }

/* Barra de progreso */
.progress-wrap {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px 16px;
  margin-bottom: 16px;
}
.progress-row { display: flex; justify-content: space-between; font-size: 13px; color: #64748b; margin-bottom: 6px; }
.progress-track { height: 6px; background: #e2e8f0; border-radius: 3px; }
.progress-fill { height: 6px; background: #2563eb; border-radius: 3px; transition: width .3s; }

/* Intro de m?dulo */
.off-mod-head {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
}
.off-mod-head h2 { font-size: 16px !important; font-weight: 700 !important; color: #1e293b !important; }

/* Submit bar */
.submit-bar {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-top: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  padding: 14px 18px !important;
  margin-top: 20px !important;
  position: static !important;
}

/* Separadores entre secciones */
.section-div { display: none !important; }

/* Admin content review (PASO 3) — create pending corrections only */
.admin-review-row{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.admin-review-btn{font-size:11px!important;opacity:.92}
.admin-review-pending{font-size:11px;font-weight:600;color:var(--orange,#d97706);background:var(--orange-bg,rgba(217,119,6,.12));border-radius:6px;padding:4px 8px}
.admin-review-published{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#b45309;background:rgba(245,158,11,.18);border-radius:6px;padding:4px 8px;border:1px solid rgba(245,158,11,.35)}
.admin-review-published-warn{font-size:12px;font-weight:600;color:#92400e;background:rgba(251,191,36,.2);border:1px solid rgba(245,158,11,.4);border-radius:8px;padding:10px 12px;margin:0 0 10px;line-height:1.45}
.admin-review-modal{position:fixed;inset:0;z-index:12000;display:none;align-items:center;justify-content:center;background:rgba(15,15,18,.45);padding:16px}
.admin-review-dialog{position:relative;width:min(640px,100%);max-height:min(90vh,820px);overflow:auto;background:var(--surface,#fff);color:var(--text,#1e293b);border-radius:12px;border:.5px solid var(--border,#e2e8f0);padding:20px 22px 18px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.admin-review-close{position:absolute;top:10px;right:12px;border:none;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:var(--text-muted,#64748b)}
.admin-review-dialog h3{margin:0 28px 6px 0;font-size:17px;font-weight:700}
.admin-review-meta{font-size:11px;color:var(--text-muted,#64748b);margin:0 0 12px;font-family:ui-monospace,monospace;word-break:break-all}
.admin-review-label{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary,#64748b);margin:10px 0 4px}
.admin-review-label .req{color:var(--red,#ef4444)}
.admin-review-input,.admin-review-textarea{width:100%;box-sizing:border-box;border:.5px solid var(--border2,#cbd5e1);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;background:var(--bg,#fff);color:var(--text);resize:vertical}
.admin-review-hint{font-size:12px;color:var(--text-secondary);margin:12px 0 0;line-height:1.5}
.admin-review-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.admin-review-status{font-size:12px;margin:10px 0 0;color:var(--text-secondary);min-height:1.2em}
