@charset "UTF-8";
:root {
  --ink:#17382f; --ink-2:#455a51; --muted:#84948c; --green:#175d4c;
  --bg:#f7f9f7; --surface:#fff; --border:#e7ede8; --pale:#f2f7f3;
  --shadow:0 14px 36px rgba(28,70,51,.045); --r:19px;
  font-family:Inter,"SF Pro Display","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  color:var(--ink); background:var(--bg);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;min-height:100vh}
button,input,select{font:inherit} button{cursor:pointer} a{color:inherit;text-decoration:none} button:disabled{cursor:not-allowed;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #88bba6;outline-offset:3px}
svg{display:block;flex-shrink:0} .icon{height:19px;width:19px;stroke-width:1.8;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}
.layout{min-height:100vh} .sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:256px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:31px 20px 21px}
.brand{display:flex;align-items:center;gap:11px;margin:0 9px 44px}.brand-mark{width:38px;height:38px;background:#155540;border-radius:13px;display:grid;place-items:center;color:#fff;box-shadow:0 6px 14px rgba(19,88,63,.14)}
.brand-mark svg{width:25px;height:25px}.brand-title{font-size:20px;font-weight:780;letter-spacing:1.6px;line-height:1.08}.brand-en{font-size:9px;letter-spacing:2px;color:#99a9a0;font-weight:800;margin-top:5px}
.nav-group{margin:0 0 23px}.nav-label{font-weight:700;font-size:10px;letter-spacing:2px;color:#aab6ae;margin:0 14px 11px}.nav-item{display:flex;align-items:center;gap:14px;width:100%;border:0;background:transparent;color:#677d70;text-align:left;padding:11px 14px;border-radius:12px;font-size:13px;font-weight:650;margin-bottom:3px;transition:background .2s,color .2s,transform .2s}.nav-item:hover{background:#f4f8f5;color:var(--green)}.nav-item.active{background:#eaf3ed;color:#175d4c}.nav-item .icon{width:19px;height:19px}.nav-item .nav-count{margin-left:auto;font-size:10px;padding:2px 6px;border-radius:6px;background:#f1f4ef;color:#789184}.nav-item.active .nav-count{background:#d6e8d9;color:#276449}
.sidebar-bottom{margin-top:auto}.sidebar-note{background:linear-gradient(145deg,#ecf5ec,#f6f9f2);border:1px solid #e4ede1;border-radius:17px;padding:18px 17px;overflow:hidden;position:relative;min-height:155px}.sidebar-note::after{content:"";position:absolute;right:-26px;top:-29px;height:125px;width:125px;border:23px solid #dfecdc;border-radius:50%;opacity:.55}.sidebar-note .quote-symbol{font-size:28px;color:#65a287;line-height:1}.sidebar-note p{font-size:13px;line-height:1.75;font-weight:640;max-width:143px;position:relative;z-index:1;margin:3px 0 16px}.sidebar-note small{font-size:10px;letter-spacing:1px;color:#84a18d;position:relative;z-index:1;font-weight:800}.sidebar-footer{padding:18px 8px 0;display:flex;align-items:center;gap:9px;color:#9aaba2;font-size:10px;font-weight:600;letter-spacing:.5px}.sidebar-footer .dot{height:7px;width:7px;background:#67b793;border-radius:99px}
.main{margin-left:256px;min-width:0}.topbar{height:79px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 clamp(26px,4vw,62px);position:sticky;top:0;z-index:11}.breadcrumbs{display:flex;align-items:center;gap:10px;white-space:nowrap;color:#96a69e;font-size:12px;font-weight:650}.breadcrumbs strong{color:#294c3e;font-weight:750}.top-tools{display:flex;align-items:center;gap:20px}.search-shell{width:260px;height:38px;display:flex;align-items:center;gap:9px;padding:0 11px;border-radius:11px;background:#f6f8f6;border:1px solid #edf0ed;color:#98a69c}.search-shell:focus-within{background:#fff;border-color:#8fc6a9}.search-shell .icon{height:15px;width:15px}.search-shell input{outline:none!important;background:transparent;border:0;font-size:11px;width:100%;min-width:0;color:#234d3e}.search-shell input::placeholder{color:#9dad9f}.search-shell kbd{border:1px solid #e4eae5;background:white;color:#9aa9a0;border-radius:5px;padding:3px 5px;white-space:nowrap;font-family:inherit;font-size:9px}.top-date{color:#82978a;font-size:11px;font-weight:690;white-space:nowrap}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e5efe6;color:#3e795d;font-size:12px;font-weight:800;border:1px solid #d5e7d8}
.page{max-width:1550px;margin:0 auto;padding:36px clamp(24px,4vw,62px) 65px}.section-eyebrow{font-size:10px;letter-spacing:2px;font-weight:850;color:#6c9f86}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 23px}.page-intro h1{margin:8px 0 8px;font-size:29px;letter-spacing:-1px;font-weight:780}.page-intro p{color:#84978a;font-size:12px;margin:0;line-height:1.7}
.hero{height:264px;border-radius:24px;background:radial-gradient(circle at 82% 26%,#e9f7eb 0,#ddf0e5 28%,transparent 53%),linear-gradient(104deg,#eaf4e9,#dcefe3 100%);position:relative;overflow:hidden;box-shadow:0 12px 35px rgba(49,105,78,.07);padding:35px 46px}.hero::before{content:"";position:absolute;inset:auto -65px -170px auto;width:480px;height:480px;border-radius:50%;border:1px solid rgba(72,143,107,.16)}.hero::after{content:"";position:absolute;inset:auto -6px -126px auto;width:395px;height:395px;border-radius:50%;border:1px solid rgba(72,143,107,.14)}.hero-copy{position:relative;z-index:2;max-width:560px}.hero-top{display:flex;align-items:center;gap:9px;color:#57866f;font-size:10px;font-weight:840;letter-spacing:2px}.hero-top .spark{color:#26805c;font-size:16px;line-height:1}.hero h2{margin:17px 0 10px;font-size:32px;line-height:1.34;letter-spacing:-1.4px;font-weight:800;color:#194b37}.hero-copy p{font-size:13px;color:#709281;margin:0 0 24px;line-height:1.7}.hero-buttons{display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:10px;font-size:12px;line-height:1;font-weight:750;padding:13px 17px;border:1px solid transparent;transition:transform .18s,background .18s,box-shadow .18s;white-space:nowrap}.btn:hover{transform:translateY(-2px)}.btn-primary{background:#165947;color:white;box-shadow:0 8px 15px rgba(19,86,64,.14)}.btn-primary:hover{background:#0e4938}.btn-outline{background:rgba(255,255,255,.44);border-color:#cddfd1;color:#3a7057}.btn-outline:hover{background:#fff}.btn-icon{width:17px;height:17px}.btn-small{padding:9px 13px;font-size:11px;border-radius:9px}.btn-quiet{background:#eef5ef;color:#376c56}.hero-art{position:absolute;top:0;bottom:0;right:14px;width:41%;pointer-events:none;display:flex;align-items:center;justify-content:center}.art-orbit{position:relative;height:238px;width:345px}.orbit-one,.orbit-two{position:absolute;border:1px solid rgba(65,134,103,.22);border-radius:50%;inset:8px 48px 8px 48px;transform:rotate(-20deg)}.orbit-two{inset:35px 12px 35px 12px;transform:rotate(20deg);border-style:dashed;opacity:.56}.art-core{position:absolute;top:51px;left:130px;height:137px;width:137px;border-radius:50%;background:linear-gradient(139deg,#76b99a,#226f58 70%,#1b634e);box-shadow:inset -12px -10px 23px #185f49aa,inset 7px 9px 16px #b0ddbd77,13px 17px 28px #36745a33;color:#eefbf1;display:grid;place-items:center;transform:rotate(-14deg)}.art-core svg{width:88px;height:88px}.art-card{position:absolute;background:rgba(255,255,255,.91);border:1px solid rgba(255,255,255,.85);box-shadow:0 14px 35px rgba(64,108,78,.14);border-radius:13px;backdrop-filter:blur(10px)}.art-math{top:30px;left:26px;padding:15px 17px 13px;transform:rotate(-13deg)}.art-math span{color:#88a99b;font-size:8px;letter-spacing:1.5px;font-weight:800}.art-math b{display:block;color:#31765b;font-family:Georgia,serif;font-style:italic;font-size:24px;margin-top:5px}.art-quiz{bottom:13px;right:9px;padding:11px 16px;transform:rotate(11deg);display:flex;align-items:center;gap:10px}.art-quiz-circle{height:30px;width:30px;background:#fceacc;color:#c58230;display:grid;place-items:center;border-radius:9px;font-size:17px}.art-quiz b{font-size:11px;color:#51775d}.art-quiz small{display:block;color:#9aaea2;font-size:8px;margin-top:3px;letter-spacing:1px}.art-spark{position:absolute;right:38px;top:32px;color:#9fc3ac;font-size:21px}.art-dot{position:absolute;width:13px;height:13px;border-radius:50%;background:#efbf7b;top:41px;right:100px;box-shadow:0 0 0 6px #ffffff40}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:19px 0 43px}.stat{background:#fff;border:1px solid var(--border);border-radius:15px;display:flex;align-items:center;gap:12px;padding:18px 19px;min-height:87px;box-shadow:var(--shadow)}.stat-icon{height:40px;width:40px;display:grid;place-items:center;border-radius:12px;background:#f0f5f0;color:#61927a}.stat-icon svg{width:20px;height:20px}.stat-icon.ochre{color:#b08b52;background:#f9f5ea}.stat-icon.blue{color:#678fae;background:#f1f5fa}.stat-icon.purple{color:#9180b2;background:#f5f2f9}.stat-number{font-size:23px;line-height:1;font-weight:820;letter-spacing:-1px;font-variant-numeric:tabular-nums;color:#234b3a}.stat-title{font-size:10px;color:#9eada3;font-weight:700;margin-top:7px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:21px}.section-head h2{font-size:19px;font-weight:780;letter-spacing:-.5px;margin:0 0 6px}.section-head p{margin:0;color:#9bab9e;font-size:11px;line-height:1.6}.filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.filter{border-radius:9px;padding:9px 13px;background:transparent;border:1px solid transparent;color:#8fa095;font-size:11px;font-weight:750}.filter:hover{background:#ecf3ec;color:#35765c}.filter.active{background:#e5f1e9;color:#276749;border-color:#d9eadf}
#courses{scroll-margin-top:110px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.course-card{min-width:0;min-height:254px;background:white;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .22s,box-shadow .22s,border-color .22s}.course-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(26,65,43,.11);border-color:#d4e4d7}.course-top{display:flex;justify-content:space-between;padding:20px 20px 12px;position:relative;align-items:start}.course-emblem{height:52px;width:54px;border-radius:14px;display:grid;place-items:center;position:relative;font-weight:600;font-family:Georgia,serif;font-size:30px;overflow:hidden}.course-emblem svg{height:31px;width:31px}.course-emblem::after{position:absolute;content:"";height:34px;width:34px;border-radius:50%;border:1px solid currentColor;opacity:.12;right:-10px;bottom:-15px}.course-card.tone-sage{--tone-bg:#eaf3e9;--tone-fg:#477b61}.course-card.tone-blue{--tone-bg:#edf2fd;--tone-fg:#6383b8}.course-card.tone-peach{--tone-bg:#fff1e6;--tone-fg:#ca8c57}.course-card.tone-purple{--tone-bg:#f1eefb;--tone-fg:#8d7cb9}.course-card.tone-amber{--tone-bg:#fcf3dc;--tone-fg:#b59550}.course-card.tone-mint{--tone-bg:#e7f7f2;--tone-fg:#569d83}.course-emblem{background:var(--tone-bg);color:var(--tone-fg)}.course-status{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#9daea3;font-weight:710;background:#f6f8f5;padding:6px 9px;border-radius:99px}.course-status::before{height:5px;width:5px;content:"";background:#c5d1c7;border-radius:50%}.course-status.connected{background:#e8f5ed;color:#327956}.course-status.connected::before{background:#54bb84}.fav-button{border:0;background:transparent;color:#b5c0b6;padding:6px;position:absolute;right:15px;top:51px}.fav-button:hover,.fav-button.is-favorite{color:#e0a447}.fav-button.is-favorite svg{fill:#f1c77388}.course-body{padding:4px 20px 0;flex:1}.course-kind{font-size:9px;color:#a5b4aa;letter-spacing:1.6px;font-weight:850;text-transform:uppercase}.course-body h3{font-size:20px;letter-spacing:-.4px;font-weight:790;margin:8px 0 8px}.course-body p{color:#8e9f94;font-size:11px;line-height:1.65;min-height:37px;max-width:290px;margin:0}.course-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.course-tags span{font-size:9px;background:#f5f7f4;border:1px solid #edf1eb;padding:5px 7px;color:#90a297;border-radius:6px}.course-foot{display:flex;justify-content:space-between;align-items:center;margin:17px 20px 0;padding:13px 0;border-top:1px solid #f1f4ef}.course-foot .resource-id{font-size:9px;font-weight:750;color:#b8c3b9;letter-spacing:.5px}.course-open{display:flex;align-items:center;gap:7px;padding:3px 0;border:0;background:none;font-size:11px;font-weight:760;color:#2d7454}.course-open:hover{color:#0e4833}.course-open svg{height:15px;width:15px}.course-add{min-height:254px;background:transparent;border:1.5px dashed #dce8df;border-radius:18px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:10px;color:#82a28d;transition:background .18s,border-color .18s}.course-add:hover{background:#eff6ef;border-color:#94bea0}.course-add-icon{height:47px;width:47px;display:grid;place-items:center;background:#e7f0e8;border-radius:15px;color:#60947a;margin-bottom:3px}.course-add strong{font-size:13px;color:#517a61}.course-add small{font-size:10px;color:#9aafa1}
.lower-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin-top:34px}.info-panel{background:#fff;border:1px solid var(--border);border-radius:18px;padding:23px 24px;min-height:197px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.panel-head h3{font-size:15px;margin:0;font-weight:780}.panel-head button{border:0;background:transparent;color:#4b9271;font-size:11px;font-weight:780}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.shortcut{display:flex;align-items:center;gap:11px;border:1px solid #e8eee9;background:#f9fbf9;padding:14px;border-radius:12px;text-align:left}.shortcut:hover{background:#eff6ef;border-color:#cce0d2}.shortcut-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e6f1e7;color:#69987b}.shortcut-icon.orange{background:#fbefe3;color:#c18e64}.shortcut strong{font-size:12px;display:block;color:#325a43}.shortcut small{font-size:10px;display:block;color:#a1afa4;margin-top:5px}.empty-mini{display:flex;align-items:center;gap:14px;margin-top:25px;color:#94a69b;font-size:11px;line-height:1.8}.empty-icon{width:46px;height:46px;display:grid;place-items:center;border:1px solid #e8efe9;color:#a1b9a7;background:#f7faf7;border-radius:14px}.recent-list{display:flex;flex-direction:column;gap:9px}.recent-row{display:flex;align-items:center;gap:10px;width:100%;border:1px solid transparent;background:#f7faf7;padding:10px;border-radius:11px;text-align:left}.recent-row:hover{border-color:#cde4d4}.recent-row .recent-initial{height:35px;width:35px;display:grid;place-items:center;border-radius:9px;color:#4e8569;background:#e6f2e8;font-size:16px;font-weight:bold}.recent-row strong{display:block;font-size:11px;font-weight:750}.recent-row small{display:block;font-size:10px;color:#9bada0;margin-top:3px}.recent-row>svg{margin-left:auto;color:#82a48a;width:15px}
.footer{color:#a9b6ae;font-size:10px;margin-top:31px;display:flex;justify-content:space-between;gap:12px}.footer strong{color:#809f8b}
.blank-state{display:flex;align-items:center;justify-content:center;flex-direction:column;background:#fff;border:1px dashed #d9e6dc;min-height:255px;border-radius:18px;text-align:center;padding:30px}.blank-state svg{height:29px;width:29px;color:#91ac98}.blank-state h3{margin:16px 0 5px;font-size:15px}.blank-state p{font-size:11px;color:#9baaa1;line-height:1.8;margin:0 0 15px}.view-header{padding:5px 0 25px}.view-header h1{font-size:28px;margin:10px 0 8px;font-weight:790;letter-spacing:-.6px}.view-header p{font-size:12px;color:#91a397;margin:0}.view-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:10px 0 24px}.view-tools span{font-size:11px;color:#a6b4a8}.settings-panel{background:#fff;border-radius:18px;border:1px solid var(--border);padding:16px 20px}.settings-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #edf2ee}.settings-row:last-child{border-bottom:0}.settings-thumb{height:43px;width:43px;border-radius:12px;display:grid;place-items:center;background:#eef4ee;color:#4d8666;font-size:20px;font-family:Georgia,serif}.settings-row-body{flex:1;min-width:0}.settings-row-body strong{font-size:12px}.settings-row-body p{font-size:10px;color:#9caca1;margin:5px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:480px}.settings-actions{display:flex;gap:7px}.settings-actions button{border:1px solid #e2ebe3;color:#437a5b;background:#f7faf6;border-radius:8px;padding:8px 12px;font-size:10px;font-weight:750}.settings-actions .delete-button{color:#bb857d;background:#fff9f8;border-color:#f3e3de}.integration-note{border-radius:13px;background:#ecf6ef;padding:18px;margin-bottom:19px;color:#5a8068;font-size:11px;line-height:1.8}.integration-note strong{color:#2e6846;font-size:12px;display:block;margin-bottom:4px}.integration-note code{background:#deebdf;border-radius:3px;padding:2px 4px}
.mobile-bar{display:none}.modal-overlay{position:fixed;inset:0;z-index:90;background:rgba(13,37,26,.4);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}.modal{width:min(490px,100%);max-height:min(750px,92vh);overflow:auto;background:#fff;border-radius:23px;padding:25px;box-shadow:0 26px 90px rgba(19,52,28,.23);animation:modalIn .18s ease-out}.modal-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:21px}.modal-kicker{font-size:10px;font-weight:800;color:#5c9b77;letter-spacing:1.5px}.modal h2{font-size:21px;margin:7px 0 0;letter-spacing:-.5px}.icon-button{border:0;background:#f3f6f2;border-radius:9px;height:32px;width:32px;color:#7b9582;display:grid;place-items:center}.form-field{display:block;margin-bottom:14px}.form-field span{display:block;font-size:11px;font-weight:770;color:#53705d;margin-bottom:8px}.form-field input,.form-field select{width:100%;border:1px solid #dde9df;background:#fbfdfb;border-radius:10px;height:43px;color:#294e39;font-size:12px;outline:none;padding:0 12px}.form-field input:focus,.form-field select:focus{border-color:#82bf91;background:white}.form-field .hint{font-size:10px;color:#95a79a;line-height:1.65;margin-top:7px}.modal-buttons{display:flex;gap:9px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #edf0ed}.modal-buttons .btn{padding:13px 18px}.modal-warn{font-size:11px;line-height:1.75;color:#7f9686;background:#eff7f1;border-radius:9px;padding:12px;margin:0 0 16px}.modal-error{font-size:11px;color:#c36a64;margin-top:7px;display:none}.modal-error.visible{display:block}#toast{position:fixed;z-index:120;bottom:28px;left:50%;transform:translate(-50%,20px);border-radius:10px;background:#1b5847;color:#fff;padding:12px 20px;font-size:12px;font-weight:690;box-shadow:0 12px 35px #163d2d33;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:1350px){.page{padding-left:32px;padding-right:32px}.topbar{padding-left:32px;padding-right:32px}.hero-art{right:-50px;width:44%}.hero-copy{max-width:52%}.course-grid{gap:12px}.course-card{min-height:267px}.course-top{padding:17px 16px 12px}.course-body{padding-left:16px;padding-right:16px}.course-foot{margin-left:16px;margin-right:16px}.stat{padding:16px 12px;gap:10px}}
@media(max-width:1120px){.sidebar{width:222px;padding-left:14px;padding-right:14px}.main{margin-left:222px}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{opacity:.75}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:32px}.hero h2{font-size:27px}.top-date{display:none}}
@media(max-width:760px){.sidebar{display:none}.main{margin-left:0}.topbar{height:65px;padding:0 19px;gap:10px}.top-tools{gap:9px}.search-shell{width:min(47vw,220px);height:36px}.search-shell kbd{display:none}.avatar{height:32px;width:32px}.page{padding:25px 18px 95px}.page-intro h1{font-size:23px}.page-intro{margin-bottom:19px}.hero{height:auto;min-height:254px;padding:27px 25px;border-radius:19px}.hero h2{font-size:25px;max-width:330px;line-height:1.4}.hero-copy{max-width:100%}.hero-copy p{max-width:220px;font-size:11px}.hero-art{right:-126px;top:-5px;width:300px;opacity:.23}.hero-buttons{position:relative;z-index:3}.btn{padding:12px 13px;font-size:11px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:15px 0 30px;gap:9px}.stat{padding:13px 12px;min-height:72px;border-radius:12px}.stat-icon{height:34px;width:34px;border-radius:10px}.stat-number{font-size:21px}.stat-title{font-size:9px}.section-head{flex-direction:column;align-items:start;gap:13px}.section-head h2{font-size:18px}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.course-card{min-height:257px;border-radius:15px}.course-top{padding:14px 13px 8px}.course-emblem{width:40px;height:42px;font-size:24px;border-radius:11px}.course-emblem svg{height:24px;width:24px}.course-status{font-size:9px;padding:6px;white-space:nowrap}.fav-button{right:7px;top:44px}.course-body{padding:5px 12px 0}.course-kind{font-size:8px;letter-spacing:1px}.course-body h3{font-size:16px}.course-body p{font-size:10px;line-height:1.5}.course-tags span{font-size:8px;padding:4px 6px}.course-tags{gap:3px}.course-foot{margin:12px 12px 0;padding:10px 0}.course-foot .resource-id{font-size:8px}.course-open{font-size:10px}.course-add{min-height:255px;border-radius:15px}.lower-grid{grid-template-columns:1fr;gap:12px;margin-top:27px}.info-panel{padding:20px 17px;min-height:164px}.footer{font-size:9px}.mobile-bar{position:fixed;inset:auto 0 0;z-index:30;background:#fff;border-top:1px solid #e7eee8;display:flex;justify-content:space-around;padding:8px 3px max(8px,env(safe-area-inset-bottom));box-shadow:0 -12px 28px #25583a0a}.mobile-nav{border:0;background:transparent;color:#97a99b;min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:3px 6px;font-size:9px;font-weight:700}.mobile-nav.active{color:#23764f}.mobile-nav .icon{height:20px;width:20px}.modal-overlay{padding:13px}.modal{padding:21px;border-radius:19px}#toast{bottom:79px;white-space:nowrap}}
@media(max-width:370px){.course-grid{grid-template-columns:1fr}.course-card{min-height:220px}.course-body h3{font-size:19px}.course-add{min-height:180px}.search-shell{width:150px}.breadcrumbs{font-size:10px}.page-intro{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* === Appearance control: compact on desktop and touch-friendly on mobile. === */
.theme-picker { position:relative;flex-shrink:0; }
.theme-trigger {
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:38px;height:38px;list-style:none;cursor:pointer;
  border:1px solid var(--border);border-radius:11px;
  color:var(--ink-2);background:var(--pale);
  transition:background .18s,border-color .18s,color .18s;
}
.theme-trigger::-webkit-details-marker { display:none; }
.theme-trigger:hover,.theme-picker[open] .theme-trigger { color:var(--green);background:#e9f4ed;border-color:#bcd7c4; }
.theme-trigger .icon { width:17px;height:17px; }
.theme-label { display:none;font-size:11px;font-weight:750; }
.theme-trigger:focus-visible,.theme-option:focus-visible { outline:3px solid #87bd99;outline-offset:3px; }
.theme-popover {
  position:absolute;right:0;top:calc(100% + 12px);width:222px;
  border-radius:15px;border:1px solid var(--border);background:var(--surface);
  padding:9px;z-index:60;
  box-shadow:0 18px 52px rgba(33,58,41,.17);
  animation:modalIn .16s ease-out;
}
.theme-menu-title { display:flex;justify-content:space-between;align-items:center;padding:9px 10px 11px;font-size:11px;font-weight:800;color:var(--ink-2); }
.theme-menu-title span { font-size:8px;letter-spacing:1.2px;color:var(--muted); }
.theme-option { display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink); }
.theme-option:hover { background:var(--pale); }
.theme-option.selected { background:#e7f3eb;border-color:#d5e8db; }
.theme-option-icon { width:34px;height:34px;flex-shrink:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);display:grid;place-items:center;color:var(--green); }
.theme-option-icon .icon { width:16px;height:16px; }
.theme-option-copy { flex:1;min-width:0; }
.theme-option-copy strong { display:block;font-size:11px;font-weight:770;line-height:1.45; }
.theme-option-copy small { display:block;font-size:9px;color:var(--muted);margin-top:3px; }
.theme-option-check { width:14px;height:14px;flex-shrink:0;color:var(--green); }
.theme-option-check .icon { width:14px;height:14px; }
@media(max-width:760px){
  .topbar .avatar { display:none; }
  .search-shell { width:min(45vw,220px); }
  .theme-trigger { width:37px;height:37px; }
}
@media(max-width:370px){ .search-shell { width:min(43vw,150px); } }

/* === Dark appearance v3: quiet graphite + muted periwinkle accent. ===
   The canvas, navigation and surfaces are neutral, not green-tinted.
   Semantic green is reserved for the tiny 'connected' state indicator. */
:root[data-theme="dark"] {
  color-scheme:dark;
  --ink:#eef0f6;
  --ink-2:#c1c8d5;
  --muted:#9fa9ba;
  --green:#b5c4fa; /* Legacy variable used as the interaction accent. */
  --bg:#101218;
  --surface:#191c24;
  --border:#313643;
  --pale:#222630;
  --shadow:0 12px 36px rgba(0,0,0,.16);
  --accent:#b5c4fa;
  --accent-muted:#283044;
  --surface-raised:#20242e;
  color:var(--ink);
  background:var(--bg);
}
:root[data-theme="dark"] body { background:var(--bg);color:var(--ink); }
:root[data-theme="dark"] button,
:root[data-theme="dark"] input,
:root[data-theme="dark"] select { color:inherit; }
:root[data-theme="dark"] button:focus-visible,
:root[data-theme="dark"] a:focus-visible,
:root[data-theme="dark"] input:focus-visible,
:root[data-theme="dark"] select:focus-visible,
:root[data-theme="dark"] summary:focus-visible { outline:2px solid #b5c4fa;outline-offset:3px; }
:root[data-theme="dark"] ::selection { background:#505c87;color:#fff; }
:root[data-theme="dark"] ::-webkit-scrollbar { width:10px;height:10px; }
:root[data-theme="dark"] ::-webkit-scrollbar-track { background:#101218; }
:root[data-theme="dark"] ::-webkit-scrollbar-thumb { background:#424857;border:2px solid #101218;border-radius:12px; }

/* Sidebar and topbar: neutral, low-contrast chrome, blue-gray selection. */
:root[data-theme="dark"] .sidebar { background:linear-gradient(180deg,#171920,#15171e);border-right-color:#2a2e38; }
:root[data-theme="dark"] .brand-mark { background:linear-gradient(145deg,#424b66,#2d354b);box-shadow:0 8px 24px #0004;border:1px solid #62708b88;color:#edf2ff; }
:root[data-theme="dark"] .brand-mark circle { fill:#d7e0ff; }
:root[data-theme="dark"] .brand-en { color:#a5adbd; }
:root[data-theme="dark"] .nav-label { color:#959fb1; }
:root[data-theme="dark"] .nav-item { color:#b6becc; }
:root[data-theme="dark"] .nav-item:hover { color:#e4e9f5;background:#232834; }
:root[data-theme="dark"] .nav-item.active { background:#2a3040;color:#eef1ff;box-shadow:inset 3px 0 0 #a8b8eb; }
:root[data-theme="dark"] .nav-item .nav-count { background:#292e39;color:#bcc5d6; }
:root[data-theme="dark"] .nav-item.active .nav-count { background:#39445f;color:#e3e9ff; }
:root[data-theme="dark"] .sidebar-note { background:linear-gradient(142deg,#252a37,#1d212c);border-color:#393e4c; }
:root[data-theme="dark"] .sidebar-note::after { border-color:#566079;opacity:.17; }
:root[data-theme="dark"] .sidebar-note .quote-symbol { color:#b4bfee; }
:root[data-theme="dark"] .sidebar-note small { color:#b6bfd3; }
:root[data-theme="dark"] .sidebar-footer { color:#9ba5b4; }
:root[data-theme="dark"] .sidebar-footer .dot { background:#9da9ca;box-shadow:0 0 0 4px #303544; }
:root[data-theme="dark"] .topbar { background:rgba(20,22,29,.92);border-bottom-color:#2c303b;box-shadow:0 1px 0 #151720; }
:root[data-theme="dark"] .breadcrumbs { color:#a1aabd; }
:root[data-theme="dark"] .breadcrumbs strong { color:#e5e9f4; }
:root[data-theme="dark"] .top-date { color:#abb4c3; }
:root[data-theme="dark"] .search-shell { background:#222630;border-color:#363b49;color:#aeb8cc; }
:root[data-theme="dark"] .search-shell:focus-within { background:#292d39;border-color:#889bd3;box-shadow:0 0 0 3px #8098d52a; }
:root[data-theme="dark"] .search-shell input { color:#f1f3f9; }
:root[data-theme="dark"] .search-shell input::placeholder { color:#abb4c5;opacity:1; }
:root[data-theme="dark"] .search-shell kbd { background:#303642;border-color:#4b5262;color:#c2cad9; }
:root[data-theme="dark"] .avatar { background:#30384c;color:#dbe5fd;border-color:#495674; }
:root[data-theme="dark"] .theme-trigger { background:#222732;border-color:#3a404e;color:#c1cbe0; }
:root[data-theme="dark"] .theme-trigger:hover,
:root[data-theme="dark"] .theme-picker[open] .theme-trigger { background:#2b3447;border-color:#7f91c7;color:#f4f5ff; }
:root[data-theme="dark"] .theme-popover { background:#20242e;border-color:#3b414e;box-shadow:0 22px 65px #000a; }
:root[data-theme="dark"] .theme-option { color:#ebedf5; }
:root[data-theme="dark"] .theme-option:hover { background:#2c313d; }
:root[data-theme="dark"] .theme-option.selected { background:#30384b;border-color:#52638c; }
:root[data-theme="dark"] .theme-option-icon { background:#262c39;border-color:#424a60;color:#c3cffa; }
:root[data-theme="dark"] .theme-option-copy small { color:#aeb8c9; }

/* Neutral body text with small cool-toned editorial accents. */
:root[data-theme="dark"] .section-eyebrow { color:#bac7f0; }
:root[data-theme="dark"] .page-intro p,
:root[data-theme="dark"] .section-head p,
:root[data-theme="dark"] .view-header p { color:#adb7c7; }
:root[data-theme="dark"] .view-tools span { color:#aeb7c7; }

/* Hero: dark slate-glass with a subtle indigo highlight, not a colored panel. */
:root[data-theme="dark"] .hero {
  background:
    radial-gradient(ellipse at 89% 26%,rgba(108,120,167,.19),transparent 45%),
    radial-gradient(ellipse at 8% 100%,rgba(91,102,136,.09),transparent 58%),
    linear-gradient(115deg,#222630 0%,#232732 50%,#252a37 100%);
  border:1px solid #3a4050;
  box-shadow:inset 0 1px 0 #ffffff09,0 16px 38px #0003;
}
:root[data-theme="dark"] .hero::before,
:root[data-theme="dark"] .hero::after { border-color:rgba(187,197,228,.13); }
:root[data-theme="dark"] .hero-top { color:#b5c1e6; }
:root[data-theme="dark"] .hero-top .spark { color:#c3cafa; }
:root[data-theme="dark"] .hero h2 { color:#f4f5fa; }
:root[data-theme="dark"] .hero-copy p { color:#c4cbd8; }
:root[data-theme="dark"] .btn-primary { background:#c0cdf9;color:#1c2942;border-color:#cbd7ff;box-shadow:0 8px 20px #0004; }
:root[data-theme="dark"] .btn-primary:hover { background:#d5defd;color:#141b2d; }
:root[data-theme="dark"] .btn-outline { color:#e1e6f2;background:#303645bb;border-color:#596273; }
:root[data-theme="dark"] .btn-outline:hover { background:#3b4354;border-color:#8b9ab5; }
:root[data-theme="dark"] .btn-quiet { background:#2d3445;color:#dee5f8;border-color:#4a5773; }
:root[data-theme="dark"] .btn-quiet:hover { background:#3c455b; }
:root[data-theme="dark"] .orbit-one,
:root[data-theme="dark"] .orbit-two { border-color:rgba(182,195,235,.26); }
:root[data-theme="dark"] .art-core { background:radial-gradient(circle at 25% 20%,#aab7dc 0%,#697ba4 38%,#394969 80%);color:#f4f5ff;box-shadow:inset -15px -12px 25px #18233ea0,inset 7px 8px 17px #e3eaff55,0 19px 43px #647aa444; }
:root[data-theme="dark"] .art-core svg path:last-child { stroke:#e0e7ff; }
:root[data-theme="dark"] .art-card { background:#303648ed;border-color:#59627a9a;box-shadow:0 14px 34px #090d1780; }
:root[data-theme="dark"] .art-math span { color:#bbc7dd; }
:root[data-theme="dark"] .art-math b { color:#e1e8ff; }
:root[data-theme="dark"] .art-quiz b { color:#e4e9f5; }
:root[data-theme="dark"] .art-quiz small { color:#bbc4d5; }
:root[data-theme="dark"] .art-quiz-circle { background:#51412e;color:#ffe0ac; }
:root[data-theme="dark"] .art-spark { color:#acb7d9; }
:root[data-theme="dark"] .art-dot { background:#edbf83;box-shadow:0 0 0 6px #c5b7a421; }

/* Cards, filters, course categories. */
:root[data-theme="dark"] .stat,
:root[data-theme="dark"] .course-card,
:root[data-theme="dark"] .info-panel,
:root[data-theme="dark"] .blank-state,
:root[data-theme="dark"] .settings-panel { background:#1b1f28;border-color:#343b49; }
:root[data-theme="dark"] .stat { box-shadow:0 8px 18px #0002,inset 0 1px 0 #ffffff08; }
:root[data-theme="dark"] .stat-number { color:#f0f2f7; }
:root[data-theme="dark"] .stat-title { color:#b7c0cd; }
:root[data-theme="dark"] .stat-icon { background:#2b3244;color:#c5d0f3; }
:root[data-theme="dark"] .stat-icon.ochre { background:#403727;color:#f0cf9a; }
:root[data-theme="dark"] .stat-icon.blue { background:#29394d;color:#b4cbef; }
:root[data-theme="dark"] .stat-icon.purple { background:#342c45;color:#d6c6ef; }
:root[data-theme="dark"] .filter { color:#b9c2d1; }
:root[data-theme="dark"] .filter:hover { background:#2a303d;color:#e4eafa; }
:root[data-theme="dark"] .filter.active { background:#2f384c;color:#e2eaff;border-color:#4d5a79; }
:root[data-theme="dark"] .course-card { box-shadow:0 12px 35px #0002,inset 0 1px 0 #ffffff07; }
:root[data-theme="dark"] .course-card:hover { border-color:#7383a4;box-shadow:0 20px 44px #0007; }
:root[data-theme="dark"] .course-card.tone-sage { --tone-bg:#344449;--tone-fg:#b4d6d5; }
:root[data-theme="dark"] .course-card.tone-blue { --tone-bg:#293b52;--tone-fg:#acc9f2; }
:root[data-theme="dark"] .course-card.tone-peach { --tone-bg:#47362e;--tone-fg:#f1c3aa; }
:root[data-theme="dark"] .course-card.tone-purple { --tone-bg:#373149;--tone-fg:#d8c7f7; }
:root[data-theme="dark"] .course-card.tone-amber { --tone-bg:#433928;--tone-fg:#f4d69d; }
:root[data-theme="dark"] .course-card.tone-mint { --tone-bg:#304147;--tone-fg:#b7dce5; }
:root[data-theme="dark"] .course-emblem { box-shadow:inset 0 1px 0 #fff1; }
:root[data-theme="dark"] .course-status { background:#2c313b;color:#c4cbd6; }
:root[data-theme="dark"] .course-status::before { background:#929cab; }
:root[data-theme="dark"] .course-status.connected { background:#26392f;color:#b6dfc0; }
:root[data-theme="dark"] .course-status.connected::before { background:#87d59c;box-shadow:0 0 0 3px #83da982b; }
:root[data-theme="dark"] .fav-button { color:#abb5c7; }
:root[data-theme="dark"] .fav-button:hover,
:root[data-theme="dark"] .fav-button.is-favorite { color:#f0cb8d; }
:root[data-theme="dark"] .fav-button.is-favorite svg { fill:#d8aa5855; }
:root[data-theme="dark"] .course-kind { color:#a9b4cc; }
:root[data-theme="dark"] .course-body p { color:#b5bece; }
:root[data-theme="dark"] .course-tags span { color:#c1c8d6;background:#282d38;border-color:#3c4353; }
:root[data-theme="dark"] .course-foot { border-top-color:#353b47; }
:root[data-theme="dark"] .course-foot .resource-id { color:#abb5c7; }
:root[data-theme="dark"] .course-open { color:#c2cff8; }
:root[data-theme="dark"] .course-open:hover { color:#f1f4ff; }
:root[data-theme="dark"] .course-add { color:#b6c5e4;border-color:#4b566f;background:#1a1f2b; }
:root[data-theme="dark"] .course-add:hover { background:#262c3a;border-color:#91a5d6; }
:root[data-theme="dark"] .course-add-icon { background:#30394d;color:#cbd6fa; }
:root[data-theme="dark"] .course-add strong { color:#e3e8f3; }
:root[data-theme="dark"] .course-add small { color:#aeb8ca; }

/* Secondary views, resource integrations and empty states. */
:root[data-theme="dark"] .panel-head button { color:#c3d0fa; }
:root[data-theme="dark"] .shortcut { background:#252b36;border-color:#3b4453; }
:root[data-theme="dark"] .shortcut:hover { background:#303848;border-color:#687798; }
:root[data-theme="dark"] .shortcut-icon { background:#354057;color:#c6d5ff; }
:root[data-theme="dark"] .shortcut-icon.orange { background:#47392d;color:#f0c6a5; }
:root[data-theme="dark"] .shortcut strong { color:#e6eaf4; }
:root[data-theme="dark"] .shortcut small { color:#b2bece; }
:root[data-theme="dark"] .empty-mini { color:#abb7c8; }
:root[data-theme="dark"] .empty-icon { background:#2b3343;border-color:#4b5b79;color:#c0cdec; }
:root[data-theme="dark"] .recent-row { background:#242a35; }
:root[data-theme="dark"] .recent-row:hover { border-color:#6f7d9c;background:#2d3544; }
:root[data-theme="dark"] .recent-row .recent-initial { background:#35415a;color:#d4dfff; }
:root[data-theme="dark"] .recent-row small { color:#b6c1d1; }
:root[data-theme="dark"] .recent-row>svg { color:#b1bfdb; }
:root[data-theme="dark"] .footer { color:#a6b1c1; }
:root[data-theme="dark"] .footer strong { color:#c3cfe5; }
:root[data-theme="dark"] .blank-state { border-style:dashed;border-color:#4c5568; }
:root[data-theme="dark"] .blank-state svg { color:#b9c6e4; }
:root[data-theme="dark"] .blank-state p { color:#b6c2d2; }
:root[data-theme="dark"] .settings-row { border-bottom-color:#343b47; }
:root[data-theme="dark"] .settings-thumb { background:#303a4f;color:#d0ddff; }
:root[data-theme="dark"] .settings-row-body p { color:#b3becb; }
:root[data-theme="dark"] .settings-actions button { background:#2d364a;color:#d3dffe;border-color:#4d5b77; }
:root[data-theme="dark"] .settings-actions button:hover { background:#3a465e; }
:root[data-theme="dark"] .settings-actions .delete-button { background:#3a2b2c;color:#fac0bd;border-color:#6c4244; }
:root[data-theme="dark"] .settings-actions .delete-button:hover { background:#493032; }
:root[data-theme="dark"] .integration-note { background:#252b3a;border:1px solid #414c66;color:#c1cce0; }
:root[data-theme="dark"] .integration-note strong { color:#dde7ff; }
:root[data-theme="dark"] .integration-note code { background:#333e57;color:#e4ebff; }

/* Forms, dialogs, search, toast, and mobile navigation. */
:root[data-theme="dark"] .modal-overlay { background:rgba(4,6,12,.76); }
:root[data-theme="dark"] .modal { background:#20242d;border:1px solid #454e60;box-shadow:0 26px 90px #000b; }
:root[data-theme="dark"] .modal-kicker { color:#c5d1f6; }
:root[data-theme="dark"] .icon-button { background:#303849;color:#cbd5e5; }
:root[data-theme="dark"] .icon-button:hover { background:#424b5e;color:#fff; }
:root[data-theme="dark"] .form-field span { color:#d5dcea; }
:root[data-theme="dark"] .form-field input,
:root[data-theme="dark"] .form-field select { background:#171b23;border-color:#444c5b;color:#f0f3fa; }
:root[data-theme="dark"] .form-field input::placeholder { color:#a9b4c6; }
:root[data-theme="dark"] .form-field input:focus,
:root[data-theme="dark"] .form-field select:focus { background:#222936;border-color:#9cafe7;box-shadow:0 0 0 3px #8099da2e; }
:root[data-theme="dark"] .form-field .hint { color:#b3c0d2; }
:root[data-theme="dark"] .modal-buttons { border-top-color:#3c4554; }
:root[data-theme="dark"] .modal-warn { color:#d2dcec;background:#2d3443; }
:root[data-theme="dark"] .modal-error { color:#ffbdb6; }
:root[data-theme="dark"] #toast { background:#343c50;border:1px solid #667592;color:#f4f6ff;box-shadow:0 12px 36px #0009; }
:root[data-theme="dark"] .mobile-bar { background:rgba(22,25,33,.97);border-top-color:#393f4c;box-shadow:0 -10px 30px #0005;backdrop-filter:blur(16px); }
:root[data-theme="dark"] .mobile-nav { color:#abb6ca; }
:root[data-theme="dark"] .mobile-nav.active { color:#c3d1ff; }

/* Keep the compact laptop/tablet hero readable: no chopped buttons or lone glyphs. */
@media(min-width:761px) and (max-width:1120px) {
  .hero { height:auto;min-height:290px;padding:30px 33px; }
  .hero-copy { max-width:66%; }
  .hero h2 { font-size:26px;letter-spacing:-.9px; }
  .hero-copy p { max-width:325px;margin-bottom:18px; }
  .hero-buttons .btn { padding:12px 13px;font-size:11px; }
  .hero-art { right:-90px;width:46%;opacity:.52; }
}
@media(max-width:760px) {
  :root[data-theme="dark"] .hero-art { opacity:.13; }
}
