:root{color-scheme:dark;--bg:#0d0f11;--panel:#14171a;--panel2:#191d21;--paper:#181b1f;--text:#e8e6df;--muted:#92979e;--line:#282d33;--accent:#c8a96b;--safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button,.fileBtn{border:1px solid var(--line);background:#1d2227;color:var(--text);border-radius:10px;min-height:42px;padding:9px 12px;cursor:pointer}.secondary{background:transparent}.danger{color:#ffd8da;border-color:#67383b}.fileBtn{display:flex;align-items:center;justify-content:center}.topbar{height:56px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:0 16px;background:rgba(13,15,17,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{font-weight:700;display:flex;gap:8px;align-items:center;white-space:nowrap}.brandDot{width:9px;height:9px;border-radius:50%;background:var(--accent)}.docMeta{display:flex;gap:12px;color:var(--muted);font-size:13px}.docMeta strong{color:var(--text)}.statusline{margin-left:auto;display:flex;gap:7px}.pill{border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:12px;color:var(--muted)}.pill.offline{color:#ffd79a;border-color:#59492e}.iconbtn{width:44px;padding:0}.layout{display:grid;grid-template-columns:270px minmax(0,1fr) 310px;min-height:calc(100vh - 56px)}.panel{background:var(--panel);padding:18px;border-right:1px solid var(--line);overflow:auto;max-height:calc(100vh - 56px);position:sticky;top:56px}.notes{border-right:0;border-left:1px solid var(--line)}.panelHead{display:flex;justify-content:space-between;gap:12px}.panel h2{font-size:17px;margin:3px 0 12px}.eyebrow{font-size:10px;letter-spacing:.14em;color:var(--muted);font-weight:800}.privacy{font-size:12px;color:#b7bdc5;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px}.search{width:100%;background:#0f1215;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px;margin-bottom:12px}.seasonTitle{display:flex;justify-content:space-between;margin:14px 2px 7px;color:#bfc3c8;font-size:12px;font-weight:800}.episodeItem{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;background:transparent;padding:8px;border-radius:9px;min-height:48px}.episodeItem:hover,.episodeItem.active{background:#20252a}.episodeNum{font-size:11px;color:var(--accent);font-weight:800;min-width:29px}.episodeName{font-size:13px}.episodeVer{font-size:10px;color:var(--muted);margin-top:3px}.syncdot{width:7px;height:7px;border-radius:50%;background:#59616a;margin-left:auto;margin-top:5px}.syncdot.dirty{background:#c8a96b}.libraryActions{display:grid;gap:8px;margin-top:18px}.fineprint{font-size:10px;line-height:1.45;color:#737980;margin-top:12px}.workspace{min-width:0;padding:22px clamp(12px,3vw,34px) 80px}.docbar{max-width:960px;margin:0 auto 14px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px}.docbar>div:first-child{flex:1 1 280px;min-width:0}.docbar h1{overflow-wrap:anywhere}.docbar h1{font-size:24px;margin:4px 0 2px}.version{font-size:12px;color:var(--muted)}.docActions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.offlineProgress{max-width:960px;margin:0 auto 10px;color:var(--muted);font-size:11px;min-height:16px}.paperWrap{max-width:960px;margin:0 auto}.editor{min-height:calc(100vh - 180px);outline:none;background:var(--paper);border:1px solid #252a2f;border-radius:14px;padding:clamp(18px,4vw,44px);font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:15px;line-height:1.72;white-space:pre-wrap;overflow-wrap:anywhere}.editor mark{color:inherit;border-radius:3px;padding:1px 0;cursor:pointer}.editor mark[data-cat="doubt"]{background:#62522f}.editor mark[data-cat="rewrite"]{background:#5d3f42}.editor mark[data-cat="logic"]{background:#3f4f65}.editor mark[data-cat="dialogue"]{background:#4d465f}.editor mark[data-cat="pace"]{background:#3d594a}.editor mark[data-cat="world"]{background:#5a4d39}.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.filter{font-size:11px;min-height:32px;padding:5px 8px}.filter.active{border-color:#6e747b}.annotationList{display:grid;gap:9px}.annCard{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:10px;cursor:pointer}.annTop{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.annQuote{font-family:ui-monospace,monospace;font-size:12px;line-height:1.4;margin:7px 0}.annComment{font-size:11px;color:#b8bdc3}.empty{color:var(--muted);font-size:12px;padding:16px 4px}.selectionBar{position:fixed;z-index:60;display:flex;gap:5px;flex-wrap:wrap;background:#101317;border:1px solid #30363d;border-radius:12px;padding:7px;box-shadow:0 12px 40px rgba(0,0,0,.42);max-width:min(620px,calc(100vw - 16px))}.selectionBar button{font-size:11px;min-height:36px;padding:7px 9px}.selectionBar .primaryCat{background:#5b4a29;border-color:#80693b}.hidden{display:none!important}dialog{border:0;background:transparent;padding:12px;max-width:520px;width:100%}dialog::backdrop{background:rgba(0,0,0,.65)}.dialogCard{background:#171b1f;border:1px solid var(--line);border-radius:14px;padding:18px}.dialogCard h3{font-size:14px;font-family:ui-monospace,monospace;max-height:120px;overflow:auto}.dialogCard label{display:grid;gap:6px;margin:12px 0;font-size:12px;color:var(--muted)}.dialogCard select,.dialogCard textarea{background:#0f1215;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px}.dialogActions{display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;left:50%;bottom:calc(20px + var(--safe));transform:translateX(-50%);background:#242a30;border:1px solid #343b43;padding:10px 14px;border-radius:10px;z-index:100;font-size:12px}.mobile-only{display:none}@media(max-width:1180px){.layout{grid-template-columns:250px minmax(0,1fr)}.notes{position:fixed;z-index:45;right:0;top:56px;bottom:0;width:min(360px,92vw);max-height:none;transform:translateX(105%);transition:.18s}.notes.open{transform:none}.mobile-only{display:inline-flex;align-items:center;justify-content:center}.docMeta{display:none}}@media(max-width:720px){.topbar{padding:0 8px;gap:8px}.brand{font-size:13px}.statusline{display:none}.layout{display:block}.library{position:fixed;z-index:45;left:0;top:56px;bottom:0;width:min(330px,92vw);max-height:none;transform:translateX(-105%);transition:.18s}.library.open{transform:none}.workspace{padding:12px 8px 78px}.docbar{display:block}.docbar h1{font-size:18px}.docActions{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:10px}.docActions button{min-height:40px;padding:6px 8px;font-size:13px}.editor{border-radius:10px;padding:17px 14px;min-height:calc(100vh - 210px);font-size:15px;line-height:1.68}.selectionBar{left:8px!important;right:8px!important;bottom:calc(10px + var(--safe))!important;top:auto!important;max-width:none;justify-content:center}.selectionBar button{min-height:44px;flex:1 1 auto}.selectionBar .primaryCat{flex-basis:100%;font-size:13px}}
.syncMessage{max-width:960px;margin:8px auto;min-height:21px;color:#b8bdc3;font-size:14px;line-height:1.5}
.conflictActions{display:flex;flex-wrap:wrap;gap:8px;margin:8px auto;max-width:960px}.conflictActions[hidden]{display:none}
.annCard{text-align:left;width:100%;display:block}.annState{font-size:13px;color:#d8b868;margin:6px 0}
.editor[aria-readonly="true"]{caret-color:transparent}#versionDialog{width:min(1000px,95vw);max-width:none}
#versionText{width:100%;font-family:ui-monospace,monospace}#syncDetails{white-space:pre-wrap;font-size:14px}
.statusline .pill{font-size:12px;line-height:1.3;min-height:32px}
.markdownPreview{min-height:calc(100vh - 180px);background:var(--paper);border:1px solid #252a2f;border-radius:14px;padding:clamp(18px,4vw,44px);font-size:16px;line-height:1.72;overflow-wrap:anywhere}.markdownPreview h1,.markdownPreview h2,.markdownPreview h3,.markdownPreview h4,.markdownPreview h5,.markdownPreview h6{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.3;margin:1.35em 0 .55em;color:#f1eee7}.markdownPreview h1{font-size:1.7em;margin-top:0}.markdownPreview h2{font-size:1.38em}.markdownPreview h3{font-size:1.18em}.markdownPreview p{margin:.65em 0;white-space:normal}.markdownPreview blockquote{margin:1em 0;padding:.25em 1em;border-left:3px solid var(--accent);background:#14171a;color:#c5c2ba;border-radius:0 8px 8px 0}.markdownPreview blockquote p:first-child{margin-top:.35em}.markdownPreview ul,.markdownPreview ol{padding-left:1.6em}.markdownPreview li{margin:.3em 0}.markdownPreview hr{border:0;border-top:1px solid #3b4148;margin:1.5em 0}.markdownPreview pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;background:#101316;border:1px solid var(--line);border-radius:9px}.markdownPreview code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#101316;padding:.08em .28em;border-radius:4px}.markdownPreview pre code{padding:0;background:transparent}.markdownPreview a{color:#d9bd84;text-decoration-thickness:1px;text-underline-offset:3px}.markdownPreview .markdownImageAlt{color:var(--muted);font-style:italic}.markdownPreview details.markdownHistory{margin:1em 0;border:1px solid var(--line);border-radius:9px;background:#131619}.markdownPreview .markdownHistory summary{cursor:pointer;padding:10px 13px;color:#c8b17f;font-weight:700}.markdownPreview .markdownHistoryBody{padding:0 14px 12px}.previewHint{max-width:960px;margin:0 auto 10px;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:720px){.markdownPreview{border-radius:10px;padding:18px 14px;min-height:calc(100vh - 210px);font-size:15px;line-height:1.68}.markdownPreview h1{font-size:1.5em}.markdownPreview h2{font-size:1.28em}}
@media(max-width:720px){.syncMessage{margin:8px 4px}.statusline{display:flex;max-width:125px}.statusline .pill{white-space:normal;padding:4px 6px}#netStatus{display:none}.brand{white-space:normal}.dialogActions{flex-wrap:wrap}}

.libraryTabs{display:flex;gap:6px;margin:12px 0}.libraryTabs button{flex:1;font-size:12px;padding:8px}.libraryTabs [aria-pressed="true"]{border-color:#b99b62;background:#292219}.referenceItem{padding:12px 10px}.referenceItem .episodeName{white-space:normal;overflow-wrap:anywhere}.referenceItem .episodeVer{margin-top:4px}
@media(min-width:721px){#openLibrary,[data-close="libraryPanel"]{display:none!important}}
#markHint:not(.hidden)~.paperWrap #previewHint{display:none}
/* drawers, mark hint and reservation badges (moved from app.js) */
.editor{-webkit-user-select:text;user-select:text;touch-action:pan-y}.drawerBackdrop{position:fixed;inset:56px 0 0;z-index:40;background:rgba(0,0,0,.48);opacity:0;pointer-events:none;transition:opacity .18s}.drawerBackdrop.open{opacity:1;pointer-events:auto}.markHint{max-width:960px;margin:0 auto 10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;color:#b8bdc3;background:#13171a;font-size:12px;line-height:1.35}.markHint strong{color:var(--text)}.markHint button{float:right;min-height:28px;padding:2px 8px;margin:-3px -4px 0 8px}.panel.swiping{transition:none!important}@media(max-width:720px){.markHint{margin:0 4px 10px;font-size:12px}.drawerBackdrop{inset:56px 0 0}.library,.notes{touch-action:pan-y}}
.episodeInfo{min-width:0;flex:1}.episodeLock{font-size:10px;color:#e3c882;margin-top:4px}.episodeItem.episodeReserved{border:1px solid #67542f;background:#211d15}
