@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";:root{--pixel: "Press Start 2P", ui-monospace, "SF Mono", Menlo, monospace;--bg: #f4f3ee;--bg-elev: #ffffff;--fg: #1a1a1a;--fg-mute: #5a5a5a;--line: #1a1a1a;--line-soft: #cfcdc4;--accent: #1a1a1a;--hl: #ffe066;--shadow-px: 3px 3px 0 var(--fg);--shadow-px-sm: 2px 2px 0 var(--fg);--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--serif: ui-serif, "Iowan Old Style", Georgia, serif;--sans: ui-sans-serif, -apple-system, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased;overscroll-behavior:none}a{color:var(--fg);text-decoration:underline;text-underline-offset:2px}button,select,input{font:inherit;color:inherit;background:var(--bg-elev);border:1px solid var(--line);border-radius:0;padding:4px 8px;cursor:pointer}button:hover,button.active{background:var(--fg);color:var(--bg-elev);box-shadow:var(--shadow-px-sm)}.app-shell{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.app-header{border-bottom:2px solid var(--line);padding:10px 16px;background:var(--bg-elev)}.brand{font-family:var(--mono);font-weight:700;letter-spacing:.15em;text-decoration:none;font-size:13px;text-transform:uppercase}.app-main{flex:1;overflow:hidden;min-height:0;display:flex;flex-direction:column}.loading{padding:32px;font-family:var(--mono)}.library{flex:1;min-height:0;display:flex;flex-direction:column}.search-bar{display:flex;justify-content:center;padding:32px 16px 16px;border-bottom:1px solid var(--line-soft)}.search-bar input{width:min(720px,100%);padding:12px 14px;font-size:16px;border:2px solid var(--line)}.search-bar input:focus{outline:none;box-shadow:4px 4px 0 var(--hl)}.library-toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line-soft)}.toolbar-group{display:flex;gap:6px;align-items:center}.toolbar-group-layout{position:relative;padding:8px 10px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--hl) 28%,transparent) 0%,transparent 52%),var(--bg-elev);box-shadow:var(--shadow-px-sm)}.layout-label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.toolbar-group.meta{margin-left:auto;font-family:var(--mono);color:var(--fg-mute);font-size:12px}.card-density-picker{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.density-chip{display:inline-flex;align-items:center;gap:6px;min-width:44px;padding:5px 8px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg-elev) 88%,var(--bg) 12%);box-shadow:none}.density-chip:hover{background:var(--bg-elev);color:inherit}.density-chip.active{background:#fff3bf;color:inherit;box-shadow:var(--shadow-px-sm)}.density-chip-visual{display:inline-grid;grid-auto-flow:column;gap:2px}.density-chip-dot{width:6px;height:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--hl) 50%,var(--bg-elev) 50%)}.density-chip-text{font-family:var(--mono);font-size:11px}.library-body{flex:1;min-height:0;display:flex;overflow:hidden}.tag-rail{width:240px;border-right:1px solid var(--line-soft);padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.favorites-panel{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;margin-bottom:10px;border-bottom:1px solid var(--line-soft)}.favorites-panel-actions button{width:100%;text-align:left}.rail-title{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--fg-mute);margin-bottom:6px}.tag-search{font-family:var(--mono);font-size:12px;background:transparent;border:1px solid var(--line-soft);color:inherit;padding:3px 6px;border-radius:3px;width:100%;box-sizing:border-box;margin-bottom:4px;outline:none}.tag-search:focus{outline:none;border-color:var(--fg);box-shadow:2px 2px 0 var(--hl)}.tag{text-align:left;font-family:var(--mono);font-size:12px;padding:3px 6px;border:1px solid transparent}.tag:hover{border-color:var(--line);background:transparent;color:inherit}.tag.on{background:var(--hl);color:var(--fg);border-color:var(--fg);font-weight:600}.tag.tag-toned{display:flex;align-items:center;gap:8px;border-color:var(--tag-border);background:color-mix(in srgb,var(--tag-bg) 18%,var(--bg-elev) 82%);color:var(--tag-fg)}.tag.tag-toned:before{content:"";width:8px;height:8px;flex:0 0 8px;border:1px solid var(--tag-border);background:var(--bg-elev)}.tag.tag-toned:hover{border-color:var(--tag-border);background:color-mix(in srgb,var(--tag-bg) 28%,var(--bg-elev) 72%);color:var(--tag-fg);box-shadow:var(--shadow-px-sm)}.tag.tag-toned.on{border-color:var(--tag-border);background:color-mix(in srgb,var(--tag-bg) 42%,var(--bg-elev) 58%);color:var(--tag-fg);font-weight:700;box-shadow:inset 0 0 0 1px var(--tag-border),var(--shadow-px-sm)}.tag.tag-toned.on:before{background:var(--tag-border)}.tag.clear{color:var(--fg-mute);margin-top:8px}.library-grid{flex:1;overflow-y:auto;padding:16px;min-height:0}.library-grid.table-mode{overflow:hidden}.date-groups{display:flex;flex-direction:column;gap:18px}.date-group{display:flex;flex-direction:column;gap:10px}.date-group-heading{display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:6px 10px;border:2px solid var(--line);background:var(--bg-elev);box-shadow:var(--shadow-px-sm);font-family:var(--mono);font-size:12px;letter-spacing:.04em}.cards{--cards-per-row: 4;--card-gap: 14px;display:grid;grid-template-columns:repeat(var(--cards-per-row),minmax(0,1fr));grid-auto-rows:1fr;gap:var(--card-gap);width:100%;align-items:stretch}.card-shell{position:relative;display:flex;flex-direction:column;gap:8px;height:100%}.card-shell.is-favorite .card{box-shadow:5px 5px #d1a700}.card{display:flex;flex-direction:column;height:100%;background:var(--bg-elev);border:2px solid var(--line);padding:14px 56px 14px 14px;text-decoration:none;color:inherit;box-shadow:var(--shadow-px);transition:transform .08s,box-shadow .08s}.card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--line)}.card-meta-row{display:flex;align-items:flex-start;gap:8px}.card-title{font-weight:600;line-height:1.3;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.card-id{font-family:var(--mono);font-size:11px;color:var(--fg-mute);margin-bottom:6px}.card-tldr{font-size:12px;color:var(--fg-mute);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10px;line-height:1.55;flex:1}.markdown-tldr p{margin:0 0 4px}.markdown-tldr p:last-child{margin-bottom:0}.markdown-tldr ul,.markdown-tldr ol{margin:0 0 4px;padding-left:18px}.markdown-tldr li{margin:0}.markdown-tldr code{font-family:var(--mono);background:var(--bg);padding:0 3px;font-size:.92em}.markdown-tldr pre,.markdown-tldr blockquote,.markdown-tldr hr,.markdown-tldr img,.markdown-tldr table{display:none}.markdown-tldr strong{color:var(--fg)}.card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:auto}.favorite-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;font-size:18px;line-height:1;border:2px solid var(--line);background:var(--bg-elev);color:var(--fg-mute)}.favorite-toggle:hover{color:#b8860b}.favorite-toggle.on{color:#8a6200;background:#fff3bf;box-shadow:var(--shadow-px-sm)}.card-corner-controls{position:absolute;top:10px;right:10px;z-index:2;display:flex;flex-direction:column;align-items:stretch;gap:6px}.card-favorite{position:static}.rating-picker{position:relative;display:inline-block}.rating-pix{font-family:var(--pixel);font-weight:400;letter-spacing:0;line-height:1;text-align:center;padding:0;border:1px solid var(--line);background:var(--bg-elev);color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;image-rendering:pixelated;transition:transform .06s ease,box-shadow .06s ease}.rating-trigger{width:28px;height:28px;font-size:11px;box-shadow:var(--shadow-px-sm)}.rating-picker-md .rating-trigger{width:34px;height:30px;font-size:13px}.rating-trigger:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--fg)}.rating-trigger:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--fg)}.rating-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:10;display:flex;flex-direction:column;gap:4px;padding:4px;background:var(--bg-elev);border:1px solid var(--line);box-shadow:var(--shadow-px)}.rating-opt{width:28px;height:24px;font-size:11px}.rating-picker-md .rating-opt{width:32px;height:26px;font-size:12px}.rating-opt:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--fg)}.rating-opt.is-current{outline:2px solid var(--fg);outline-offset:-3px}.rating-trigger.rating-5,.rating-opt.rating-5{background:#ffd23f;color:#4a2b00;border-color:#1a1a1a}.rating-trigger.rating-4,.rating-opt.rating-4{background:#ff7a5a;color:#3a0a00;border-color:#1a1a1a}.rating-trigger.rating-3,.rating-opt.rating-3{background:#b06bff;color:#1c0040;border-color:#1a1a1a}.rating-trigger.rating-2,.rating-opt.rating-2{background:#4ea8ff;color:#001a3a;border-color:#1a1a1a}.rating-trigger.rating-1,.rating-opt.rating-1{background:#6ed28a;color:#002a10;border-color:#1a1a1a}.rating-trigger.rating-none{background:var(--bg-elev);color:var(--fg-mute)}.rating-opt.rating-none{background:var(--bg);color:var(--fg-mute);font-size:14px}.tag-chip{display:inline-flex;align-items:center;font-family:var(--mono);font-size:10px;padding:1px 5px;border:1px solid var(--tag-border, var(--line));background:var(--tag-bg, var(--bg));color:var(--tag-fg, var(--fg))}.notes-table-wrap{width:100%;height:100%;overflow:auto;padding-bottom:8px;scrollbar-gutter:stable both-edges}.notes-table-wrap::-webkit-scrollbar{width:12px;height:12px}.notes-table-wrap::-webkit-scrollbar-track{background:var(--bg)}.notes-table-wrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--line) 72%,white 28%);border:2px solid var(--bg)}.notes-table-wrap::-webkit-scrollbar-corner{background:var(--bg)}.notes-table{width:max-content;min-width:100%;border-collapse:collapse;background:var(--bg-elev)}.notes-table th,.notes-table td{border:1px solid var(--line-soft);padding:8px 10px;text-align:left;vertical-align:top}.notes-table th{background:var(--bg);font-family:var(--mono);font-size:11px;letter-spacing:.05em;border-bottom:2px solid var(--line)}.sort-header{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;box-shadow:none;font-family:var(--mono);font-size:11px;letter-spacing:.05em}.sort-header:hover,.sort-header.active{background:transparent;color:var(--fg);box-shadow:none}.sort-header-mark{font-size:10px;color:var(--fg-mute)}.notes-table tbody tr:hover td{background:#ffe06626}.notes-table tbody tr.favorite-row td{background:#fff3bf99}.mono{font-family:var(--mono);font-size:12px;color:var(--fg-mute)}.table-title a{font-weight:600;color:var(--fg)}.table-title{min-width:260px;max-width:340px}.favorite-cell{width:60px;text-align:center}.table-summary{width:360px;min-width:360px;max-width:360px}.table-summary-stack{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.markdown-table-summary{font-size:12px;line-height:1.5;color:var(--fg-mute);white-space:normal;word-break:break-word;overflow-wrap:anywhere}.markdown-table-summary.is-collapsed{max-height:8.4em;overflow:hidden;position:relative}.markdown-table-summary.is-collapsed:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.4em;background:linear-gradient(to bottom,rgba(244,243,238,0),var(--bg-elev));pointer-events:none}.markdown-table-summary.is-expanded{max-height:none}.markdown-table-summary p{margin:0 0 6px}.markdown-table-summary p:last-child{margin-bottom:0}.markdown-table-summary ul,.markdown-table-summary ol{margin:0 0 6px;padding-left:18px}.markdown-table-summary li{margin:0}.markdown-table-summary code{font-family:var(--mono);background:var(--bg);padding:0 3px;font-size:.92em}.markdown-table-summary pre{margin:0 0 6px;padding:8px;border:1px solid var(--line-soft);background:var(--bg);overflow-x:auto}.markdown-table-summary blockquote{margin:0 0 6px;padding-left:10px;border-left:3px solid var(--line-soft)}.markdown-table-summary table{display:block;overflow-x:auto;max-width:100%}.summary-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;box-shadow:none;padding:0;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--fg-mute);line-height:1}.summary-toggle:before{content:"";width:18px;height:1px;background:color-mix(in srgb,var(--line-soft) 72%,transparent)}.summary-toggle:after{content:"";width:6px;height:6px;margin-left:-4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-1px);transform-origin:50% 50%;transition:transform .14s ease,color .14s ease}.summary-toggle[aria-expanded=true]:after{transform:rotate(-135deg) translate(-1px,-1px)}.summary-toggle:hover{background:transparent;color:var(--fg);box-shadow:none}.summary-toggle:focus-visible{outline:none;color:var(--fg);text-decoration:underline;text-underline-offset:4px}.summary-toggle:focus-visible:before,.summary-toggle:hover:before{background:color-mix(in srgb,var(--fg) 40%,transparent)}.summary-toggle:active{transform:translateY(1px);background:transparent;box-shadow:none;font-family:var(--mono)}.favorite-badge{display:inline-flex;margin-left:8px;padding:1px 6px;border:1px solid #8a6200;background:#fff3bf;color:#8a6200;font-family:var(--mono);font-size:10px}.table-tags{display:flex;gap:4px;flex-wrap:wrap}.status-badge{font-family:var(--mono);font-size:11px;padding:2px 6px;border:1px solid currentColor;white-space:nowrap}.status-read{color:#2a7a2a;background:#2a7a2a14}.status-reading{color:#b07000;background:#ffb4001f}.status-unknown{color:var(--fg-mute)}.reader{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.reader-topbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:8px 16px;border-bottom:2px solid var(--line);background:var(--bg-elev)}.reader-topbar .back{font-family:var(--mono);font-size:12px}.reader-title{font-weight:600;flex:1;min-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-actions{display:flex;gap:8px;align-items:center}.reader-actions .ext{font-family:var(--mono);font-size:12px}.meta-fab{position:fixed;right:24px;bottom:28px;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:56px;height:56px;padding:0;background:var(--hl);color:var(--fg);border:2px solid var(--line);border-radius:0;box-shadow:4px 4px 0 var(--fg);font-family:var(--mono);cursor:pointer;transition:transform .08s,box-shadow .08s,background .08s;image-rendering:pixelated}.meta-fab:hover{background:var(--hl);color:var(--fg);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--fg)}.meta-fab:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--fg)}.meta-fab-icon{font-size:18px;line-height:1}.meta-fab-label{font-size:9px;letter-spacing:.12em;font-weight:700;margin-top:2px}.meta-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1a1a1a73;display:flex;align-items:center;justify-content:center;padding:24px;animation:meta-modal-in .12s ease-out}@keyframes meta-modal-in{0%{opacity:0}to{opacity:1}}.meta-editor-panel{background:var(--bg-elev);border:2px solid var(--line);box-shadow:8px 8px 0 var(--fg);padding:16px 18px 18px;width:min(720px,100%);max-height:calc(100vh - 64px);overflow-y:auto;position:relative}.meta-modal-close{width:28px;height:28px;padding:0;font-family:var(--mono);font-size:14px;line-height:1;background:var(--bg-elev)}.meta-editor-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.meta-editor-title{font-family:var(--mono);font-size:12px;letter-spacing:.06em}.meta-editor-actions{display:flex;align-items:center;gap:8px}.meta-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.meta-field{display:flex;flex-direction:column;gap:6px;min-width:0}.meta-field span{font-family:var(--mono);font-size:11px;color:var(--fg-mute)}.meta-field-wide{grid-column:1 / -1}.meta-field input,.meta-field textarea{width:100%;min-width:0}.meta-field textarea{resize:vertical;min-height:84px}.meta-selected-topics{display:flex;gap:4px;flex-wrap:wrap;min-height:20px}.meta-topic-search{width:100%;font-family:var(--mono);font-size:12px;padding:6px 8px}.meta-tldr-split{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.meta-tldr-split textarea{width:100%;min-height:140px;resize:vertical}.meta-tldr-preview.markdown-body{max-width:none;margin:0;border:1px solid var(--line-soft);background:var(--bg);padding:8px 10px;font-size:12px;line-height:1.5;overflow-y:auto;max-height:240px}.meta-tldr-preview.markdown-body p{margin:0 0 6px}.meta-tldr-preview.markdown-body h1{font-size:1.25em}.meta-tldr-preview.markdown-body h2{font-size:1.15em}.meta-tldr-preview.markdown-body h3{font-size:1.05em}.meta-tldr-preview>*:first-child{margin-top:0}.meta-tldr-preview>*:last-child{margin-bottom:0}.meta-tldr-empty{font-family:var(--mono);font-size:11px;color:var(--fg-mute)}@media (max-width: 640px){.library-toolbar{gap:10px}.toolbar-group-layout{width:100%;justify-content:space-between}.card-density-picker{justify-content:flex-end}.meta-tldr-split{grid-template-columns:1fr}}.meta-topics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;max-height:200px;overflow-y:auto;padding:2px}.meta-topic-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);background:var(--bg-elev);font-family:var(--mono);font-size:12px}.meta-topic-option.on{background:var(--hl)}.meta-topic-option input{margin:0}.reader-panels{flex:1;min-height:0;height:100%;min-width:0}.pane{background:var(--bg-elev);height:100%;min-height:0;min-width:0}.toc-pane{display:flex!important;flex-direction:column;overflow:hidden!important}.toc-pane>.toc{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.md-pane{position:relative;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain}.pdf-pane{display:flex!important;flex-direction:column;overflow:hidden!important}.toc-pane{border-right:1px solid var(--line-soft)}.toc-search{padding:8px;border-bottom:1px solid var(--line-soft)}.toc-search input{width:100%;box-sizing:border-box}.toc{display:flex;flex-direction:column;padding:8px 0;width:100%}.toc-item{display:block;font-size:13px;line-height:1.4;padding:4px 8px;text-decoration:none;color:var(--fg-mute);word-break:break-word}.toc-item:hover{color:var(--fg);background:var(--bg)}.toc-item.depth-1{font-weight:600;color:var(--fg)}.toc-item.depth-2{color:var(--fg)}.toc-item.active{border-left:3px solid var(--hl);padding-left:5px;color:var(--fg);font-weight:600}.resize-h{width:5px;background:var(--line-soft);cursor:col-resize;transition:background .1s}.resize-h:hover{background:var(--line)}.resize-h[data-resize-handle-active]{background:var(--hl);border:1px solid var(--fg)}.md-pane{padding:clamp(12px,2vw,24px) clamp(14px,2.8vw,36px)}.toc-toggle-fab{position:sticky;top:14px;left:14px;z-index:8;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:-36px;padding:0;border:1px solid var(--line);background:color-mix(in srgb,var(--bg-elev) 92%,var(--bg) 8%);box-shadow:var(--shadow-px-sm);color:var(--fg)}.toc-toggle-fab:hover{background:var(--bg-elev);color:inherit}.toc-toggle-fab-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.toc-toggle-fab-rail{position:absolute;left:0;top:1px;width:4px;height:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--hl) 45%,var(--bg-elev) 55%)}.toc-toggle-fab-arrow{position:absolute;right:1px;top:4px;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(225deg);transition:transform .12s ease}.toc-toggle-fab.is-open .toc-toggle-fab-arrow{transform:rotate(45deg)}.markdown-body{max-width:820px;margin:0 auto;line-height:1.7;font-size:15px;font-family:var(--serif)}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-family:var(--sans);border-bottom:1px solid var(--line-soft);padding-bottom:4px;margin-top:1.6em}.markdown-body h1{font-size:1.8em}.markdown-body h2{font-size:1.4em}.markdown-body h3{font-size:1.15em;border-bottom:none}.markdown-body code{font-family:var(--mono);background:var(--bg);padding:1px 4px;border:1px solid var(--line-soft);font-size:.9em}.markdown-body pre{background:var(--bg);border:1px solid var(--line-soft);padding:10px;overflow-x:auto}.markdown-body pre code{border:none;padding:0;background:transparent}.markdown-body blockquote{border-left:3px solid var(--line);padding-left:12px;color:var(--fg-mute);margin-left:0}.markdown-body table{border-collapse:collapse}.markdown-body th,.markdown-body td{border:1px solid var(--line-soft);padding:6px 10px}.markdown-body img{max-width:100%;display:block;margin:12px auto;border:1px solid var(--line-soft)}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden}.md-pane-editing{padding:0!important;overflow:hidden!important}.edit-split{display:grid;grid-template-columns:1fr 1fr;height:100%;min-height:0}.edit-editor{border-right:1px solid var(--line-soft);min-width:0;min-height:0;overflow:hidden;position:relative}.edit-editor>*{height:100%}.edit-editor .cm-theme,.edit-editor .cm-theme-light{height:100%}.edit-editor .cm-editor{height:100%;font-family:var(--mono);font-size:13px}.edit-editor .cm-scroller{overflow:auto;overscroll-behavior:contain}.edit-editor .cm-content{white-space:pre-wrap;word-break:break-word}.edit-preview{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:clamp(12px,2vw,24px) clamp(14px,2.8vw,36px);background:var(--bg-elev)}.save-status{margin-left:4px}.pdf-pane{display:flex;flex-direction:column}.pdf-wrap{display:flex;flex-direction:column;height:100%}.pdf-toolbar{display:flex;gap:6px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line-soft);background:var(--bg)}.pdf-scale{font-family:var(--mono);font-size:11px;min-width:40px;text-align:center}.pdf-doc{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px;background:#2b2b2b;min-height:0}.pdf-doc .react-pdf__Page{margin:0 auto 12px;box-shadow:0 0 8px #0006;position:relative}.pdf-doc .react-pdf__Page canvas{pointer-events:none}.pdf-doc .react-pdf__Page__textContent{user-select:text!important;-webkit-user-select:text!important}.pdf-doc ::selection{background:#ffe066b3}.pdf-status{color:#ddd;padding:24px;font-family:var(--mono);font-size:12px;text-align:center}.pdf-status a{color:#fff}
