/* Learning OS: shared product language. */
:root,body[data-theme=light],body[data-theme=paper]{
  --lo-paper:#f2f1eb;--lo-surface:#fcfbf7;--lo-ink:#1a2527;--lo-signal:#405bfc;--lo-spark:#f18a50;--lo-calm:#d8e7ce;
  --lo-muted:#626d6b;--lo-line:#cbd0c6;--lo-hover:#e8e9e1;--lo-signal-soft:#e7eaff;--lo-danger:#b63832;--lo-warning:#82520f;--lo-success:#376547;
  --lo-edge:#1a2527;--lo-ease:cubic-bezier(.2,.82,.22,1);--lo-fast:180ms;--lo-focus:260ms;--lo-connect:420ms;
  --paper:var(--lo-paper);--surface:var(--lo-surface);--rail:var(--lo-surface);--ink:var(--lo-ink);--muted:var(--lo-muted);--faint:var(--lo-muted);--line:var(--lo-line);--hover:var(--lo-hover);
  --accent:var(--lo-signal);--accent-hover:#3048dc;--accent-soft:var(--lo-signal-soft);--shadow:5px 5px 0 var(--lo-edge);
  --cover-stage:#e7e7df;--cover-stage-alt:#e4e7df;--cover-fallback:#d8e7ce;--cover-fallback-ink:#1a2527;--selection-bg:#dce1ff;--highlight-bg:#f4d6a0;--highlight-ink:#1a2527;
  color-scheme:light;
}
body[data-theme=paper]{--lo-paper:#eee8da;--lo-surface:#faf5e9;--lo-hover:#e7e1d2;--lo-line:#ccc5b5}
body[data-theme=dark]{
  --lo-paper:#182123;--lo-surface:#202b2d;--lo-ink:#edf0e7;--lo-signal:#a4b0ff;--lo-spark:#f4a477;--lo-calm:#334a3a;
  --lo-muted:#b0beb8;--lo-line:#495956;--lo-hover:#2e3c3e;--lo-signal-soft:#303e61;--lo-danger:#ffa39b;--lo-warning:#efc782;--lo-success:#aad3a7;--lo-edge:#0c1315;
  --paper:var(--lo-paper);--surface:var(--lo-surface);--rail:var(--lo-surface);--ink:var(--lo-ink);--muted:var(--lo-muted);--faint:var(--lo-muted);--line:var(--lo-line);--hover:var(--lo-hover);
  --accent:var(--lo-signal);--accent-hover:#bcc5ff;--accent-soft:var(--lo-signal-soft);--shadow:5px 5px 0 var(--lo-edge);
  --cover-stage:#2c393a;--cover-stage-alt:#303d39;--cover-fallback:#415941;--cover-fallback-ink:#edf0e7;--selection-bg:#435388;--highlight-bg:#655327;--highlight-ink:#fff1cf;color-scheme:dark;
}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button,a,input,select,textarea{touch-action:manipulation}
button>*{pointer-events:none}
button,input,select,textarea,a{transition:background-color var(--lo-fast) var(--lo-ease),color var(--lo-fast) var(--lo-ease),border-color var(--lo-fast) var(--lo-ease),box-shadow var(--lo-fast) var(--lo-ease)}
:is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--lo-signal);outline-offset:3px}
button:disabled,[aria-disabled=true]{opacity:.48;cursor:not-allowed;box-shadow:none!important;transform:none!important}
button[aria-busy=true]{cursor:progress}
svg.icon{stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.button{min-height:42px;border-radius:3px;padding:9px 15px;font-size:13px;font-weight:550;border-color:var(--line);background:var(--surface)}
.button.primary{background:var(--lo-signal);border:1px solid var(--lo-edge);color:#fff;box-shadow:3px 3px 0 var(--lo-edge)}
body[data-theme=dark] .button.primary{color:#182123}
.button.ghost{background:transparent;border-color:transparent;box-shadow:none}
.button.compact{min-height:36px;border-radius:3px}
.icon-button{width:40px;height:40px;border-radius:3px;flex-shrink:0}
.icon-button:active{transform:none;background:var(--accent-soft)}
:is(.button,.icon-button)[aria-pressed=true],.button.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}
.text-button{min-height:36px;font-size:13px;text-underline-offset:4px}
.text-button:hover{text-decoration:underline}
.app-shell{grid-template-columns:224px minmax(0,1fr)}
.sidebar{padding:26px 16px 16px;border-right:1px solid var(--ink);background:var(--surface)}
.brand-row{height:46px;overflow:visible;margin-bottom:29px}
.brand-row .brand,.brand-row .brand img{width:32px;height:36px;min-width:32px;flex-basis:32px}
.brand-row .brand>span{left:40px;width:122px}
.brand strong{font-size:16px;font-weight:750;letter-spacing:-.7px}
.brand small{font-size:10px;letter-spacing:.8px;margin-top:4px}
body[data-theme=dark] .brand img{filter:none}
.sidebar-toggle{width:32px;height:40px;flex-basis:32px;border-radius:3px}
.side-search{height:44px;min-height:44px;max-height:none;border:1px solid var(--line);border-radius:3px;font-size:13px;margin-bottom:20px}
.side-nav{gap:5px}
.side-nav button,.side-nav[aria-label="知识领域"] button{height:auto;min-height:44px;max-height:none;padding:10px 11px;font-size:13px;border-radius:0;border-left:2px solid transparent}
.side-nav button.selected,body[data-theme=dark] .side-nav button.selected{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft);font-weight:650}
.side-nav button .icon{width:19px;height:19px;flex-basis:19px}
.side-nav .count{font:11px ui-monospace,SFMono-Regular,monospace;color:inherit;opacity:.8}
.side-section-label{font-size:11px;letter-spacing:1px;margin:26px 11px 9px}
.side-section-label .icon-button{width:32px;height:32px}
.side-footer :is(button,a){height:42px;max-height:none;min-height:42px;font-size:12px;border-radius:3px}
.side-footer .icon{width:19px;height:19px;flex-basis:19px}
.workspace-label{color:var(--muted)}
.avatar{border-radius:2px;background:var(--lo-calm);color:var(--ink)}
.sidebar-collapsed .brand-row .brand,.sidebar-collapsed .brand-row .brand img{min-width:24px;width:24px;height:28px;flex-basis:24px}
.sidebar-collapsed .sidebar-toggle{height:40px}
.sidebar-collapsed .side-nav button,.sidebar-collapsed .side-footer :is(button,a){padding-left:17px}
.sidebar-collapsed .side-search{padding-inline:17px}
.location-bar{height:58px;font-size:12px;padding-inline:40px;border-bottom:1px solid var(--line);background:var(--surface)}
.location-bar :is(a,button){min-height:40px;display:inline-flex;align-items:center}
.main{max-width:1480px;padding:38px 40px 64px}
.page-title{margin-bottom:30px;align-items:flex-end}
.page-eyebrow{font:italic 19px/1.1 Georgia,"Times New Roman",serif;color:var(--accent);display:block;margin-bottom:10px}
.page-title h1{font-size:clamp(30px,3.4vw,48px);line-height:1.18;font-weight:780;letter-spacing:-1.8px;overflow-wrap:anywhere}
.page-title p{font-size:12px;margin-top:13px;color:var(--muted)}
.library-tools{gap:18px;margin-bottom:24px;flex-wrap:wrap;border-bottom:1px solid var(--ink)}
.tabs button{min-height:44px;font-size:13px}
.tabs button[aria-selected=true]{color:var(--accent);font-weight:650}
.tabs button[aria-selected=true]:after{height:2px;border-radius:0}
.tabs small{font:11px ui-monospace,SFMono-Regular,monospace;color:inherit}
.library-tools .tools-right{gap:10px;max-width:100%;padding-bottom:7px}
.library-search{min-height:40px;border-radius:3px;background:var(--surface);width:190px}
.library-search:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.library-search input{font-size:13px}
.sort-select{min-height:40px;font-size:12px;max-width:110px}
.view-toggle{border:1px solid var(--line);background:var(--surface);border-radius:3px;padding:2px;gap:2px}
.view-toggle .icon-button{width:36px;height:34px;border-radius:1px}
.view-toggle .icon-button.active{background:var(--ink);color:var(--paper)}
.book-grid{grid-template-columns:repeat(auto-fill,minmax(174px,1fr));gap:30px 22px}
.cover-stage{height:220px;border-radius:0;margin-bottom:13px;background:var(--cover-stage)}
.cover{width:130px;height:184px;border-radius:0;box-shadow:4px 4px 0 color-mix(in srgb,var(--ink) 22%,transparent)}
.book-open:focus-visible{outline-offset:5px}
.book-caption h3{font-size:14px;font-weight:650;line-height:1.6;padding-right:0}
.book-caption p{font-size:12px;line-height:1.5}
.book-meta{font:10px/1.6 ui-monospace,SFMono-Regular,monospace;letter-spacing:.3px;color:var(--muted)}
.book-item .book-more,.list-row .source-more{width:36px;height:36px;border:0;box-shadow:none;background:transparent;opacity:0;pointer-events:none;transition:opacity var(--lo-fast) var(--lo-ease),color var(--lo-fast) var(--lo-ease)}
.book-title-row{display:flex;align-items:flex-start;gap:4px}
.book-title-row>.book-open{flex:1;min-width:0}
.book-item .book-more{flex-shrink:0;margin-block:-7px}
.book-item:is(:hover,:focus-within) .book-more,.list-row:is(:hover,:focus-within) .source-more{opacity:1;pointer-events:auto}
.book-item .book-more:is(:hover,:active),.list-row .source-more:is(:hover,:active){background:transparent;color:var(--accent);box-shadow:none}
@media(hover:none){.book-item .book-more,.list-row .source-more{opacity:1;pointer-events:auto}.book-item .book-more{width:44px;height:44px;margin-block:-11px}}
.book-item .bookmark-tag{background:var(--accent);color:var(--surface);left:8px}
.cover-fallback{align-items:flex-start;justify-content:space-between;text-align:left;padding:14px 11px;border-left:3px solid var(--lo-edge);gap:8px;background:var(--lo-calm);color:var(--lo-ink)}
.cover-fallback strong{font-family:inherit;font-weight:700;font-size:17px;line-height:1.35;letter-spacing:-.5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.cover-fallback .icon{width:18px;height:18px}
.cover-fallback[data-tone="1"]{background:#d6aa8c;color:#1a2527}
.cover-fallback[data-tone="2"]{background:#405bfc;color:#fff}
.cover-fallback[data-tone="3"]{background:#223c3e;color:#fcfbf7}
.reading-entry{padding:20px;border:1px solid var(--line);border-left:3px solid var(--accent);margin-bottom:28px;background:var(--surface)}
.reading-entry h2{font-family:inherit;font-weight:650;font-size:21px;line-height:1.5;letter-spacing:-.5px}
.reading-entry .entry-label{font-size:12px}
.reading-entry .entry-summary{display:none}
.list-heading,.list-row{grid-template-columns:minmax(0,1fr) 130px 80px 88px}
.list-heading{font-size:11px;letter-spacing:.5px}
.list-row{padding:16px 8px}.list-title strong{font-size:14px;font-weight:600}
.list-title>span{min-width:0;overflow-wrap:anywhere}
.book-hero{padding-bottom:30px;border-bottom:1px solid var(--ink)}
.book-hero h1{font-size:clamp(26px,3vw,40px);font-weight:750;letter-spacing:-1px;line-height:1.3;overflow-wrap:anywhere}
.book-domain{color:var(--accent)}
.book-facts{font-family:ui-monospace,SFMono-Regular,monospace}
.hero-actions{gap:10px;align-items:center}
.chapter-open{min-height:44px;min-width:0}.chapter-title{overflow-wrap:anywhere;line-height:1.65}
.chapter-index{font:12px ui-monospace,SFMono-Regular,monospace;color:var(--accent)}
.chapter-row{min-height:64px}.chapter-row.current{background:var(--accent-soft)}
.detail-tabs{margin-top:12px}.detail-information dd{overflow-wrap:anywhere}
.empty-view{min-height:280px}.empty-view p{font-size:14px}.empty-view .empty-brand{width:44px;height:50px;opacity:.8}
.library-bottom{font:11px ui-monospace,SFMono-Regular,monospace;border-color:var(--ink)}
.library-bottom span:last-child{display:inline}
.reader-top{background:var(--surface);border-bottom:1px solid var(--ink)}
.reader-top .reader-brand{display:inline-flex;align-items:center;justify-content:center;width:34px;flex-shrink:0}
.reader-brand img{width:25px;height:29px}
.reader-back{min-height:44px}
.video-player,.video-cover,.capture-image{border-radius:2px}
.reader-layout.video-layout{grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr)}
.reader-layout.video-layout.no-notes{grid-template-columns:minmax(0,1fr)}
.video-layout .reader-notes{border-right:1px solid var(--line)}
.video-layout .linear-note{font-size:15px;line-height:1.85;border-radius:0;box-shadow:none}
.video-layout .linear-note h3{font-size:17px;line-height:1.55}
.video-layout .note-body table{display:block;max-width:100%;overflow:auto}
.video-layout .note-body :is(pre,img){max-width:100%;overflow:auto}
.video-layout .reader-main{min-width:0}
#toast{background:var(--ink);color:var(--paper);border:1px solid var(--line);border-radius:3px;box-shadow:3px 3px 0 var(--lo-edge);font-size:13px;line-height:1.6}
.view-enter,.subview-enter{animation:none}
@media(hover:hover){.button.primary:hover{background:var(--accent-hover)}.book-open:hover .cover-stage{background:var(--hover)}.book-open:hover h3{color:var(--accent)}}
@media(max-width:1100px){.main{padding-inline:28px}.location-bar{padding-inline:28px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(154px,1fr))}.library-search{width:150px}}
@media(max-width:800px){
 .app-shell,.app-shell.sidebar-collapsed{grid-template-columns:65px minmax(0,1fr)}
 .app-shell .sidebar{background:var(--surface);border-right:1px solid var(--ink)}
 .app-shell.sidebar-expanded .sidebar{box-shadow:8px 0 0 #1a252724}
 .main{padding:28px 22px 45px}.location-bar{padding-inline:22px}
 .page-title h1{font-size:32px;letter-spacing:-1px}.page-eyebrow{font-size:17px}
 .library-tools{gap:6px}.library-tools .tools-right{gap:5px}.library-search{display:none}
 .book-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:24px 16px}
 .list-heading,.list-row{grid-template-columns:minmax(0,1fr) 88px}.list-row>.kind,.list-heading>span:nth-child(3){display:none}
 .reader-layout.video-layout,.reader-layout.video-layout.with-toc{display:block}
 .video-layout .reader-notes{width:min(430px,calc(100vw - 40px))}
}
@media(max-width:500px){
 .main{padding:25px 15px 40px}.location-bar{padding-inline:15px}
 .page-title{align-items:flex-start;flex-wrap:wrap;gap:16px}.page-title h1{font-size:30px}.page-title .button{min-height:42px;padding:9px 12px}
 .library-tools{align-items:center;gap:0;justify-content:space-between}.library-tools .tabs{gap:16px}.library-tools .tools-right{margin-left:0}
 .library-tools .sort-select{display:block;max-width:98px}.library-tools .view-toggle{margin-left:auto}
 .library-tools .tools-right{width:100%;justify-content:space-between}
 .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}.cover-stage{height:175px}
 .cover{width:94px;height:135px}.book-caption h3{font-size:13px}.book-caption p{font-size:11px}
 .book-item .book-more .icon{width:17px;height:17px}
 .reading-entry{padding:14px;gap:12px}.reading-entry h2{font-size:17px}.reading-entry .button{min-height:40px}
 .book-hero{grid-template-columns:70px minmax(0,1fr);gap:15px}.book-hero .cover{width:70px;height:100px}.book-hero h1{font-size:23px}
 .hero-actions .button{min-height:42px}.hero-actions{gap:8px}
 .chapter-row{flex-wrap:wrap;gap:4px}.chapter-open{flex:1 1 calc(100% - 90px)}.chapter-title{font-size:14px}
 .list-row{gap:5px;padding-inline:0}.list-title{gap:8px!important}.list-row .source-actions .icon-button{width:40px}
 .reader-top{gap:5px}.reader-top .reader-brand{width:27px}.reader-back{font-size:12px}
}
@media(max-width:360px){.book-grid{grid-template-columns:minmax(0,1fr)}.cover-stage{height:214px}.cover-stage .cover{width:125px;height:180px}.book-grid:not(.video-grid) .video-item{grid-column:span 1}}
@media(pointer:coarse){.icon-button,.book-item .book-more{min-width:44px;min-height:44px}.book-item .book-more{margin-block:-11px}.view-toggle .icon-button{min-width:40px;min-height:40px}.sidebar-toggle{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body[data-theme=dark] :is(.brand,.reader-brand) img,body[data-theme=dark] .empty-brand{content:url("/ui-live/assets/logo-dark.svg?v=identity-20261011-1")}
