.world-app{--w-ink: #1a2a32;--w-muted: #5c6b75;--w-panel: rgba(255, 255, 255, .94);--w-line: rgba(26, 42, 50, .12);--w-top: 56px;--w-play-bar: 72px;min-height:100%;min-height:100dvh;color:var(--w-ink);font-family:Noto Sans SC,PingFang SC,system-ui,sans-serif;background:radial-gradient(900px 420px at 10% -5%,rgba(56,189,248,.18),transparent 55%),radial-gradient(800px 380px at 95% 0%,rgba(251,191,36,.16),transparent 50%),linear-gradient(165deg,#e8f6f1,#e7eef8 48%,#f7efe6)}.world-app.is-embedded{box-sizing:border-box;min-height:100%;height:100%}.world-app.is-embedded .world-home{padding-top:8px}.world-app.is-embedded.is-playing:not(.is-landscape):not(.is-fake-landscape){display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.world-app.is-embedded.is-playing:not(.is-landscape):not(.is-fake-landscape) .world-play{flex:1 1 auto;min-height:0;height:auto;max-height:none}.world-embed-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 6px}.world-embed-title{margin:0;flex:1 1 auto;min-width:12em}.world-embed-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.world-home-link{margin-left:8px;color:var(--w-ink);font-size:.92rem;text-decoration:none}.world-app.is-miniapp:not(.is-playing){box-sizing:border-box;padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}.world-app.is-miniapp:not(.is-playing) .world-home,.world-app.is-miniapp:not(.is-playing) .world-list-wrap{padding-bottom:12px}.world-app.is-playing{background:#0b1220}.world-app.is-playing.is-fake-landscape{position:fixed;z-index:1000;margin:0;min-height:0;max-height:none;overflow:hidden;transform:rotate(90deg);transform-origin:top left;background:#0b1220}.world-app.is-miniapp.is-playing,.world-app.is-playing.is-landscape,.world-app.is-playing.is-fake-landscape{position:fixed;inset:0;z-index:40;width:100%;height:100%;min-height:0}.world-app.is-miniapp.is-playing .world-top,.world-app.is-playing.is-landscape .world-top,.world-app.is-playing.is-fake-landscape .world-top,.world-app.is-miniapp.is-playing .world-play-bar,.world-app.is-playing.is-landscape .world-play-bar,.world-app.is-playing.is-fake-landscape .world-play-bar{display:none}.world-app.is-playing.is-landscape,.world-app.is-playing.is-fake-landscape{--w-top: 0px;--w-play-bar: 0px}.world-app.is-miniapp.is-playing .world-play,.world-app.is-playing.is-landscape .world-play,.world-app.is-playing.is-fake-landscape .world-play{position:absolute;inset:0;height:100%;max-height:none}.world-play-float{display:none}.world-app.is-playing.is-landscape .world-play-float,.world-app.is-playing.is-fake-landscape .world-play-float{display:flex;position:absolute;z-index:5;gap:8px;pointer-events:none}.world-app.is-playing.is-landscape .world-play-float>*,.world-app.is-playing.is-fake-landscape .world-play-float>*{pointer-events:auto}.world-app.is-playing.is-landscape .world-play-float>.world-float-spacer,.world-app.is-playing.is-fake-landscape .world-play-float>.world-float-spacer{pointer-events:none;min-width:40px;height:40px;visibility:hidden}.world-play-float.is-top{top:max(8px,env(safe-area-inset-top,0px));left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));justify-content:space-between;align-items:flex-start}.world-play-float.is-bottom{right:max(8px,env(safe-area-inset-right,0px));bottom:max(8px,env(safe-area-inset-bottom,0px));justify-content:flex-end}.world-float-btn{border:0;border-radius:999px;min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font:inherit;font-size:.86rem;font-weight:700;cursor:pointer;color:#f8fafc;background:#0f172a8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 10px #0003}.world-float-btn.is-primary{background:#0f766ee0}.world-float-btn.is-on{color:#fbbf24}body.world-playing{overflow:hidden}.world-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--w-top);padding:10px 14px;border-bottom:1px solid var(--w-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;position:sticky;top:0;z-index:20}.world-app.is-playing .world-top{background:#0f172aeb;border-bottom-color:#ffffff14;color:#e2e8f0}.world-app.is-playing .world-sub{color:#94a3b8}.world-app.is-playing .world-back{background:#ffffff14;border-color:#ffffff26;color:#fff}.world-brand{display:flex;align-items:center;gap:10px;min-width:0}.world-brand h1{margin:0;font-size:1rem;font-weight:700;color:#1f3640;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(58vw,420px)}.world-sub,.world-progress-sub{margin:2px 0 0;font-size:.75rem;color:var(--w-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(58vw,420px)}.world-back,.world-btn{border:1px solid var(--w-line);background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer;color:var(--w-ink);font:inherit}.world-back{width:40px;height:40px;padding:0;display:grid;place-items:center;flex-shrink:0}.world-btn.primary{background:#0f766e;border-color:#0f766e;color:#fff;min-height:44px;padding:0 18px;font-weight:600}.world-liked-btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;background:#fffbeb;border-color:#f59e0b73;color:#b45309}.world-liked-btn em{font-style:normal;font-size:.78rem;font-weight:700;min-width:1.25rem;padding:1px 6px;border-radius:999px;background:#f59e0b33;color:#b45309;text-align:center}.world-pill{font-size:.75rem;color:#0f766e;background:#0f766e1a;padding:6px 10px;border-radius:999px}.world-error{margin:10px 14px 0;padding:10px 12px;border-radius:12px;background:#fef2f2;color:#b91c1c;font-size:.9rem}.world-home{padding:18px 14px 40px;max-width:920px;margin:0 auto}.world-home-lead{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#0f766e14,#fbbf241a);color:#334155;font-size:.92rem;line-height:1.55}.world-sub-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:14px;background:#0f766e14;color:var(--w-muted);font-size:.88rem}.world-grade-stack{display:grid;gap:14px}.world-grade-block{display:grid;gap:10px}.world-grade-head{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:4px 2px;font:inherit;color:inherit;cursor:pointer;text-align:left}.world-grade-head strong{font-size:.875rem;font-weight:650;color:#3d5560}.world-grade-chevron{width:1em;font-size:.8rem;color:var(--w-muted);line-height:1}.world-grade-icon{font-size:.9rem;line-height:1}.world-realm-grid{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:8px}.world-realm-card{appearance:none;width:48%;box-sizing:border-box;margin-bottom:14px;text-align:center;border:1px solid rgba(28,43,51,.05);border-radius:12px;padding:0;overflow:hidden;min-height:0;cursor:pointer;background:#fff;box-shadow:0 4px 12px #1c2b330a;display:flex;flex-direction:column;align-items:stretch;gap:0;font:inherit;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.world-realm-card:active{transform:scale(.97);box-shadow:0 2px 6px #12262f0f}.world-realm-cover{width:100%;height:26.6667vw;max-height:120px;object-fit:cover;border-radius:0;background:linear-gradient(145deg,#0e749038,#0f766e52);display:block}.world-realm-cover.is-empty{display:grid;place-items:center;font-size:1.75rem;line-height:1;color:#5b6b76}.world-realm-icon{font-size:1.75rem;line-height:1;flex:0 0 auto}.world-realm-title{display:block;width:100%;box-sizing:border-box;font-size:.88rem;font-weight:650;color:#1c2b33;line-height:1.3;text-align:center;padding:10px 12px 11px}.world-realm-card.realm-physics .world-realm-cover.is-empty{background:linear-gradient(135deg,#e0f2f1,#80cbc4)}.world-realm-card.realm-math .world-realm-cover.is-empty{background:linear-gradient(135deg,#e0f7fa,#80deea)}.world-realm-card.realm-chemistry .world-realm-cover.is-empty{background:linear-gradient(135deg,#fff7ed,#fdba74)}.world-realm-card.realm-biology .world-realm-cover.is-empty{background:linear-gradient(135deg,#e8f5e9,#a5d6a7)}.world-realm-card.realm-physics,.world-realm-card.realm-math,.world-realm-card.realm-chemistry,.world-realm-card.realm-biology{background:#fff}.world-subject-tabs{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px;margin:0 0 16px;max-width:100%;padding:3px 1px;overflow:visible;box-sizing:border-box}.world-subject-tab{flex:0 0 auto;display:flex;align-items:center;justify-content:center;appearance:none;height:34px;min-width:3.25em;padding:0 12px;background:#e6eaef;border:1px solid rgba(28,43,51,.08);border-radius:9px;font:650 .85rem/1.25 Noto Sans SC,PingFang SC,system-ui,sans-serif;letter-spacing:.06em;color:var(--w-muted);cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:background .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease}.world-subject-tab.s-math{background:#dde4f7;color:#3d4f7a;border-color:#5064a047}.world-subject-tab.s-physics{background:#f3e2cc;color:#7a5530;border-color:#b4783c47}.world-subject-tab.s-chemistry{background:#ebe0f3;color:#5e4570;border-color:#825aa047}.world-subject-tab.s-biology{background:#d8eadc;color:#3a6348;border-color:#46825a47}.world-subject-tab.is-on{font-weight:800}.world-subject-tab.s-math.is-on{background:#c5d2f0;color:#2a3d6b;border-color:#5064a0;box-shadow:0 0 0 1.5px #5064a0,0 2px 8px #5064a047}.world-subject-tab.s-physics.is-on{background:#e8cfa8;color:#6a4520;border-color:#b4783c;box-shadow:0 0 0 1.5px #b4783c,0 2px 8px #b4783c47}.world-subject-tab.s-chemistry.is-on{background:#dccfe8;color:#4a3560;border-color:#825aa0;box-shadow:0 0 0 1.5px #825aa0,0 2px 8px #825aa047}.world-subject-tab.s-biology.is-on{background:#c0deca;color:#2a5238;border-color:#46825a;box-shadow:0 0 0 1.5px #46825a,0 2px 8px #46825a47}.world-subject-tab-name{white-space:nowrap}.world-list-wrap{max-width:720px;margin:0 auto;padding:6px 12px 32px}.world-list-head{display:grid;gap:10px;margin-bottom:12px}.world-list-head>p{margin:0;color:var(--w-muted);font-size:.86rem}.world-diff-tabs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.world-diff-tabs button{flex:0 0 auto;border:1px solid var(--w-line);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:.86rem;color:var(--w-muted);cursor:pointer}.world-diff-tabs button.is-on{background:#0f766e;border-color:#0f766e;color:#fff}.world-scene-list{display:grid;gap:8px}.world-scene-row{display:flex;align-items:stretch;gap:2px;width:100%;border:1px solid var(--w-line);border-radius:16px;min-height:72px;background:var(--w-panel);overflow:hidden}.world-scene-main{flex:1;min-width:0;display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:10px;text-align:left;border:0;padding:10px 8px 10px 12px;background:transparent;font:inherit;color:inherit;cursor:pointer}.world-scene-main:disabled{cursor:not-allowed}.world-scene-row.is-locked{opacity:.55;background:#f1f5f9}.world-scene-row.is-cleared{box-shadow:inset 3px 0 #0f766e}.world-scene-row.is-fav{box-shadow:inset 3px 0 #f59e0b}.world-scene-row.is-cleared.is-fav{box-shadow:inset 3px 0 #0f766e,inset 6px 0 #f59e0b}.world-scene-row.is-open .world-scene-main:active{transform:scale(.995)}.world-scene-fav,.world-fav-btn{flex-shrink:0;display:grid;place-items:center;width:44px;border:0;background:transparent;color:#94a3b8;cursor:pointer;padding:0}.world-scene-fav:hover,.world-fav-btn:hover,.world-scene-fav.is-on,.world-fav-btn.is-on{color:#f59e0b}.world-fav-btn{width:40px;height:40px;border-radius:12px;background:#ffffff14;color:#cbd5e1}.world-app.is-playing .world-fav-btn.is-on{color:#fbbf24;background:#fbbf2426}.world-fav-section{margin:0 0 18px;padding:12px 12px 14px;border:1px solid var(--w-line);border-radius:16px;background:#ffffffb8}.world-fav-head{display:flex;align-items:baseline;gap:8px;margin-bottom:0}.world-fav-section:has(.world-fav-list) .world-fav-head{margin-bottom:10px}.world-fav-head strong{font-size:1.05rem}.world-fav-head em{font-style:normal;font-size:.78rem;color:var(--w-muted)}.world-fav-hint{margin:0;font-size:.84rem;line-height:1.5;color:var(--w-muted)}.world-fav-login{margin-left:8px;border:0;padding:0;background:none;color:#0f766e;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.world-fav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.world-fav-list-page{display:grid;grid-template-columns:1fr;gap:8px;padding:12px 14px 24px}.world-fav-row{display:flex;align-items:stretch;gap:2px;border:1px solid var(--w-line);border-radius:14px;background:var(--w-panel);overflow:hidden}.world-fav-row .world-fav-card{flex:1;border:0;border-radius:0;background:transparent}.world-fav-row .world-scene-fav{width:48px}.world-fav-card{display:grid;grid-template-columns:56px 1fr;gap:8px;align-items:center;text-align:left;border:1px solid var(--w-line);border-radius:14px;padding:8px;background:var(--w-panel);font:inherit;color:inherit;cursor:pointer}.world-fav-card img,.world-fav-card-empty{width:56px;height:40px;border-radius:8px;object-fit:cover;background:#e2e8f0;display:block}.world-fav-card-empty{display:grid;place-items:center;color:#94a3b8;font-size:.9rem}.world-fav-card strong{display:block;font-size:.82rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-fav-card em{display:block;font-style:normal;font-size:.7rem;color:var(--w-muted);margin-top:2px}.world-scene-idx{min-width:36px;height:32px;padding:0 6px;border-radius:10px;display:grid;place-items:center;background:#0f766e1f;color:#0f766e;font-weight:700;font-size:.78rem;font-variant-numeric:tabular-nums}.world-scene-row.is-locked .world-scene-idx{background:#e2e8f0;color:#64748b}.world-scene-thumb{width:72px;height:48px;object-fit:cover;border-radius:10px;background:#e2e8f0;display:block}.world-scene-thumb.is-empty{background:linear-gradient(135deg,#e2e8f0,#f8fafc)}.world-scene-body{min-width:0;display:grid;gap:2px}.world-scene-body strong{font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-scene-body em{font-style:normal;font-size:.78rem;color:var(--w-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.world-scene-meta{display:grid;justify-items:end;gap:4px;flex-shrink:0}.world-scene-meta i,.world-scene-meta u{font-style:normal;text-decoration:none;font-size:.72rem;padding:2px 8px;border-radius:999px;background:#ecfeff;color:#0e7490}.world-scene-meta b{color:#0f766e;font-size:.78rem;font-weight:700}.world-scene-meta b.is-revisit{display:inline-flex;align-items:center;gap:3px;color:#b45309;font-size:.72rem;padding:2px 8px;border-radius:999px;background:#fffbeb}.world-scene-meta b.is-revisit i{font-style:normal}.world-scene-meta b.is-done{font-size:1rem;color:#0f766e}.world-scene-row.is-locked .world-scene-meta u{background:#e2e8f0;color:#64748b}.world-login-hint{display:flex;flex-direction:column;align-items:center;gap:14px}.world-login-hint .world-btn{min-height:40px}.world-empty{text-align:center;color:var(--w-muted);padding:28px 12px}.world-play{display:flex;flex-direction:column;height:calc(100dvh - var(--w-top));max-height:calc(100dvh - var(--w-top))}.world-frame-wrap{flex:1;min-height:0;background:#fff;overflow:hidden}.world-frame{width:100%;height:100%;border:0;display:block;background:#fff}.world-bead-placeholder{flex:1;display:grid;place-items:center;background:#94a3b81f;color:#cbd5e1;padding:24px;text-align:center}.world-play-bar{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:var(--w-play-bar);padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#0f172af5;border-top:1px solid rgba(255,255,255,.08)}@media(min-width:900px){.world-list-wrap{max-width:800px;padding-top:18px}.world-scene-main{padding:14px 10px 14px 16px}.world-fav-list:not(.world-fav-list-page){grid-template-columns:repeat(3,minmax(0,1fr))}}.ele-app{--ele-ink: #12262f;--ele-muted: #5a6f7a;--ele-line: rgba(18, 38, 47, .12);--ele-panel: rgba(255, 255, 255, .96);--ele-accent: #0f766e;--ele-accent-2: #0e7490;--ele-soft: #e8eef3;min-height:100%;min-height:100dvh;color:var(--ele-ink);font-family:Noto Sans SC,PingFang SC,system-ui,sans-serif;background:radial-gradient(820px 380px at 8% -8%,rgba(14,116,144,.12),transparent 55%),radial-gradient(700px 360px at 96% 4%,rgba(15,118,110,.1),transparent 50%),linear-gradient(165deg,#f4f7f9,#eef3f5 52%,#f5f6f4);display:flex;flex-direction:column}.ele-app.is-embedded{min-height:100%}.ele-app.is-embedded .ele-main{padding-top:8px}.ele-embed-head{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin:0 0 10px}.ele-embed-head .ele-page-title{margin:0;width:100%}.ele-embed-head .ele-realm-switch-main{margin:0;align-self:flex-end;width:fit-content;max-width:100%}.ele-home-link{margin-left:12px;color:var(--ele-accent);font-size:.9rem;text-decoration:none}.ele-app.is-embedded .ele-brand:empty{display:none}.ele-app.has-bottom-nav .ele-main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.ele-app.is-playing{position:fixed;inset:0;z-index:1000;background:#0b1220;display:block}.ele-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 10px;background:transparent;position:sticky;top:0;z-index:20}.ele-brand{display:flex;flex-direction:column;gap:2px;min-width:0}.ele-brand strong{font-size:1.1rem;font-weight:650;letter-spacing:.06em}.ele-realm-switch{display:flex;background:transparent;border-radius:0;padding:0;gap:17px;box-shadow:none;flex:0 0 auto}.ele-realm-switch-main{width:fit-content;max-width:100%;margin:0 0 10px auto;flex-wrap:wrap}.ele-app.is-embedded .ele-realm-switch-main{margin-bottom:0}.ele-realm-switch button{appearance:none;display:inline-flex;align-items:center;justify-content:center;height:34px;min-width:3.25em;border:1px solid rgba(28,43,51,.08);background:#e4e8ed;padding:0 12px;font:650 .85rem/1.25 Noto Sans SC,system-ui,sans-serif;letter-spacing:.18em;color:var(--ele-muted);border-radius:9px;cursor:pointer;box-sizing:border-box;white-space:nowrap;transition:background .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease}.ele-realm-switch button.r-primary{background:#d4ebd8;color:#3d6b4a;border-color:#2f7d4647}.ele-realm-switch button.r-junior{background:#d0e4f2;color:#3a5f7a;border-color:#286ea047}.ele-realm-switch button.r-senior{background:#e2dde8;color:#5a4d6e;border-color:#5a468247}.ele-realm-switch button.is-on{font-weight:800}.ele-realm-switch button.r-primary.is-on{background:#b6dfc0;color:#1f6b3a;border-color:#2f7d46;box-shadow:0 0 0 1.5px #2f7d46,0 2px 8px #2f7d4647}.ele-realm-switch button.r-junior.is-on{background:#b0d4ec;color:#1a5a85;border-color:#286ea0;box-shadow:0 0 0 1.5px #286ea0,0 2px 8px #286ea047}.ele-realm-switch button.r-senior.is-on{background:#cdc4db;color:#4a3d6b;border-color:#5a4682;box-shadow:0 0 0 1.5px #5a4682,0 2px 8px #5a468247}.ele-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:4px 16px 48px;overflow-y:auto;-webkit-overflow-scrolling:touch}.ele-page-title{margin:4px 0 18px}.ele-page-title.is-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.ele-brand .ele-brand-slogan{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ele-section-row{display:flex;align-items:center;justify-content:flex-end;overflow:visible;gap:12px;margin:0 0 10px}.ele-section-header{display:flex;align-items:center;margin:0;font-size:.95rem;font-weight:650;color:#3d5560}.ele-section-row .ele-section-header{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ele-section-header:before{content:"";display:inline-block;width:4px;height:14px;background:var(--ele-accent);border-radius:2px;margin-right:8px}.ele-sub-tabs{display:flex;gap:8px;margin-bottom:14px}.ele-sub-tab{appearance:none;flex:1;text-align:center;padding:8px 10px;background:#fff;border-radius:14px;font:500 13px/1.2 Noto Sans SC,system-ui,sans-serif;color:var(--ele-muted);cursor:pointer;border:1px solid var(--ele-line);transition:background .15s ease,color .15s ease,border-color .15s ease}.ele-sub-tab.is-on{background:#0f766e1a;color:var(--ele-accent);border-color:#0f766e47;font-weight:650}.ele-sub-tab-icon{margin-right:5px;font-size:.85rem}.ele-branch-tabs{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:5px;margin-bottom:10px;padding:3px 1px;max-width:100%;overflow:visible;box-sizing:border-box}.ele-app.is-embedded .ele-branch-tabs{gap:10px}.ele-branch-tabs.is-primary{justify-content:space-between;width:100%;gap:0}.ele-app.is-embedded .ele-branch-tabs.is-primary{justify-content:flex-end;gap:10px}.ele-branch-tab.is-ghost{visibility:hidden;pointer-events:none}.ele-app.is-embedded .ele-branch-tab.is-ghost{display:none}.ele-branch-tab{appearance:none;flex:0 0 auto;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:2px;height:34px;padding:0 10px;background:var(--zc-bg, #eef1f4);border-radius:9px;border:1px solid var(--zc-border, rgba(28, 43, 51, .08));cursor:pointer;white-space:nowrap;word-break:keep-all;box-sizing:border-box;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;--zc: #0f766e;--zc-lite: #6fc9bf;--zc-wash: rgba(15, 118, 110, .28);--zc-bg: #eef1f4;--zc-on: #d5e0e8;--zc-border: rgba(28, 43, 51, .16)}.b-zi{--zc: #5b8fd4;--zc-wash: rgba(91, 143, 212, .28);--zc-bg: #e4eef8;--zc-on: #c5d8f0;--zc-border: rgba(91, 143, 212, .28)}.b-chou{--zc: #c08a3e;--zc-wash: rgba(192, 138, 62, .28);--zc-bg: #f5ecd9;--zc-on: #e8d4a8;--zc-border: rgba(192, 138, 62, .28)}.b-yin{--zc: #e07a3f;--zc-wash: rgba(224, 122, 63, .28);--zc-bg: #f8e8dc;--zc-on: #efc9a8;--zc-border: rgba(224, 122, 63, .28)}.b-mao{--zc: #6fae5e;--zc-wash: rgba(111, 174, 94, .28);--zc-bg: #e5f0e0;--zc-on: #c8e0bc;--zc-border: rgba(111, 174, 94, .28)}.b-chen{--zc: #8b6bb1;--zc-wash: rgba(139, 107, 177, .28);--zc-bg: #ede6f4;--zc-on: #d8cce8;--zc-border: rgba(139, 107, 177, .28)}.b-si{--zc: #2fa396;--zc-wash: rgba(47, 163, 150, .28);--zc-bg: #dff0ed;--zc-on: #b8e0d8;--zc-border: rgba(47, 163, 150, .28)}.b-qicheng{--zc: #c45c6a;--zc-wash: rgba(196, 92, 106, .28);--zc-bg: #f5e4e7;--zc-on: #e8c4cc;--zc-border: rgba(196, 92, 106, .28)}.b-tanjing{--zc: #7a9e3e;--zc-wash: rgba(122, 158, 62, .28);--zc-bg: #e8efd9;--zc-on: #d0e0b0;--zc-border: rgba(122, 158, 62, .28)}.b-tongda{--zc: #d4a017;--zc-wash: rgba(212, 160, 23, .28);--zc-bg: #f5edd4;--zc-on: #eadc9e;--zc-border: rgba(212, 160, 23, .28)}.ele-branch-tab.is-on{font-weight:800;background:var(--zc-on, var(--zc-bg, #d5e0e8));background-image:none;border-color:var(--zc, #0f766e);box-shadow:0 0 0 1.5px var(--zc, #0f766e),0 2px 8px var(--zc-wash, rgba(15, 118, 110, .28))}.ele-branch-tab.is-on .ele-branch-char{color:var(--zc, #0a5c56);font-weight:800}.ele-branch-tab:active{transform:scale(.96)}.ele-branch-char{font-family:Noto Sans SC,PingFang SC,system-ui,sans-serif;font-size:.95rem;font-weight:650;line-height:1.25;letter-spacing:0;color:var(--ele-muted);flex-shrink:0;white-space:nowrap}.ele-branch-animal{flex:0 0 auto;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.3rem;width:1.1em;height:1.25em;overflow:hidden;box-sizing:border-box;margin-right:1px}.ele-branch-animal-glyph{font-size:1em;line-height:1;opacity:.92;flex-shrink:0;white-space:nowrap}.ele-branch-tab.is-on .ele-branch-animal-glyph{opacity:1}@media(max-width:340px){.ele-branch-tab{padding:2px 6px;gap:1px}.ele-branch-char{font-size:.88rem}.ele-branch-animal{font-size:1.15rem}}.ele-status,.ele-muted{color:var(--ele-muted)}.ele-muted.small{font-size:.82rem;margin:0 0 12px}.ele-err{margin-bottom:12px;padding:10px 12px;border-radius:10px;background:#fee2e2;color:#991b1b}.ele-ok{color:#047857;font-weight:600}.ele-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.ele-tile{appearance:none;border:1px solid rgba(18,38,47,.06);border-radius:16px;overflow:hidden;padding:0;background:var(--ele-panel);text-align:left;cursor:pointer;display:flex;flex-direction:column;box-shadow:0 4px 12px #12262f0a;transition:transform .15s ease,box-shadow .15s ease}.ele-tile:active{transform:scale(.97);box-shadow:0 2px 6px #12262f0f}.ele-tile:hover{box-shadow:0 8px 20px #0f766e1a}.ele-tile-cover{height:110px;background:linear-gradient(145deg,#0e749038,#0f766e52),#d7e8e6;background-size:cover;background-position:center}.ele-tile-cover.tone-teal{background:linear-gradient(135deg,#e0f2f1,#80cbc4);background-size:cover;background-position:center}.ele-tile-cover.tone-cyan{background:linear-gradient(135deg,#e0f7fa,#80deea);background-size:cover;background-position:center}.ele-tile-cover.tone-mint{background:linear-gradient(135deg,#e8f5e9,#a5d6a7);background-size:cover;background-position:center}.ele-tile-cover.tone-slate{background:linear-gradient(135deg,#eceff1,#90a4ae);background-size:cover;background-position:center}.ele-tile-body{padding:11px 12px 12px;display:flex;flex-direction:column;gap:4px}.ele-tile-body-inline{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:center;text-align:center;gap:0;padding:10px 12px 11px}.ele-tile-name{font-weight:650;font-size:.88rem;line-height:1.3}.ele-tile-meta{color:#9aa8b0;font-size:.72rem}.ele-tile-body-inline .ele-tile-meta{font-weight:400}.ele-series-bar{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-bottom:10px}.ele-series-center{flex:1;min-width:0;text-align:center}.ele-series-line{display:flex;align-items:baseline;justify-content:center;min-width:0}.ele-series-gap{flex:0 0 auto;width:36px}.ele-series-title{margin:0;font-size:1.05rem;font-weight:650;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ele-series-chip{flex:0 0 auto;margin-left:7px;font-size:.72rem;font-weight:400;color:var(--ele-muted);white-space:nowrap}.ele-home-back{appearance:none;flex:0 0 auto;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ele-ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.ele-home-back svg{width:26px;height:26px;display:block}.ele-home-back:hover{background:#0f766e14}.ele-home-back:active{opacity:.7;transform:scale(.94)}.ele-progress-card{background:var(--ele-panel);border:1px solid rgba(15,118,110,.08);border-radius:14px;padding:12px 14px 11px;margin-bottom:12px;box-shadow:0 6px 18px #0f766e0f}.ele-progress-top{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:8px}.ele-progress-label{font-size:.78rem;color:var(--ele-muted)}.ele-progress-value{font-size:1.2rem;font-weight:700;color:var(--ele-accent);line-height:1}.ele-progress-value .of{font-size:.75rem;font-style:normal;font-weight:500;color:var(--ele-muted)}.ele-progress-bar{height:6px;background:#eef4f3;border-radius:3px;overflow:hidden}.ele-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#34d399,#0f766e)}.ele-progress-tip{display:block;margin-top:7px;font-size:.7rem;color:var(--ele-muted)}.ele-cat-tabs{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px;flex:0 0 auto;max-width:100%;padding:3px 1px;overflow:visible;box-sizing:border-box}.ele-cat-tab{flex:0 0 auto;display:flex;align-items:center;justify-content:center;appearance:none;height:34px;min-width:3.25em;padding:0 12px;background:#e6eaef;border:1px solid rgba(28,43,51,.08);border-radius:9px;font:650 .85rem/1.25 Noto Sans SC,system-ui,sans-serif;letter-spacing:.06em;color:var(--ele-muted);cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:background .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease}.ele-cat-tab-name{white-space:nowrap}.ele-cat-tab.s-math{background:#dde4f7;color:#3d4f7a;border-color:#5064a047}.ele-cat-tab.s-physics{background:#f3e2cc;color:#7a5530;border-color:#b4783c47}.ele-cat-tab.s-chemistry{background:#ebe0f3;color:#5e4570;border-color:#825aa047}.ele-cat-tab.s-biology{background:#d8eadc;color:#3a6348;border-color:#46825a47}.ele-cat-tab.s-tech{background:#d5ebef;color:#2f5f68;border-color:#32828c47}.ele-cat-tab.s-nature{background:#e5edd8;color:#4f6340;border-color:#6e8c4647}.ele-cat-tab.s-default{background:#e6eaef;border-color:#1c2b3329}.ele-cat-tab.is-on{font-weight:800}.ele-cat-tab.s-math.is-on{background:#c5d2f0;color:#2a3d6b;border-color:#5064a0;box-shadow:0 0 0 1.5px #5064a0,0 2px 10px #5064a047}.ele-cat-tab.s-physics.is-on{background:#e8cfa8;color:#6a4520;border-color:#b4783c;box-shadow:0 0 0 1.5px #b4783c,0 2px 10px #b4783c47}.ele-cat-tab.s-chemistry.is-on{background:#dccfe8;color:#4a3560;border-color:#825aa0;box-shadow:0 0 0 1.5px #825aa0,0 2px 10px #825aa047}.ele-cat-tab.s-biology.is-on{background:#c0deca;color:#2a5238;border-color:#46825a;box-shadow:0 0 0 1.5px #46825a,0 2px 10px #46825a47}.ele-cat-tab.s-tech.is-on{background:#bce0e6;color:#1f4f58;border-color:#32828c;box-shadow:0 0 0 1.5px #32828c,0 2px 10px #32828c47}.ele-cat-tab.s-nature.is-on{background:#d4e0c0;color:#3d5230;border-color:#6e8c46;box-shadow:0 0 0 1.5px #6e8c46,0 2px 10px #6e8c4647}.ele-cat-tab.s-default.is-on{background:#d5dbe3;color:#3a4550;border-color:#5b6b76;box-shadow:0 0 0 1.5px #5b6b76,0 2px 10px #1c2b3329}.ele-book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ele-book{appearance:none;border:1px solid var(--ele-line);border-radius:13px;background:var(--ele-panel);display:flex;flex-direction:column;align-items:stretch;padding:0;overflow:hidden;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.ele-book:hover{box-shadow:0 6px 18px #1c2b330f}.ele-book:active{transform:scale(.99)}.ele-book-cover-box{position:relative;display:block;width:100%;aspect-ratio:16 / 9;background:#e8f3f1}.ele-book-cover{position:absolute;inset:0;background:#d7e8e6 center/cover no-repeat}.ele-state-ico{position:absolute;right:6px;bottom:6px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px #0003}.ele-state-ico.is-done{background:#10b981}.ele-state-ico.is-done:after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-2px);box-sizing:border-box}.ele-state-ico.is-doing{background:#f59e0b}.ele-state-ico.is-doing:after{content:"";width:0;height:0;margin-left:2px;border-left:7px solid #fff;border-top:4px solid transparent;border-bottom:4px solid transparent}.ele-state-ico.is-locked{background:#94a3b8}.ele-state-ico.is-locked:before{content:"";position:absolute;top:4px;left:50%;width:8px;height:6px;margin-left:-4px;border:2px solid #fff;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.ele-state-ico.is-locked:after{content:"";position:absolute;top:9px;left:50%;width:10px;height:7px;margin-left:-5px;background:#fff;border-radius:2px}.ele-book-title{display:flex;align-items:baseline;gap:0;padding:8px 10px 9px;font-size:.8rem;font-weight:650;color:#1c2b33;overflow:hidden}.ele-book-seq-run{display:inline-flex;align-items:baseline;flex:0 0 auto}.ele-book-seq{font-style:normal;font-weight:600;font-size:.7rem;color:var(--ele-muted);flex:0 0 auto}.ele-book-dot{display:inline-block;margin:0 -.16em;font-style:normal;font-weight:500;font-size:.7rem;color:var(--ele-muted);line-height:1;transform:scale(.78);transform-origin:50% 58%;flex:0 0 auto}.ele-book-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ele-book-sub{display:block;margin:-4px 10px 9px;font-size:.72rem;color:#7d8b95;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ele-empty{padding:32px 12px;text-align:center;font-size:.82rem;color:var(--ele-muted)}.ele-primary,.ele-ghost{appearance:none;border-radius:10px;padding:10px 14px;font:600 14px/1.2 system-ui,sans-serif;cursor:pointer}.ele-primary{border:none;color:#fff;background:linear-gradient(135deg,var(--ele-accent),var(--ele-accent-2))}.ele-primary:disabled,.ele-ghost:disabled{opacity:.55;cursor:not-allowed}.ele-ghost{border:1px solid var(--ele-line);background:#fff;color:var(--ele-ink)}.ele-subscribe h2,.ele-qr-login{display:flex;flex-direction:column;align-items:center;gap:10px;margin:16px 0 8px}.ele-qr-img{width:220px;height:220px;border-radius:12px;background:#fff;border:1px solid var(--ele-line, #dbe4f0)}.ele-qr-placeholder{width:220px;height:220px;border-radius:12px;background:#f1f5f9;border:1px dashed #cbd5e1}.ele-qr-hint{text-align:center;margin:0;max-width:280px}.ele-sms-fallback{margin-top:18px;padding-top:12px;border-top:1px solid var(--ele-line, #dbe4f0)}.ele-sms-fallback>summary{cursor:pointer;color:var(--ele-muted, #64748b);font-size:.9rem;-webkit-user-select:none;user-select:none}.ele-sms-fallback[open]>summary{margin-bottom:12px}.ele-login h2,.ele-profile h2{margin:0 0 8px}.ele-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px}.ele-plan{border:1px solid var(--ele-line);border-radius:14px;padding:16px;background:var(--ele-panel);display:flex;flex-direction:column;gap:8px}.ele-plan-name{font-weight:700}.ele-plan-price{font-size:1.35rem;color:var(--ele-accent);font-weight:700}.ele-plan-badge{color:#e85d3a;font-size:.8rem;font-weight:600;margin-top:2px}.ele-plan-days{color:var(--ele-muted);font-size:.85rem;margin-bottom:4px}.ele-subscribe-promo{margin-top:16px;text-align:center}.ele-pay-box{margin-top:20px;padding:16px;border-radius:14px;border:1px solid var(--ele-line);background:#fff;text-align:center}.ele-pay-box img{margin:12px auto;display:block}.ele-pay-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.ele-login,.ele-profile{max-width:420px}.ele-login label{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-size:.9rem;color:var(--ele-muted)}.ele-login input{border:1px solid var(--ele-line);border-radius:10px;padding:10px 12px;font-size:1rem;color:var(--ele-ink);background:#fff}.ele-code-row{display:flex;gap:8px}.ele-code-row input{flex:1}.ele-wx{width:100%;margin:12px 0 4px}.ele-agree{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:8px!important;margin:12px 0!important;font-size:.86rem!important;line-height:1.45}.ele-agree input{width:auto;margin-top:3px;padding:0}.ele-agree a{color:#0f766e}.ele-banner{margin:8px 0;padding:8px 10px;border-radius:8px;background:#0f766e14;color:#0f766e;font-size:.88rem}.ele-login .stack{display:grid;gap:10px}.ele-login .field{display:flex;flex-direction:column;gap:6px;margin:0;font-size:.9rem;color:var(--ele-muted)}.ele-login .field span{color:var(--ele-muted)}.ele-login .field input{border:1px solid var(--ele-line);border-radius:10px;padding:10px 12px;font-size:1rem;color:var(--ele-ink);background:#fff}.ele-login .row{display:flex;gap:8px}.ele-login .row input{flex:1}.ele-login .primary{border:none;border-radius:999px;padding:12px 18px;background:#0f766e;color:#fff;font-weight:600;cursor:pointer}.ele-login .primary:disabled{opacity:.55;cursor:not-allowed}.ele-login .ghost{border:1px solid var(--ele-line);border-radius:10px;padding:8px 12px;background:#fff;color:var(--ele-ink);cursor:pointer;white-space:nowrap}.ele-login .ghost:disabled{opacity:.55}.ele-legal-links{display:flex;gap:8px;align-items:center;font-size:.86rem;margin:8px 0 16px}.ele-legal-links a{color:#0f766e}.ele-sub-list{list-style:none;padding:0;margin:0 0 16px}.ele-sub-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--ele-line)}.ele-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(64px + env(safe-area-inset-bottom,0px));padding:8px 12px calc(10px + env(safe-area-inset-bottom,0px));background:#fffffff5;border-top:1px solid var(--ele-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:space-around;align-items:flex-start}.ele-bottom-nav button{appearance:none;border:none;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;color:#94a3b8;font:500 11px/1 Noto Sans SC,system-ui,sans-serif;cursor:pointer;min-width:64px;padding:4px 8px}.ele-bottom-nav button.is-on{color:var(--ele-accent);font-weight:650}.ele-nav-icon{width:22px;height:22px;border:2px solid currentColor;border-radius:6px}.ele-nav-icon.is-round{border-radius:50%}.ele-nav-icon.is-profile{border-radius:50% 50% 4px 4px}.ele-read-back{position:absolute;z-index:5;top:max(8px,env(safe-area-inset-top,0px));left:max(8px,env(safe-area-inset-left,0px));appearance:none;border:0;border-radius:999px;min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;color:#f8fafc;background:#0f172a8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 10px #0003;font:700 .86rem/1 system-ui,sans-serif;cursor:pointer}.ele-read-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}@media(min-width:641px){.ele-main{max-width:860px;padding-top:16px}.ele-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media(max-width:640px){.ele-top{padding-left:14px;padding-right:14px}.ele-realm-switch button{height:32px;padding:0 12px;min-width:3.1em;font-size:.82rem}.ele-realm-switch{gap:17px}.ele-cat-tab,.ele-branch-tab{height:32px}.ele-brand .ele-brand-slogan{font-size:.95rem}}@media(max-width:340px){.ele-top{flex-wrap:wrap;gap:8px}.ele-brand{flex:1 1 100%}.ele-brand .ele-brand-slogan{font-size:16px}.ele-realm-switch{margin-left:auto}}:root{--bg0: #f3faf7;--bg1: #e7f2fb;--panel: #ffffff;--panel-2: #eef8f4;--ink: #1c2b33;--muted: #5b6b76;--accent: #1a9b8e;--accent-2: #3b82c4;--accent-3: #f0a202;--line: rgba(28, 43, 51, .1);--danger: #dc2626;--shadow: 0 10px 28px rgba(26, 155, 142, .12);--topbar-h: 48px;--sidebar-w: 196px;--sidebar-w-collapsed: 56px;--radius: 16px;--radius-sm: 12px;--font-display: "Nunito", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;--font-body: "Noto Sans SC", "PingFang SC", "Nunito", system-ui, sans-serif}*{box-sizing:border-box}.dj-grad-slogan{position:relative;display:inline-block;margin:0;font-size:1.25rem;font-weight:800;letter-spacing:.06em;line-height:1.35;white-space:nowrap;max-width:100%}.dj-grad-slogan__base,.dj-grad-slogan__grad{font:inherit;letter-spacing:inherit;white-space:inherit}.dj-grad-slogan__base{display:inline-block}.dj-grad-slogan--ele .dj-grad-slogan__base,.dj-grad-slogan--world .dj-grad-slogan__base{color:#6d28d9}.dj-grad-slogan__grad{position:absolute;left:0;top:0;display:inline-block;pointer-events:none;background-color:transparent;background-image:var(--dj-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.dj-grad-slogan--ele,.dj-grad-slogan--world{--dj-grad: linear-gradient(105deg, #1d4ed8 0%, #7c3aed 46%, #db2777 100%)}.dj-grad-slogan.is-blurb{font-size:.95rem;font-weight:750;white-space:normal}.dj-grad-slogan.is-blurb .dj-grad-slogan__grad{white-space:normal}html,body,#root{height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 480px at 10% -10%,rgba(240,162,2,.14),transparent 55%),radial-gradient(900px 420px at 100% 0%,rgba(59,130,196,.16),transparent 50%),linear-gradient(180deg,var(--bg0) 0%,var(--bg1) 100%)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.shell{height:100%;display:flex;flex-direction:column}.shell-content-only .workspace{flex:1;min-height:0}.topbar{height:var(--topbar-h);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-bottom:1px solid var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px #0f172a0a}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.topbar-brand{display:flex;align-items:center;gap:10px;font-size:.95rem}.brand-mark{flex-shrink:0;display:block;border-radius:8px;object-fit:cover}.topbar-brand strong{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.01em;color:var(--ink)}.topbar-sep,.topbar-sub,.topbar-user{color:var(--muted);font-size:.88rem}.topbar-user-menu{position:relative}button.topbar-user{appearance:none;border:0;background:transparent;padding:4px 2px;margin:0;cursor:pointer;font:inherit;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.topbar-user:hover,button.topbar-user[aria-expanded=true]{color:var(--ink)}.topbar-user-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:112px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;box-shadow:0 8px 24px #0f172a1f}.topbar-user-logout{display:block;width:100%;border:0;background:transparent;padding:8px 12px;border-radius:calc(var(--radius-sm) - 2px);text-align:left;font:inherit;font-size:.88rem;color:var(--ink);cursor:pointer}.topbar-user-logout:hover{background:var(--panel-2)}.icon-btn{width:34px;height:34px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:var(--radius-sm)}.shell-body{flex:1;min-height:0;display:flex}.sidebar{width:var(--sidebar-w);flex-shrink:0;padding:10px 8px;border-right:1px solid var(--line);background:#ffffffb8;overflow:auto;transition:width .16s ease}.shell.is-collapsed .sidebar{width:var(--sidebar-w-collapsed)}.nav-group+.nav-group{margin-top:10px}.nav-group-label{padding:2px 10px 4px;color:var(--muted);font-size:.72rem;letter-spacing:.03em}.nav-item{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:2px;padding:7px 10px;font-size:.92rem;text-align:left;color:var(--muted);background:transparent;border:0;border-radius:var(--radius-sm);transition:transform .12s ease,background .12s ease}.nav-item:hover{color:var(--ink);background:#1a9b8e14}.nav-item.active{color:#fff;background:var(--accent);font-weight:600;box-shadow:none}.nav-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:currentColor;opacity:.7}.nav-glyph{display:inline-flex;flex-shrink:0;width:20px;height:20px;align-items:center;justify-content:center}.nav-item.active .nav-glyph{filter:brightness(1.15) saturate(.85)}.heading-with-icon{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-family:var(--font-display);font-weight:800;line-height:1.2}.heading-with-icon>svg{flex-shrink:0}.heading-with-icon>span{min-width:0}.modal-title-with-icon{margin:0 0 8px;font-size:1.15rem}.btn-with-icon,.primary:has(svg),.ghost:has(svg){display:inline-flex;align-items:center;justify-content:center;gap:6px}.shell.is-collapsed .nav-item{justify-content:center;padding:12px 0}.workspace{flex:1;min-width:0;overflow:auto;padding:14px 18px 28px}.workspace.is-flush{padding:0;overflow:hidden;display:flex;flex-direction:column}.workspace.is-flush>*{flex:1;min-height:0;overflow:auto}.workspace-header{margin-bottom:22px}.workspace-header h1{margin:0 0 8px;font-size:1.5rem;font-weight:700;font-family:var(--font-display);color:var(--ink)}.workspace-header p{margin:0;color:var(--muted);line-height:1.55}.muted{color:var(--muted);line-height:1.6}.section h2{margin:0 0 10px;font-size:1rem;font-weight:600;font-family:var(--font-display);color:var(--ink)}.section h3{margin:16px 0 8px;font-size:.95rem;font-weight:600;font-family:var(--font-display);color:var(--ink)}.section>.muted{margin:0 0 10px;font-size:.88rem;line-height:1.5}.banner{padding:8px 12px;margin-bottom:12px;border:1px solid var(--line);background:#ffffffd9;border-radius:var(--radius-sm)}.banner.success{border-color:#5ec8ff73;background:#5ec8ff1f;color:var(--ink)}.banner.error,.error-text{color:var(--danger)}.template-list{display:grid;gap:10px}.template-row{display:flex;justify-content:space-between;gap:16px;width:100%;text-align:left;padding:18px 16px;color:inherit;background:#ffffff08;border:1px solid var(--line);transition:border-color .16s ease,background .16s ease}.template-row:hover{background:#7dd3a014;border-color:#7dd3a059}.template-row p{margin:6px 0 0;color:var(--muted);font-size:.92rem}.meta{flex-shrink:0;color:var(--muted);font-size:.8rem;align-self:center}.form{display:grid;gap:14px;max-width:520px}.field{display:grid;gap:8px}.field span{font-size:.9rem;color:var(--muted)}.field input,.field textarea,.field select{width:100%;padding:7px 10px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);outline:none}.field input[type=color]{height:42px;padding:4px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#1a9b8e73;box-shadow:0 0 0 3px #1a9b8e1f}.primary{margin-top:0;padding:7px 14px;color:#fff;background:var(--accent);border:0;border-radius:var(--radius-sm);font-weight:600;box-shadow:none;transition:background .14s ease}.primary:hover:not(:disabled){background:#158a7e}.primary:disabled{opacity:.6;cursor:wait}.linkish{margin-bottom:12px;padding:0;color:var(--accent-2);background:none;border:0}.job-card{padding:18px 16px;border:1px solid var(--line);background:#ffffff08}.preview-wrap{margin:14px 0;display:grid;gap:12px}.preview-video{width:min(360px,100%);max-height:640px;background:#000;border:1px solid var(--line)}.link-btn{display:inline-block;text-decoration:none;text-align:center}.break{word-break:break-all}.ghost{padding:6px 12px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm)}.ghost.danger{color:var(--danger)}.table{display:grid;gap:8px;margin-bottom:28px}.table-row{display:flex;justify-content:space-between;gap:12px;padding:14px 12px;border:1px solid var(--line);background:#ffffff08}.row-actions{display:flex;gap:8px;align-items:center}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px}.login-brand strong{display:block;font-family:var(--font-display);font-size:1.5rem;letter-spacing:.06em}.login-brand span{display:block;color:var(--muted);font-size:.88rem;margin-top:2px}.login-panel{width:min(420px,100%);margin:40px auto;padding:24px;border:1px solid var(--line);background:#ffffff08}.steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.step-chip{padding:6px 10px;color:var(--muted);border:1px solid var(--line);font-size:.82rem}.step-chip.active{color:var(--bg0);background:var(--accent);border-color:transparent}@media(max-width:860px){.sidebar{position:absolute;z-index:20;height:calc(100% - var(--topbar-h));box-shadow:8px 0 24px #00000059}.shell.is-collapsed .sidebar{width:0;padding:0;border:0;overflow:hidden}.shell-mobile-drawer .shell-body{position:relative}.shell-mobile-drawer .sidebar{position:fixed;top:var(--topbar-h);left:0;bottom:0;z-index:45;width:min(288px,86vw)!important;height:auto;padding:12px 10px calc(12px + env(safe-area-inset-bottom));border-right:1px solid var(--line);background:#fffffffa;overflow:auto;transform:translate(-105%);transition:transform .2s ease;box-shadow:none}.shell-mobile-drawer.is-drawer-open .sidebar{transform:translate(0);box-shadow:10px 0 28px #0000002e}.shell-mobile-drawer .workspace{width:100%;padding:12px 12px calc(16px + env(safe-area-inset-bottom))}.shell-mobile-drawer .nav-item{min-height:44px;padding:10px 12px;font-size:.95rem}.shell-mobile-drawer .icon-btn{width:44px;height:44px}.shell-mobile-drawer .topbar-user{min-height:44px}.shell-drawer-backdrop{position:fixed;inset:var(--topbar-h) 0 0 0;z-index:40;border:0;margin:0;padding:0;background:#0f172a6b;cursor:pointer}.template-row,.table-row{flex-direction:column}}.style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.style-card{text-align:left;display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);background:transparent;color:inherit;cursor:pointer}.style-card span{color:var(--muted);font-size:.82rem}.style-card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field.checkbox{display:flex;align-items:center;gap:8px}.scene-edit{border:1px solid var(--line);padding:12px;margin-top:12px;display:grid;gap:8px}.row{display:flex;gap:8px}.row.wrap{flex-wrap:wrap;align-items:center}.row input{flex:1}.progress{height:8px;background:var(--line);margin-top:10px}.progress>div{height:100%;background:var(--accent)}.live-job{margin-top:28px}.workspace-header.compact h2{margin:0 0 4px;font-family:var(--font-display);font-size:1.25rem}.workspace-header.compact p{margin:0 0 12px;color:var(--muted);font-size:.9rem}.linkish.inline{margin:0;display:inline}.history-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:20px}.history-filters .grow{flex:1 1 220px}.history-search-btn{margin-top:0;align-self:end}.history-list{display:grid;gap:12px}.history-card{padding:16px;border:1px solid var(--line);background:#ffffff08}.history-card-main{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}@media(max-width:720px){.history-card-main{flex-direction:column}}.login-page{min-height:100%;display:grid;place-items:center;padding:16px}.login-card{width:min(400px,100%);padding:20px;border:1px solid var(--line);background:#ffffffeb;border-radius:var(--radius);box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}.login-brand h1{margin:0;font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--ink)}.login-brand p{margin:4px 0 0;color:var(--muted);font-size:.92rem}.login-agree{align-items:flex-start;margin:12px 0 4px;font-size:.88rem;color:var(--muted);line-height:1.45}.login-agree a{color:var(--accent, #0f766e)}.login-setup-banner{margin:4px 0 8px;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid rgba(194,120,40,.28)}.login-setup-banner strong{display:block;font-size:1.05rem;color:#9a3412}.login-setup-banner p{margin:6px 0 0;font-size:.88rem;color:#9a5b2a;line-height:1.45}.name-input-suggest{border:1.5px solid rgba(15,118,110,.45)!important;background:#fff!important}.name-suggest-tip{display:block;margin-top:6px;font-size:.84rem;font-weight:600;color:#0f766e;line-height:1.4}.login-heading{margin:0 0 4px;font-size:1.1rem;font-weight:700}.divider-or{display:flex;align-items:center;gap:.75rem;margin:.25rem 0;font-size:.8rem;color:var(--muted, #6b7280)}.divider-or:before,.divider-or:after{content:"";flex:1;height:1px;background:color-mix(in srgb,currentColor 28%,transparent)}.back-btn{margin-bottom:8px}.tabs{display:flex;gap:8px;margin:16px 0}.tabs button{flex:1;padding:8px;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:var(--radius-sm)}.tabs button.active{color:var(--accent);border-color:#1a9b8e59;background:#1a9b8e14;font-weight:600}.stack{display:grid;gap:8px}.small{font-size:.85rem}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px;margin:8px 0 14px}.book-grid.is-hero{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:14px}.home-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.home-toolbar-title{margin:0}.home-library{display:grid;gap:8px;padding-bottom:12px}.home-brand{margin:0 0 2px;padding:2px 2px 0}.home-hero{margin:2px 0 10px;padding:14px 16px 16px;border-radius:calc(var(--radius) + 4px);background:linear-gradient(135deg,#1a9b8e24,#3b82c41a),var(--panel);border:1px solid rgba(26,155,142,.14);box-shadow:0 8px 24px #1a9b8e14}.home-hero-kicker{margin:0 0 4px;font-family:var(--font-display);font-size:.82rem;font-weight:800;letter-spacing:.04em;color:var(--accent);text-transform:none}.home-hero-title{margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,4.5vw,1.9rem);font-weight:800;line-height:1.2;color:var(--ink)}.home-hero-sub{margin:6px 0 0;font-size:.92rem}.home-section{margin:4px 0 10px}.home-section+.home-section{margin-top:2px}.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.home-section-title{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:800;display:flex;align-items:center;gap:10px}.home-section-title.heading-with-icon{margin:0}.home-section-title>svg{flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(28,43,51,.12))}.home-section-link{border:0;background:transparent;color:var(--accent);font-weight:700;font-size:.88rem;padding:8px 4px;min-height:44px}.home-empty{display:grid;gap:6px;padding:18px 16px;border-radius:var(--radius);background:#ffffffb8;border:1px dashed rgba(26,155,142,.28)}.home-empty-art{width:42px;height:42px;border-radius:14px;background:radial-gradient(circle at 30% 30%,#ffe08a,transparent 55%),linear-gradient(145deg,#7dd3c7,#6eb0e0);margin-bottom:2px}.home-empty strong{font-family:var(--font-display);font-size:1rem}.home-empty p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.book-rail{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.book-rail .book-card{flex:0 0 138px;scroll-snap-align:start}.book-rail.is-hero .book-card{flex:0 0 158px;padding:10px;border-radius:var(--radius)}.book-rail .book-meta span.muted{display:none}.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}.shelf-grid-browse{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.home-continue-grid .book-card{border:1px solid rgba(26,155,142,.14);background:var(--panel);border-radius:var(--radius);box-shadow:0 6px 18px #1c2b330f;padding:0;overflow:hidden}.home-continue-grid .book-card-main{padding:10px}.home-continue-grid .book-cover{aspect-ratio:4 / 3;margin-bottom:10px}.home-continue-grid .book-meta strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shelf-card{position:relative;border:1px solid rgba(26,155,142,.14);background:var(--panel);border-radius:var(--radius);box-shadow:0 6px 18px #1c2b330f;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}.shelf-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.shelf-card-main{display:block;width:100%;margin:0;padding:10px;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer;min-height:44px}.shelf-cover{aspect-ratio:4 / 3;border-radius:var(--radius-sm);overflow:hidden;background:linear-gradient(145deg,#d7efe9,#d5e7f7);display:grid;place-items:center;margin-bottom:10px}.shelf-cover img{width:100%;height:100%;object-fit:cover;display:block}.shelf-cover-carousel{position:relative}.shelf-cover-carousel img{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.shelf-cover-carousel img.is-active{opacity:1;animation:shelf-cover-fade .7s ease}.shelf-cover-carousel img.is-preload{opacity:0}@keyframes shelf-cover-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.shelf-cover-carousel img.is-active{animation:none}}.shelf-cover-fallback{font-family:var(--font-display);font-size:1.8rem;font-weight:800;color:var(--accent)}.shelf-meta strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--font-display);font-size:.98rem;font-weight:800;line-height:1.25}.shelf-meta .muted{display:block;margin-top:4px;font-size:.8rem}.shelf-fav{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;margin:0;border:0;background:#ffffffeb;box-shadow:0 2px 10px #1c2b331f}.series-shelf-page{gap:4px}.series-shelf-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:8px}.series-back-btn{appearance:none;flex:0 0 auto;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.series-back-btn svg{width:26px;height:26px;display:block}.series-back-btn:hover{background:#0f766e14}.series-back-btn:active{opacity:.7;transform:scale(.94)}.series-shelf-heading h2{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:800}.series-shelf-heading .muted{margin:2px 0 0;font-size:.85rem}.series-shelf-bar-spacer{width:40px}.series-fav-btn.is-lg{width:44px;height:44px}.series-shelf-desc{margin:0 0 12px;font-size:.9rem;line-height:1.45}.series-load-more{display:flex;justify-content:center;margin-top:1rem}.series-load-more .ghost{min-width:10rem}.home-fav-toggle{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.88rem;font-weight:600}.home-fav-toggle.is-on{color:#b45309;border-color:#fbbf24a6;background:#fbbf2429}.home-fav-toggle svg{display:block;flex-shrink:0}.book-card{position:relative;text-align:left;border:1px solid var(--line);background:var(--panel);padding:8px;border-radius:var(--radius);box-shadow:0 2px 10px #0f172a0d;transition:transform .14s ease,box-shadow .14s ease}.book-card-main{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.book-fav-btn{position:absolute;top:12px;right:12px;z-index:2;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:999px;background:#0f172a73;color:#f8fafc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 8px #0003;cursor:pointer}.book-fav-btn.is-on{color:#fbbf24;background:#0f172a8c}.book-fav-btn:hover{background:#0f172ac7}.series-fav-btn{flex-shrink:0;align-self:center;margin-right:6px;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:#64748b;cursor:pointer}.series-fav-btn.is-on{color:#b45309;border-color:#fbbf24a6;background:#fbbf2429}.series-fav-btn:hover{border-color:#fbbf248c;color:#b45309}.book-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.book-card.is-locked .book-cover img{filter:saturate(.85) brightness(.92)}.book-card.is-locked:hover{transform:translateY(-2px)}.book-cover{aspect-ratio:3/4;border-radius:var(--radius-sm);background:linear-gradient(160deg,#e2e8f0,#cbd5e1);display:grid;place-items:center;overflow:hidden;margin-bottom:10px;font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:#475569;position:relative}.book-free-badge,.book-lock-badge{position:absolute;top:8px;left:8px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;font-family:var(--font-body);line-height:1.4}.book-free-badge{background:#fffffff0;color:#0f766e;border:1px solid rgba(20,184,166,.35)}.book-lock-badge{background:#0f172ac7;color:#fff}.book-companion-badge{position:absolute;right:6px;bottom:6px;z-index:2;display:inline-flex;align-items:center;gap:3px;max-width:calc(100% - 12px);padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:700;font-family:var(--font-body);line-height:1.35;letter-spacing:.01em;background:#fffcf5f5;color:#0f766e;border:1px solid rgba(45,212,191,.4);box-shadow:0 1px 4px #0f172a14;pointer-events:none}.book-companion-badge i{font-style:normal;font-size:.72rem;line-height:1}.book-companion-badge.is-completed{color:#0f766e}.book-companion-badge.is-revisited{color:#b45309;border-color:#fbbf248c;background:#fffbebf7}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(420px,100%);padding:24px;border-radius:var(--radius);background:var(--panel);border:2px solid var(--line);box-shadow:var(--shadow)}.modal-card h3{font-family:var(--font-display);margin-bottom:10px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.book-cover img{width:100%;height:100%;object-fit:cover}.book-meta strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;word-break:break-word;font-size:.9rem;line-height:1.3;min-height:2.6em}.reader-chip{position:relative;z-index:1;padding:8px 14px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#0f172a8c;color:#fff;font-size:.88rem;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 16px #00000040;transition:background 80ms ease;flex:0 0 auto;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer}.reader-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;line-height:0}.reader-chip-label{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:44px;padding:0 14px 0 8px;line-height:1}.reader-chip-label svg{display:block;flex-shrink:0}.reader-back-chevron{width:20px;height:20px;margin-right:-1px}.reader-chip-label span{font-size:.92rem;font-weight:700;letter-spacing:.02em}.reader-chip-icon svg{display:block;flex-shrink:0}.reader-chip-icon.is-on{color:#fbbf24;border-color:#fbbf248c}.reader-chip-icon.is-muted{color:#94a3b8;border-color:#94a3b873}.reader-chip-loop.is-loop-on{color:#34d399;border-color:#34d399d9;background:#064e3bb8;box-shadow:0 0 0 1px #34d3998c,0 0 14px #34d3998c}.reader-chip:hover{background:#0f172ac7}.reader-chip:active{background:#0f172ae6}.series-block{margin-bottom:6px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffb8;overflow:hidden}.series-block.depth-1{border-color:#1a9b8e38}.series-block.depth-2,.series-block.depth-3{margin:8px 0 0;border-color:var(--line);background:#f8fafce6}.series-head{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;text-align:left;color:var(--ink);background:transparent;border:0;font-family:var(--font-display);font-size:.94rem;font-weight:600}.series-head:not(:disabled):hover{background:#1a9b8e0f}.series-head:disabled{cursor:default}.series-chevron{width:14px;flex-shrink:0;color:var(--muted);font-size:.85rem;line-height:1}.series-chevron.placeholder{visibility:hidden}.series-name{flex:1;min-width:0}.series-count{font-size:.82rem;font-weight:400;font-family:var(--font-body)}.series-desc{margin:0;padding:0 14px 10px 36px;font-size:.88rem}.series-children{padding:0 8px 8px 16px}.series-block .book-grid{margin:0 8px 8px}.series-tree{display:grid;gap:6px}.series-head-row{display:flex;align-items:stretch;gap:6px}.series-rename-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:6px 8px}.series-rename-row input,.series-head-row .series-head{flex:1;min-width:0}.series-delete{flex-shrink:0;align-self:center;margin-right:8px;padding:4px 10px;font-size:.82rem}.cascade-select{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cascade-select select{width:100%;padding:7px 10px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm)}.cascade-select select:disabled{opacity:.55;cursor:not-allowed}.upload-panel{padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffb8}.upload-actions{flex-wrap:wrap;align-items:center}.select-folder-btn{min-width:72px}.upload-confirm-row{margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}.folder-selection-box{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#f8fafcf2;display:grid;gap:8px}.folder-selection-row{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start;font-size:.9rem}.folder-selection-label{color:var(--muted);flex-shrink:0}.folder-selection-path{word-break:break-all;font-size:.88rem;background:#fff;padding:2px 6px;border-radius:4px;border:1px solid var(--line)}.folder-selection-tip{margin:0}@media(max-width:720px){.cascade-select{grid-template-columns:1fr}}.admin-series-tree{margin-top:4px}.series-reparent{display:inline-flex;align-items:center;gap:6px;margin-left:4px}.series-reparent select{max-width:160px;font-size:13px;padding:4px 8px;border-radius:8px;border:1px solid var(--line);background:var(--surface, #fff);color:inherit}.series-block.is-expanded>.series-head-row>.series-head,.series-block.is-expanded>.series-head{border-bottom:1px solid var(--line)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.subscribe-promo{margin:28px 0 0;font-size:.9rem;font-weight:400;letter-spacing:.01em;color:#6b7280;text-align:center}.plan-price-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.plan-recommend{font-size:.82rem;font-weight:700;color:#dc2626;line-height:1.2}.subscribe-block{margin-top:20px}.subscribe-block:first-child,.subscribe-section>.banner+.subscribe-block{margin-top:0}.subscribe-block-story{margin-top:4px;padding-top:0}.subscribe-block-world,.subscribe-block-miniapp{margin-top:20px}.subscribe-block-title{margin:0 0 12px;font-size:1.05rem;font-weight:700}.plan-card,.pay-box{border:1px solid var(--line);background:var(--panel);padding:16px;border-radius:var(--radius);box-shadow:0 4px 14px #0f172a0d}.plan-card{display:flex;flex-direction:column;gap:10px;transition:border-color .14s ease,box-shadow .14s ease}.plan-card.is-active{border-color:#1a9b8e73;box-shadow:0 8px 24px #1a9b8e1f}.plan-card-body{display:flex;flex-direction:column;gap:6px;min-width:0}.plan-card-top{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px}.plan-duration{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);background:#0ea5e91f;color:#0369a1;font-size:.78rem;font-weight:700}.plan-scope{color:var(--muted);font-size:.78rem}.plan-name{margin:0;font-family:var(--font-display);font-size:.95rem;font-weight:600;line-height:1.3;color:var(--ink)}.plan-meta-row{display:flex;align-items:baseline;gap:8px;min-width:0}.plan-desc{margin:0;font-size:.86rem;line-height:1.4;flex:1;min-width:0}.price{flex-shrink:0;font-size:1.35rem;font-family:var(--font-display);font-weight:700;color:#0f172a;letter-spacing:-.02em}.plan-buy{margin-top:auto;width:100%;min-height:42px}.pay-box{margin-top:24px;max-width:320px}.pay-modal{width:min(400px,100%);text-align:center}.pay-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;text-align:left}.pay-modal-head h3{margin:0;font-family:var(--font-display)}.pay-modal-plan{margin:4px 0 0;color:var(--muted);font-size:.92rem}.pay-modal-amount{margin:8px 0 16px;display:inline-block}.pay-qr-wrap{display:grid;place-items:center;margin:0 auto 12px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);width:fit-content}.pay-modal .qr{width:200px;height:200px;margin:0;padding:0}.pay-modal-tip{margin:0 0 8px}.pay-modal .primary,.pay-modal .ghost{width:100%;min-height:42px;margin-top:8px}.pay-box.in-card{margin-top:12px;max-width:none;padding:12px;background:var(--panel-2);box-shadow:none}.pay-box-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.pay-box-head h4{margin:0;font-size:.95rem}.small-btn{padding:4px 10px;font-size:.82rem}.qr{width:220px;height:220px;background:#fff;padding:8px;display:block;margin:0 auto}.reader-page{position:relative;height:100%;height:100dvh;max-height:100dvh;overflow:hidden;background:#000}.reader-page.is-fake-landscape{position:fixed;z-index:1000;margin:0;max-height:none;transform:rotate(90deg);transform-origin:top left;overflow:hidden;background:#000}.reader-bar.is-chrome-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity .18s ease}.reader-bar.is-chrome-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease}.reader-page.is-landscape .reader-bar.is-chrome-visible,.reader-page.is-landscape .reader-bar.is-chrome-hidden{transform:none}.reader-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000;z-index:0}.reader-stage{position:absolute;inset:0;z-index:0;overflow:hidden;background:#000}.reader-stage.is-contained{inset:auto}.reader-watermark{position:absolute;top:max(10px,calc(6px + env(safe-area-inset-top,0px)));right:max(calc(6.2em + 12px),calc(6.2em + env(safe-area-inset-right,0px)));z-index:1;margin:0;padding:0;pointer-events:none;user-select:none;-webkit-user-select:none;color:#ffffff42;font-size:1.15rem;font-weight:500;letter-spacing:.14em;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.22);white-space:nowrap}.reader-page.is-landscape .reader-watermark,.reader-page.is-aspect-contain .reader-watermark{top:max(8px,env(safe-area-inset-top,0px));right:max(calc(6.2em + 10px),calc(6.2em + env(safe-area-inset-right,0px)));font-size:1.1rem}.reader-stage.is-contained .reader-watermark{top:8px;right:max(calc(6.2em + 10px),10px)}.reader-loading{position:absolute;inset:0;z-index:1;display:grid;place-items:center;margin:0;color:#94a3b8}.reader-chrome-hit{position:absolute;z-index:2;border:0;padding:0;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.reader-chrome-hit-top{top:0;left:0;right:0;height:max(44px,calc(28px + env(safe-area-inset-top,0px)))}.reader-chrome-hit-side{top:0;left:0;bottom:0;width:max(44px,calc(28px + env(safe-area-inset-left,0px)))}.reader-page.is-vv-fixed{position:fixed;z-index:1000;margin:0;max-height:none;overflow:hidden;background:#000;padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:border-box}.reader-soft-hint{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:6;max-width:min(92vw,360px);padding:10px 14px;border-radius:12px;background:#0f172ae0;color:#e2e8f0;font-size:.82rem;line-height:1.4;text-align:center;pointer-events:none;box-shadow:0 8px 24px #00000059}.reader-page.is-fake-landscape .reader-soft-hint{bottom:max(12px,env(safe-area-inset-left,0px))}.reader-bar{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;gap:10px;padding:max(6px,env(safe-area-inset-top)) 10px 8px;color:#fff;background:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,.2) 65%,transparent 100%)}.reader-bar-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;flex-shrink:0}.reader-error{position:absolute;left:12px;right:12px;top:max(48px,calc(40px + env(safe-area-inset-top)));z-index:4}.reader-next{display:none}.reader-page.is-landscape .reader-bar{left:max(6px,env(safe-area-inset-left));right:auto;width:max-content;max-width:calc(100vw - 100px);padding:6px 0 0;background:none;z-index:5}.reader-page.is-landscape .reader-bar-actions{gap:6px}.reader-page.is-landscape .reader-chip{padding:6px 12px;font-size:.8rem;background:#0f172ac7}.reader-page.is-landscape .reader-chip-icon{width:42px;height:42px;padding:0}.reader-page.is-landscape .reader-chip-label{height:42px;padding:0 12px 0 8px}.reader-page.is-landscape .reader-chip-label span{font-size:.78rem}.reader-page.is-landscape .reader-chip-fs{margin-left:0}.reader-page.is-landscape .reader-error{left:8px;right:8px;top:40px}@media(min-width:721px){.reader-chrome-hit-top{height:52px}}@media(min-width:721px)and (max-width:1180px)and (orientation:portrait){.home-library .book-grid,.home-library .book-grid.is-hero,.home-library .shelf-grid,.home-library .shelf-grid-browse{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-library .book-rail{gap:10px}.home-library .book-rail.is-hero .book-card{flex:0 0 calc((100% - 20px) / 3);max-width:calc((100% - 20px) / 3);padding:6px}.home-library .book-card{padding:6px}.home-library .book-meta strong,.home-library .shelf-meta strong{font-size:.78rem}}.mobile-tabbar{display:none}.desktop-only{display:inline}.sidebar-desktop-only{display:flex;flex-direction:column}@media(max-width:720px){:root{--topbar-h: 42px}.shell-mobile-tabs .sidebar-desktop-only,.shell-mobile-tabs .desktop-only{display:none}.shell-mobile-tabs .workspace{padding:10px 10px calc(58px + env(safe-area-inset-bottom))}.shell-mobile-tabs .mobile-tabbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:4px;position:sticky;bottom:0;z-index:30;flex-shrink:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-tab{min-height:48px;border:0;background:transparent;color:var(--muted);font-size:.82rem;font-weight:800;border-radius:14px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:6px 8px}.mobile-tab-icon{display:flex;line-height:0;flex-shrink:0}.mobile-tab-label{line-height:1.1;white-space:nowrap}.mobile-tab.active{color:var(--accent);background:#1a9b8e24;box-shadow:inset 0 0 0 1px #1a9b8e38}.mobile-tab.active .mobile-tab-icon{transform:scale(1.06)}.home-hero{padding:14px 14px 15px}.home-hero-title{font-size:1.4rem}.home-section-title{font-size:1.05rem}.book-rail{gap:8px;padding-bottom:8px}.book-rail.is-hero .book-card{flex:0 0 calc((100% - 16px) / 3);max-width:calc((100% - 16px) / 3);padding:4px;border-radius:8px}.book-rail .book-cover{margin-bottom:4px;border-radius:4px}.book-rail .book-meta strong{font-size:.68rem;line-height:1.25;-webkit-line-clamp:2}.shelf-grid,.shelf-grid-browse{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shelf-card-main{padding:6px}.shelf-meta strong{font-size:.78rem}.shelf-meta .muted{font-size:.68rem}.shelf-fav{width:36px;height:36px;top:6px;right:6px}.book-grid.is-hero,.book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 8px}.section h2{margin:0 0 6px;font-size:.95rem}.section h3{margin:10px 0 6px;font-size:.88rem}.section>.muted{margin:0 0 8px;font-size:.8rem;line-height:1.4}.banner{padding:6px 10px;margin-bottom:8px;font-size:.82rem}.book-card{padding:4px;border-radius:8px;box-shadow:0 2px 8px #1c2b330d}.book-card:hover{transform:none;box-shadow:none}.book-cover{aspect-ratio:3 / 3.4;margin-bottom:4px;border-radius:4px;font-size:1.2rem}.book-free-badge,.book-lock-badge{top:4px;left:4px;padding:1px 5px;font-size:.62rem}.book-companion-badge{right:4px;bottom:4px;padding:1px 5px;font-size:.58rem;gap:2px}.book-meta span.muted{display:none}.book-card h4,.book-card .book-title,.book-meta strong{font-size:.65rem;line-height:1.25;min-height:0;-webkit-line-clamp:2}.series-block .book-grid{margin-top:4px}.subscribe-section{display:grid;gap:0}.plan-grid{grid-template-columns:1fr;gap:6px}.plan-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 10px;padding:8px 10px;box-shadow:none}.plan-card-body{gap:2px;min-width:0}.plan-card-top{gap:4px 8px}.plan-duration{padding:1px 6px;font-size:.7rem}.plan-scope{font-size:.7rem}.plan-name{font-size:.82rem;font-weight:600}.plan-meta-row{gap:6px}.plan-desc{font-size:.72rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.price{font-size:1.05rem}.plan-buy{width:auto;min-width:76px;min-height:34px;margin-top:0;padding:6px 10px;font-size:.8rem;white-space:nowrap}.plan-card .primary,.pay-box .primary,.pay-box .ghost{min-height:34px}.pay-box{max-width:none;margin-top:12px;padding:12px}.qr{width:min(220px,70vw);height:auto;aspect-ratio:1;margin:0 auto;display:block}.series-head{min-height:36px;padding:6px 8px;font-size:.88rem}.stack,.profile-name-form{gap:6px}.modal-actions{flex-direction:column-reverse;gap:6px}.modal-actions button{width:100%;min-height:40px}.modal-card{padding:14px}.modal-card h3{margin:0 0 6px}}.simple-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.simple-list li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffd9}.admin-form{margin-bottom:12px}.admin-exe-current{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 14px;margin:4px 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8}.admin-exe-version{font-size:28px;font-weight:700;letter-spacing:.02em;line-height:1.1;color:var(--text)}.admin-exe-panel{max-width:480px}.admin-exe-upload-btn{display:inline-flex;align-items:center;justify-content:center;margin:0;cursor:pointer}.admin-exe-upload-btn:has(input:disabled){opacity:.55;pointer-events:none}.admin-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.admin-card-list{display:none;flex-direction:column;gap:10px}.admin-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffdb;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.admin-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-card-title{font-weight:700;font-size:.98rem;line-height:1.35}.admin-card-meta{display:grid;gap:4px;font-size:.86rem;color:var(--ink)}.admin-card-meta span{display:flex;flex-wrap:wrap;gap:4px 8px}.admin-card-meta em{font-style:normal;color:var(--muted);min-width:4.5em}.admin-card-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px;border-top:1px dashed var(--line)}.admin-card-actions .ghost,.admin-card-actions .primary,.admin-card-actions .admin-gift-btn{min-height:44px;padding:0 14px}.admin-card .admin-gift-block{width:100%}.admin-card .admin-table-input,.admin-card select.admin-table-input{min-height:44px;font-size:16px}.admin-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.admin-filter-date{display:inline-flex;align-items:center;gap:6px;font-size:13px}.invite-panel{margin:8px 0 22px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8}.invite-panel .heading-with-icon{margin-bottom:8px}.support-panel{margin-top:28px;padding-top:8px}.profile-phone{margin:4px 0 0 36px}.profile-sub-group{margin:0 0 14px}.profile-sub-group h3{margin:0 0 6px;font-size:.95rem;font-weight:600;color:var(--ink)}.profile-progress-block{margin:22px 0 8px}.profile-progress-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.profile-progress-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#ffffffbf;text-align:left;cursor:pointer;color:inherit}.profile-progress-item img,.profile-progress-empty{width:44px;height:44px;border-radius:10px;object-fit:cover;flex-shrink:0;background:#e8f2ef}.profile-progress-empty{display:grid;place-items:center;color:#0f766e;font-size:.85rem}.profile-progress-item strong{display:block;font-size:.92rem}.profile-progress-item em{display:block;font-style:normal;font-size:.78rem;color:var(--muted)}.profile-legal{margin-top:24px;display:flex;gap:8px;align-items:center;font-size:.88rem}.profile-legal a{color:var(--accent, #0f766e)}button.linkish{border:none;background:none;padding:0;color:var(--accent, #0f766e);cursor:pointer;font:inherit;text-decoration:underline}.support-panel h2{margin:0 0 10px;font-size:1.15rem}.support-phones{list-style:none;margin:0;padding:0;display:grid;gap:8px}.support-phones a,.support-phones li{font-weight:700;font-size:1.05rem;line-height:1.4}.support-phones a{color:var(--accent);text-decoration:none}.support-preview{margin-top:12px}.invite-count-inline{margin-left:.75em;font-weight:600;color:var(--muted);letter-spacing:.02em}.profile-user-block{position:relative;display:inline-block;margin-bottom:14px;max-width:100%}.profile-user-heading{margin:0}.profile-name-trigger{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;font:inherit;font-family:var(--font-display);font-weight:700;color:var(--ink);text-align:left}.profile-name-trigger:hover,.profile-name-trigger[aria-expanded=true]{color:var(--brand, #1a9b8e)}.profile-name-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:112px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;box-shadow:0 8px 24px #0f172a1f;display:grid}.profile-name-menu button{appearance:none;border:0;background:transparent;text-align:left;padding:8px 12px;border-radius:6px;cursor:pointer;font:inherit;color:var(--ink)}.profile-name-menu button:hover{background:#1a9b8e1a}.profile-name-form{margin-bottom:16px}.admin-user-row{flex-wrap:wrap;align-items:flex-start}.admin-user-main{flex:1;min-width:200px;display:grid;gap:4px}.admin-user-name{margin:0}.admin-user-name span{font-size:12px}.admin-user-meta{font-size:13px}.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffb8}.admin-table-desktop{display:block}.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:960px}@media(max-width:720px){.admin-filters{flex-direction:column;align-items:stretch}.admin-filters>input,.admin-filters>select,.admin-filters>button{width:100%;min-height:44px;box-sizing:border-box;font-size:16px}.admin-filter-date{width:100%;display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:6px}.admin-filter-date input[type=date]{min-height:44px;width:100%;font-size:16px}.admin-table-desktop{display:none}.admin-card-list{display:flex}.admin-pager button{min-height:44px;min-width:88px}.section.admin .row.wrap{gap:8px}.section.admin .row.wrap>button{min-height:44px}}.admin-table th,.admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}.admin-table th{font-weight:600;background:#0000000a;position:sticky;top:0}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:#00000006}.admin-table-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.admin-ends-active{color:#0b6b3a;font-weight:500}.admin-ends-expired{color:#8a949c}.admin-table-sub{font-size:12px}.admin-feedback-table{min-width:880px}.admin-feedback-table td.admin-feedback-content{white-space:pre-wrap;word-break:break-word;max-width:420px;line-height:1.45}.order-status{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;background:#0000000f}.order-status.is-paid{color:#1b6b3a;background:#2ea05a24}.order-status.is-pending{color:#8a5a00;background:#e6aa282e}.order-status.is-closed,.order-status.is-refunded{color:#666;background:#0000000f}.admin-user-gift{margin:8px 0 0}.admin-user-gift span{font-size:12px}.admin-free-card{margin:0 0 18px;padding:16px 18px;border-radius:14px;background:linear-gradient(135deg,#0f766e14,#38bdf814);border:1px solid rgba(15,118,110,.14)}.admin-free-card h3{margin:0 0 6px;font-size:1.05rem}.admin-free-card .small{margin:0 0 12px;font-size:.85rem}.admin-free-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px}.admin-free-form .field{margin:0;min-width:120px}.admin-free-form .field span{display:block;margin-bottom:4px;font-size:.8rem;color:#5c6b75}.admin-free-form .field input{width:100%;min-width:120px}.admin-free-products{padding-bottom:4px}.admin-free-enable{font-weight:600;padding-bottom:6px}.admin-gift-row{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.admin-gift-block{display:grid;gap:8px;min-width:180px}.admin-gift-products{display:flex;flex-wrap:wrap;gap:6px 10px}.admin-gift-check{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--ink);white-space:nowrap;cursor:pointer}.admin-gift-check input{margin:0}.admin-gift-row input,.admin-gift-input{width:72px;max-width:30vw}.admin-gift-btn{margin-top:0;padding:7px 16px;color:#fff;background:#f60;border:0;border-radius:4px;font-size:15px;line-height:1.1;font-weight:700;letter-spacing:.04em;box-shadow:none;transition:background .14s ease}.admin-gift-btn:hover:not(:disabled){background:#e85e00}.admin-gift-btn:disabled{opacity:.55;cursor:wait}.admin-gift-row .admin-ends-input{width:168px;max-width:46vw;min-width:156px}.admin-table-input{width:100%;min-width:96px;max-width:160px;padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:#fff;font:inherit}.admin-table-actions{flex-wrap:nowrap}.admin-table td.admin-table-actions,.admin-table .admin-table-actions{white-space:nowrap}.admin-book-row{align-items:flex-start}.admin-book-check{margin:0;flex-shrink:0;padding-top:2px}.admin-book-main{flex:1;min-width:0;display:flex;align-items:center}.admin-book-title-line{display:inline-flex;align-items:baseline;min-width:0;flex-wrap:wrap}.admin-book-meta{white-space:pre-wrap}.book-batch-toolbar{flex-wrap:wrap;align-items:center;gap:10px}.row-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.file-btn{display:inline-flex;align-items:center;padding:8px 14px;border:2px dashed var(--accent);border-radius:var(--radius-sm);background:#ffffffe6;color:var(--accent);font-weight:600;cursor:pointer}.file-btn.disabled{opacity:.65;cursor:wait;pointer-events:none}.upload-progress{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.upload-progress p{margin:0 0 8px;font-size:.92rem}.upload-progress progress{width:100%;height:8px;accent-color:var(--accent)}.banner.success{border-color:var(--accent);color:var(--accent)}button.danger{color:var(--danger)}.portal-home{max-width:920px;margin:0 auto;padding:8px 4px 48px}.portal-hero{position:relative;padding:28px 8px 20px;margin-bottom:8px;overflow:hidden}.portal-hero:before{content:"";position:absolute;inset:-20% -10% auto;height:180px;background:radial-gradient(420px 160px at 18% 40%,rgba(26,155,142,.22),transparent 70%),radial-gradient(380px 140px at 88% 20%,rgba(59,130,196,.18),transparent 68%),radial-gradient(300px 120px at 55% 90%,rgba(240,162,2,.14),transparent 65%);pointer-events:none}.portal-hero-brand{position:relative;display:flex;align-items:center;gap:16px;margin-bottom:12px}.portal-eyebrow{margin:0 0 4px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.portal-hero h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,5vw,2.75rem);font-weight:800;letter-spacing:.04em;color:var(--ink);line-height:1.15}.portal-lead{position:relative;margin:0;max-width:28em;font-size:1.05rem;color:var(--muted);line-height:1.65}.portal-pillars{display:grid;gap:14px;margin-top:28px}@media(min-width:720px){.portal-pillars{grid-template-columns:repeat(3,1fr);gap:16px}}.portal-pillar{display:flex;flex-direction:column;align-items:flex-start;gap:14px;width:100%;padding:20px 18px 18px;border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:#ffffffc7;text-align:left;cursor:pointer;color:inherit;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.portal-pillar.is-static{cursor:default}.portal-pillar.is-clickable{cursor:pointer;font:inherit;appearance:none;-webkit-appearance:none}.portal-pillar:not(.is-static):hover,.portal-pillar.is-clickable:hover{transform:translateY(-3px);border-color:#1a9b8e59;box-shadow:var(--shadow)}.portal-card-qr-wrap{display:grid;place-items:center;width:168px;height:168px;margin:4px auto 0;border-radius:16px;position:relative}.portal-pillar.has-shared-qr .portal-card-qr-wrap:before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 #1a9b8e47;animation:portalQrPulse 2.4s ease-out infinite;pointer-events:none}.portal-card-qr{display:block;width:160px;height:160px;border-radius:12px;background:#fff;object-fit:contain;position:relative;z-index:1}.portal-card-qr-note{display:block;width:100%;text-align:center;font-size:.82rem;color:var(--muted)}.portal-card-share{position:relative;display:grid;place-items:center;width:168px;height:168px;margin:4px auto 0}.portal-card-share-panel{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;padding:16px 10px 18px;border-radius:16px;text-align:center;color:#0b5f56;background:radial-gradient(120px 80px at 22% 30%,rgba(255,255,255,.55),transparent 70%),linear-gradient(155deg,#1a9b8e52,#0f766e2e 55%,#3b82c429);box-shadow:inset 0 0 0 1.5px #1a9b8e6b,0 8px 18px #1a9b8e24;animation:portalShareGlow 2.8s ease-in-out infinite}.portal-card-share-arrow{display:flex;align-items:center;justify-content:center;gap:2px;color:#0f766e;filter:drop-shadow(0 1px 0 rgba(255,255,255,.55))}.portal-card-share-chevron{width:20px;height:20px;opacity:.4;background:currentColor;clip-path:polygon(68% 0,12% 50%,68% 100%,88% 100%,32% 50%,88% 0);animation:portalShareChev 1.25s ease-in-out infinite}.portal-card-share-chevron:nth-child(1){animation-delay:0s}.portal-card-share-chevron:nth-child(2){animation-delay:.14s}.portal-card-share-chevron:nth-child(3){animation-delay:.28s}.portal-card-share-title{display:block;margin:0;font-family:var(--font-display);font-size:1.18rem;font-weight:800;line-height:1.2;letter-spacing:.02em;white-space:nowrap;color:#084740;text-shadow:0 1px 0 rgba(255,255,255,.55)}@keyframes portalShareChev{0%,to{opacity:.28;transform:translate(4px)}50%{opacity:1;transform:translate(-5px)}}@keyframes portalShareGlow{0%,to{box-shadow:inset 0 0 0 1.5px #1a9b8e57,0 8px 18px #1a9b8e1a}50%{box-shadow:inset 0 0 0 2px #1a9b8e80,0 10px 22px #1a9b8e2e}}@keyframes portalQrPulse{0%{box-shadow:0 0 #1a9b8e47}70%{box-shadow:0 0 0 10px #1a9b8e00}to{box-shadow:0 0 #1a9b8e00}}@media(max-width:719px){.portal-card-share-arrow{transform:rotate(-90deg)}.portal-card-share-title{font-size:0}.portal-card-share-title:before{content:"请扫上方探索码";font-size:1.12rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;color:#084740;text-shadow:0 1px 0 rgba(255,255,255,.55)}}.portal-pillar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.portal-pillar-icon{display:grid;place-items:center;flex-shrink:0}.portal-pillar-head{display:flex;align-items:center;gap:12px;width:100%;min-width:0}.portal-pillar-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;line-height:1.2;white-space:nowrap}.portal-pillar-blurb{display:block;font-style:normal;font-size:.92rem;color:var(--muted);line-height:1.55}.portal-pillar-blurb.dj-grad-slogan{display:inline-block;font-style:normal;line-height:1.55}.portal-pillar-text{display:grid;gap:6px;min-width:0}.portal-pillar-text strong{font-family:var(--font-display);font-size:1.2rem;font-weight:700}.portal-pillar-text em{font-style:normal;font-size:.92rem;color:var(--muted);line-height:1.55}.portal-story-note,.story-wechat-notice{margin-top:18px;padding:16px 18px;border-radius:16px;background:#ffffffdb;border:1px dashed rgba(26,42,50,.16)}.portal-story-note strong,.story-wechat-notice h2{display:block;margin:0 0 6px;font-size:1.05rem}.portal-story-note p,.story-wechat-notice p{margin:0;color:var(--muted);line-height:1.6}.story-wechat-notice{max-width:560px;margin:28px auto}.story-oa-qr,.miniapp-qr{display:block;width:180px;height:180px;margin:12px auto 0;background:#fff;border-radius:12px;object-fit:contain}.miniapp-qr{width:200px;height:200px}.story-wechat-notice h2{margin:0 0 8px}.story-wechat-notice p{margin:0 0 8px;line-height:1.55}.portal-pillar-cta{margin-top:auto;font-size:.88rem;font-weight:600;color:var(--accent)}.portal-anim-1,.portal-anim-2,.portal-anim-3{animation:portalRise .55s ease both}.portal-anim-2{animation-delay:.08s}.portal-anim-3{animation-delay:.16s}@keyframes portalRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.portal-anim-1,.portal-anim-2,.portal-anim-3{animation:none}.portal-pillar{transition:none}.portal-card-share-chevron,.portal-card-share-panel,.portal-pillar.has-shared-qr .portal-card-qr-wrap:before{animation:none}.portal-card-share-chevron{opacity:.85;transform:none}.portal-card-share-chevron:nth-child(2){opacity:1}}.client-access-gate{margin:0 auto;max-width:480px;padding:24px 16px 48px}.miniapp-guide{margin:12px 16px 0;padding:20px 16px 24px;border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);text-align:center}.miniapp-guide h2{margin:0 0 8px;font-size:18px}.miniapp-guide p{margin:0 0 12px}.miniapp-guide.is-compact{margin-bottom:8px}.miniapp-guide.is-compact h2{font-size:16px}.miniapp-launch-tag{display:block;width:100%;height:44px;overflow:hidden}
