:root{--ink:#20293b;--muted:#758096;--paper:#fff;--bg:#f4f6fa;--line:#edf0f5;--accent:#6578f3;--sidebar:224px;--radius:6px;--sidebar-brand-size:1.5rem;--sidebar-nav-size:.875rem;--sidebar-space-size:.75rem;--sidebar-label-size:.6875rem}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,select{cursor:pointer}button{border:0;background:none;color:inherit;padding:0;transition:background .18s,color .18s,box-shadow .18s,transform .18s}a{text-decoration:none;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #8998ff;outline-offset:4px}button:active{transform:translateY(1px)}button:hover{color:var(--accent)}.icon{display:inline-block;width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(164deg,#0d131f 27%,#1a2231 75%,#252e3e);color:#b8c2d4;padding:25px 18px 16px;z-index:5;display:flex;flex-direction:column;border-right:1px solid #ffffff0c;overflow:clip;overscroll-behavior:contain}.brand{display:flex;gap:11px;align-items:center;margin:0 10px 26px;color:#f7f9ff;font-size:var(--sidebar-brand-size);line-height:1.2;font-weight:650;letter-spacing:-.4px}.mark{width:36px;height:36px;flex-shrink:0;filter:drop-shadow(0 2px 6px #6486ff22)}.brand small{display:block;margin-top:8px;font-size:.625rem;letter-spacing:2.4px;font-weight:400;color:#a5afc4}nav{display:grid;gap:5px}nav button{position:relative;display:flex;align-items:center;gap:15px;width:100%;height:40px;padding:0 14px;text-align:left;border-radius:5px;font-size:var(--sidebar-nav-size);letter-spacing:.2px}nav button .nav-icon{display:flex;color:#aab7d1}nav button .icon{width:19px;height:19px}nav button:hover{background:#ffffff08;color:#e9efff}nav button.active{background:linear-gradient(90deg,#293e73cc,#26345170);color:#edf2ff;box-shadow:inset 0 0 0 1px #7897f122,inset 3px 0 #83a1ff}nav button.active .nav-icon{color:#bad5ff}.spaces{border-top:1px solid #ffffff0e;margin:21px 12px 0;padding-top:15px}.space-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--sidebar-label-size);letter-spacing:1px;color:#8996ac;margin-bottom:10px}.space-head button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px}.space-head button:hover{background:#ffffff0a;color:#dbe5ff}.space-head .icon{width:16px;height:16px}#spaces{display:grid;gap:1px}#spaces button{display:flex;align-items:center;gap:12px;font-size:var(--sidebar-space-size);text-align:left;min-height:33px;color:#acb7cc;border-radius:3px}#spaces button:hover{color:white}#spaces .icon{width:15px;height:15px;color:#8190aa;stroke-width:1.6}.buddy{margin-top:auto;position:relative;background:linear-gradient(120deg,#33415f9c,#28344b73);border:1px solid #93a6da1e;border-radius:6px;padding:13px 12px 11px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex-shrink:0}.buddy-face{width:37px;height:37px;flex-shrink:0;border-radius:50%;background:radial-gradient(circle at 35% 20%,#dceeff,#a3c1ff 70%,#688fe0);padding:5px;box-shadow:0 0 19px #648aff70;display:flex;align-items:center;justify-content:center}.robot-eyes{position:relative;display:block;width:28px;height:22px;border-radius:10px;background:linear-gradient(120deg,#0c203a,#071225);border:1px solid #76b4ed}.robot-eyes:before,.robot-eyes:after{content:'';position:absolute;width:6px;height:5px;border:1.5px solid #99e9ff;border-bottom:0;border-radius:5px 5px 0 0;top:7px;filter:drop-shadow(0 0 2px #6bd4ff)}.robot-eyes:before{left:4px}.robot-eyes:after{right:4px}.buddy b{font-size:12px;font-weight:500;color:#e8edfa}.buddy small{display:block;font-size:8px;margin-top:5px;color:#a2aec5}.buddy button{display:flex;align-items:center;justify-content:space-between;background:#111c30;width:100%;height:31px;border-radius:4px;font-size:11px;color:#d9e2f5;padding:0 12px;margin-top:2px}.buddy button:hover{background:#1f2e4c}.buddy .icon{width:14px;height:14px}.side-quote{font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:10px;line-height:2;color:#99a6bd;margin:21px 12px 17px}.side-bottom{font-size:7px;letter-spacing:2.2px;color:#8191aa;border-top:1px solid #ffffff0b;padding:12px 6px 0}.side-bottom span{float:right;color:#a8badb}
main{margin-left:var(--sidebar);min-width:0}.hero{position:relative;display:flex;flex-direction:column;min-height:442px;color:#fff;background:#0c1524 url('assets/hero-day-clean-20261019.webp') center 52%/cover;isolation:isolate}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#09142355 0%,#0d192c1f 39%,transparent 62%),linear-gradient(0deg,#17283d47,transparent 25%);z-index:-1}header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:23px 32px;gap:25px;height:88px;flex-shrink:0}.search{display:flex;align-items:center;gap:12px;width:min(53%,620px);height:43px;padding:0 15px;border:1px solid #d8e1ff24;background:#d4e0ff0b;backdrop-filter:blur(20px);border-radius:6px;box-shadow:inset 0 1px #ffffff05}.search>span{display:flex}.search .icon{width:19px;height:19px;color:#bdc9de}.search input{width:100%;flex:1;min-width:0;background:none;border:0;outline:none;color:#f4f6ff;font-size:11px;letter-spacing:.3px}.search input::placeholder{color:#a6b2c7}.search kbd{font-family:inherit;white-space:nowrap;font-size:10px;color:#c5cfe5;border:1px solid #ffffff10;padding:2px 5px;border-radius:3px;background:#ffffff05}.account{display:flex;align-items:center;gap:17px;color:#263a51}.account>button{position:relative;display:grid;place-items:center;width:27px;height:31px;border-radius:4px}.account>button:hover{color:#0f2343;background:#ffffff20}.account .icon{width:20px;height:20px}.account button i{position:absolute;top:4px;right:3px;background:#a877c7;width:4px;height:4px;border-radius:50%}.avatar{height:37px;width:37px;border:2px solid #ffffff33;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:#f8f5ee;font-size:12px;background:linear-gradient(160deg,#9bbacf 18%,#617a92 19%,#2c4f69 54%,#698778 55%,#304b49 75%,#809774)}.account b{font-size:13px;font-weight:600}.account small{display:block;font-size:9px;margin-top:3px;letter-spacing:.3px;color:#4e5d72}.account>span{margin-left:2px;display:flex}.account>span .icon{width:14px;height:14px}
.hero-copy{position:relative;flex-shrink:0;margin:0 0 0 37px;max-width:550px;padding-bottom:24px}.eyebrow{font-size:7px;letter-spacing:2.9px;color:#a0aec7;margin-bottom:10px}h1{margin:0;font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:44px;font-weight:600;line-height:1.35;letter-spacing:1px;text-shadow:0 2px 15px #0a14261a}h1 em{font-family:Arial,sans-serif;font-size:1.25em;line-height:0;font-style:normal;font-weight:750;background:linear-gradient(130deg,#5eb7ff 0%,#7780ff 55%,#b688f2);background-clip:text;color:transparent;margin:0 6px}h1>span{font-size:32px;letter-spacing:.5px}.hero-copy>p{font-size:13px;line-height:1.85;letter-spacing:.4px;color:#c1ccdf;margin:12px 0 17px}.hero-actions{display:flex;align-items:center;gap:13px}.hero-actions button{height:43px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;letter-spacing:1px;padding:0 21px;border-radius:5px}.hero-actions .primary{min-width:163px;justify-content:space-between}.primary{color:white!important;background:linear-gradient(110deg,#619fff,#7765f5)!important;box-shadow:0 4px 16px #5975ff2a,inset 0 1px #ffffff26;border:1px solid #ffffff15!important;border-radius:5px!important}.primary:hover{box-shadow:0 5px 21px #6d87ff4d,inset 0 1px #ffffff35;filter:brightness(1.06)}.hero-actions .icon{width:17px;height:17px}.glass{background:#0c162b85;border:1px solid #b8caff25;backdrop-filter:blur(12px);color:#ecf1ff}.glass:hover{background:#283b5e85;color:#fff}.hero-note{position:absolute;right:8%;top:218px;color:#e2e8f3;font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:15px;letter-spacing:2px;line-height:1.8;transform:rotate(-7deg);text-shadow:0 2px 5px #15304b}.hero-note small{display:block;text-align:right;font-size:11px;margin-top:5px}.features{position:relative;flex-shrink:0;margin:auto 28px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:19px;padding:17px 0 18px;border-top:1px solid #c5d8ff16}.features button{display:flex;align-items:center;gap:12px;min-width:0;text-align:left;padding:2px 5px;border-radius:5px}.features button:hover{background:#d7e5ff0a;color:white}.feature-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:6px;flex-shrink:0;border:1px solid #bad2ff13;box-shadow:inset 0 1px #c6d9ff09,0 2px 6px #07122222}.feature-icon .icon{width:27px;height:27px;stroke-width:1.65;filter:drop-shadow(0 0 5px currentColor)}.blue{color:#80a7ff;background:linear-gradient(135deg,#244a7d80,#14293e99)}.green{color:#82d6bc;background:linear-gradient(135deg,#27595277,#142d3199)}.purple{color:#b790fa;background:linear-gradient(135deg,#44356d80,#25223e99)}.gold{color:#f0cf65;background:linear-gradient(135deg,#5d542e80,#2e2d2399)}.features b{font-size:13px;font-weight:550;letter-spacing:.8px}.features small{display:block;font-size:9px;letter-spacing:.3px;color:#b7c3d8;margin-top:5px;white-space:nowrap}.features i{margin-left:auto;color:#abbcd4;display:flex;opacity:.5}.features i .icon{width:13px;height:13px}
.workspace{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:17px;padding:20px 23px 0;border-top:1px solid #fefeff;background:var(--bg)}.main-column,.right-column{min-width:0}.top-panels{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:16px}.panel{padding:17px 18px;background:var(--paper);border:1px solid #e9edf5;border-radius:var(--radius);box-shadow:0 2px 5px #27365302}h2{font-size:16px;font-weight:650;letter-spacing:.5px;line-height:1.5;margin:0}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:12px}.section-title>button,.section-title select{font-size:10px;letter-spacing:.2px;color:var(--muted);display:flex;align-items:center;gap:3px;white-space:nowrap;border:0;background:none;line-height:1.5}.section-title>button:hover{color:var(--accent)}.section-title .icon{width:12px;height:12px}.current-book{display:flex;gap:20px}.cover{position:relative;overflow:hidden;border-radius:3px;box-shadow:2px 4px 7px #2030471c,inset 3px 0 3px #00000008;text-align:center;transition:transform .22s,box-shadow .22s}.cover:hover{transform:translateY(-4px);box-shadow:3px 9px 14px #20304724}.current{width:117px;height:174px;flex-shrink:0;background:#238ab8 url('assets/courage-landscape.svg') center/cover;color:#fff;border:1px solid #1a7ca9;display:flex;align-items:center;flex-direction:column;padding:15px 6px;isolation:isolate}.current:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 4px 0 4px #072b4938,inset -1px 0 #b4e5f84d}.book-en{font-family:Arial,sans-serif;font-size:6px;line-height:1.7;letter-spacing:1.6px;color:#ceecf7;opacity:.85}.current strong{font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:14px;font-weight:500;letter-spacing:.8px;margin-top:19px;white-space:nowrap;text-shadow:0 1px 2px #21526c33}.mountain{display:none}.progress-badge{position:absolute;right:7px;bottom:7px;border-radius:3px;padding:1px 7px;color:#366f8d;background:#f1fbffff;border:1px solid #b8dfef;font-size:9px;font-weight:600;line-height:1.3}.current-info{min-width:0;flex:1;padding-top:1px;display:flex;flex-direction:column}.tag{font-size:8px;letter-spacing:.5px;color:#6d81a7;background:#f2f5fb;border:1px solid #e8edf7;border-radius:3px;padding:1px 5px;align-self:flex-start}.current-info h3{font-size:18px;font-weight:650;line-height:1.4;letter-spacing:.3px;margin:7px 0 5px}.current-info p{font-size:11px;letter-spacing:.1px;color:var(--muted);margin:0}.current-info blockquote{font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:11px;line-height:1.9;letter-spacing:.4px;color:#66738b;margin:15px 0 12px;min-height:19px}.reading-progress{height:3px;background:#edf0f8;width:100%;border-radius:2px;overflow:hidden;margin-top:auto}.reading-progress span{display:block;width:42%;height:100%;background:linear-gradient(90deg,#89b7ff,#8b8bf4)}.current-info>small{font-size:8px;color:#8390a7;margin-top:5px;letter-spacing:.1px}.book-actions{display:flex;align-items:center;gap:9px;margin-top:12px}.book-actions button{font-size:10px;letter-spacing:.5px;padding:7px 13px;border-radius:4px;background:#f4f6fb;color:#53647e;white-space:nowrap;height:31px;display:inline-flex;align-items:center;gap:5px;justify-content:center}.book-actions .icon{width:12px;height:12px}.prompts{padding-bottom:14px;display:flex;flex-direction:column}.prompts .section-title{margin-bottom:13px}.prompt{display:flex;align-items:center;gap:8px;width:100%;height:33px;text-align:left;padding:0 9px;background:#f7f8fc;border:1px solid #f0f2f8;border-radius:4px;margin-bottom:5px;font-size:11px;color:#65718a}.prompt:hover{background:#eef1fd;border-color:#e3e8fc;color:#4b5e9b}.prompt>span:first-child{width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#bda7fb,#8f86e3);color:#fff;display:grid;place-items:center;flex-shrink:0}.prompt>span:first-child .icon{width:10px;height:10px;stroke-width:1.8}.prompt-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prompt i,.ask i{margin-left:auto;display:flex;flex-shrink:0;font-style:normal;color:#8793aa}.prompt i .icon{width:13px;height:13px}.ask{border:1px solid #eaf0f7;border-radius:4px;background:#fdfdff;display:flex;align-items:center;gap:9px;text-align:left;width:100%;height:32px;padding:0 9px;color:#8793aa;font-size:11px;margin-top:auto}.ask:hover{background:#f3f5ff}.ask .icon{width:15px;height:15px}.recommendations{margin-top:16px;padding:16px 18px 18px}.recommend-head{display:flex;align-items:center;gap:17px;min-height:27px}.recommend-head>h2{white-space:nowrap}.tabs{display:flex;align-items:center;justify-content:space-between;gap:2px;flex:1;min-width:0}.tabs button{position:relative;padding:5px 9px;white-space:nowrap;font-size:10px;color:#68768e;letter-spacing:.3px;border-radius:0;border-bottom:2px solid transparent;}.tabs button:hover{color:#536b9f;background:transparent;}.tabs button.active{color:#4a6194;background:transparent;box-shadow:none;border-bottom-color:currentColor;}.recommend-head>button{display:flex;align-items:center;gap:2px;font-size:10px;color:var(--muted);white-space:nowrap}.recommend-head>button .icon{width:13px;height:13px}.books{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px;padding:17px 5px 0}.book{display:block;min-width:0;text-align:left}.book .cover{height:143px;width:100%;padding:12px 7px 9px;display:flex;flex-direction:column;align-items:center;font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif}.book .cover:after{content:'';position:absolute;inset:0;border-radius:3px;border:1px solid #0000000a;border-left:4px solid #00000008;background:linear-gradient(90deg,#ffffff24,transparent 8%,transparent 97%,#0000000d);pointer-events:none}.book .cover small{font-family:Arial,sans-serif;font-size:5px;letter-spacing:.9px;line-height:1.8;opacity:.7;max-width:100%}.book .cover strong{font-size:14px;letter-spacing:.6px;line-height:1.8;margin-top:10px;white-space:nowrap}.book .art{display:flex;align-items:center;justify-content:center;flex:1;width:100%;min-height:0}.book .art svg{height:100%;max-height:80px;width:100%;display:block}.book .cover-0 .art{max-height:83px;margin-top:3px}.book .cover-1 .art{margin-top:5px}.book .cover-3>strong{font-size:20px;letter-spacing:5px;margin-left:5px}.book .cover-4{background:radial-gradient(ellipse at 50% 100%,#435b89,#25385b)!important}.book>strong{display:block;margin:10px 0 5px;color:var(--ink);font-size:13px;line-height:1.3;letter-spacing:.2px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book:hover>strong{color:#6478bc}.book>small{display:block;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px}#empty{font-size:12px;color:var(--muted);padding:30px 0;text-align:center}
.stats{padding:17px 17px 13px}.stats .section-title{margin-bottom:13px}.stats select{font-size:9px;color:#7a879d}.stats-body{display:flex;align-items:center;gap:13px}.ring{position:relative;flex-shrink:0;width:127px;height:127px;padding:0;transition:transform .2s}.ring:hover{transform:scale(1.02)}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke:#eef5f3;stroke-width:8}.ring circle.filled{stroke:#45ad93;stroke-dasharray:111 308;stroke-linecap:round}.ring>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--ink)}.ring b{font-size:22px;line-height:1.3;font-weight:650;letter-spacing:-.4px}.ring b small{font-size:15px}.ring>span>small{font-size:10px;color:#7a889d;letter-spacing:.5px}.numbers{flex:1;min-width:0}.numbers p{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:12px 0;font-size:11px;white-space:nowrap}.numbers p>span{display:flex;gap:7px;align-items:center;color:#7a879d}.numbers .icon{width:14px;height:14px;stroke-width:1.6;color:#8e9ab0}.numbers b{font-size:12px;font-weight:600}.numbers b small{font-size:9px;font-weight:500;margin-left:1px}.weekly{display:none;align-items:end;gap:12px;font-size:9px;color:#7e8ba0;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.weekly>div{display:flex;align-items:end;gap:6px;flex:1;height:23px;justify-content:center}.weekly i{width:8px;background:linear-gradient(#8dcbb9,#b3d8cc);border-radius:2px 2px 0 0}.weekly i:nth-child(6){background:#59b49b}.weekly b{font-size:8px;color:#4a9c85;font-weight:500;white-space:nowrap}.inspirations{margin-top:15px;padding:16px 17px 12px}.inspirations .section-title{margin-bottom:13px}.note-line{display:flex;align-items:center;gap:9px;text-align:left;width:100%;font-size:11px;line-height:1.5;color:#6e7b92;margin:9px 0;min-width:0}.note-line:before{content:'';width:5px;height:5px;border-radius:50%;background:#e8926d;box-shadow:0 0 0 3px #e8926d12;flex-shrink:0}.note-line:nth-child(2):before{background:#d4ba63;box-shadow:0 0 0 3px #d4ba6312}.note-line:nth-child(3):before{background:#89b48a;box-shadow:0 0 0 3px #89b48a12}.note-line:nth-child(4):before{background:#7b9cd7;box-shadow:0 0 0 3px #7b9cd712}.note-line>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-line>small{margin-left:auto;font-size:9px;color:#8e9ab0;white-space:nowrap}.note-line:hover{color:#536daf}.add-note{display:flex;align-items:center;gap:5px;font-size:9px;color:#8190ab;border-top:1px solid var(--line);width:100%;text-align:left;padding-top:10px;margin-top:10px}.add-note .icon{width:12px;height:12px}.quote-card{position:relative;display:block;margin-top:15px;width:100%;height:134px;padding:17px 17px 15px;text-align:left;color:#f0f3fa;border-radius:6px;overflow:hidden;background:linear-gradient(90deg,#1d3a609c,#2b476a15),url('assets/quiet-reading.opt-v1.webp') center/cover;border:1px solid #627d9b3b;box-shadow:inset 0 1px #ffffff20}.quote-card:hover{color:#fff}.quote-card>span{font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:12px;line-height:1.95;letter-spacing:.6px;text-shadow:0 1px 4px #18355355}.quote-card>small{display:block;font-size:8px;letter-spacing:.3px;color:#c2cfdf;margin-top:16px}.quote-card>i{position:absolute;right:16px;bottom:16px;border:1px solid #ecf1ff80;background:#e3ecff14;backdrop-filter:blur(5px);border-radius:50%;width:28px;height:28px;display:grid;place-items:center}.quote-card>i .icon{width:13px;height:13px;fill:#e4edff;stroke-width:1;transform:translateX(1px)}footer{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.5px;color:#8c99af;padding:15px 3px}footer i{font-style:normal;margin-left:5px;color:#9aa9cb}
dialog{width:min(600px,92vw);border:1px solid #e7eaf2;border-radius:9px;padding:0;color:var(--ink);box-shadow:0 25px 100px #08142b40;background:var(--paper)}dialog::backdrop{background:#0b14299c;backdrop-filter:blur(7px)}.modal-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:15px 22px;color:#7a86aa;font-size:11px;letter-spacing:1px}.modal-top button{font-size:24px}#modal-body{padding:25px}#modal-body h2{font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;font-size:24px;margin-bottom:20px}#modal-body p{font-size:13px;line-height:2;color:#778195}.modal-form{display:flex;gap:10px;margin-top:20px}.modal-form input,.modal-form textarea{width:100%;border:1px solid #e2e6f0;background:var(--bg);border-radius:4px;padding:12px;color:var(--ink)}.modal-form textarea{min-height:130px;resize:vertical}.modal-form button{padding:10px 20px;white-space:nowrap}.chat-log{height:240px;overflow:auto;background:var(--bg);padding:15px;border-radius:5px}.chat-log p{background:var(--paper);border-radius:4px;padding:10px 14px;max-width:92%;margin:0 0 12px}.chat-log p.user{margin-left:auto;background:#e9edff;color:#5c69a5!important}.reader-text{font-family:'Songti SC','Noto Serif SC',STSong,'SimSun',serif;line-height:2.3!important}.map-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.map-grid div{border:1px solid #dedff5;padding:17px;background:#f6f5ff;border-radius:4px}.quiet{background:#111e31;color:#f4ead9;text-align:center;padding:45px 20px;border-radius:6px}.quiet p{color:#d4d9e3!important}#toast{position:fixed;bottom:25px;left:calc(50% + 100px);transform:translateX(-50%) translateY(20px);background:#1c2942;color:#fff;padding:12px 22px;border-radius:5px;opacity:0;transition:.2s;pointer-events:none;z-index:20;font-size:12px}#toast.show{opacity:1;transform:translateX(-50%)}body.dark{--ink:#dce4f4;--paper:#1b2435;--bg:#121b2a;--muted:#8f9cb5;--line:#2b3447}.dark .panel{border-color:#29344a}.dark .prompt,.dark .ask,.dark .book-actions button{background:#222e43}.dark .tag{background:#273448}.dark .chat-log p.user{background:#344779}.dark .map-grid div{background:#27324a}.dark .reading-progress{background:#303b4f}.modal-top .icon{width:18px;height:18px}.modal-top button{display:grid;place-items:center;width:28px;height:28px;border-radius:4px}.modal-top button:hover{background:#f0f3fb}body.dark{--ink:#dce4f4;--paper:#1b2536;--bg:#131c2b;--muted:#a3b1c8;--line:#2b384d}.dark .panel{border-color:#2b364a}.dark .tag{background:#293852;border-color:#3b4d6c;color:#becbeb}.dark .prompt,.dark .ask,.dark .book-actions button{background:#243146;border-color:#2b3b55;color:#c0cde1}.dark .tabs button{color:#afbdd3}.dark .tabs button.active{color:#d8e6ff;background:transparent;box-shadow:none;border-bottom-color:currentColor;}.dark .map-grid div{background:#27324a}.dark .chat-log p.user{background:#344779}.dark .reading-progress{background:#34425a}.dark .current-info p,.dark .current-info blockquote,.dark .numbers p>span,.dark .note-line{color:#abbad2}.dark .ring circle{stroke:#2b3d48}.dark .ring circle.filled{stroke:#57bda4}.dark .modal-top button:hover{background:#2b3b54}
@media(min-width:1650px){:root{--sidebar:248px}.sidebar{padding:29px 21px 19px}.brand{margin-bottom:24px;font-size:var(--sidebar-brand-size)}.mark{width:37px;height:37px}nav button{height:42px;font-size:var(--sidebar-nav-size)}.spaces{margin-top:25px;padding-top:19px}#spaces button{min-height:37px;font-size:var(--sidebar-space-size)}.hero{min-height:clamp(470px,46vh,555px)}header{height:98px;padding:26px 38px}.search{height:47px}.search input{font-size:13px}.hero-copy{margin:3px 0 0 46px}h1{font-size:62px}h1>span{font-size:46px}.hero-copy>p{font-size:17px;margin:14px 0 20px}.eyebrow{font-size:8px;margin-bottom:16px}.hero-actions button{height:47px;font-size:15px}.hero-actions .primary{min-width:185px}.features{margin-left:37px;margin-right:37px;padding:19px 0 21px;gap:30px}.feature-icon{height:47px;width:47px}.features b{font-size:15px}.features small{font-size:11px}.hero-note{top:245px;font-size:18px}.workspace{grid-template-columns:minmax(0,1fr) 354px;padding:23px 27px 0;gap:21px}.top-panels{gap:19px}.panel{padding:20px 21px}.section-title{margin-bottom:18px}h2{font-size:17px}.section-title>button{font-size:11px}.current-book{gap:23px}.current{height:197px;width:136px}.current strong{font-size:17px}.book-en{font-size:7px}.current-info h3{font-size:23px;margin-top:10px}.current-info p{font-size:12px}.current-info blockquote{font-size:13px;margin-top:23px}.current-info>small{font-size:9px}.book-actions button{font-size:12px;height:35px;padding:8px 18px}.prompt{font-size:13px;height:38px;margin-bottom:6px}.ask{font-size:12px;height:37px}.recommendations{padding:20px 22px;margin-top:20px}.tabs button{font-size:12px;padding:6px 12px;border-radius:0;border-bottom:2px solid transparent;}.books{gap:27px;padding-top:22px}.book .cover{height:168px;padding-top:15px}.book .cover strong{font-size:17px;margin-top:15px}.book .cover small{font-size:6px}.book .art svg{max-height:95px}.book>strong{font-size:14px;margin-top:13px}.book>small{font-size:11px}.ring{width:143px;height:143px}.numbers p{font-size:12px;margin:14px 0}.numbers b{font-size:14px}.numbers b small{font-size:11px}.weekly{padding-top:15px;font-size:10px}.note-line{font-size:12px;margin:14px 0}.note-line>small{font-size:10px}.inspirations{padding-top:18px;margin-top:19px}.add-note{font-size:11px}.quote-card{height:151px;margin-top:19px;padding:21px}.quote-card>span{font-size:14px}.quote-card>small{font-size:10px}.buddy b{font-size:14px}.buddy small{font-size:9px}.buddy button{font-size:12px;height:33px}.side-quote{font-size:12px}.tag{font-size:9px}}
@media(max-width:1250px){:root{--sidebar:195px}.sidebar{padding-left:13px;padding-right:13px}.brand{font-size:var(--sidebar-brand-size);margin-left:9px;gap:9px}.mark{width:38px}nav button{padding:0 13px;font-size:var(--sidebar-nav-size);gap:13px}.buddy{padding:11px 8px;gap:7px}.buddy small{font-size:7px}.side-quote{font-size:9px;margin-left:9px}.workspace{grid-template-columns:minmax(0,1fr) 285px;gap:13px;padding:17px 17px 0}.top-panels{grid-template-columns:minmax(0,1fr)}.prompts{display:none}.current{width:122px;height:173px}.current-info blockquote{font-size:12px}.tabs button:nth-child(n+4){display:none}.books{gap:15px}.book .cover{height:133px}.book .cover strong{font-size:13px}.hero-copy{margin-left:30px}h1{font-size:41px}h1>span{font-size:30px}.hero-note{font-size:13px;right:5%}.features{margin-left:24px;margin-right:22px;gap:8px}.feature-icon{width:36px;height:38px}.feature-icon .icon{width:24px;height:24px}.features button{gap:9px}.features small{font-size:8px}.features i{display:none}.stats-body{gap:8px}.ring{width:112px;height:112px}.numbers p{font-size:9px}.numbers .icon{width:12px;height:12px}.numbers p>span{gap:5px}.stats{padding-left:14px;padding-right:14px}.book:nth-child(6){display:none}.books{grid-template-columns:repeat(5,minmax(0,1fr))}.hero{min-height:435px}.hero-copy>p{font-size:12px}.hero-actions button{height:42px}.side-bottom{letter-spacing:1.5px}}
@media(max-width:1000px){:root{--sidebar:76px}.sidebar{padding:23px 10px 15px;overflow:clip}.brand{margin:0 0 25px 5px}.mark{width:43px;height:42px}.brand>span,.nav-label,.spaces,.buddy,.side-quote,.side-bottom{display:none}nav button{padding:0;justify-content:center;height:46px}nav button .icon{width:20px;height:20px}nav button.active{box-shadow:inset 0 0 0 1px #7897f130}.workspace{grid-template-columns:minmax(0,1fr) 268px;padding:16px 15px 0;gap:13px}.account{gap:12px}.account>div:not(.avatar),.account>span{display:none}.hero-copy{margin-left:30px}.hero-note{right:6%;top:220px}.features b{font-size:12px}.features small{font-size:8px}.features{gap:7px}.feature-icon{width:34px;height:36px}.features button{padding:0;gap:8px}.hero{min-height:435px}.book .cover{height:129px}.book .cover small{font-size:4px}.book .cover strong{font-size:12px}.books{gap:13px}.current-book{gap:19px}.current-info h3{font-size:18px}.tag{font-size:8px}}
@media(max-width:790px){.workspace{grid-template-columns:1fr;padding:15px 16px 0}.right-column{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}.right-column .inspirations{margin:0}.quote-card{grid-column:1/-1;height:150px;margin:0;background-position:center 40%;background-size:cover}.stats{padding:17px 15px}.stats-body{gap:10px}.ring{width:115px;height:115px}.numbers p{font-size:9px}.weekly{gap:9px}.weekly i{width:6px}.weekly>div{gap:4px}.hero-note{display:none}.hero-copy{margin-top:13px}.hero{min-height:435px;background-position:59% center}.hero:before{background:linear-gradient(90deg,#0d1526ed 1%,#101b2cb0 49%,#101b2c20 100%),linear-gradient(0deg,#101b30c9,transparent 30%)}.books{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.book:nth-child(6){display:block}.book .cover{height:130px}.book .cover strong{font-size:12px}.book .cover small{font-size:4px}.book>strong{font-size:11px}.book>small{font-size:8px}.tabs button:nth-child(4){display:block}.current-book{gap:23px}.current{width:127px;height:180px}.current-info blockquote{font-size:12px}.current-info p{font-size:11px}.current-info>small{font-size:9px}.book-actions button{font-size:11px;height:33px}.features{gap:10px}.features small{font-size:7px}.features b{font-size:11px}.feature-icon{width:31px;height:33px}.feature-icon .icon{width:21px;height:21px}.features button{gap:7px}}
@media(max-width:600px){:root{--sidebar:58px}.sidebar{padding:18px 6px}.brand{margin:0 0 21px 1px}.mark{width:36px;height:36px}nav{gap:7px}nav button{height:42px}nav button .icon{width:19px;height:19px}header{height:71px;padding:15px 16px;gap:9px}.search{width:100%;height:38px;gap:8px;padding:0 10px}.search input{font-size:10px;letter-spacing:0}.search .icon{width:16px;height:16px}.search kbd{display:none}.account{gap:0}.account>button{height:30px;width:24px;color:#e1e9f7}.account .icon{width:18px;height:18px}.account .avatar,.account #notifications{display:none}.hero{min-height:469px;background-position:82% center}.hero:before{background:linear-gradient(90deg,#0d1526eb,#101b2ca6 58%,#101b2c35),linear-gradient(0deg,#101b30e0,transparent 70%)}.hero-copy{margin:26px 17px 0;max-width:calc(100% - 30px)}.eyebrow{font-size:6px;letter-spacing:1.7px;margin-bottom:14px}h1{font-size:30px;line-height:1.6;letter-spacing:0}h1>span{font-size:22px;letter-spacing:-.3px}h1 em{margin:0 3px;font-size:1.28em}.hero-copy>p{font-size:10px;line-height:2;margin:16px 0 21px;letter-spacing:0}.hero-actions{gap:8px}.hero-actions button{height:41px;padding:0 13px;font-size:11px;gap:7px;letter-spacing:.5px}.hero-actions .primary{min-width:126px}.hero-actions .icon{width:15px;height:15px}.features{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 13px;margin-left:17px;margin-right:17px;padding:16px 0 19px}.features button{gap:9px}.feature-icon{width:32px;height:33px}.features b{font-size:11px}.features small{font-size:7px;letter-spacing:0;margin-top:4px}.workspace{padding:12px 10px 0;gap:12px}.top-panels{gap:12px}.panel{padding:15px 14px}.section-title{margin-bottom:15px}h2{font-size:14px}.section-title>button{font-size:9px}.current-book{gap:16px}.current{width:102px;height:158px;padding-top:13px}.book-en{font-size:5px}.current strong{font-size:12px;letter-spacing:1px;margin-top:18px}.current-info h3{font-size:16px;margin:7px 0 6px}.current-info p{font-size:9px;line-height:1.7}.tag{font-size:7px}.current-info blockquote{font-size:10px;letter-spacing:0;line-height:1.8;margin:11px 0}.current-info>small{font-size:7px}.book-actions{margin-top:9px;gap:7px}.book-actions button{height:31px;padding:7px 10px;font-size:9px;letter-spacing:0}.book-actions .icon{width:11px;height:11px}.reading-progress{margin-top:0;flex-shrink:0}.prompts{display:flex;padding:15px 14px}.prompt{font-size:10px;height:35px;padding:0 8px;margin-bottom:6px}.ask{margin-top:7px;height:35px}.recommendations{margin-top:12px;padding:15px 14px 17px}.recommend-head{flex-wrap:wrap;gap:11px}.recommend-head>button{margin-left:auto;font-size:9px}.tabs{flex:0 0 100%;order:3;gap:3px;justify-content:space-between}.tabs button{font-size:9px;padding:5px 7px;letter-spacing:0;border-radius:0;border-bottom:2px solid transparent;}.tabs button:nth-child(5),.tabs button:nth-child(6){display:none}.books{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px;padding:17px 1px 0}.book:nth-child(6){display:block}.book .cover{height:135px;padding:11px 6px 8px}.book .cover small{font-size:4px;letter-spacing:.6px}.book .cover strong{font-size:12px;letter-spacing:.3px;margin-top:11px}.book .art svg{max-height:74px}.book .cover-3>strong{font-size:18px;letter-spacing:3px}.book>strong{font-size:11px;margin:9px 0 4px}.book>small{font-size:8px;letter-spacing:0}.right-column{grid-template-columns:minmax(0,1fr);gap:12px}.stats{padding:16px}.stats-body{justify-content:center;gap:20px}.ring{width:130px;height:130px}.numbers{max-width:175px}.numbers p{font-size:10px;margin:13px 0}.numbers b{font-size:12px}.numbers .icon{width:14px;height:14px}.weekly{gap:12px;margin-top:12px}.weekly>div{justify-content:flex-end;gap:8px}.weekly i{width:9px}.inspirations{padding:16px}.note-line{font-size:11px;margin:15px 0}.quote-card{grid-column:auto;height:148px;padding:19px 17px;background-position:center;background-size:cover}.quote-card>span{font-size:12px}.quote-card>small{font-size:8px}.right-column .section-title>button{font-size:9px}footer{font-size:8px;line-height:1.8;padding:13px 3px}footer span:last-child{display:none}.modal-form{flex-wrap:wrap}#modal-body{padding:20px}.modal-top{padding:12px 18px}#toast{left:50%;max-width:85vw;white-space:nowrap;font-size:11px}}
@media(max-width:370px){h1{font-size:27px}h1>span{font-size:19px}.hero-copy{margin-left:14px;margin-right:12px}.hero-actions button{font-size:10px;padding:0 10px}.hero-actions .primary{min-width:112px}.current-book{gap:12px}.current{width:91px;height:153px}.current-info h3{font-size:14px}.current-info blockquote{font-size:9px}.book-actions{gap:5px}.book-actions button{padding:6px 8px}.books{gap:19px 10px}.book .cover strong{font-size:10px}.tabs button{font-size:8px;padding:5px 6px;border-radius:0;border-bottom:2px solid transparent;}.stats-body{gap:10px}.ring{width:118px;height:118px}}
@media(max-height:850px) and (min-width:1001px){.sidebar{padding-top:21px}.brand{margin-bottom:22px}nav{gap:3px}nav button{height:39px}.spaces{margin-top:16px;padding-top:12px}#spaces button{min-height:29px}.buddy{margin-top:24px}.side-quote{margin-top:17px;font-size:9px}.side-bottom{padding-top:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* The navigation stays in the viewport; only the reading workspace scrolls. */
.sidebar{height:100vh;height:100dvh;overflow:clip;overscroll-behavior:contain}
.sidebar>.brand,.sidebar>nav,.sidebar>.spaces,.sidebar>.buddy{flex-shrink:0}
@media(max-height:950px) and (min-width:1001px){
 .sidebar .side-quote{display:none}
 .sidebar .side-bottom{margin-top:15px}
 .sidebar .buddy{margin-top:auto}
}
@media(max-height:780px) and (min-width:1001px){
 .sidebar{padding-top:18px;padding-bottom:14px}
 .sidebar .brand{margin-bottom:19px}
 .sidebar nav{gap:2px}
 .sidebar nav button{height:37px}
 .sidebar .spaces{margin-top:15px;padding-top:11px}
 .sidebar #spaces button{min-height:28px}
 .sidebar .space-head{margin-bottom:7px}
 .sidebar .buddy{padding:10px;gap:6px}
 .sidebar .side-bottom{display:none}
}
@media(max-height:680px) and (min-width:1001px){
 .sidebar{padding-top:15px;padding-bottom:12px}
 .sidebar .brand{margin-bottom:14px;font-size:var(--sidebar-brand-size)}
 .sidebar .mark{height:35px;width:36px}
 .sidebar nav button{height:32px;font-size:var(--sidebar-nav-size)}
 .sidebar nav .icon{height:17px;width:17px}
 .sidebar .spaces{margin-top:11px;padding-top:9px}
 .sidebar #spaces button{min-height:22px;font-size:var(--sidebar-space-size)}
 .sidebar .space-head{margin-bottom:5px}
 .sidebar .buddy{padding:9px;gap:5px}
 .sidebar .buddy-face{width:31px;height:31px}
 .sidebar .buddy b{font-size:11px}
 .sidebar .buddy small{font-size:7px;margin-top:3px}
 .sidebar .buddy button{height:28px;font-size:10px}
}
@media(max-height:580px) and (min-width:1001px){
 .sidebar .spaces{display:none}
 .sidebar nav button{height:34px}
 .sidebar .buddy{margin-top:auto}
}
@media(max-height:540px) and (max-width:1000px){
 .sidebar{padding-top:12px;padding-bottom:10px}
 .sidebar .brand{margin-bottom:12px}
 .sidebar nav{gap:2px}
 .sidebar nav button{height:35px}
}
@media(max-height:430px){
 .sidebar .brand{margin-bottom:9px}
 .sidebar nav{gap:1px}
 .sidebar nav button{height:30px}
 .sidebar .buddy{display:none}
}

/* A permanent header control restores the sidebar even when it is fully hidden. */
.hero header{gap:14px}
.sidebar-toggle{display:grid;place-items:center;flex:0 0 32px;width:32px;height:34px;border:1px solid #d8e1ff1c;border-radius:4px;color:#c3cfe5;background:#c6d8ff06}
.sidebar-toggle:hover{color:#f2f6ff;background:#d6e3ff13;border-color:#b5c8f53b}
.sidebar-toggle .icon{width:19px;height:19px}
.hero header .search{margin-right:auto;min-width:0}
body.sidebar-collapsed .sidebar{transform:translateX(-100%);visibility:hidden}
body.sidebar-collapsed main{margin-left:0}
@media(max-width:600px){
 .hero header{gap:8px;padding-left:14px;padding-right:14px}
 .sidebar-toggle{flex-basis:29px;width:29px;height:32px}
 .sidebar-toggle .icon{width:18px;height:18px}
 .hero header .search{width:auto;flex:1;padding-left:9px;padding-right:9px}
 .hero header .account{flex-shrink:0}
}
/* The reading workspace has one natural page scroll; the companion uses no grid track. */
.sidebar .side-quote{margin-top:auto}
.sidebar .side-bottom{flex-shrink:0}
@media(max-height:950px) and (min-width:1001px){.sidebar .side-bottom{margin-top:auto}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.floating-companion{position:fixed;width:86px;height:119px;right:14px;bottom:14px;z-index:15;user-select:none;-webkit-user-select:none}
.companion-launch{display:block;width:86px;height:104px;cursor:grab;touch-action:none;border-radius:8px;-webkit-tap-highlight-color:transparent}
.companion-launch:active{transform:none;cursor:grabbing}
.companion-character{display:block;width:86px;height:104px;overflow:visible;filter:drop-shadow(0 3px 6px #29487a20)}
.companion-caption{display:flex;align-items:center;justify-content:center;gap:5px;height:15px;color:#4e668f;font-size:9px;letter-spacing:.8px;text-shadow:0 1px #ffffff80;pointer-events:none}
.companion-caption i{height:4px;width:4px;border-radius:50%;background:#62bba7;box-shadow:0 0 0 2px #62bba718}
.companion-float{animation:companion-float 4s ease-in-out infinite;transform-origin:60px 80px}
.companion-eyes{animation:companion-blink 6.5s infinite;transform-box:fill-box;transform-origin:center}
.companion-right-arm{animation:companion-wave 10s ease-in-out infinite;transform-origin:82px 85px}
.companion-shadow{animation:companion-shadow 4s ease-in-out infinite;transform-origin:60px 141px}
.companion-tools{position:absolute;display:flex;align-items:center;justify-content:center;gap:2px;top:-27px;left:-3px;width:92px;height:27px;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s;z-index:2;border:1px solid #dfe7f2;border-radius:4px;background:#fffffff2;box-shadow:0 2px 8px #263b5c0d;backdrop-filter:blur(8px)}
.floating-companion:hover .companion-tools,.floating-companion:focus-within .companion-tools{opacity:1;visibility:visible;transform:none}
.companion-tools button{display:grid;place-items:center;width:27px;height:25px;border-radius:3px;color:#7183a3}
.companion-tools button:hover,.companion-tools button[aria-pressed=true]{background:#edf2fc;color:#6479bf}
.companion-tools .icon{height:12px;width:12px}
.companion-hint{position:absolute;right:90px;top:28px;white-space:nowrap;background:#fffffff5;border:1px solid #e1e7f2;border-radius:5px;padding:8px 11px;font-size:10px;letter-spacing:.2px;color:#687b9c;box-shadow:0 3px 12px #29446c0b;opacity:0;visibility:hidden;transform:translateX(4px);transition:opacity .15s,transform .15s;pointer-events:none}
.companion-hint:after{content:'';position:absolute;width:6px;height:6px;right:-4px;top:14px;border-right:1px solid #e1e7f2;border-top:1px solid #e1e7f2;transform:rotate(45deg);background:#fff}
.floating-companion:hover .companion-hint,.floating-companion:focus-within .companion-hint{opacity:1;visibility:visible;transform:none}
.floating-companion.near-left .companion-hint{left:90px;right:auto}
.floating-companion.near-left .companion-hint:after{left:-4px;right:auto;transform:rotate(-135deg)}
.floating-companion.near-top .companion-tools{top:auto;bottom:-29px}
.floating-companion.is-dragging .companion-hint,.floating-companion.is-dragging .companion-tools{opacity:0;visibility:hidden}
.floating-companion.is-dragging .companion-character{filter:drop-shadow(0 7px 9px #29487a30)}
.floating-companion.is-paused .companion-character *,.floating-companion.is-dragging .companion-character *{animation-play-state:paused}
.floating-companion.is-small{width:43px;height:45px}
.is-small .companion-launch{width:43px;height:45px;overflow:hidden;border-radius:50%;background:#e0edfc;box-shadow:0 2px 8px #29487a1c}
.is-small .companion-character{width:65px;height:81px;transform:translate(-11px,-8px)}
.is-small .companion-caption,.is-small .companion-shadow{display:none}
.is-small .companion-tools{left:auto;right:-1px}
.is-small .companion-hint{right:50px;top:5px}
.is-small.near-left .companion-hint{left:50px;right:auto}
.dark .companion-caption{color:#bbcbe2;text-shadow:0 1px #152031}
.dark .companion-tools,.dark .companion-hint{background:#202f46f2;border-color:#3a4c69;color:#bbcbe2}
.dark .companion-hint:after{background:#202f46;border-color:#3a4c69}
.dark .companion-tools button{color:#a9bbd6}
.dark .companion-tools button:hover,.dark .companion-tools button[aria-pressed=true]{background:#344968}
@keyframes companion-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes companion-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.12)}}
@keyframes companion-wave{0%,65%,90%,100%{transform:rotate(0)}70%,80%{transform:rotate(-75deg)}75%,85%{transform:rotate(-48deg)}}
@keyframes companion-shadow{0%,100%{transform:scaleX(1);opacity:.8}50%{transform:scaleX(.8);opacity:.45}}
@media(max-width:600px){.floating-companion{width:72px;height:101px}.companion-launch{width:72px;height:87px}.companion-character{width:72px;height:87px}.companion-caption{font-size:8px;height:14px}.companion-tools{left:-8px}.companion-hint{right:76px;font-size:9px;padding:7px 9px;max-width:200px}.floating-companion.near-left .companion-hint{left:76px}.floating-companion.is-small{width:43px;height:45px}.is-small .companion-launch{width:43px;height:45px}.is-small .companion-character{width:65px;height:81px}.is-small .companion-tools{left:auto;right:-1px}.is-small .companion-hint{right:50px}.is-small.near-left .companion-hint{left:50px}}
@media(prefers-reduced-motion:reduce){.companion-character *{animation:none!important}.companion-hint,.companion-tools{transition:none!important}}
.floating-companion.is-small.near-left .companion-tools{left:-2px;right:auto}

/* Sidebar labels use a stable scale; viewport height changes spacing only. */
.sidebar nav button{font-weight:400;line-height:1.5}
.sidebar nav button.active{font-weight:500}
.sidebar #spaces button{line-height:1.5;letter-spacing:.1px}
.sidebar .space-head{font-weight:500;line-height:1.5;letter-spacing:.5px}
@media(min-width:1001px){.sidebar .nav-icon>.icon{width:18px;height:18px;stroke-width:1.65}.sidebar .brand{gap:10px}.sidebar .brand small{margin-top:6px}}
/* Collapse means a persistent icon rail, with the control inside navigation. */
.sidebar-head{display:flex;align-items:center;gap:10px;flex-shrink:0;min-height:43px;margin-bottom:25px}
.sidebar-head .sidebar-toggle{flex:0 0 26px;width:26px;height:30px;border-color:transparent;background:transparent;color:#9eacc5}
.sidebar-head .sidebar-toggle:hover{border-color:#9ab2e42e;background:#ffffff09;color:#e3ecff}
.sidebar-head .brand{display:flex;flex:1;min-width:0;margin:0;gap:9px;font-size:24px}
.sidebar-head .brand .mark{width:33px;height:35px}
.sidebar-head .brand>span{display:block;min-width:0}
.sidebar-head .brand small{font-size:9px;letter-spacing:2px;margin-top:6px;white-space:nowrap}
.sidebar-scrim{display:none}
body.sidebar-collapsed{--sidebar:76px}
body.sidebar-collapsed .sidebar{padding:20px 10px 15px;transform:none;visibility:visible}
body.sidebar-collapsed main{margin-left:var(--sidebar)}
body.sidebar-collapsed .sidebar-head{flex-direction:column;gap:11px;min-height:0;margin-bottom:20px}
body.sidebar-collapsed .sidebar-head .sidebar-toggle{flex:none;width:28px;height:28px}
body.sidebar-collapsed .sidebar-head .brand{flex:none;margin:0;gap:0;justify-content:center}
body.sidebar-collapsed .sidebar-head .brand .mark{width:38px;height:38px}
body.sidebar-collapsed .sidebar-head .brand>span,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .sidebar .spaces,body.sidebar-collapsed .sidebar .side-quote,body.sidebar-collapsed .sidebar .side-bottom{display:none}
body.sidebar-collapsed .sidebar nav{gap:5px}
body.sidebar-collapsed .sidebar nav button{justify-content:center;gap:0;padding:0;width:100%;height:43px}
body.sidebar-collapsed .sidebar nav button.active{box-shadow:inset 0 0 0 1px #7897f130}
body.sidebar-collapsed .sidebar .nav-icon>.icon{width:20px;height:20px}
@media(min-width:1001px) and (max-width:1250px){body:not(.sidebar-collapsed) .sidebar-head{gap:7px}body:not(.sidebar-collapsed) .sidebar-head .brand{font-size:22px;gap:7px}body:not(.sidebar-collapsed) .sidebar-head .brand .mark{width:29px;height:32px}body:not(.sidebar-collapsed) .sidebar-head .brand small{font-size:8px;letter-spacing:1.5px}}
@media(max-width:1000px){
 body:not(.sidebar-collapsed){--sidebar:224px}
 body:not(.sidebar-collapsed) .sidebar{padding:22px 18px 16px;box-shadow:12px 0 35px #06112430}
 body:not(.sidebar-collapsed) main,body.sidebar-collapsed main{margin-left:76px}
 body:not(.sidebar-collapsed) .sidebar .nav-label{display:inline}
 body:not(.sidebar-collapsed) .sidebar nav button{justify-content:flex-start;padding:0 14px;gap:14px;height:40px}
 body:not(.sidebar-collapsed) .sidebar .spaces{display:block}
 body:not(.sidebar-collapsed) .sidebar-scrim{display:block;position:fixed;inset:0;left:var(--sidebar);z-index:4;background:#08152b70;cursor:default}
}
@media(max-width:600px){body.sidebar-collapsed{--sidebar:58px}body.sidebar-collapsed .sidebar{padding:15px 6px}body.sidebar-collapsed .sidebar-head{gap:10px;margin-bottom:18px}body.sidebar-collapsed .sidebar-head .brand .mark{width:33px;height:34px}body.sidebar-collapsed .sidebar nav button{height:40px}body.sidebar-collapsed .sidebar nav{gap:5px}body:not(.sidebar-collapsed) main,body.sidebar-collapsed main{margin-left:58px}body.sidebar-collapsed .sidebar .nav-icon>.icon{width:19px;height:19px}}
@media(max-height:680px){.sidebar-head{margin-bottom:14px}.sidebar-head .brand{margin:0}.sidebar-head .brand .mark{height:32px}body.sidebar-collapsed .sidebar{padding-top:12px}body.sidebar-collapsed .sidebar-head{gap:7px;margin-bottom:13px}body.sidebar-collapsed .sidebar nav{gap:2px}body.sidebar-collapsed .sidebar nav button{height:36px}}
@media(max-height:580px){body:not(.sidebar-collapsed) .sidebar .spaces{display:none}}
@media(max-height:430px){body.sidebar-collapsed .sidebar-head{flex-direction:row;gap:2px;justify-content:center;margin-bottom:10px}body.sidebar-collapsed .sidebar-head .brand .mark{width:25px;height:28px}body.sidebar-collapsed .sidebar-head .sidebar-toggle{width:24px;height:26px}body.sidebar-collapsed .sidebar nav button{height:30px}body.sidebar-collapsed .sidebar nav{gap:1px}}
/* Book video stays inside the reading dialog and never starts without a click. */
dialog.reading-modal{width:min(820px,calc(100vw - 32px));max-height:90vh;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain}
.reading-modal .modal-top{position:sticky;top:0;z-index:2;background:var(--paper)}
.reading-modal #modal-body{padding:22px 26px 20px}
.reader-heading{margin-bottom:17px}
.reader-kicker{display:block;color:#8995ab;font-size:9px;letter-spacing:2px;margin-bottom:8px}
#modal-body .reader-heading h2{font-size:27px;margin:0 0 5px;line-height:1.4}
#modal-body .reader-heading .reader-author{font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.book-video{margin:0 0 21px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--paper)}
.book-video video{display:block;aspect-ratio:16/9;width:100%;height:auto;object-fit:contain;background:#111b2b;color:#f3eee3}
.video-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--bg);font-size:10px;color:var(--muted)}
.video-meta>span:first-child{display:flex;gap:6px;align-items:center;color:var(--ink);font-weight:500}
.video-meta .icon{width:12px;height:12px}
.video-meta b{font-weight:500}
#modal-body .video-error{padding:6px 12px;color:#a76a52;font-size:11px}
.reader-summary h3{font-size:14px;margin:0 0 8px;font-weight:600}
#modal-body .reader-summary p{font-size:12px;line-height:1.9;margin:0 0 12px;color:var(--muted)}
.reader-takeaways{list-style:none;padding:0;margin:10px 0 14px;display:grid;gap:7px;font-size:12px;line-height:1.8;color:var(--muted)}
.reader-takeaways li{padding-left:13px;position:relative}
.reader-takeaways li:before{content:'';position:absolute;left:0;top:9px;width:4px;height:4px;background:#889cf0;border-radius:50%}
.reader-takeaways b{font-weight:500;color:var(--ink)}
#modal-body .video-source{font-size:10px;color:#8794aa;line-height:1.7}
.video-source a{color:#7487bc;margin-left:7px}
.video-source a:hover{text-decoration:underline}
.book-actions.reader-actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:15px;margin-top:17px;gap:9px}
.reader-actions button{height:34px;padding:8px 14px;font-size:11px}
@media(max-width:600px){dialog.reading-modal{width:calc(100vw - 20px);max-height:93dvh}.reading-modal #modal-body{padding:17px 16px}.reading-modal .modal-top{padding:11px 16px}#modal-body .reader-heading h2{font-size:24px}.reader-heading{margin-bottom:14px}.video-meta{padding:8px 9px;font-size:9px;gap:5px}.reader-summary h3{font-size:13px}#modal-body .reader-summary p,.reader-takeaways{font-size:11px}.video-source a{display:block;margin:3px 0 0}.reader-actions button{font-size:10px;padding:7px 11px}}

/* 小咖：带柔光的悬浮圆球 */
.floating-companion{height:104px}
.companion-launch,.companion-character{width:86px;height:86px}
.companion-character{filter:drop-shadow(0 0 7px #719aff88) drop-shadow(0 0 17px #7773ff55)}
.companion-float{transform-origin:60px 57px}
.floating-companion.is-dragging .companion-character{filter:drop-shadow(0 0 12px #779cffaa)}
.is-small .companion-launch{width:43px;height:45px;overflow:visible;background:transparent;box-shadow:none}
.is-small .companion-character{width:43px;height:43px;transform:none}
@media(max-width:600px){.floating-companion{height:88px}.companion-launch,.companion-character{width:72px;height:72px}.floating-companion.is-small{height:45px}.is-small .companion-launch{width:43px;height:45px}.is-small .companion-character{width:43px;height:43px;transform:none}}

/* Keep the reading workspace visible in the first screen. */
@media(min-width:1001px){
 body:not(.sidebar-collapsed){--sidebar:216px}
 .hero{min-height:clamp(370px,42vh,440px);background-position:center 52%}
 .hero header{height:74px;padding:16px 28px}
 .search{height:40px;max-width:620px}.search input{font-size:12px}
 .hero-copy{margin:0 0 0 32px;max-width:560px;padding-bottom:20px}
 .eyebrow{font-size:7px;margin-bottom:10px;letter-spacing:2.4px}
 h1{font-size:clamp(36px,2.65vw,48px);line-height:1.32}
 h1>span{font-size:clamp(26px,1.9vw,34px)}
 .hero-copy>p{font-size:13px;line-height:1.8;margin:12px 0 16px}
 .hero-actions button{height:39px;font-size:12px;padding:0 18px}
 .hero-actions .primary{min-width:155px}
 .features{margin-left:28px;margin-right:28px;padding:13px 0 14px;gap:18px}
 .feature-icon{width:36px;height:38px}.feature-icon .icon{width:24px;height:24px}
 .features b{font-size:13px}.features small{font-size:10px}
 .hero-note{top:43%;right:7%;font-size:14px}
 .workspace{grid-template-columns:minmax(0,1fr) minmax(280px,23%);gap:18px;padding:20px 24px 0}
 .top-panels{gap:18px}.panel{padding:18px}
 .section-title{margin-bottom:16px}h2{font-size:16px}
 .sidebar-head .brand{font-size:23px}
 .current{width:120px;height:174px}.current-book{gap:18px}
 .current-info h3{font-size:21px}.current-info blockquote{font-size:12px;margin:17px 0}
 .prompt{font-size:12px;height:35px}.ask{height:35px}
 .recommendations{margin-top:18px}.books{padding-top:17px;gap:22px}
 .book .cover{height:150px}.book>strong{font-size:12px}.book>small{font-size:10px}
 .ring{width:120px;height:120px}.numbers p{font-size:10px}.numbers b{font-size:12px}
}
@media(min-width:1001px) and (max-width:1250px){.hero-note{display:none}.workspace{grid-template-columns:minmax(0,1fr) 280px}.hero-copy{margin-left:28px}.features small{font-size:8px}}
