/* QuairOne V2: the page is the app. Values sampled from captures of 0.2.107 and crates/ui/src/theme.rs. */
@font-face { font-family: Geist; src: url(fonts/geist.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: Geist; src: url(fonts/geist-italic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: Geist; src: url(fonts/geist-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: Geist; src: url(fonts/geist-600.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: Geist; src: url(fonts/geist-700.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: Geist; src: url(fonts/geist-700i.woff2) format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url(fonts/geistmono.woff2) format("woff2"); font-display: swap; }

:root {
  --rail: rgba(0,0,0,.28);
  --page: #f2f2f4; --setcard: #e8e8ea; --past: #f5f5f5;
  --accent: #15803d; --accent-wash: #e8f3ec; --accent-code: #dceee3; --accent-text: #116b33;
  --bg: #fff; --side: #e8e8ea; --line: #ccccce; --soft: rgba(0,0,0,.10); --bar: #f6f6f6; --hover: rgba(26,26,26,.06); --active: rgba(26,26,26,.10); --tabon: #e8e8e8;
  --tx: #2b2b2b; --tx2: #5c5c5c; --tx3: #767676; --card: #fff; --shadow: 0 4px 16px rgba(0,0,0,.12); --code: #f6f6f6;
  --purple: #4f39f6; --yellow: #8a5a00; --blue: #2563eb; --red: #dc2626;
  --n: #1d4ed8; --t: #15803d; --i: #5b3fd6; --w: #7a4a12; --c: #c81e1e;
  font-synthesis: none;
}
.dark {
  --rail: rgba(255,255,255,.28);
  --page: #0b0b0b; --setcard: #161616; --past: #0d0d0d;
  --accent: #4ade80; --accent-wash: #16261c; --accent-code: #17291e; --accent-text: #6ee7a0;
  --bg: #060606; --side: #0d0d0d; --line: rgba(255,255,255,.14); --soft: rgba(255,255,255,.08); --bar: #141414; --hover: rgba(235,235,235,.11); --active: rgba(235,235,235,.16); --tabon: #262626;
  --tx: #e5e5e5; --tx2: #a1a1a1; --tx3: #8a8a8a; --card: #161616; --shadow: 0 6px 22px rgba(0,0,0,.6); --code: #141414;
  --purple: #a59bff; --yellow: #e0a53d; --blue: #7aa7ff; --red: #f87171;
  --n: #7aa7ff; --t: #4ade80; --i: #b0a2ff; --w: #e0a53d; --c: #f87171;
}
* { box-sizing: border-box; }
/* the app's rail: a 2px line in a wider, invisible hit area */
.app * { scrollbar-width: thin; scrollbar-color: var(--rail) transparent; }
@supports selector(::-webkit-scrollbar) {
  .app * { scrollbar-width: auto; scrollbar-color: auto; }
  .app ::-webkit-scrollbar { width: 8px; height: 8px; background: transparent; }
  .app ::-webkit-scrollbar-thumb { background: var(--rail); background-clip: content-box; border: 3px solid transparent; border-radius: 4px; }
  .app ::-webkit-scrollbar-thumb:hover { border-width: 2px; background-color: var(--tx3); }
  .app ::-webkit-scrollbar-corner { background: transparent; }
}
html, body { height: 100%; margin: 0; overflow: hidden; overscroll-behavior: none; }
body { display: flex; flex-direction: column; height: 100dvh; font: 400 13px/1.45 Geist, "Segoe UI", system-ui, sans-serif; color: var(--tx); background: var(--bg); }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
svg { display: block; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-radius: 4px; }
.nojs { padding: 24px; }

/* the page is the hero picture; the app is a window on it */
@font-face { font-family: Texturina; src: url(../assets/fonts/texturina-400-latin.woff2) format("woff2"); font-display: swap; }
body { background: #f3e7d7; }
/* V1's animated hero layers, on a 16:9 stage that covers the viewport exactly as the wallpaper does */
.stage { --w: max(100vw, 177.78vh); --h: max(100vh, 56.25vw); position: fixed; width: var(--w); height: var(--h); left: calc((100vw - var(--w)) * .3); top: calc((100vh - var(--h)) / 2); overflow: hidden; background: #f3e7d7; }
.dark .stage { display: none; }
.stage > * { position: absolute; }
.s-p2 { left: 0; top: 10%; width: 100%; height: 90%; object-fit: fill; -webkit-mask-image: linear-gradient(transparent, #000 7%); mask-image: linear-gradient(transparent, #000 7%); }
.s-p3 { left: 0; top: 0; width: 73%; height: 100%; object-fit: fill; transform-origin: 8% 30%; }
.s-p4wrap { left: -2.4%; right: -5.1%; bottom: 0; height: 22.6%; overflow: hidden; transform-origin: 50% 100%; }
.s-p4wrap img { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; object-fit: fill; }
.s-sp { object-fit: fill; }
.s-p1 { left: 44.10%; top: 39.45%; width: 12.48%; height: 14.05%; }
.s-sp.s-p2 { left: 53.71%; top: 38.06%; width: 7.60%; height: 8.43%; -webkit-mask-image: none; mask-image: none; }
.s-sp.s-p3 { left: 61.37%; top: 35.17%; width: 7.54%; height: 8.13%; transform-origin: 50% 50%; }
.s-b1 { left: 76.32%; top: 25.73%; width: 6.15%; height: 8.90%; }
.s-b2 { left: 83.44%; top: 19.28%; width: 8.09%; height: 11.74%; }
.s-b3 { left: 93.13%; top: 14.65%; width: 3.00%; height: 5.76%; }
.s-veil { inset: 0 0 auto 0; height: 76%; background: rgba(243,231,215,.10); pointer-events: none; }
.s-light, .s-fly { inset: 0; width: 100%; height: 100%; pointer-events: none; }
.fly-sheet { position: absolute; pointer-events: none; will-change: transform, opacity; }
.hero-top { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.brand { display: flex; align-items: center; gap: 8px; text-decoration: none; font-size: 15px; }
.brand b { font-weight: 600; }
.dl, .tourbtn { flex: none; padding: 7px 14px; border-radius: 8px; font-weight: 600; font-size: 13px; text-decoration: none; }
.dl { margin-left: auto; background: #15803d; color: #fff; }
.tourbtn { background: none; color: inherit; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; }
.dl:hover { filter: brightness(1.08); }
.hero-go { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hero { position: relative; z-index: 1; margin: max(24px, 7vh) 0 0 max(24px, 8vw); padding: 22px 30px 24px 26px; width: fit-content; max-width: min(560px, calc(100vw - 48px)); color: #26321f; background: rgba(248,240,226,.9); border-radius: 12px; }
.hero h1 { margin: 0; font: 400 clamp(34px, 4vw, 56px)/1.08 Texturina, Georgia, serif; letter-spacing: -.02em; color: #2f5743; }
.hero p { margin: 12px 0 18px; font-size: clamp(16px, 1.4vw, 19px); }
.hero small { display: block; margin-top: 12px; font-size: 13px; color: #3c4531; }
.launch { padding: 11px 22px; border-radius: 10px; background: #26321f; color: #f8f0e2; font-size: 16px; font-weight: 600; }
.launch:hover { background: #15803d; }
.dark .hero { color: #f3ecd8; }
.dark .hero { background: rgba(16,24,38,.82); }
.dark .hero h1 { color: #f3ecd8; }
.dark .hero small { color: #cfc8b4; }
.dark .launch { background: #f3ecd8; color: #101826; }
.win { position: fixed; z-index: 3; inset: 24px; display: flex; border-radius: 8px; overflow: hidden; background: var(--bg); box-shadow: 0 0 0 1px rgba(0,0,0,.22), 0 22px 60px rgba(20,28,16,.45); }
.win[hidden] { display: none; }
.win.max { inset: 0; border-radius: 0; }
.win.opening { animation: win-open .2s cubic-bezier(.2,.8,.3,1); }
@keyframes win-open { from { opacity: 0; transform: translateY(14px) scale(.985); } }
.custom-accent { --accent-text: var(--accent); --accent-wash: color-mix(in srgb, var(--accent) 10%, var(--bg)); --accent-code: color-mix(in srgb, var(--accent) 14%, var(--bg)); }
.norail .ol { display: none; }
.nomdbar .mdbar { display: none; }
.notools .toolsbtn { display: none !important; }

.app { flex: 1; min-width: 0; min-height: 0; display: flex; position: relative; background: var(--bg); color: var(--tx); }
.ib { width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 6px; color: var(--tx2); font-size: 18px; }
.ib:hover { background: var(--hover); color: var(--tx); }
.ib.on { background: var(--active); color: var(--tx); }
.ib[disabled] { opacity: .35; pointer-events: none; }
.ib svg { width: 1em; height: 1em; }

/* left bar */
.side { width: 256px; flex: none; display: flex; flex-direction: column; background: var(--side); border-right: 1px solid var(--line); position: relative; }
.side-top { height: 40px; flex: none; display: flex; align-items: center; gap: 2px; padding: 0 8px; border-bottom: 1px solid var(--soft); }
.boxhead { height: 34px; flex: none; display: flex; align-items: center; gap: 8px; padding: 0 8px 0 12px; font-weight: 600; margin-top: 2px; }
.boxhead .bi { width: 18px; height: 18px; color: var(--c0, var(--accent)); }
.boxhead .nm { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.boxhead .ib { width: 24px; height: 24px; }
.dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: currentColor; }
.tree { flex: 1; min-height: 0; overflow: auto; padding: 2px 6px; }
.row { width: 100%; height: 28px; display: flex; align-items: center; gap: 7px; padding: 0 8px; border-radius: 6px; text-align: left; color: var(--tx2); }
.row:hover { background: var(--hover); }
.row.cur { background: var(--active); color: var(--tx); }
.row .nm { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row .fi, .tab .fi { width: 14px; height: 14px; flex: none; }
.row .fi svg, .tab .fi svg { width: 14px; height: 14px; }
.row.in { padding-left: 26px; }
.row.grp .chev { width: 12px; height: 12px; font-size: 12px; color: var(--tx3); transition: transform .12s; }
.row.grp.shut .chev { transform: rotate(-90deg); }
.row.grp .fo { font-size: 15px; }
.row .lk { font-size: 13px; color: var(--accent); opacity: .75; }
.c-green { color: var(--accent-text); } .c-purple { color: var(--purple); } .c-yellow { color: var(--yellow); } .c-blue { color: var(--blue); }
.empty { padding: 12px; color: var(--tx3); font-size: 13px; }
.boxbar { flex: none; margin: 6px; height: 28px; display: flex; align-items: center; gap: 8px; padding: 0 8px; border-radius: 6px; font-size: 12px; font-weight: 600; letter-spacing: .03em; color: var(--tx2); width: calc(100% - 12px); }
.boxbar:hover, .boxbar.on { background: var(--hover); }
.boxbar svg { width: 15px; height: 15px; }
.boxbar span:last-child { margin-left: auto; font-weight: 400; }
.pop { position: absolute; z-index: 30; background: var(--card); border: 1px solid var(--soft); border-radius: 10px; box-shadow: var(--shadow); padding: 5px; min-width: 190px; color: var(--tx); }
.pop .mi { width: 100%; min-height: 30px; display: flex; align-items: center; gap: 9px; padding: 3px 9px; border-radius: 6px; text-align: left; font-size: 13.5px; color: var(--tx2); }
.pop .mi:hover { background: var(--hover); color: var(--tx); }
.pop .mi svg { width: 15px; height: 15px; flex: none; }
.pop .mi.danger { color: var(--red); }
.pop .sep { height: 1px; background: var(--soft); margin: 4px 6px; }
.pop .cap { padding: 5px 9px 3px; font-size: 11.5px; font-weight: 600; letter-spacing: .05em; color: var(--tx3); }
.boxes-pop { left: 8px; right: 8px; bottom: 40px; }
.filepanel { width: 280px; flex: none; display: flex; flex-direction: column; background: var(--bg); border-right: 1px solid var(--line); }
.filepanel .side-top { padding-left: 12px; font-weight: 500; }

/* tabs */
.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tabbar { height: 40px; flex: none; display: flex; align-items: center; padding-left: 8px; background: var(--bg); border-bottom: 1px solid var(--soft); }
.tabs { flex: 1; min-width: 0; display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none; margin-left: 4px; }
.tabs::-webkit-scrollbar { display: none; }
.tab { height: 28px; flex: none; display: flex; align-items: center; gap: 6px; padding: 0 6px 0 8px; border-radius: 7px; color: var(--tx2); font-size: 13px; cursor: pointer; user-select: none; }
.tab:hover { background: var(--hover); }
.tab.on { background: var(--tabon); color: var(--tx); }
.tab .x { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 4px; font-size: 13px; color: var(--tx3); }
.tab .x:hover { background: var(--active); color: var(--tx); }
.tab .unsaved { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.winbtns { display: flex; align-items: center; gap: 4px; padding-right: 6px; }
.winbtns .lang { font-size: 12px; width: 30px; color: var(--tx2); }
.caps { display: flex; margin-left: 6px; }
.caps .ib { width: 36px; font-size: 15px; }
.accentdot { width: 14px; height: 14px; border-radius: 50%; background: var(--accent); }

/* panes */
.panes { flex: 1; min-height: 0; display: flex; position: relative; }
.pane { flex: 1; min-width: 0; display: flex; flex-direction: column; position: relative; container-type: inline-size; border-top: 2px solid transparent; }
.pdiv { flex: none; width: 1px; position: relative; z-index: 9; background: var(--line); cursor: col-resize; touch-action: none; }
.pdiv::before { content: ""; position: absolute; inset: 0 -4px; }
.pdiv::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(transparent, var(--accent), transparent); }
.pdiv:hover::after { animation: pdiv-breathe 1.8s ease-in-out; }
.pdiv.held::after { animation: none; opacity: 1; }
@keyframes pdiv-breathe { 0%, 50%, 100% { opacity: 0; } 25%, 75% { opacity: 1; } }
.panes.split .pane.focus { border-top-color: var(--accent); }
.dropzone { position: absolute; inset: 0; z-index: 25; pointer-events: none; }
.dropzone i { position: absolute; top: 4px; bottom: 4px; background: var(--accent-wash); border: 1.5px solid var(--accent); opacity: .8; border-radius: 8px; }
.emptypane { flex: 1; display: grid; place-items: center; color: var(--tx3); text-align: center; }

/* toolbar card */
.tb { flex: none; height: 38px; margin: 2px 8px 0; display: flex; align-items: center; gap: 1px; padding: 0 6px; background: var(--bar); border: 1px solid var(--soft); border-radius: 9px; box-shadow: 0 1px 3px rgba(0,0,0,.06); position: relative; z-index: 12; }
.tb .sp { flex: 1; min-width: 0; }
.tb .bar { width: 1px; height: 18px; background: var(--soft); margin: 0 5px; flex: none; }
.tb .ib { font-size: 17px; }
.tb .tx { height: 28px; padding: 0 7px; border-radius: 6px; color: var(--tx2); font-size: 13px; flex: none; white-space: nowrap; }
.tb .tx:hover { background: var(--hover); }
.tb .tx.on { background: var(--active); color: var(--tx); }
.tb .pct { font-size: 13px; min-width: 40px; text-align: center; color: var(--tx2); flex: none; }
.tb .wtx { display: flex; align-items: center; gap: 5px; }
.tb .wtx svg { width: 15px; height: 15px; }
.colorwell { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); margin-right: 2px; }
.ib .savedot { position: absolute; }
.save-wrap { position: relative; }
.save-wrap.dirty::after { content: ""; position: absolute; top: 3px; right: 3px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
/* the toolbar sheds its least-used controls as the pane narrows, as the real one folds into its ⋯ menu */
@container (max-width: 1240px) { .o3 { display: none !important; } }
@container (max-width: 800px) { .o2 { display: none !important; } }
@container (max-width: 560px) { .o1 { display: none !important; } }

/* views */
.view { flex: 1; min-height: 0; position: relative; display: flex; overflow: hidden; }
.scroll { flex: 1; min-width: 0; overflow: auto; }
.ol { position: absolute; top: 0; right: 0; height: 100%; width: 18px; z-index: 8; }
.ol:hover, .ol.open, .ol-pinned .ol { width: 252px; }
.ol-rail { position: absolute; top: 0; right: 0; padding: 18px 4px 0 0; display: flex; flex-direction: column; align-items: flex-end; transition: opacity .18s ease-out; }
.ol:hover .ol-rail, .ol.open .ol-rail, .ol-pinned .ol-rail { opacity: 0; pointer-events: none; }
.ol-k { width: 14px; display: flex; align-items: center; justify-content: flex-end; flex: none; }
.ol-k i { height: 2px; border-radius: 1px; background: var(--tx3); opacity: .55; }
.ol-k:hover i { background: var(--tx2); opacity: 1; }
.ol-k.cur i { background: var(--accent); opacity: 1; }
.ol-card { position: absolute; top: 8px; right: -2px; width: 240px; max-height: calc(100% - 16px); display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--soft); border-radius: 11px; box-shadow: var(--shadow); overflow: hidden; opacity: 0; visibility: hidden; transition: opacity .18s ease-out, right .18s ease-out, visibility .18s; }
.ol:hover .ol-card, .ol.open .ol-card, .ol-pinned .ol-card { opacity: 1; right: 8px; visibility: visible; }
.ol-h { height: 30px; flex: none; display: flex; align-items: center; gap: 6px; padding: 0 8px; font-size: 12.5px; font-weight: 600; color: var(--tx2); }
.ol-h > svg { width: 13px; height: 13px; color: var(--tx3); }
.ol-h span { flex: 1; }
.ol-pin { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 4px; font-size: 13px; color: var(--tx3); }
.ol-pin:hover { background: var(--hover); }
.ol-pinned .ol-pin { color: var(--accent); }
.ol-b { flex: 1; min-height: 0; overflow: auto; padding: 0 4px 58px; }
.ol-r { height: 26px; display: flex; align-items: center; gap: 2px; padding-right: 8px; border-radius: 5px; text-decoration: none; color: var(--tx2); font-size: 13px; }
.ol-r:hover { background: var(--hover); }
.ol-r.top { font-weight: 500; color: var(--tx); }
.ol-r.cur { background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent); }
.ol-c { width: 16px; height: 16px; flex: none; display: grid; place-items: center; border-radius: 4px; font-size: 9px; color: var(--tx3); }
.ol-c.has:hover { background: var(--hover); }
.ol-c svg { transform: rotate(90deg); }
.ol-c.shut svg { transform: none; }
.ol-t { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ol-r .ol-n { flex: none; padding-left: 8px; font-size: 12px; font-weight: 400; color: var(--tx3); }
.ol-r.cur .ol-n { color: var(--accent); }
.ol-f { flex: none; height: 26px; padding: 0 9px; display: flex; align-items: center; border-top: 1px solid var(--soft); font-size: 11.5px; color: var(--tx3); white-space: nowrap; overflow: hidden; }
.doc.numbered { counter-reset: h2; }
.doc.numbered h2 { counter-increment: h2; }
.doc.numbered h2::before { content: counter(h2) ". "; color: var(--tx3); }
.sideback { display: none; }
.noside .side { display: none; }
.noside .sideback { display: grid; }

@container (max-width: 1099px) { .lane { left: auto; right: 6px; width: 170px; } }

/* markdown page */
.doc { --z: 1; max-width: calc(900px * var(--z)); margin: 0 auto; padding: 14px 24px 90px; font-size: calc(14px * var(--z)); line-height: 1.5; }
.doc.w-wide { max-width: calc(1160px * var(--z)); } .doc.w-full { max-width: none; }
.blk { border-radius: 4px; }
.doc h1 { font-size: 1.47em; line-height: 1.3; font-weight: 600; margin: .75em 0 .4em; }
.doc h2 { font-size: 1.2em; line-height: 1.35; font-weight: 600; margin: 1.05em 0 .45em; }
.doc h3 { font-size: 1.07em; font-weight: 600; margin: .9em 0 .4em; }
.doc p { margin: .5em 0; }
.doc strong { font-weight: 700; }
.doc code { font: .92em "Geist Mono", ui-monospace, Consolas, monospace; background: var(--accent-code); color: var(--accent-text); padding: .08em .3em; border-radius: 4px; }
.doc mark { background: var(--accent-code); color: inherit; padding: .05em .15em; border-radius: 3px; }
.doc a { color: var(--accent-text); text-underline-offset: 2px; }
.doc del { opacity: .75; }
.doc hr { border: 0; border-top: 1px solid var(--soft); margin: 1.4em 0; }
.doc ul, .doc ol { margin: .5em 0; padding-left: 1.7em; }
.doc li { margin: .25em 0; }
.doc li::marker { color: var(--accent); }
.doc li.has-task { list-style: none; margin-left: -1.55em; }
.task { display: inline-flex; gap: .55em; align-items: baseline; }
.task input { appearance: none; width: 1em; height: 1em; margin: 0; flex: none; border: 1.5px solid var(--line); border-radius: 3px; background: var(--bg); cursor: pointer; align-self: center; position: relative; }
.task input:checked { background: var(--accent); border-color: var(--accent); }
.task input:checked::after { content: ""; position: absolute; left: 30%; top: 8%; width: 30%; height: 58%; border: solid #fff; border-width: 0 1.6px 1.6px 0; transform: rotate(42deg); }
.doc dl { margin: .7em 0; } .doc dt { font-weight: 600; } .doc dd { margin: .1em 0 0 1.6em; }
.doc blockquote { margin: .6em 0; padding: 6px 12px; border-left: 2px solid var(--accent); border-radius: 0 6px 6px 0; background: var(--accent-wash); color: var(--tx2); }
.doc blockquote p { margin: 0; }
.alert { margin: .65em 0; padding: .4em .85em; border-left: 2px solid; border-radius: 0 6px 6px 0; }
.alert p { margin: .15em 0; color: var(--tx2); }
.alert-t { font-weight: 600; }
/* callouts keep their kind's colour whatever the accent (element.rs): rail and wash both, wash at 8% */
.alert-note { --k: var(--n); } .alert-tip { --k: var(--t); } .alert-important { --k: var(--i); } .alert-warning { --k: var(--w); } .alert-caution { --k: var(--c); }
.alert { background: color-mix(in srgb, var(--k) 8%, var(--bg)); border-color: var(--k); }
.alert-t { color: var(--k); }
.front, .toc, .merm { border: 1px solid var(--soft); border-radius: 7px; margin: .5em 4px .8em; }
.front { background: var(--code); padding: 6px 12px; }
.front th { text-align: left; font-weight: 400; color: var(--tx2); font-size: .87em; padding: 2px 44px 2px 0; }
.front td { font-size: .93em; padding: 2px 0; }
.toc { background: var(--code); }
.toc summary { padding: 5px 12px; font-size: .85em; font-weight: 600; color: var(--tx2); cursor: pointer; }
.toc a { display: block; padding-top: 2px; padding-bottom: 2px; margin-left: 14px; text-decoration: none; color: var(--tx); font-size: .9em; }
.toc a:hover { color: var(--accent-text); }
.toc { padding-bottom: 8px; }
table.grid { width: calc(100% - 8px); margin: .7em 4px; border-collapse: collapse; }
table.grid th { font-weight: 600; padding: .75em .8em; border-bottom: 1px solid var(--soft); }
table.grid td { padding: .68em .8em; border-bottom: 1px solid var(--soft); outline: 0; }
table.grid td:focus { background: var(--accent-wash); box-shadow: inset 0 0 0 1.5px var(--accent); }
.dmath { margin: 1em 0; text-align: center; overflow-x: auto; overflow-y: hidden; }
.katex { font-size: 1.1em; }
.code { margin: .7em 4px; border: 1px solid var(--soft); border-radius: 7px; background: var(--code); }
.code-h { display: flex; justify-content: space-between; align-items: center; padding: 3px 6px 3px 12px; font-size: .8em; color: var(--tx2); }
.code-h button { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 5px; font-size: 13px; } .code-h button:hover { background: var(--hover); }
.code pre { margin: 0; padding: 2px 12px 12px; overflow-x: auto; font: .87em/1.55 "Geist Mono", ui-monospace, Consolas, monospace; }
pre i { font-style: normal; }
i.kw { color: #a626a4; } i.s { color: #8a5a00; } i.c { color: #8a8f98; } i.n { color: #0e7490; } i.f { color: #2563eb; } i.t { color: #b45309; } i.k { color: #be123c; } i.a { color: #7c3aed; }
.dark i.kw { color: #d58cf0; } .dark i.s { color: #e0b070; } .dark i.n { color: #67d4e8; } .dark i.f { color: #7aa7ff; } .dark i.t { color: #f0b060; } .dark i.k { color: #fb8ca2; } .dark i.a { color: #b69bff; }
.merm { background: var(--code); }
.merm-h { display: flex; justify-content: space-between; align-items: center; padding: 6px 12px; font-size: .85em; color: var(--tx2); }
.seg { display: inline-flex; border: 1px solid var(--soft); border-radius: 6px; background: var(--bg); padding: 2px; }
.seg button { padding: 1px 7px; border-radius: 4px; font-size: .92em; color: var(--tx2); }
.seg button.on { background: var(--accent-wash); color: var(--accent-text); font-weight: 500; }
.merm-p { padding: 2px 24px 18px; }
.merm svg { width: 100%; max-width: 760px; margin: auto; height: auto; }
.merm text { font: 14px Geist, sans-serif; fill: var(--tx); text-anchor: middle; }
.merm rect { fill: var(--bg); stroke: var(--line); stroke-width: 1.2; }
.merm .lab rect { stroke: var(--soft); }
.merm .dec path { fill: var(--accent-wash); stroke: var(--accent); stroke-width: 1; }
.merm .edges path { fill: none; stroke: var(--tx3); stroke-width: 1.6; marker-end: url(#ah); }
.merm marker path { fill: var(--tx3); }
.merm-c { margin: 0; padding: 4px 14px 14px; font: .87em/1.5 "Geist Mono", monospace; }
.pic img { max-width: min(100%, 460px); border-radius: 6px; }
.foots { margin-top: 2em !important; padding-top: 1em !important; border-top: 1px solid var(--soft); font-size: .88em; }
sup.fn a { text-decoration: none; background: var(--accent-code); padding: 0 .3em; border-radius: 3px; font-size: .85em; }
.raw { margin: .35em 0; padding: .1em .25em; white-space: pre-wrap; word-break: break-word; font: inherit; outline: 0; caret-color: var(--accent); min-height: 1.5em; background: var(--hover); border-radius: 4px; }
.raw .m { color: var(--tx3); }
.flash { animation: flash 1s ease-out; }
@keyframes flash { from { background: var(--accent-wash); } to { background: transparent; } }

/* source view */
.src-h { flex: none; height: 30px; display: flex; align-items: center; justify-content: space-between; padding: 0 8px 0 12px; font-size: 12.5px; color: var(--tx2); border-bottom: 1px solid var(--soft); }
.chip { height: 22px; padding: 0 8px; border-radius: 5px; color: var(--tx2); font-size: 12px; }
.chip.on { background: var(--accent-wash); color: var(--accent-text); }
.srcwrap { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.src { margin: 0; font: 13px/20px "Geist Mono", ui-monospace, Consolas, monospace; padding: 4px 0 40px; counter-reset: l; min-width: max-content; }
.src div { padding: 0 16px 0 0; white-space: pre; }
.src div::before { counter-increment: l; content: counter(l); display: inline-block; width: 3.2em; padding-right: 1em; text-align: right; color: var(--tx3); user-select: none; }
.lvl-ERROR { color: var(--red); } .lvl-WARN { color: var(--yellow); }

/* pdf + epub */
.pdfwrap { flex: 1; min-width: 0; overflow: auto; background: var(--bg); position: relative; }
.pages { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 12px 24px 40px; min-width: min-content; }
.pages.m-row { flex-direction: row; align-items: flex-start; width: max-content; }
.pages.m-spread { display: grid; grid-template-columns: auto auto; justify-content: center; gap: 12px 6px; }
.pages.m-pages .pg:not(.here) { display: none; }
.pg { position: relative; background: #fff; box-shadow: 0 1px 6px rgba(0,0,0,.18); flex: none; }
.pg canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.paper-dim .pg canvas { filter: brightness(.86) sepia(.08); }
.paper-dark .pg canvas { filter: invert(.92) hue-rotate(180deg); }
.textLayer { position: absolute; inset: 0; overflow: hidden; line-height: 1; opacity: 1; forced-color-adjust: none; transform-origin: 0 0; z-index: 2; }
.textLayer span, .textLayer br { color: transparent; position: absolute; white-space: pre; cursor: text; transform-origin: 0 0; }
.textLayer ::selection { background: rgba(21,128,61,.3); }
.ann { position: absolute; z-index: 1; pointer-events: none; }
.ann.hl { background: rgba(255,221,50,.55); mix-blend-mode: multiply; z-index: 3; }
.ann.gr { background: rgba(80,210,120,.45); mix-blend-mode: multiply; z-index: 3; }
.ann.ul { border-bottom: 1.5px solid var(--accent); z-index: 3; }
.ann.st { z-index: 3; background: linear-gradient(transparent 46%, #c81e1e 46%, #c81e1e 56%, transparent 56%); }
.ann.rd { background: #111; z-index: 3; }
.lane { position: absolute; left: calc(100% + 14px); width: 216px; background: var(--card); border: 1px solid var(--soft); border-radius: 6px; padding: 6px 9px; font-size: 12.5px; box-shadow: var(--shadow); z-index: 4; color: var(--tx); }
.lane b { font-weight: 600; }
.lane .rp { color: var(--tx2); margin-top: 5px; padding-top: 5px; border-top: 1px solid var(--soft); }
.lane textarea { width: 100%; font: inherit; color: inherit; background: none; border: 0; outline: 0; resize: none; }
.nolane .lane { display: none; }
.loading { position: absolute; inset: 0; display: grid; place-items: center; color: var(--tx3); }
.book { flex: 1; min-width: 0; position: relative; overflow: hidden; display: flex; justify-content: center; padding: 10px 24px 14px 20px; background: var(--bg); }
.leafs { position: relative; display: flex; gap: 22px; height: 100%; width: 100%; max-width: 1040px; }
.leaf-bg { flex: 1; background: var(--card); box-shadow: 0 1px 6px rgba(0,0,0,.18); border-radius: 2px; }
.bookflow { position: absolute; inset: 44px 44px 50px; overflow: hidden; }
.bookcol { height: 100%; column-gap: 110px; column-fill: auto; font-size: calc(14.5px * var(--z, 1)); line-height: 1.55; transition: transform .28s cubic-bezier(.3,.7,.3,1); }
.bookcol h2 { font-weight: 600; font-size: 1.35em; margin: 0 0 .8em; line-height: 1.25; }
.bookcol p { margin: 0 0 .75em; text-align: left; }
.folio { position: absolute; bottom: 18px; font-size: 12px; color: var(--tx3); }
.turn { position: absolute; top: 0; bottom: 0; width: 18%; z-index: 3; cursor: pointer; }

/* find */
.find { position: absolute; top: 46px; right: 26px; z-index: 11; display: flex; align-items: center; gap: 4px; padding: 4px 6px; background: var(--card); border: 1px solid var(--soft); border-radius: 9px; box-shadow: var(--shadow); }
.find input { width: 170px; border: 0; outline: 0; background: none; color: inherit; font: inherit; padding: 2px 4px; }
.find .n { font-size: 12px; color: var(--tx3); min-width: 42px; text-align: right; }
.find .ib { width: 24px; height: 24px; font-size: 14px; }
mark.hit { background: #ffe58a; color: #222; border-radius: 2px; } mark.hit.cur { background: #ffb020; }

/* dialogs and toasts */
.scrim { position: absolute; inset: 0; z-index: 40; background: rgba(0,0,0,.28); display: grid; place-items: center; padding: 16px; }
.dlg { width: min(430px, 100%); max-height: 100%; display: flex; flex-direction: column; background: var(--card); border-radius: 14px; box-shadow: 0 10px 40px rgba(0,0,0,.3); }
.dlg-b { padding: 16px 18px 6px; overflow: auto; font-size: 13.5px; }
.dlg h3 { margin: 0; font-size: 15px; font-weight: 600; }
.dlg .sub { color: var(--tx3); font-size: 12.5px; margin: 1px 0 10px; }
.dlg label.f { display: block; margin: 11px 0 5px; color: var(--tx2); font-weight: 500; }
.dlg input[type=text], .dlg input[type=password] { width: 100%; padding: 7px 9px; font: inherit; color: inherit; background: var(--bg); border: 1px solid var(--line); border-radius: 7px; }
.dlg .chk { display: flex; align-items: center; gap: 8px; margin: 5px 0; }
.dlg .chk input { accent-color: var(--accent); width: 15px; height: 15px; }
.chips { display: flex; flex-wrap: wrap; gap: 5px; }
.chips button { padding: 3px 9px; border: 1px solid var(--soft); border-radius: 6px; font-size: 13px; color: var(--tx2); }
.chips button.on { background: var(--accent-wash); color: var(--accent-text); border-color: transparent; font-weight: 500; }
.dlg-f { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px 14px; flex: none; }
.dlg-f .note { margin-right: auto; align-self: center; font-size: 12px; color: var(--tx3); }
.btn { padding: 6px 14px; border-radius: 7px; border: 1px solid var(--soft); font-weight: 500; font-size: 13.5px; }
.btn.pri { background: var(--accent); color: #fff; border-color: transparent; }
.dark .btn.pri { color: #06240f; }
.toast { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 50; max-width: min(92%, 520px); padding: 8px 14px; background: #222; color: #f4f4f4; border-radius: 9px; font-size: 13px; box-shadow: var(--shadow); text-align: center; }
.dragghost { position: fixed; z-index: 60; pointer-events: none; padding: 4px 10px; background: var(--card); border: 1px solid var(--soft); border-radius: 7px; box-shadow: var(--shadow); font-size: 13px; }
.quiet .side, .quiet .filepanel, .quiet .tabbar, .quiet .tb { display: none; }

/* search, in the left bar */
.search { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 2px 8px 0; }
.s-tabs { display: flex; gap: 2px; margin-bottom: 6px; }
.s-tabs button { padding: 2px 9px; border-radius: 6px; color: var(--tx2); font-size: 13px; }
.s-tabs button.on { background: var(--accent-wash); color: var(--accent-text); font-weight: 500; }
.s-in { display: flex; align-items: center; gap: 7px; height: 32px; padding: 0 9px; border: 1px solid var(--soft); border-radius: 8px; background: var(--hover); font-size: 15px; color: var(--tx2); }
.s-in svg { width: 1em; height: 1em; flex: none; }
.s-in input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; color: var(--tx); font: 13.5px Geist, sans-serif; caret-color: var(--accent); }
.s-res { flex: 1; min-height: 0; overflow: auto; margin: 6px -2px 4px; }
.row.res { height: auto; min-height: 30px; padding: 4px 8px; }
.row.res .nm { flex: none; max-width: 100%; }
.row.res .sn { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; color: var(--tx3); }
.row.res mark { background: var(--accent-code); color: inherit; border-radius: 2px; }
.tree[hidden] { display: none; }

/* settings */
.insettings .side, .insettings .filepanel { display: none; }
.insettings .panes, .insettings .tabs > *, .insettings .tabbar > .ib { display: none; }
.insettings .main { background: var(--page); }
.insettings .tabbar { background: var(--page); border-bottom: 0; }
.insettings [data-a="settings"] { background: var(--active); }
.s-side { display: none; width: 256px; flex: none; padding: 40px 8px 8px; background: var(--side); border-right: 1px solid var(--line); overflow: auto; }
.insettings .s-side { display: block; }
.s-page { display: none; flex: 1; min-height: 0; overflow: auto; background: var(--page); padding: 0 24px 60px; }
.insettings .s-page { display: block; }
.s-nav { width: 100%; height: 32px; display: flex; align-items: center; gap: 9px; padding: 0 10px; border-radius: 8px; color: var(--tx2); text-align: left; margin-bottom: 3px; }
.s-nav:hover { background: var(--hover); }
.s-nav.on { background: var(--active); color: var(--tx); font-weight: 500; }
.s-nav svg { width: 15px; height: 15px; flex: none; }
.s-col { max-width: 680px; margin: 0 auto; font-size: 13.5px; }
.s-col h2 { font-size: 21px; font-weight: 500; margin: 2px 0 18px; }
.s-col h2 small { font-size: 13px; color: var(--tx2); margin-left: 6px; font-weight: 400; }
.s-col h3 { font-size: 13.5px; font-weight: 400; color: var(--tx2); margin: 26px 8px 7px; }
.s-col h2 + h3 { margin-top: 0; }
.s-sub { margin: -12px 0 16px; color: var(--tx2); }
.s-foot { text-align: center; color: var(--tx2); font-size: 12.5px; }
.s-head { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.s-head h2 { margin: 0 auto 0 0; }
.s-card { background: var(--setcard); border-radius: 13px; padding: 2px 16px; }
.s-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; min-height: 58px; border-top: 1px solid var(--soft); }
.s-row:first-child { border-top: 0; }
.s-l { flex: 1; min-width: 0; }
.s-l b { display: block; font-weight: 500; }
.s-l span { display: block; color: var(--tx2); font-size: 12.5px; line-height: 1.32; }
.s-col select { padding: 7px 8px; border: 0; border-radius: 8px; background: var(--active); color: var(--tx); font: inherit; max-width: 240px; flex: none; }
.tog { width: 45px; height: 20px; flex: none; position: relative; border-radius: 11px; background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); }
.tog i { position: absolute; left: 3px; top: 3px; width: 20px; height: 14px; border-radius: 7px; background: #fff; box-shadow: 0 0 0 1px var(--line); transition: left .12s; }
.tog.on { background: var(--accent); box-shadow: none; }
.tog.on i { left: 22px; box-shadow: none; }
.pl-sw { display: flex; align-items: center; gap: 6px; flex: none; color: var(--tx2); }
.btn-q { padding: 6px 10px; border-radius: 7px; color: var(--tx2); font-size: 13px; flex: none; }
.btn-q:hover { background: var(--hover); }
.s-head .btn { background: var(--bg); }
.kbd { padding: 6px 12px; border-radius: 7px; background: var(--active); font: 12.5px "Geist Mono", monospace; flex: none; }
.schs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sch-p { display: block; height: 146px; border-radius: 7px; border: 1px solid var(--line); position: relative; overflow: hidden; background: #efeff1; }
.sch-p i { position: absolute; display: block; }
.sch-light i:first-child { left: 20%; top: 6%; right: 4%; bottom: 6%; background: #fff; border-radius: 6px; }
.sch-dark { background: #0d0d0d; } .sch-dark i:first-child { left: 20%; top: 6%; right: 4%; bottom: 6%; background: #060606; border: 1px solid #2a2a2a; border-radius: 6px; }
.sch-system i:first-child { left: 50%; top: 0; bottom: 0; right: 0; background: #0d0d0d; }
.sch-system i:last-child { left: 21%; top: 6%; width: 25%; bottom: 6%; background: #fff; border-radius: 5px; }
.sch.on .sch-p { border-color: var(--accent); box-shadow: 0 0 0 .5px var(--accent); }
.sch-n { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 8px; color: var(--tx2); }
.sch.on .sch-n { color: var(--accent); }
.sch-n svg { width: 15px; height: 15px; }
.sws, .c-col { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sw { width: 24px; height: 24px; border-radius: 6px; box-shadow: 0 0 0 2px var(--setcard), 0 0 0 3px var(--soft); }
.sw.on { box-shadow: 0 0 0 2px var(--setcard), 0 0 0 3.5px currentColor; color: var(--tx); }

/* calendar */
.cal { background: var(--bg); }
.c-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.c-bar { height: 36px; display: flex; align-items: center; gap: 2px; padding: 0 8px; }
.c-v { padding: 3px 9px; border-radius: 6px; color: var(--tx2); } .c-v:hover { background: var(--hover); } .c-v.on { font-weight: 600; color: var(--tx); }
.c-title { padding: 2px 16px 8px; font-weight: 600; font-size: 15px; }
.c-body { flex: 1; min-height: 0; display: flex; flex-direction: column; font-size: 12.5px; user-select: none; }
.g-head, .g-all, .g-grid { display: grid; }
.g-head { padding-bottom: 3px; border-bottom: 1px solid var(--soft); }
.g-d { text-align: center; } .g-d small { display: block; color: var(--tx2); font-size: 12px; }
.g-d b { display: inline-block; min-width: 24px; line-height: 22px; font-weight: 500; font-size: 13.5px; border-radius: 12px; }
.g-d b.now { background: var(--accent); color: #fff; }
.g-all { height: 28px; border-bottom: 1px solid var(--soft); } .g-all small { text-align: right; padding: 4px 8px 0 0; color: var(--tx2); font-size: 11px; } .g-all span { border-left: 1px solid var(--soft); }
.g-scroll { flex: 1; min-height: 0; overflow: auto; }
.g-grid { position: relative; }
.g-gut { position: relative; } .g-gut span { position: absolute; right: 8px; transform: translateY(-50%); color: var(--tx2); }
.g-col { position: relative; border-left: 1px solid var(--soft); cursor: cell; }
.g-col.past { background: var(--past); }
.g-ev { position: absolute; left: 2px; right: 3px; padding: 2px 6px; overflow: hidden; text-align: left; border-radius: 5px; background: color-mix(in srgb, var(--c) 16%, var(--bg)); color: var(--tx); font-size: 12px; line-height: 1.25; }
.g-ev b { display: block; font-weight: 500; } .g-ev span { color: var(--tx2); }
.g-draft { position: absolute; left: 2px; right: 3px; border-radius: 5px; background: var(--accent-wash); border: 1px solid var(--accent); }
.g-now { position: absolute; left: 0; right: 0; height: 1px; background: var(--accent); pointer-events: none; }
.g-now::before { content: ""; position: absolute; left: -4px; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); }
.m-head { display: grid; grid-template-columns: repeat(7, 1fr); padding: 0 0 4px; } .m-head span { padding-left: 6px; color: var(--tx2); }
.m-grid { display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid var(--soft); }
.m-c { min-height: 94px; padding: 5px 8px; border: solid var(--soft); border-width: 0 0 1px 1px; cursor: cell; overflow: hidden; } .m-c.past { background: var(--past); } .m-c.out .m-n { color: var(--tx2); }
.m-n { display: inline-block; padding: 0 5px; line-height: 18px; border-radius: 9px; } .m-n.now { background: var(--accent); color: #fff; font-weight: 600; }
.c-chip { display: block; width: 100%; margin-top: 2px; padding: 1px 5px; text-align: left; border-radius: 4px; background: color-mix(in srgb, var(--c) 16%, var(--bg)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.c-ed { width: 300px; flex: none; padding: 14px; overflow: auto; border-left: 1px solid var(--soft); background: var(--card); font-size: 13px; display: flex; flex-direction: column; gap: 8px; }
.c-ed label { display: block; color: var(--tx2); }
.c-ed input:not([type=checkbox]), .c-ed select, .c-ed textarea { width: 100%; margin-top: 3px; padding: 6px 8px; font: inherit; color: var(--tx); background: var(--bg); border: 1px solid var(--line); border-radius: 7px; resize: none; }
.c-col span { width: 100%; color: var(--tx2); } .c-ed .sw { width: 20px; height: 20px; --setcard: var(--card); }
.c-err { margin: 0; color: var(--red); } .c-act { display: flex; gap: 6px; }

.langnote { position: absolute; z-index: 40; right: 18px; bottom: 14px; max-width: min(460px, calc(100% - 36px)); padding: 7px 11px; border-radius: 8px; font-size: 12px; line-height: 1.4; color: var(--tx); background: var(--bg); box-shadow: 0 0 0 1px var(--soft), 0 4px 14px rgba(0,0,0,.14); }
.langnote[hidden] { display: none; }
/* coach bubbles */
.coach { position: absolute; z-index: 45; width: 290px; max-width: calc(100% - 16px); padding: 12px 14px 10px; border-radius: 12px; background: #1f2a1b; color: #f8f0e2; box-shadow: 0 10px 32px rgba(0,0,0,.35); font-size: 13.5px; line-height: 1.42; transition: left .22s ease-out, top .22s ease-out; }
.coach b { font-weight: 600; } .coach > b { display: block; font-size: 14.5px; }
.coach p { margin: 4px 0 10px; color: #e8e0cc; } .coach p b { color: #fff; }
.coach-f { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: #b9b49f; }
.coach-f span { margin-right: auto; }
.coach-f button { color: #d8d2bd; padding: 3px 4px; border-radius: 5px; } .coach-f button:empty { display: none; }
.coach-f .pri { background: #f8f0e2; color: #1f2a1b; font-weight: 600; padding: 4px 12px; border-radius: 7px; }
.coach::after { content: ""; position: absolute; width: 12px; height: 12px; background: #1f2a1b; transform: rotate(45deg); display: none; }
.coach[data-side=right]::after { display: block; left: -5px; top: calc(var(--ay) - 6px); }
.coach[data-side=left]::after { display: block; right: -5px; top: calc(var(--ay) - 6px); }
.coach[data-side=below]::after { display: block; top: -5px; left: calc(var(--ax) - 6px); }
.coach-ring { position: absolute; z-index: 44; pointer-events: none; border-radius: 8px; box-shadow: 0 0 0 2px var(--accent), 0 0 0 6px color-mix(in srgb, var(--accent) 22%, transparent); animation: coach-pulse 1.8s ease-in-out infinite; transition: left .22s, top .22s, width .22s, height .22s; }
@keyframes coach-pulse { 50% { box-shadow: 0 0 0 2px var(--accent), 0 0 0 9px color-mix(in srgb, var(--accent) 8%, transparent); } }

/* small screens: the smallest honest version of the app */
.side-scrim { display: none; }
@media (max-width: 760px) {
  .win { inset: 0; border-radius: 0; }
  .hero { margin: 12px; max-width: none; }
  .tourbtn { display: none; }
  .side { position: absolute; inset: 0 auto 0 0; z-index: 35; transform: translateX(-102%); transition: transform .18s ease-out; box-shadow: var(--shadow); max-width: 82vw; }
  .app.drawer .side { transform: none; }
  .app.drawer .side-scrim { display: block; position: absolute; inset: 0; z-index: 34; background: rgba(0,0,0,.25); }
  .mobile-only { display: grid !important; }
  .caps .ib:not([data-a="win-close"]), .winbtns .lang, .winbtns .accentdot-b, .filebtn { display: none !important; }
  .app.insettings { flex-direction: column; }
  .insettings .s-side { display: flex; flex: none; width: auto; gap: 2px; padding: 4px 6px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .s-side > div { display: none; }
  .s-nav { width: auto; flex: none; margin: 0; }
  .s-nav svg { display: none; }
  .insettings .main { flex: 1; min-height: 0; }
  .s-page { padding: 0 12px 50px; }
  .s-row { flex-wrap: wrap; }
  [data-pl="pdf"] .s-l { flex-basis: 100%; }
  .schs { gap: 8px; } .sch-p { height: 84px; }
  .c-ed { position: absolute; inset: 0; width: auto; z-index: 9; }
  .noside .sideback { display: none; }
  .doc { padding: 10px 16px 80px; }
  .find { right: 8px; left: 8px; } .find input { flex: 1; width: 0; }
  .book { padding: 6px; }
  .leaf-bg:nth-child(2) { display: none; }
  .bookflow { inset: 26px 22px 40px; }
  .pages { padding: 10px 6px 40px; }
  .lane { position: static; width: auto; margin: 6px; }
}
.mobile-only { display: none; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
