:root{
  --bg:#071017;--panel:#0c151f;--panel2:#101c28;--panel3:#142231;--line:#213244;--line2:#2a3e52;
  --text:#f4f8fc;--muted:#8fa8c1;--accent:#82ed2f;--accent2:#9dff50;--danger:#ff6868;--danger-bg:#35191d;
  --blue:#78b7ff;--yellow:#f2c85b;--shadow:0 18px 50px rgba(0,0,0,.24);--radius:16px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.72}a{color:var(--blue)}
.topbar{height:64px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:0 18px;background:rgba(9,17,26,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:10px;min-width:max-content;cursor:pointer}.logo{width:40px;height:40px;border-radius:11px;background:var(--accent);color:#07110a;display:grid;place-items:center;font-weight:950;letter-spacing:-.5px}.brand-copy{display:flex;flex-direction:column;line-height:1.15}.brand-copy strong{font-size:16px}.brand-copy small{color:var(--muted);font-size:11px;margin-top:4px}
.main-nav{display:flex;align-items:center;gap:3px;margin-left:auto}.main-nav button,.user-pill,.rank-pill{border:0;background:transparent;color:#aec3d9;padding:10px 12px;border-radius:9px;white-space:nowrap}.main-nav button:hover,.main-nav button.active,.user-pill:hover,.rank-pill:hover{background:var(--panel3);color:var(--text)}.main-nav button.active{font-weight:750}.top-tools{display:flex;align-items:center;gap:7px}.compact-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.compact-control select{max-width:145px}.rank-pill{border:1px solid #31475d;color:#cfe2f3}.user-pill{border:1px solid #31475d}.mobile-only{display:none}
.sync-banner{padding:9px 18px;background:#4b2525;color:#ffd8d8;text-align:center;border-bottom:1px solid #713434}.hidden{display:none!important}
main{min-height:calc(100vh - 64px)}.view{display:none}.view.active{display:block}.panel{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:34px 0 70px}.panel.wide{width:min(1400px,calc(100% - 40px))}.topics-layout{display:grid;grid-template-columns:286px minmax(0,1fr);min-height:calc(100vh - 64px)}
.sidebar{position:sticky;top:64px;height:calc(100vh - 64px);border-right:1px solid var(--line);background:#09121a;padding:18px 14px;overflow:auto;transition:.2s}.sidebar.compact{width:72px;padding-left:8px;padding-right:8px}.sidebar.compact .side-head h2,.sidebar.compact .side-head .eyebrow,.sidebar.compact .search,.sidebar.compact .tree-toolbar,.sidebar.compact .topic-name span,.sidebar.compact .topic-name small,.sidebar.compact .topic-add,.sidebar.compact .full{display:none}.sidebar.compact .topic-row{grid-template-columns:1fr}.sidebar.compact .fold{width:100%}.side-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.side-head h2{margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800;color:var(--accent)}
.icon-btn{border:1px solid var(--line2);background:var(--panel);color:var(--text);border-radius:9px;padding:6px 9px}.search,input,select,textarea{background:#0b151f;color:var(--text);border:1px solid var(--line2);border-radius:10px;outline:none;padding:11px 12px}input:focus,select:focus,textarea:focus{border-color:#527597;box-shadow:0 0 0 3px rgba(82,117,151,.14)}.sidebar .search{width:100%}.tree-toolbar{display:flex;justify-content:space-between;align-items:center;margin:9px 0}.tiny-btn{border:0;background:transparent;color:var(--accent);padding:5px 3px;font-size:12px}.tiny{font-size:12px}.muted{color:var(--muted)}
.topic-tree{margin:4px 0 16px}.topic-node{min-width:0}.topic-row{display:grid;grid-template-columns:24px minmax(0,1fr) 30px;gap:3px;align-items:center;margin:1px 0}.fold,.topic-name,.topic-add{border:0;background:transparent;color:#b8c9da}.fold{width:24px;height:30px;padding:0;border-radius:6px}.fold:hover{background:var(--panel2)}.fold.placeholder{opacity:.4;cursor:default}.topic-name{display:flex;align-items:center;justify-content:space-between;gap:7px;text-align:left;padding:7px 8px;border-radius:8px;min-width:0}.topic-name span{overflow:hidden;text-overflow:ellipsis}.topic-name small{color:#607c97;font-size:10px}.topic-name:hover,.topic-name.active{background:var(--panel3);color:white}.topic-name.active{font-weight:750}.topic-add{color:var(--accent);border-radius:7px;height:30px}.topic-add:hover{background:#18331a}.topic-children{margin-left:12px;padding-left:8px;border-left:1px solid #192a39}
.content{min-width:0;padding:32px 32px 70px}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}.hero h1{font-size:clamp(28px,3vw,40px);line-height:1.05;margin:5px 0 9px;letter-spacing:-.035em}.hero p{margin:0}.crumb{color:#7d9bb8;font-size:13px}.actions{display:flex;align-items:center;gap:8px}.actions.wrap{flex-wrap:wrap}.btn{border:1px solid var(--line2);background:var(--panel2);color:var(--text);padding:10px 14px;border-radius:10px;font-weight:720}.btn:hover{background:#172635}.btn.primary{background:var(--accent);color:#081009;border-color:var(--accent)}.btn.primary:hover{background:var(--accent2)}.btn.success{border-color:#3f7540;color:#baff9a;background:#16301b}.btn.danger{border-color:#72363b;background:var(--danger-bg);color:#ffaaaa}.btn.danger:hover{background:#482025}.btn.small{padding:7px 10px;font-size:12px}.btn.full{width:100%}.filebtn input{display:none}
.filterbar{display:flex;align-items:center;gap:9px;margin:16px 0;flex-wrap:wrap}.filterbar .grow{flex:1;min-width:220px}.check-label{display:flex;align-items:center;gap:8px;color:#c4d3e2;white-space:nowrap}.check{width:17px;height:17px;accent-color:var(--accent)}.hint{background:#0d1924;border:1px solid #1c3142;color:#8ca6bd;border-radius:10px;padding:10px 12px;font-size:12px;margin:8px 0 16px}.selection-line{text-align:right;font-size:12px;margin:7px 0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:14px 0 20px}.topic-card{display:grid;grid-template-columns:38px 1fr 22px;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);text-align:left;border-radius:13px;padding:14px;min-width:0}.topic-card:hover{border-color:#3f617d;background:#101d29}.topic-card-icon{width:34px;height:34px;border-radius:9px;background:#152838;display:grid;place-items:center;color:var(--accent)}.topic-card strong,.topic-card small{display:block}.topic-card small{color:var(--muted);font-size:11px;margin-top:3px}.topic-card .arrow{color:#66839c}
.word-table{border:1px solid var(--line);border-radius:14px;overflow:auto;max-height:68vh;background:#081119}.wrow{display:grid;grid-template-columns:38px 50px minmax(170px,1.5fr) minmax(170px,1.35fr) 78px 92px 118px;align-items:center;gap:8px;min-height:56px;padding:8px 12px;border-bottom:1px solid #172633}.wrow:last-child{border-bottom:0}.wrow.head{position:sticky;top:0;z-index:5;min-height:42px;background:#11202c;color:#8fa9c0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;box-shadow:0 1px 0 var(--line)}.wrow .en{font-weight:760}.wrow .de{color:#e7eef5}.badge{display:inline-grid;place-items:center;min-width:34px;padding:4px 7px;border:1px solid #324b61;border-radius:999px;font-size:11px;color:#d7e8f7}.badge.C2{border-color:#956d34;color:#ffd77c;background:#281e0d}.badge.C1{border-color:#654c8e;color:#d9c1ff;background:#1e1730}.priority{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:11px;border:1px solid #304659;color:#a9c0d4}.priority.p5{color:#baff96;border-color:#4a7c3c}.priority.p4{color:#d8f89d}.priority.p3{color:#bcd1e5}.priority.p2{color:#d0b9ef}.priority.p1{color:#9eaab4}.empty{padding:38px;text-align:center;color:var(--muted)}
.practice-summary{display:grid;grid-template-columns:150px 220px 1fr;gap:10px;margin:15px 0 22px}.practice-summary>div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}.practice-summary strong{font-size:14px}.quiz{display:grid;gap:12px}.question{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.question h3{font-size:19px;margin:8px 0 14px}.qmeta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.answer-zone,.options{display:flex;gap:8px;flex-wrap:wrap}.option{min-width:150px;text-align:left}.option.correct{background:#183d20!important;border-color:#5b9d50!important;color:#c8ffb6}.option.wrong{background:#482024!important;border-color:#95484e!important;color:#ffc1c1}.explain{margin-top:12px;color:#b8cadb;min-height:22px}.typing-answer{min-width:280px}.correct-input{border-color:#5b9d50!important}.wrong-input{border-color:#95484e!important}
.contextbox{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:15px;margin:12px 0}.contextbox label{display:block;font-weight:700;margin-bottom:6px}.contextbox input{width:100%}.pdf-actions{margin:12px 0}.pdf-library{display:grid;gap:9px}.pdf-card{display:grid;grid-template-columns:30px 52px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:14px}.pdf-icon{width:48px;height:48px;border-radius:11px;display:grid;place-items:center;background:#391a1e;color:#ff8b96;font-weight:900}.pdf-copy h3{margin:0 0 3px}.analysis{margin-top:26px;border-top:1px solid var(--line);padding-top:24px}.analysis-head{display:flex;justify-content:space-between;gap:20px}.analysis-head h2{margin:4px 0}.word-cloud{max-height:480px;overflow:auto;border:1px solid var(--line);background:#081119;border-radius:14px;padding:12px;display:flex;align-content:flex-start;gap:7px;flex-wrap:wrap}.chip{border:1px solid #263b4e;background:#101a25;color:#dce9f5;border-radius:999px;padding:8px 11px}.chip small{color:#718da7;margin-left:4px}.chip.selected{border-color:#5d8e35;background:#1d3518;color:#d4ffac}.chip.selected small{color:#a9d98b}
.grammar-intro{border:1px solid #29415a;background:linear-gradient(135deg,#0e1d29,#101925);padding:18px;border-radius:14px;margin:12px 0 18px}.grammar-intro h2{margin:0 0 6px}.grammar-intro p{margin:0;color:#bfd0e0}.grammar-list{display:grid;gap:10px}.grammar-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden}.grammar-card summary{list-style:none;display:grid;grid-template-columns:54px 1fr 30px;gap:10px;align-items:center;padding:15px;cursor:pointer}.grammar-card summary::-webkit-details-marker{display:none}.grammar-card summary strong,.grammar-card summary small{display:block}.grammar-card summary small{margin-top:4px;color:var(--muted)}.summary-arrow{font-size:20px;color:var(--accent)}.grammar-card[open] .summary-arrow{transform:rotate(45deg)}.grammar-body{border-top:1px solid var(--line);padding:18px}.grammar-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grammar-grid>div{background:#0a131c;border:1px solid #17293a;border-radius:11px;padding:13px}.grammar-body h4{margin:0 0 6px;color:#cfe0ef}.grammar-body p,.grammar-body ul{margin:0;color:#aabed1}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag-row span{background:#142536;border-radius:999px;padding:5px 8px;font-size:11px}.example-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.example-list code{background:#071017;border:1px solid #20364a;border-radius:8px;padding:8px;color:#cce1f3}.section-divider{display:flex;align-items:center;gap:10px;margin:30px 0 14px;color:#8fa8c1;font-weight:800}.section-divider:before,.section-divider:after{content:"";height:1px;background:var(--line);flex:1}
.rank-dashboard{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:center;border:1px solid var(--line);background:linear-gradient(135deg,#101b25,#0c141d);border-radius:18px;padding:22px;margin-bottom:18px}.rank-emblem{width:96px;height:96px;border-radius:24px;border:2px solid #976d37;background:radial-gradient(circle at 30% 25%,#7a562b,#2d2118);display:grid;place-items:center;font-size:28px;font-weight:950;color:#ffd69a;box-shadow:inset 0 0 24px rgba(255,199,95,.14)}.rank-main h2{font-size:28px;margin:2px 0}.progress{height:10px;background:#172837;border-radius:999px;overflow:hidden;margin:12px 0 5px}.progress>div{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#4dc7ff);border-radius:inherit;transition:.35s}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 28px}.stat-card{border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:15px;display:flex;flex-direction:column}.stat-card span{color:var(--muted);font-size:12px}.stat-card strong{font-size:24px}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:28px}.achievement{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:13px}.achievement .medal{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#142331;color:#6f8396;font-size:20px}.achievement strong,.achievement small{display:block}.achievement small{color:var(--muted)}.achievement.unlocked{border-color:#506d36;background:#101d13}.achievement.unlocked .medal{background:#365b25;color:#caff9e}.achievement.locked{opacity:.58}.rank-roadmap{display:flex;gap:8px;overflow:auto;padding-bottom:10px}.road-rank{min-width:128px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:11px;display:flex;flex-direction:column}.road-rank span{color:#6f8aa2;font-size:11px}.road-rank small{color:var(--muted)}.road-rank.reached{border-color:#506c3d}.road-rank.current{background:#172c17;box-shadow:0 0 0 1px #73b444 inset}
.auth-grid,.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.account-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.account-card{border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:18px}.account-card h2{margin-top:0}.account-card label{display:block;margin:10px 0 5px;color:#c6d5e4;font-weight:700}.account-card input{width:100%}.account-email{color:var(--accent);font-weight:800;margin-bottom:8px}.danger-zone{border-color:#61343a}.error-text{color:#ff9b9b!important}
.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,18px);background:#162532;border:1px solid #33516b;color:white;padding:11px 16px;border-radius:11px;opacity:0;pointer-events:none;z-index:100;transition:.18s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;background:transparent;padding:0;color:var(--text)}dialog::backdrop{background:rgba(0,0,0,.68);backdrop-filter:blur(3px)}.modal{width:min(760px,calc(100vw - 28px));background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal label{display:block;margin:10px 0 5px}.modal input,.modal select,.modal textarea{width:100%}.x{border:0;background:transparent;color:white;font-size:26px}.full{width:100%}
@media(max-width:1250px){.compact-control span{display:none}.rank-pill{display:none}.topics-layout{grid-template-columns:250px minmax(0,1fr)}.content{padding:28px 20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.wrow{grid-template-columns:36px 42px minmax(150px,1.35fr) minmax(150px,1.2fr) 70px 76px 105px}}
@media(max-width:980px){.mobile-only{display:block}.main-nav{position:fixed;left:0;right:0;top:64px;background:#0a131c;border-bottom:1px solid var(--line);padding:10px;display:none;flex-wrap:wrap;z-index:50}.nav-open .main-nav{display:flex}.top-tools{margin-left:auto}.compact-control{display:flex}.compact-control span{display:none}.compact-control select{max-width:120px;padding:8px}.topics-layout{grid-template-columns:1fr}.sidebar{position:relative;top:auto;height:auto;border-right:0;border-bottom:1px solid var(--line);max-height:340px}.sidebar.compact{width:auto}.sidebar.compact .side-head h2,.sidebar.compact .side-head .eyebrow,.sidebar.compact .search,.sidebar.compact .tree-toolbar,.sidebar.compact .topic-name span,.sidebar.compact .topic-name small,.sidebar.compact .topic-add,.sidebar.compact .full{display:initial}.sidebar.compact .topic-row{grid-template-columns:24px minmax(0,1fr) 30px}.hero{flex-direction:column}.word-table{max-height:none}.grammar-grid,.account-grid{grid-template-columns:1fr}.practice-summary{grid-template-columns:1fr 1fr}.practice-summary>div:last-child{grid-column:1/-1}}
@media(max-width:720px){.topbar{padding:0 10px}.brand-copy small{display:none}.brand-copy strong{font-size:14px}.user-pill{display:none}.panel,.panel.wide{width:calc(100% - 20px);padding-top:22px}.content{padding:22px 10px 60px}.filterbar>*{width:100%}.filterbar .grow{min-width:0}.cards{grid-template-columns:1fr}.wrow{grid-template-columns:32px 34px minmax(135px,1.1fr) minmax(130px,1fr) 58px 66px 92px;font-size:12px;padding:7px 8px;min-width:780px}.word-table{overflow-x:auto}.pdf-card{grid-template-columns:26px 46px 1fr}.pdf-card .actions{grid-column:1/-1}.grammar-grid{grid-template-columns:1fr}.practice-summary{grid-template-columns:1fr}.practice-summary>div:last-child{grid-column:auto}.stats-grid{grid-template-columns:1fr 1fr}.auth-grid{grid-template-columns:1fr}.rank-dashboard{grid-template-columns:70px 1fr}.rank-emblem{width:66px;height:66px;border-radius:18px;font-size:20px}.question{padding:14px}.option{width:100%}.typing-answer{min-width:0;width:100%}}

.cefr-estimate{display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:center;border:1px solid #31516a;background:linear-gradient(135deg,#0b1924,#101a24);border-radius:16px;padding:18px;margin:0 0 18px}.cefr-estimate h2{margin:2px 0 5px;font-size:24px}.cefr-estimate p{margin:4px 0}.cefr-badge{width:78px;height:78px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#1c3b22,#244d28);border:1px solid #5b8e49;color:#caffaa;font-size:27px;font-weight:950;box-shadow:inset 0 0 20px rgba(130,237,47,.08)}
