/* LingoBase glass visual system. Layouts, data and avatar geometry remain intact.
   Only floating navigation and backdrops use blur; content surfaces stay inexpensive. */
:root{
  color-scheme:dark;
  --bg:#0c0d17;--panel:#191827;--panel2:#252236;--panel3:#302a43;
  --text:#f7f5ff;--muted:#b7b0c8;--line:rgba(215,203,255,.17);--border:var(--line);
  --accent:#a17aff;--accent2:#d0b9ff;--good:#69d5ac;--warn:#f0d276;--danger:#ff899a;
  --shadow:0 18px 48px #0003;--radius:24px;
  --glass-surface:linear-gradient(145deg,rgba(244,232,255,.075),rgba(199,187,236,.025)),rgba(23,21,36,.88);
  --glass-highlight:inset 0 1px 0 rgba(255,255,255,.08);
  --glass-ease:cubic-bezier(.2,.7,.2,1);
}
body{background:radial-gradient(ellipse 850px 600px at 100% 0,rgba(123,85,192,.19),transparent 70%),radial-gradient(ellipse 600px 480px at 0 18%,rgba(70,116,159,.10),transparent 75%),var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5}h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em}button{transition:background .18s,border-color .18s,box-shadow .22s,transform .18s var(--glass-ease);-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default;opacity:.52}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent2);outline-offset:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #a17aff66;outline-offset:2px}a{color:var(--accent2)}.main{max-width:1600px}.sidebar{background:rgba(20,19,31,.93);border-color:var(--line);padding-top:32px;box-shadow:inset -1px 0 0 #ffffff03}.brand{padding-bottom:30px}.brand-mark{width:44px;height:44px}.nav-item{font-weight:550;min-height:43px;color:#b3a8c4}.nav-item span{color:#9483ad}.nav-item:hover{background:rgba(206,186,255,.08)}.nav-item.active{background:linear-gradient(115deg,rgba(164,121,255,.25),rgba(170,145,235,.09));box-shadow:var(--glass-highlight),inset 0 0 0 1px rgba(195,163,255,.18);color:#f5edff}.profile-mini .avatar{background:#352149}.topbar .eyebrow,.eyebrow{color:var(--accent2);letter-spacing:2px}.topbar{margin-bottom:26px}.topbar h1{font-size:29px}.sidebar-foot{border-color:var(--line)}.mobile-nav{background:rgba(32,28,46,.92);border-color:rgba(228,209,255,.25);box-shadow:0 12px 38px #0006,var(--glass-highlight)}
.panel,.study-card,.setting-card,.plan-card,.reading-card,.book-card,.resource-card,.folder-card,.stat,.big-stat,.suggestion-card,.inventory-card,.cosmetic-card{background:var(--glass-surface);border-color:var(--line);box-shadow:var(--glass-highlight);border-radius:24px}.hero,.discover-hero,.rest-hero,.companion-hero{background:radial-gradient(ellipse at 100% 0,rgba(102,179,192,.12),transparent 60%),radial-gradient(ellipse at 0 0,rgba(156,99,233,.23),transparent 70%),linear-gradient(125deg,rgba(47,34,67,.91),rgba(23,22,39,.95));border-color:rgba(210,179,255,.24);box-shadow:var(--glass-highlight),0 14px 40px #0002}.hero{padding:34px}.hero h2{font-size:clamp(27px,3vw,42px);line-height:1.12;letter-spacing:-1.3px}.hero:after{border-color:#a17aff08}.hero p,.rest-hero p,.discover-hero p{color:#bcaccd}.hero-actions{flex-wrap:wrap}.today-card{background:rgba(16,13,29,.5);border-color:rgba(225,203,255,.18);box-shadow:var(--glass-highlight)}.today-card .day{color:var(--warn)}.today-card p{color:var(--muted)}.btn,.round-btn,.icon-btn{background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015)),rgba(35,29,49,.85);border-color:rgba(221,204,248,.21);color:#eee7fa;box-shadow:var(--glass-highlight)}.btn{font-size:13px;font-weight:650;min-height:44px;border-radius:15px}.btn.primary{background:linear-gradient(135deg,#885acc,#7148b7);border-color:rgba(222,196,255,.5);box-shadow:inset 0 1px 0 #ffffff30,0 4px 18px #8149cb24;color:white}.btn.soft{background:linear-gradient(120deg,rgba(166,114,241,.18),rgba(133,94,195,.12));color:#ddc7ff;border-color:rgba(182,144,239,.28)}.btn:hover:not(:disabled),.round-btn:hover:not(:disabled){border-color:#9b76c7;background:#342144}.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#885acc,#6941b4)}.btn:active:not(:disabled){transform:translateY(1px)}.tag,.stat .stat-icon{background:#2a1e38;color:#c3b2d6}.pron{color:#c4a4f5}.translation{color:#c4b7d2}.card-actions{border-color:#33233f}.study-card:hover{border-color:#664681}.study-card.is-new{border-color:#593974}.search input,input,select,textarea{background:rgba(10,10,20,.62);border-color:rgba(214,195,239,.23);color:var(--text);min-height:44px;border-radius:14px;accent-color:var(--accent)}select option{background:#201b2e;color:var(--text)}.filter-select{width:auto}.mini-item{background:rgba(200,180,244,.035);border-color:var(--line)}.text-btn{color:var(--accent2)}.modal,.focus-card-shell,.auth-card{background:linear-gradient(140deg,rgba(52,41,68,.98),rgba(22,20,34,.98));border-color:rgba(225,205,255,.25);box-shadow:var(--glass-highlight),0 24px 90px #0008;border-radius:28px}.modal{max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;scroll-padding:20px}.modal-backdrop,.focus-backdrop{background:rgba(5,5,12,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overscroll-behavior:contain}.focus-card-shell{max-height:calc(100dvh - 42px);overflow:auto;overscroll-behavior:contain;scroll-padding:20px}.focus-content{padding-top:18px;padding-bottom:18px}.focus-content h2{font-size:clamp(25px,3.3vw,42px)}.focus-actions{flex-wrap:wrap}.focus-tip{display:block;padding:12px 0}.conversation-section{margin-top:20px;border-top:1px solid var(--line);padding-top:24px}.conversation-section h3{font-size:21px}.conversation-section .panel-head{align-items:flex-start}.conversation-reply{padding:16px;margin:10px 0;border:1px solid #4b345b;border-radius:16px;background:#170f21}.conversation-reply p{margin:6px 0;color:var(--muted)}.conversation-reply .card-actions{margin-top:12px;padding-top:10px}.modal-backdrop{z-index:100}.focus-backdrop{z-index:80}
.library-tabs{gap:8px;flex-wrap:wrap}.lib-tab,.tab-btn{border-color:#3e2c4d;background:#171021;color:#bbaec8}.lib-tab.active,.tab-btn.active,.seg.active,.level-options .active,.learning-active{background:#322044!important;color:#e6cfff!important;border-color:#ad7aee!important;box-shadow:0 0 12px #a17aff20}.lib-tab span{background:#21152c}.library-sticky-tools{background:rgba(26,23,39,.98);border-color:var(--line);box-shadow:var(--glass-highlight),0 4px 18px #0002}.library-main-toolbar{align-items:center}.library-main-toolbar select{flex:0 1 170px}.review-entry,.learning-banner{padding:24px 26px;margin:18px 0;border:1px solid #543369;background:linear-gradient(110deg,#271634,#17101f);border-radius:20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.review-entry h2{font-size:25px;margin:4px 0 8px}.review-entry p,.learning-banner p{color:var(--muted);font-size:13px;margin:4px 0}.learning-banner b{font-size:19px}.learning-banner .card-actions{border:0;margin:0;padding:0;flex-shrink:0}.review-entry>.btn{flex-shrink:0;padding:13px 24px}.review-chip{display:inline-flex;margin-top:12px;font-size:11px;font-weight:650;padding:4px 8px;border:1px solid #655225;background:#352d18;color:var(--warn);border-radius:8px}.review-counts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.review-counts .btn{padding:20px;display:grid;gap:5px;font-size:15px}.review-counts small{font-size:12px;font-weight:450;opacity:.75}.review-question{padding:26px 0 20px}.review-question h3{font-size:26px;line-height:1.4;margin:5px 0}.review-question .btn{margin-right:8px}.review-options{display:grid;gap:10px}.review-options .btn{font-size:16px;text-align:left;padding:15px}.token-options{display:flex;flex-wrap:wrap;margin:14px 0}.token-options .btn{font-size:15px;padding:10px 15px}.review-order-answer{padding:20px;border:1px dashed #8160a4;border-radius:14px;min-height:70px;color:var(--accent2)}.review-score{font-size:80px;font-weight:700;letter-spacing:-5px;color:var(--accent2);line-height:1.2;margin:20px 0}.review-score span{font-size:30px;letter-spacing:0}.review-errors{display:grid;gap:10px;max-height:270px;overflow:auto;margin:18px 0}.review-errors>div{padding:12px;border:1px solid var(--line);border-radius:12px}.review-errors small{display:block;color:var(--muted);margin-top:4px}.review-progress{margin-bottom:22px}.review-progress h2{margin:4px 0 20px}.review-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:18px 0 24px}.review-metrics b{display:block;font-size:34px;color:#ddc6fa;font-weight:650}.review-metrics span{color:var(--muted);font-size:12px}details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer;color:var(--accent2);font-size:13px;font-weight:650}.settings-overview{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 25px}.settings-overview h2{font-size:32px;margin:4px 0}.learning-settings{margin-bottom:18px}.learning-settings h3{margin:0}.level-options{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.level-options .btn{display:flex;gap:12px;align-items:center;text-align:left;padding:18px}.level-options b{font-size:21px;color:var(--accent2)}.voice-per-content{display:grid;gap:15px;border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.voice-per-content h3{margin:0}.voice-per-content select{min-width:0}.voice-per-content label{display:block;font-size:13px}.voice-per-content output{float:right}.account-tools{margin-top:18px}.setting-card>h3{margin-top:0}.setting-card p{font-size:13px;line-height:1.7}.setting-card small{display:block}.backup-list>div{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:16px 0}.backup-list small{display:block;color:var(--muted);font-size:11px}.audit-list{display:grid;gap:12px}.audit-list article{padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.audit-list b,.audit-list small{display:block;margin:8px 0}.audit-list small{color:var(--muted)}.ai-builder-meta{display:flex;gap:16px;align-items:center;margin:14px 0}.ai-builder-meta label{display:flex;gap:10px;align-items:center}.ai-builder-meta select{width:75px}.lesson-builder{margin-bottom:22px;display:grid;grid-template-columns:.85fr 1.15fr;gap:26px}.lesson-builder h2{font-size:27px;margin:7px 0}.lesson-builder form{display:grid;gap:14px}.lesson-builder label{display:grid;gap:6px;font-size:12px}.rest-library-source{display:grid;gap:12px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:22px}.rest-extra-controls{display:grid;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.rest-extra-controls small{color:var(--muted);font-size:11px}.rest-extra-controls output{float:right}.rest-timer-label{color:var(--warn);font-variant-numeric:tabular-nums;font-size:13px}.lofi-controls{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#171020;border-color:#3e2b4b}.lofi-controls>div small{display:block;font-size:11px;color:var(--muted)}.lofi-controls select{width:auto;min-width:165px}.lofi-controls>label{font-size:11px;color:var(--muted);display:flex;gap:10px;align-items:center;flex:1;min-width:180px}.lofi-controls input[type=range]{min-width:70px;padding:0;max-width:140px}.rest-player-actions{flex-wrap:wrap}.update-banner{position:fixed;bottom:24px;right:24px;z-index:150;border:1px solid #a17aff;background:#2b193d;padding:14px 18px;border-radius:16px;box-shadow:0 10px 40px #0006;display:flex;gap:18px;align-items:center;font-size:13px}.form-error:empty{display:none}.toast{z-index:200;background:#30213e;border:1px solid #6e4a88;color:#f0e6fc;max-width:min(90vw,600px)}
.rest-mode-card.active,.level-options .active{border-color:#b990f0!important;background:linear-gradient(130deg,#392849,#282137)!important;box-shadow:inset 0 1px 0 #ffffff12,0 0 0 1px #b990f018}
/* A short arrival animation runs once. No persistent paint-heavy border effects. */
@keyframes lbViewEnter{from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes lbDialogEnter{from{opacity:.5;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:no-preference){
  .view.active{animation:lbViewEnter .24s var(--glass-ease)}
  .modal-backdrop:not(.hidden)>.modal,.focus-backdrop:not(.hidden)>.focus-card-shell{animation:lbDialogEnter .22s var(--glass-ease)}
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .sidebar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:rgba(20,19,31,.86)}
  .mobile-nav{background:rgba(32,28,46,.8)}
}
@media(hover:hover) and (pointer:fine){.btn:hover:not(:disabled),.icon-btn:hover:not(:disabled){box-shadow:var(--glass-highlight),0 5px 16px #0002}.study-card:hover{box-shadow:var(--glass-highlight),0 10px 24px #0002}}
.close-btn,.focus-close{min-width:44px;min-height:44px;border-radius:14px}.icon-btn{min-width:44px;min-height:44px}.fav{min-width:44px;min-height:44px;display:grid;place-items:center}.card-actions .round-btn{min-height:40px}
.auth-screen{background:radial-gradient(ellipse at 85% 10%,#33224688,transparent 58%),var(--bg)}
.auth-card{max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain}

@media(forced-colors:active){.btn,.nav-item.active,.mobile-nav,.panel,.study-card,.setting-card,.modal,.focus-card-shell{border:1px solid ButtonText}.btn.primary,.mobile-nav button.active{outline:1px solid Highlight}}
@media(min-width:1101px){.sidebar{overflow-y:auto}.side-nav{gap:3px}.nav-item{padding-top:9px;padding-bottom:9px}.sidebar-foot{padding-top:10px}.profile-mini{padding-top:10px}}
@media(max-width:1100px){.lesson-builder{grid-template-columns:1fr}.level-options{grid-template-columns:1fr 1fr}.review-entry,.learning-banner{padding:22px;gap:15px}.learning-banner{flex-wrap:wrap}.hero-actions{gap:8px}.lofi-controls{gap:12px}}
@media(max-width:700px){.main{padding:20px 16px calc(118px + env(safe-area-inset-bottom))}.hero{padding:24px}.hero h2{font-size:29px}.review-entry{align-items:flex-start;flex-direction:column}.review-entry h2{font-size:22px}.review-entry>.btn{width:100%}.library-main-toolbar .search{min-width:100%;width:100%}.library-main-toolbar select{min-width:0;width:100%}.lib-tab{font-size:12px;padding:10px}.library-tabs{gap:6px}.study-card{padding:18px}.modal{padding:22px;width:calc(100vw - 24px);max-width:100%;max-height:calc(100dvh - 24px)}.focus-card-shell{padding:22px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.conversation-section .panel-head{flex-direction:column}.conversation-section h3{font-size:21px}.review-metrics{grid-template-columns:1fr 1fr}.settings-overview{flex-wrap:wrap}.settings-overview h2{font-size:27px}.level-options .btn{padding:12px;font-size:12px;gap:8px}.voice-per-content .rest-voice-row{flex-wrap:wrap}.voice-per-content .rest-voice-row select{width:100%;flex-basis:100%}.settings-grid{grid-template-columns:1fr}.lofi-controls select{flex:1;min-width:140px}.rest-layout,.rest-mode-grid{grid-template-columns:1fr}.rest-hero h2{font-size:27px}.rest-hero .rest-buddy-wrap{display:flex;justify-content:center}.backup-list>div{align-items:flex-start}.backup-list small{overflow-wrap:anywhere}.update-banner{left:12px;right:12px;bottom:86px}.form-actions{flex-wrap:wrap}.ai-builder-meta{flex-wrap:wrap}.review-counts .btn{padding:14px}.review-question h3{font-size:23px}.lesson-builder{padding:20px}.rest-two-cols{grid-template-columns:1fr 1fr;min-width:0}.rest-two-cols label{min-width:0}.lofi-controls>label{flex-wrap:wrap}.learning-banner .card-actions{flex-shrink:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.buddy-dashboard,.reward-banner,.library-intro,.class-hero,.ai-reading-hero{background:radial-gradient(ellipse at top left,#835fc52a,transparent 70%),var(--glass-surface);border-color:var(--line);box-shadow:var(--glass-highlight)}.buddy-dashboard-stats span,.companion-tags span{background:#2a1c38;border-color:#473155;color:#d6c5e5}.appearance-panel>*{min-width:0}
@media(max-width:1050px){.app-shell{display:block}.sidebar{display:none}.main{padding:24px 24px calc(118px + env(safe-area-inset-bottom))}.mobile-only{display:grid}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:40;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(228,209,255,.25);border-radius:25px;padding:7px}.mobile-nav button{border:0;background:transparent;color:#bbb3cb;display:grid;place-items:center;gap:3px;padding:7px 3px;border-radius:18px;min-height:54px;min-width:0}.mobile-nav button span{font-size:17px}.mobile-nav button small{font-size:10px}.mobile-nav button.active{color:#fff;background:linear-gradient(140deg,rgba(190,147,255,.24),rgba(190,147,255,.09));box-shadow:var(--glass-highlight),inset 0 0 0 1px #e1c5ff12}.mobile-nav .practice-main span{background:linear-gradient(145deg,#b78aff,#8d61d5);color:#fff;width:30px;height:30px;border-radius:11px;display:grid;place-items:center;font-size:12px;box-shadow:inset 0 1px 0 #ffffff40}.topbar{flex-wrap:wrap;gap:16px}.update-banner{bottom:90px}}
@media(max-width:700px){.main{padding:20px 16px calc(118px + env(safe-area-inset-bottom))}.top-actions{flex-wrap:wrap}.top-actions #installBtn{display:inline-flex;font-size:12px;min-height:44px;padding:8px 10px}.topbar h1{font-size:24px}.appearance-panel{grid-template-columns:minmax(0,1fr)}}

.local-tools-ready,.local-model-option{padding:16px;margin:16px 0;border:1px solid var(--border,#443457);border-radius:16px;background:rgba(155,104,234,.06)}.local-model-option{display:flex;align-items:center;justify-content:space-between;gap:16px}.local-model-option h3{margin:0 0 8px}.local-model-option small{display:block;color:var(--muted,#b6aacb)}.local-model-option .btn{flex-shrink:0}@media(max-width:480px){.local-model-option{align-items:stretch;flex-direction:column}}
.local-guide-english{display:block;margin-top:6px;overflow-wrap:anywhere}.local-guide-note,.local-guide-tips{color:var(--muted);font-size:14px;line-height:1.6}.local-guide-tips{padding:4px 12px;border-left:2px solid var(--accent)}.conversation-section .card-actions{flex-wrap:wrap}.conversation-section .round-btn{min-height:44px}.conversation-section>.panel-head>.btn{min-height:44px}

.local-model-test{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6}.local-model-test:empty{display:none}.local-ai-facts dd{overflow-wrap:anywhere;min-width:0}

/* Compact account recovery; technical payloads stay in backups. */
.sync-summary-heading{display:flex;gap:12px;align-items:flex-start}.sync-summary-heading>svg{width:24px;flex:none;color:var(--accent,#ad83ff)}.sync-summary h3{margin:0 0 8px}.sync-summary p{line-height:1.5}.sync-summary .form-actions{flex-wrap:wrap}.sync-summary .btn{white-space:normal}.sync-review-list{display:grid;gap:10px}.sync-review-list .sync-field{padding:14px;border:1px solid var(--border,#49365c);border-radius:14px}.sync-field summary{cursor:pointer;font-weight:700;overflow-wrap:anywhere}.sync-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.sync-comparison>div{padding:12px;background:rgba(130,90,180,.08);border-radius:10px;min-width:0}.sync-comparison p{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto}.coin-pill.sync-pending{border-style:dashed}@media(max-width:600px){.sync-comparison{grid-template-columns:1fr}.sync-summary .form-actions{display:grid}.sync-summary .btn{width:100%}}

/* Mobile form legibility also prevents unwanted input zoom on Safari. */
@media(max-width:700px){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}.btn,.round-btn,.text-btn,.lib-tab,.tab-btn{min-height:44px}.coin-pill{min-height:44px}.music-transport>.btn{min-width:44px;min-height:44px}.update-banner{bottom:calc(94px + env(safe-area-inset-bottom))}.top-actions{align-items:center}.rest-two-cols{column-gap:14px}.modal-backdrop{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.modal,.focus-card-shell{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
@media(prefers-reduced-transparency:reduce){.sidebar,.mobile-nav{background:#201b2e;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-backdrop,.focus-backdrop{background:#070710e8;-webkit-backdrop-filter:none;backdrop-filter:none}}
.library-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0;scroll-margin-top:100px}.library-pagination>span{text-align:center;font-variant-numeric:tabular-nums}.library-pagination small{display:block;color:var(--muted);font-size:12px}.library-pagination button{min-height:44px}.library-pagination button:disabled{opacity:.45;cursor:default}@media(max-width:480px){.library-pagination{gap:8px}.library-pagination>span{font-size:13px}}
