:root{--bg:#121413;--surface:#191c1b;--surface-2:#222625;--line:#343a37;--text:#e8ece9;--muted:#9ca6a0;--accent:#d39a86;--accent-soft:#e0b5a5;--side:260px}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 Inter,"Noto Sans SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.topbar{position:fixed;z-index:10;inset:0 0 auto;height:68px;display:flex;align-items:center;gap:24px;padding:0 24px;border-bottom:1px solid var(--line);background:rgba(18,20,19,.94);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;width:212px;font-size:14px}.mark{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--accent);color:var(--accent);font:19px Georgia}.search{height:38px;width:min(520px,48vw);display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.search input,.table-tools input{min-width:0;flex:1;border:0;outline:0;background:none;color:var(--text)}.search kbd{color:var(--muted);font-size:11px}.icon-button{margin-left:auto;border:0;background:none;color:var(--muted);font-size:20px;cursor:pointer}.sidebar{position:fixed;top:68px;bottom:0;width:var(--side);display:flex;flex-direction:column;padding:24px 16px;border-right:1px solid var(--line);background:#151817}.sidebar nav{flex:1}.nav-label{margin:14px 10px 8px;color:#7f8983;font:10px ui-monospace,monospace;letter-spacing:.15em;text-transform:uppercase}.sidebar a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:6px;color:var(--muted);font-size:13px}.sidebar a span{width:20px;color:var(--accent);font:12px ui-monospace,monospace}.sidebar a:hover,.sidebar a.active{color:var(--text);background:var(--surface-2)}.sidebar a.active{box-shadow:inset 2px 0 var(--accent)}.outline-empty{margin:10px;padding:14px;border:1px dashed var(--line);color:var(--muted);font-size:12px}.privacy{display:flex;align-items:center;gap:10px;padding:14px;border-top:1px solid var(--line)}.privacy>span{color:var(--accent);font-size:9px}.privacy b,.privacy small{display:block}.privacy b{font-size:12px}.privacy small{color:var(--muted);font-size:10px}.workspace{min-height:100vh;margin-left:var(--side);padding:116px clamp(36px,7vw,100px) 70px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding-bottom:34px;border-bottom:1px solid var(--line)}.eyebrow{margin:0;color:var(--accent);font:11px ui-monospace,monospace;letter-spacing:.14em}.page-head h1{margin:7px 0 4px;font:42px Georgia,"Noto Serif SC",serif}.page-head p{margin:0;color:var(--muted)}.ghost-button{padding:9px 14px;border:1px solid var(--line);border-radius:5px;color:var(--accent-soft);font-size:13px}.empty-state{display:grid;place-items:center;min-height:430px;text-align:center;border-bottom:1px solid var(--line)}.empty-state h2{margin:24px 0 7px;font:26px Georgia,"Noto Serif SC",serif}.empty-state>p{max-width:560px;margin:0;color:var(--muted)}.empty-symbol{position:relative;width:110px;height:80px}.empty-symbol span{position:absolute;bottom:0;width:24px;border:1px solid var(--accent);background:rgba(211,154,134,.06)}.empty-symbol span:nth-child(1){left:5px;height:40px}.empty-symbol span:nth-child(2){left:43px;height:72px}.empty-symbol span:nth-child(3){right:5px;height:55px}.pipeline{display:flex;align-items:center;gap:12px;margin-top:34px;color:var(--muted);font-size:11px}.pipeline span{padding:7px 10px;border:1px solid var(--line);border-radius:4px}.pipeline b{color:var(--accent)}.count-badge{display:flex;align-items:baseline;gap:7px}.count-badge b{color:var(--accent);font:36px Georgia}.count-badge span{color:var(--muted);font-size:12px}.table-shell{margin-top:34px;border:1px solid var(--line);background:var(--surface)}.table-tools{display:flex;align-items:center;gap:8px;padding:14px;border-bottom:1px solid var(--line)}.table-tools label{display:flex;align-items:center;gap:8px;max-width:360px;flex:1;padding:7px 10px;border:1px solid var(--line);border-radius:5px}.filter{padding:7px 12px;border:1px solid var(--line);border-radius:5px;background:none;color:var(--muted);cursor:pointer}.filter.active{border-color:var(--accent);color:var(--accent)}.term-table{display:grid;grid-template-columns:1.2fr 1.2fr .7fr .5fr;gap:20px;padding:13px 18px}.term-table.head{color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}.table-empty{display:grid;place-items:center;min-height:300px;text-align:center}.table-empty b{font:22px Georgia}.table-empty p{max-width:430px;margin:4px;color:var(--muted);font-size:13px}.back{display:inline-block;margin-bottom:25px;color:var(--accent);font-size:13px}.compact{min-height:360px;border:1px solid var(--line);background:var(--surface)}body.light{--bg:#f3f5f4;--surface:#fff;--surface-2:#e8ecea;--line:#ccd3cf;--text:#202522;--muted:#626d67;--accent:#d39a86;--accent-soft:#e0b5a5;color-scheme:light}.light .topbar{background:rgba(243,245,244,.95)}.light .sidebar{background:#edf1ef}@media(max-width:820px){:root{--side:0px}.sidebar{display:none}.brand{width:auto}.workspace{padding:105px 24px 55px}.page-head{align-items:flex-start}.search{width:100%}}@media(max-width:560px){.brand span:last-child,.search kbd{display:none}.topbar{gap:12px;padding:0 14px}.page-head{display:block}.ghost-button{display:inline-block;margin-top:20px}.pipeline{flex-wrap:wrap;justify-content:center}.table-tools{flex-wrap:wrap}.term-table{grid-template-columns:1fr 1fr}.term-table span:nth-child(n+3){display:none}}
/* Chemistry Atlas shared visual layer */
:root{--bg:#07111f;--surface:#0d1c2d;--surface-2:#13283d;--surface2:#13283d;--line:#263a4d;--text:#edf4f5;--muted:#91a2b3;--accent:#d39a86;--accent-soft:#e0b5a5;--side:260px}
body{position:relative;overflow-x:hidden;background:var(--bg);font-family:'DM Sans','Noto Sans SC','Microsoft YaHei',sans-serif;color:var(--text)}
body::before,body::after{content:'';position:fixed;z-index:0;pointer-events:none;width:390px;height:390px;border-radius:50%;filter:blur(105px);opacity:.13}
body::before{top:12%;left:-150px;background:var(--accent);animation:atlas-glow-one 18s ease-in-out infinite alternate}
body::after{right:-150px;bottom:8%;background:#8097ff;animation:atlas-glow-two 22s ease-in-out infinite alternate}
.topbar,.sidebar,.workspace{z-index:2}.topbar{height:76px;padding:0 28px;border-bottom-color:rgba(144,176,197,.16);background:rgba(7,17,31,.82);backdrop-filter:blur(18px)}
.brand{width:212px;font-family:'Space Grotesk',sans-serif;font-weight:600;letter-spacing:-.04em}.mark{width:32px;height:32px;border:1px solid var(--accent);border-radius:9px;color:var(--accent);font-family:'Space Grotesk',sans-serif;transition:transform .25s,background .25s}.brand:hover .mark{transform:rotate(-8deg) scale(1.05);background:rgba(255,255,255,.06)}
.search{height:40px;border-radius:12px;border-color:var(--line);background:rgba(13,28,45,.78);transition:border-color .22s,box-shadow .22s,background .22s}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(128,151,255,.13);background:var(--surface)}
.icon-button{transition:color .2s,transform .2s}.icon-button:hover{color:var(--accent);transform:rotate(12deg)}
.sidebar{top:76px;padding:28px 16px;border-right-color:rgba(144,176,197,.14);background:rgba(9,23,38,.78);backdrop-filter:blur(18px)}.nav-label{color:#6f8496}.sidebar a{border-radius:11px;transition:color .22s,background .22s,transform .22s}.sidebar a:hover{transform:translateX(3px);background:rgba(255,255,255,.06)}.sidebar a.active{background:rgba(255,255,255,.07);box-shadow:inset 3px 0 var(--accent);color:var(--text)}
.workspace{padding-top:126px}.page-head{padding-bottom:38px;border-bottom-color:var(--line)}.eyebrow{color:var(--accent);font-family:'DM Mono',monospace}.page-head h1,.empty-state h2,.table-empty b,.count-badge b,.back,.chapter-card h2{font-family:'Space Grotesk','Noto Sans SC',sans-serif;letter-spacing:-.045em}.page-head h1{font-weight:600}.page-head p,.empty-state>p{color:var(--muted)}
.ghost-button,.filter,.pipeline span{border-color:var(--line);border-radius:10px;background:rgba(13,28,45,.7);color:var(--accent);transition:background .25s,border-color .25s,transform .25s,box-shadow .25s}.ghost-button:hover,.filter:hover,.filter.active{border-color:var(--accent);background:rgba(255,255,255,.07);box-shadow:0 8px 18px rgba(0,0,0,.2);transform:translateY(-2px)}
.empty-state,.table-shell,.compact,.recall-card,.quiz,.today,.progress,.chapter-card,.future article{border-color:var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(13,28,45,.96),rgba(9,23,38,.9));box-shadow:0 16px 36px rgba(0,0,0,.12)}
.empty-state{position:relative;overflow:hidden}.empty-state::after,.chapter-card::after{content:'';position:absolute;right:28px;top:24px;width:54px;height:54px;border:1px solid var(--accent);border-radius:50%;opacity:.45;transform:rotate(20deg);animation:atlas-orbit 9s ease-in-out infinite}.table-shell{overflow:hidden}.table-tools{border-bottom-color:var(--line)}.table-tools label{border-color:var(--line);border-radius:11px;background:rgba(7,17,31,.45);transition:border-color .22s,box-shadow .22s}.table-tools label:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(128,151,255,.13)}.term-table{border-color:var(--line)}.term-table.row{transition:background .22s,transform .22s}.term-table.row:hover{background:rgba(255,255,255,.045);transform:translateX(4px)}
.chapter-card,.future article,.loop a{transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .25s,background .25s,box-shadow .25s}.chapter-card:hover,.future article:hover,.loop a:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 16px 30px rgba(0,0,0,.22)}.loop a{border-color:var(--line);border-radius:13px;background:rgba(7,17,31,.48)}
.primary{border-radius:12px;background:var(--accent);color:#0d1c2d;transition:transform .22s,box-shadow .22s,filter .22s}.primary:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.25);filter:saturate(1.1)}.ghost{border-color:var(--line);border-radius:12px;color:var(--accent);transition:background .22s,border-color .22s,transform .22s}.ghost:hover{border-color:var(--accent);background:rgba(255,255,255,.07);transform:translateY(-2px)}
.rate button,.quiz button{border-color:var(--line);border-radius:11px;background:rgba(7,17,31,.48);transition:background .3s,border-color .22s,color .22s,transform .22s,box-shadow .22s}.rate button:hover,.quiz button:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.2)}.quiz button.correct{border-color:var(--accent);background:rgba(255,255,255,.08);color:var(--accent)}
@keyframes atlas-glow-one{0%{transform:translate(-6vw,-2vh) scale(.85)}100%{transform:translate(22vw,16vh) scale(1.22)}}@keyframes atlas-glow-two{0%{transform:translate(4vw,5vh) scale(1.18)}100%{transform:translate(-20vw,-18vh) scale(.82)}}@keyframes atlas-orbit{0%,100%{transform:translate(0,0) rotate(20deg)}50%{transform:translate(-12px,14px) rotate(70deg)}}
@media(max-width:820px){:root{--side:0px}.topbar{height:68px;padding:0 18px}.sidebar{top:68px}.workspace{padding-top:108px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Keep headings in the Atlas display language without changing note text. */
h1,h2,h3,.page-head h1,.hero h1,.chapter-card h2,.section-title h2,.article-head h1,.article section h2,.term-detail h1,.term-detail section h2,.recall-card h2,.quiz h3{font-family:'Space Grotesk','Noto Sans SC','Microsoft YaHei',sans-serif!important;letter-spacing:-.045em}
/* Quiz-style theme swap for chapter cards. */
.chapter-card:hover{background:var(--accent)!important;border-color:var(--accent-soft)!important;color:#0d1c2d;box-shadow:0 18px 34px rgba(0,0,0,.28)}
.chapter-card:hover h2,.chapter-card:hover p,.chapter-card:hover small,.chapter-card:hover>b,.chapter-card:hover .chapter-no,.chapter-card:hover .tag-row span{color:#0d1c2d!important}
.chapter-card:hover .chapter-no{border-color:#0d1c2d!important}
