:root{color:#24313b;background:#f4f7fa;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(245,139,67,.34);outline-offset:2px}.centered,.login-page{min-height:100vh;display:grid;place-content:center;gap:12px;padding:24px;text-align:center}.centered button{min-height:40px;border:1px solid #d9dfe4;border-radius:20px;padding:0 18px;color:#52616d;background:#fff}.login-page{background:radial-gradient(circle at 20% 15%,#fff4dd,transparent 34%),linear-gradient(135deg,#f8f5ef,#eee8df)}.login-card{width:min(390px,calc(100vw - 32px));padding:38px;text-align:left;background:#fffffff0;border:1px solid #e9dfd3;border-radius:24px;box-shadow:0 24px 80px #5b3d1f24}.login-card h1{margin:18px 0 5px;font-size:28px}.login-card p{margin:0 0 26px;color:#80766c}.login-card label{display:grid;gap:7px;margin:15px 0;font-size:13px;font-weight:650}.login-card input{padding:12px 14px;border:1px solid #dcd2c8;border-radius:11px;outline:none;background:#fff}.login-card input:focus{border-color:#e58032;box-shadow:0 0 0 3px #e580321f}.brand-mark{width:46px;height:46px;display:inline-grid;place-content:center;border-radius:15px;color:#fff;background:linear-gradient(135deg,#ffae45,#ef6f31);box-shadow:0 8px 20px #ef6f313d;font-size:24px;font-weight:900}.primary-button{width:100%;margin-top:10px;padding:13px;border:0;border-radius:11px;color:#fff;background:#e8782f;font-weight:750}.primary-button:disabled{opacity:.55}.form-error{padding:10px 12px;border:1px solid #ffd1cd;border-radius:10px;color:#b52b2b;background:#fff0ef}.catalog-page{min-height:100vh;background:#f4f7fa}.catalog-header{position:sticky;top:0;z-index:20;height:72px;display:flex;align-items:center;gap:28px;padding:0 34px;border-bottom:1px solid #e7ecf0;background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.catalog-brand{min-width:190px;display:flex;align-items:center;gap:11px}.catalog-brand>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,#ffa25a,#f17141);box-shadow:0 8px 18px #f1714138;font-size:19px;font-weight:900}.catalog-brand div{display:flex;flex-direction:column;gap:2px}.catalog-brand strong{color:#263641;font-size:18px}.catalog-brand small{color:#9aa7b0;font-size:10px;letter-spacing:.12em}.catalog-search{width:min(520px,45vw);height:42px;display:flex;align-items:center;gap:7px;margin:0 auto;padding:0 15px;border:1px solid #e4e9ed;border-radius:22px;background:#f7f9fb}.catalog-search>span{color:#8e9ba5;font-size:24px;line-height:1;transform:rotate(-15deg)}.catalog-search input{min-width:0;flex:1;border:0;outline:0;color:#34444f;background:transparent}.catalog-search input::placeholder{color:#a6b0b7}.release-pill{height:34px;display:flex;flex:none;align-items:center;gap:8px;padding:0 13px;border:1px solid #e5e9ec;border-radius:17px;color:#687783;background:#fff;font-size:12px}.release-pill>span{width:7px;height:7px;border-radius:50%;background:#56bd8b;box-shadow:0 0 0 4px #56bd8b1f}.release-pill>span.syncing{background:#f4a452;box-shadow:0 0 0 4px #f4a45224;animation:storage-pulse 1.4s ease-in-out infinite}@keyframes storage-pulse{50%{opacity:.4}}.catalog-layout{width:min(1560px,100%);display:grid;grid-template-columns:230px minmax(0,1fr);margin:0 auto}.subject-nav{position:sticky;top:72px;height:calc(100vh - 72px);overflow-y:auto;padding:28px 18px 30px;border-right:1px solid #e7ecf0;background:#fafcfdad}.subject-nav h2{margin:0 10px 16px;color:#8997a1;font-size:12px;font-weight:650;letter-spacing:.08em}.subject-nav nav{display:grid;gap:5px}.subject-nav button{min-height:46px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:5px 10px;border:0;border-radius:12px;color:#63727d;background:transparent;text-align:left}.subject-nav button:hover{background:#f0f4f6}.subject-nav button.active{color:#e86f35;background:#fff0e8;font-weight:700}.subject-nav button>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;color:#87949e;background:#edf2f5;font-size:12px}.subject-nav button.active>span{color:#fff;background:linear-gradient(145deg,#ffa25a,#ee7440)}.subject-nav button small{color:#aab4bb;font-size:10px;font-weight:500}.catalog-content{min-width:0;padding:34px clamp(22px,4vw,58px) 70px}.catalog-toolbar{display:flex;align-items:flex-end;gap:24px}.catalog-toolbar>div p{margin:0 0 3px;color:#f08143;font-size:12px;font-weight:700;letter-spacing:.08em}.catalog-toolbar h1{margin:0;color:#263742;font-size:28px}.catalog-toolbar label{display:grid;gap:7px;margin-left:auto;color:#8997a1;font-size:11px}.catalog-toolbar select{min-width:min(360px,40vw);height:42px;padding:0 36px 0 13px;border:1px solid #dfe6ea;border-radius:11px;outline:none;color:#52616d;background:#fff}.catalog-summary{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr)) minmax(240px,1.7fr);gap:12px;margin:28px 0}.catalog-summary article{min-height:88px;display:flex;flex-direction:column;justify-content:center;padding:15px 18px;border:1px solid #e8ecef;border-radius:15px;background:#fffc;box-shadow:0 3px 14px #44556109}.catalog-summary span{color:#92a0aa;font-size:11px}.catalog-summary strong{margin-top:4px;color:#344651;font-size:24px}.catalog-summary .storage-summary{position:relative;overflow:hidden;background:linear-gradient(120deg,#fff7f1,#fff)}.storage-summary:after{content:"";position:absolute;right:-25px;bottom:-40px;width:110px;height:110px;border-radius:50%;background:#ff955314}.storage-summary strong{font-size:18px}.storage-summary small{margin-top:3px;color:#aa9a8e;font-size:10px}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.lesson-card{position:relative;min-height:168px;display:flex;flex-direction:column;overflow:hidden;padding:20px;border:1px solid #e6ebee;border-radius:17px;color:inherit;background:#fff;box-shadow:0 4px 18px #4859640b;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}.lesson-card:hover{border-color:#f3c3a6;box-shadow:0 12px 28px #5e4d4117;transform:translateY(-3px)}.lesson-card:after{content:"";position:absolute;right:-26px;top:-31px;width:86px;height:86px;border-radius:50%;background:linear-gradient(145deg,#ffae6921,#ff7d4a0a)}.lesson-number{width:fit-content;padding:4px 8px;border-radius:7px;color:#ed7a3b;background:#fff0e6;font-size:11px;font-weight:700}.lesson-card h2{display:-webkit-box;overflow:hidden;margin:13px 0 5px;color:#31424d;font-size:17px;line-height:24px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.lesson-card p{margin:0;color:#9aa6ae;font-size:11px}.lesson-card>span:last-child{margin-top:auto;color:#e87a3e;font-size:12px;font-weight:700}.lesson-card.disabled{cursor:default;opacity:.58;pointer-events:none}.inline-state{min-height:260px;display:grid;place-content:center;justify-items:center;gap:12px;padding:30px;border:1px dashed #dce4e8;border-radius:16px;color:#8997a1;text-align:center}.inline-state p{margin:0}.inline-state button{min-height:38px;padding:0 18px;border:1px solid #dfe5e9;border-radius:19px;color:#64727c;background:#fff}.catalog-state{display:grid;justify-items:center;gap:12px}.catalog-state>span:not(.catalog-spinner){width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#f09a62;font-size:24px}.catalog-state h1{margin:0;color:#40515d;font-size:21px}.catalog-state p{max-width:600px;margin:0;color:#8b98a2;overflow-wrap:anywhere}.catalog-state--error>span{background:#d86d63!important}.catalog-spinner{width:34px;height:34px;border:3px solid #dfe7ec;border-top-color:#ee8347;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.catalog-header{height:auto;min-height:68px;flex-wrap:wrap;gap:10px;padding:11px 16px}.catalog-brand{min-width:160px}.catalog-search{order:3;width:100%;max-width:none}.release-pill{margin-left:auto}.catalog-layout{grid-template-columns:1fr}.subject-nav{position:static;height:auto;overflow-x:auto;padding:14px 16px;border-right:0;border-bottom:1px solid #e7ecf0}.subject-nav h2{display:none}.subject-nav nav{display:flex;width:max-content}.subject-nav button{grid-template-columns:auto auto;min-width:max-content}.subject-nav button>span{display:none}.subject-nav button small{display:none}.catalog-content{padding:24px 18px 50px}.catalog-summary{grid-template-columns:repeat(3,1fr)}.storage-summary{grid-column:1 / -1}}@media(max-width:600px){.catalog-brand small,.release-pill{display:none}.catalog-toolbar{align-items:stretch;flex-direction:column}.catalog-toolbar label{width:100%;margin-left:0}.catalog-toolbar select{width:100%;min-width:0}.catalog-summary{grid-template-columns:repeat(3,1fr);gap:7px}.catalog-summary article{min-height:74px;padding:11px}.catalog-summary strong{font-size:19px}.lesson-grid{grid-template-columns:1fr}}body{background:#f3f8fe}.xiaolu-resource-page{min-height:100vh;color:#272932;background:#f3f8fe}.resource-tabs{height:64px;display:flex;align-items:flex-end;gap:22px;padding:0 24px;border-bottom:1px solid #e5edf7;background:#f3f8fe}.resource-tabs button{position:relative;height:64px;padding:0 2px 13px;border:0;color:#a2abc0;background:transparent;font-size:20px;font-weight:600}.resource-tabs button.active{color:#6880ff}.resource-tabs button.active:after{content:"";position:absolute;right:-2px;bottom:0;left:-2px;height:3px;border-radius:3px;background:#6880ff}.resource-layout{height:calc(100vh - 64px);display:grid;grid-template-columns:clamp(330px,27vw,540px) minmax(0,1fr);gap:28px;padding:18px 6px 0;overflow:hidden}.course-tree-panel,.notebook-panel{min-width:0;border:1px solid #dde5f0;border-radius:16px 16px 0 0;background:#fff;box-shadow:0 2px 7px #2d44670b}.course-tree-panel{position:relative;overflow:auto;padding:24px 24px 60px}.textbook-select{position:relative;display:block;margin-bottom:22px}.textbook-select select{width:100%;height:54px;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 46px 0 18px;border:1px solid #d3dcec;border-radius:7px;outline:0;color:#586077;background:#fff;font-size:18px}.textbook-select>span{position:absolute;top:14px;right:18px;color:#9ca8bd;font-size:20px;pointer-events:none}.course-tree{display:grid;gap:2px}.course-tree-group{min-width:0}.course-tree-label,.course-leaf{width:100%;min-height:48px;display:flex;align-items:center;border:0;border-radius:9px;color:#30333c;background:transparent;text-align:left}.course-tree-label:hover,.course-leaf:hover{background:#f4f7fc}.course-tree-label{gap:10px;padding:0 10px;font-size:17px;font-weight:650}.tree-chevron{width:18px;color:#aab4c6;font-size:24px;line-height:1;transform:rotate(-90deg);transition:transform .16s}.tree-chevron.open{transform:rotate(0)}.course-tree-children{padding-left:29px}.course-tree-group.level-2>.course-tree-label{font-size:17px;font-weight:600}.course-leaf{min-height:54px;padding:8px 14px;font-size:17px;font-weight:520}.course-leaf.selected{color:#687cff;background:#eaf0ff;font-weight:700}.notebook-panel{overflow:auto;padding:26px 36px 180px}.notebook-heading{display:flex;align-items:center;gap:24px}.notebook-heading h1{min-width:0;margin:0;color:#202126;font-size:26px;line-height:1.4}.notebook-tabs{display:flex;flex:none;margin-left:auto;padding:5px;border-radius:28px;background:#f3f3f5}.notebook-tabs button{min-width:112px;height:42px;padding:0 18px;border:0;border-radius:23px;color:#939bb0;background:transparent;font-size:17px;font-weight:650}.notebook-tabs button.active{color:#282a31;background:#fff;box-shadow:0 2px 7px #30364414}.mindmap-card{margin-top:26px;overflow:hidden;border:1px solid #e3e8f0;border-radius:8px;background:#fff}.mindmap-preview{position:relative;width:100%;min-height:170px;max-height:420px;padding:8px;cursor:pointer}.notebook-mindmap{width:100%;height:100%;display:block;overflow:visible;-webkit-user-select:none;user-select:none}.notebook-mindmap text{font-family:PingFang SC,Microsoft YaHei,sans-serif}.mindmap-expand{position:absolute;top:12px;right:12px;z-index:10;width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;color:#fff;background:#0000004d}.mindmap-expand svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.mindmap-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;width:100vw;height:100vh;align-items:center;justify-content:center;overflow:hidden;background:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mindmap-back{position:absolute;top:24px;left:24px;z-index:10;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent}.mindmap-back svg{display:block;width:36px;height:36px}.mindmap-back rect:first-child{fill:#fff}.mindmap-back rect{stroke:#e9ecf5}.mindmap-back path{fill:none;stroke:#646b8a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mindmap-pan-surface{width:100%;height:100%;overflow:hidden;touch-action:none;cursor:grab}.mindmap-fullscreen.dragging .mindmap-pan-surface{cursor:grabbing}.mindmap-transform{width:100%;height:100%;transform-origin:center center;will-change:transform}.mindmap-fullscreen .notebook-mindmap{pointer-events:auto}.mindmap-node.interactive{cursor:pointer;outline:none}.mindmap-node.interactive:focus-visible text{text-decoration:underline}.mindmap-empty{height:100%;display:grid;place-items:center;color:#a0a9b8}.overview-heading{position:sticky;top:-26px;z-index:20;display:flex;align-items:center;min-height:88px;margin-top:56px;padding-top:26px;padding-bottom:18px;border-bottom:1px solid #e7ebf2;background:#fff}.overview-heading h2{margin:0;font-size:24px}.overview-heading label{height:48px;display:flex;align-items:center;gap:10px;margin-left:auto;padding:0 17px;border-radius:15px;color:#687086;background:#f5f5f7;font-size:17px}.overview-heading input{width:24px;height:24px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #d6deea;border-radius:7px;background:#fff}.overview-heading input:checked{border-color:#7386ff;background-color:#7386ff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 12 4 4 8-9' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.knowledge-overview{padding:22px 0 100px;color:#383a42;font-size:20px;line-height:1.9}.knowledge-overview h3{margin:28px 0 22px;font-size:21px}.knowledge-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:16px;align-items:start;margin:13px 0}.knowledge-row p,.knowledge-continuation{margin:0}.knowledge-number{width:30px;height:30px;display:grid;place-items:center;margin-top:4px;border-radius:9px;color:#85878d;background:#f1f2f4;font-size:17px;font-weight:700}.knowledge-overview mark{padding:2px 4px;color:inherit;background:#fff3bd;font-weight:500;background-blend-mode:multiply}.knowledge-overview mark.knowledge-mask{cursor:pointer;border-radius:2px;-webkit-user-select:none;user-select:none}.knowledge-overview mark.knowledge-mask.hidden-answer{background:#fff;outline:1.5px dashed #f2d06d;outline-offset:-1.5px}.knowledge-overview mark.knowledge-mask.hidden-answer>span{visibility:hidden}.knowledge-overview mark.knowledge-mask.revealed-answer{background:#fff3bd}.knowledge-continuation{margin:-5px 0 14px 50px}.knowledge-image-frame{width:calc(100% - 50px);height:320px;display:flex;align-items:center;justify-content:center;margin:14px 0 22px 50px;padding:0;overflow:hidden;border:1px solid #dfe5ef;border-radius:8px;background:#fff}.knowledge-image{display:block;width:100%;height:100%;border-radius:8px;object-fit:contain}.knowledge-image-preview{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:48px;background:#141820b8}.knowledge-image-preview>button{position:fixed;top:24px;right:28px;width:42px;height:42px;border:0;border-radius:50%;color:#323641;background:#fff;font-size:28px;line-height:1}.knowledge-image-preview>img{max-width:100%;max-height:100%;object-fit:contain}.mini-course-player{position:fixed;right:0;bottom:0;z-index:60;width:338px;overflow:hidden;border:1px solid #e4e8ef;border-radius:18px 0 0;background:#fff;box-shadow:0 12px 44px #36415826}.mini-course-player header{height:48px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #eceef3}.mini-course-player header strong{font-size:17px}.mini-course-player header a{width:32px;height:32px;display:grid;place-items:center;margin-left:auto;border:1px solid #e3e7ee;border-radius:9px;color:#7f8aa0;text-decoration:none}.mini-player-stage{position:relative;height:202px;overflow:hidden;background:#f0f5fb}.mini-player-stage iframe{width:1280px;height:720px;border:0;transform:scale(.264);transform-origin:0 0;pointer-events:none}.question-placeholder{min-height:420px;display:grid;place-content:center;justify-items:center;gap:14px;color:#8d96a6;text-align:center}.question-placeholder h1,.question-placeholder h2,.question-placeholder p{margin:0}.question-placeholder button,.resource-state button{min-height:42px;padding:0 22px;border:0;border-radius:22px;color:#fff;background:#7183ff}.resource-state{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;padding:24px;color:#8390a2;text-align:center}.resource-state h1,.resource-state p{margin:0}.resource-state.error>span{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#dc716d;font-size:26px}@media(max-width:1100px){.resource-layout{grid-template-columns:310px minmax(0,1fr);gap:14px}.course-tree-panel{padding:18px 15px 60px}.notebook-panel{padding-right:22px;padding-left:22px}.notebook-heading{align-items:flex-start;flex-direction:column}.notebook-tabs{margin-left:0}.mini-course-player{width:300px}}@media(max-width:760px){.resource-layout{height:auto;display:block;overflow:visible;padding:10px}.course-tree-panel{max-height:42vh;border-radius:14px}.notebook-panel{margin-top:10px;overflow:visible;border-radius:14px}.mini-course-player{width:250px}.mini-player-stage{height:150px}.mini-player-stage iframe{transform:scale(.21)}}
