/* 星痕 Startrace —— 极简、留白、玻璃。所有字体均为系统字体，不加载任何远程资源。 */
:root {
  --ink: #04060b;
  --text: rgba(236, 240, 250, 0.92);
  --text-2: rgba(214, 222, 240, 0.62);
  --text-3: rgba(200, 210, 232, 0.38);
  --hair: rgba(220, 230, 255, 0.12);
  --hair-2: rgba(220, 230, 255, 0.2);
  --accent: #9fb8ff;
  --warm: #f4e3c1;
  --glass: rgba(18, 22, 34, 0.42);
  --glass-strong: rgba(16, 20, 32, 0.62);
  --blur: blur(28px) saturate(160%);
  --radius: 22px;
  --ease: cubic-bezier(0.22, 0.8, 0.2, 1);
  --spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --spring-soft: cubic-bezier(0.3, 1.25, 0.55, 1);
  --sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", system-ui, -apple-system, "Segoe UI", sans-serif;
  --thin: "PingFang SC", "Microsoft YaHei UI Light", "Microsoft YaHei Light", "Source Han Sans SC Light", "Noto Sans CJK SC Light", "Microsoft YaHei UI", system-ui, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--ink); color: var(--text); font-family: var(--sans); -webkit-font-smoothing: antialiased; overflow: hidden; }
body { overscroll-behavior: none; touch-action: none; user-select: none; -webkit-user-select: none; }
#stage { position: fixed; inset: 0; width: 100vw; height: 100vh; display: block; outline: none; }
#app { position: fixed; inset: 0; pointer-events: none; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; }
.i { pointer-events: auto; }
.hide { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
.fade { transition: opacity 0.9s var(--ease), visibility 0.9s, transform 0.9s var(--ease), filter 0.9s var(--ease); }
body.cursor-pointer #stage { cursor: pointer; }
::selection { background: rgba(159, 184, 255, 0.35); }

/* —— 首屏 —— */
.hero { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; }
.hero-inner { transform: translateY(-4vh); display: flex; flex-direction: column; align-items: center; }
.title { position: relative; margin: 0; font-family: var(--thin); font-weight: 200; font-size: clamp(64px, 10.5vw, 176px); letter-spacing: 0.36em; line-height: 1.1; padding-left: 0.36em; white-space: nowrap; color: #eef1f8; }
.title .ch { display: inline-block; color: transparent; background: linear-gradient(180deg, #ffffff 0%, #eef1f8 45%, #b9c5e2 100%); -webkit-background-clip: text; background-clip: text;
  text-shadow: none; opacity: 0; transform: translateY(0.12em); animation: ch-in 2.4s var(--ease) forwards; }
.title .ch::after { content: attr(data-ch); position: absolute; inset: 0; color: transparent; text-shadow: 0 0 28px rgba(170, 190, 255, 0.28); z-index: -1; }
.title .ch { position: relative; }
.title .ch:nth-child(2) { animation-delay: 0.28s; }
/* v1.2：「痕」为暗红——克制的酒红渐变与极淡的红色辉光，保持高级感 */
.title .ch:nth-child(2) { background: linear-gradient(180deg, #f08a86 0%, #d6353d 42%, #9c1624 100%); -webkit-background-clip: text; background-clip: text; }
.title .ch:nth-child(2)::after { text-shadow: 0 0 30px rgba(220, 50, 60, 0.32); }
/* 左下角黑洞入口：透明命中区，黑洞由场景绘制 */
.bh-entry { position: absolute; left: 14px; bottom: 14px; width: 72px; height: 72px; border-radius: 50%; border: 0; background: transparent; cursor: pointer; z-index: 5; transition: opacity 0.5s var(--ease-out, ease); }
.bh-entry:focus-visible { outline: 1px solid rgba(255,255,255,0.35); outline-offset: 2px; }
.bh-entry.off { opacity: 0; pointer-events: none; }
@keyframes ch-in { 0% { opacity: 0; transform: translateY(0.12em); letter-spacing: 0.6em; } 100% { opacity: 1; transform: none; } }
/* 星痕：一道掠过标题的细光，带一颗极小的星头 */
.trace { position: relative; width: min(72vw, 760px); height: 1px; margin: clamp(22px, 3.4vw, 40px) auto 0; overflow: visible; }
.trace::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(159, 184, 255, 0.0) 10%, rgba(159, 184, 255, 0.35) 60%, rgba(244, 227, 193, 0.85) 92%, transparent); transform-origin: left; transform: scaleX(0); animation: trace-draw 3.2s 0.9s var(--ease) forwards; }
.trace::after { content: ""; position: absolute; top: -2px; left: 0; width: 5px; height: 5px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px 2px rgba(255, 240, 214, 0.9), 0 0 32px 6px rgba(159, 184, 255, 0.35); opacity: 0; animation: trace-head 3.2s 0.9s var(--ease) forwards, head-breathe 4.2s 4.1s ease-in-out infinite; }
@keyframes trace-draw { to { transform: scaleX(1); } }
@keyframes trace-head { 0% { left: 0; opacity: 0; } 12% { opacity: 1; } 100% { left: calc(92% - 2px); opacity: 1; } }
@keyframes head-breathe { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
.wordmark { margin-top: 18px; font-size: 11px; letter-spacing: 0.9em; padding-left: 0.9em; color: var(--text-3); opacity: 0; animation: rise 2s 1.8s var(--ease) forwards; }
.tagline { margin: clamp(26px, 4vh, 44px) 0 0; font-size: clamp(13px, 1.05vw, 15px); letter-spacing: 0.18em; color: var(--text-2); font-weight: 300; opacity: 0; animation: rise 2.2s 2.2s var(--ease) forwards; }
.enter { margin-top: clamp(48px, 9vh, 96px); background: none; border: 0; padding: 10px 6px; font-size: 13px; letter-spacing: 0.42em; color: var(--text-2); opacity: 0; animation: rise 2s 3s var(--ease) forwards; position: relative; transition: color 0.5s, letter-spacing 0.8s var(--ease); }
.enter::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 2px; height: 1px; background: linear-gradient(90deg, transparent, rgba(244, 227, 193, 0.8), transparent); transition: left 0.8s var(--ease), right 0.8s var(--ease); }
.enter:hover, .enter:focus-visible { color: var(--text); letter-spacing: 0.5em; outline: none; }
.enter:hover::after, .enter:focus-visible::after { left: 8%; right: 8%; }
.enter .arrow { display: inline-block; transition: transform 0.8s var(--ease); }
.enter:hover .arrow { transform: translateX(6px); }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* —— 角落 —— */
.corner { position: absolute; top: 22px; display: flex; gap: 18px; align-items: center; font-size: 12px; letter-spacing: 0.16em; color: var(--text-3); }
.corner.left { left: 28px; }
.corner.right { right: 26px; }
/* 角落入口压在明亮星球上时仍清晰：深色柔光衬底，在夜空上不可见 */
.corner { text-shadow: 0 0 10px rgba(0, 0, 0, 0.85), 0 0 2px rgba(0, 0, 0, 0.9); }
.corner svg { filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.9)) drop-shadow(0 0 8px rgba(0, 0, 0, 0.6)); }
.brand { font-family: var(--thin); font-weight: 300; letter-spacing: 0.5em; color: var(--text-2); background: none; border: 0; padding: 4px 0; font-size: 13px; }
.brand small { font-size: 9px; letter-spacing: 0.5em; color: var(--text-3); margin-left: 6px; }
.link { background: none; border: 0; padding: 6px 2px; color: var(--text-3); letter-spacing: 0.16em; font-size: 12px; transition: color 0.4s; }
.link:hover, .link:focus-visible { color: var(--text); outline: none; }
.icon-btn { width: 34px; height: 34px; border-radius: 50%; border: 1px solid transparent; background: none; display: grid; place-items: center; color: var(--text-3); transition: color 0.4s, border-color 0.4s, background 0.4s; }
.icon-btn:hover, .icon-btn:focus-visible { color: var(--text); border-color: var(--hair); background: rgba(255, 255, 255, 0.03); outline: none; }
.icon-btn svg { width: 16px; height: 16px; }
.status-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #7fe0b8; box-shadow: 0 0 8px #7fe0b8; margin-right: 8px; vertical-align: middle; }
.status-dot.local { background: var(--warm); box-shadow: 0 0 8px var(--warm); }
.preload { position: absolute; left: 28px; bottom: 22px; font-size: 11px; letter-spacing: 0.2em; color: var(--text-3); transition: opacity 1.2s; }
.preload .bar { display: block; width: 88px; height: 1px; margin-top: 8px; background: var(--hair); overflow: hidden; }
.preload .bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--accent), var(--warm)); transition: width 0.6s var(--ease); }
.fps { position: absolute; right: 26px; bottom: 20px; font: 11px var(--mono); color: var(--text-3); }

/* —— 星系视图 —— */
.back { position: absolute; left: 28px; top: 64px; }
.hint { transition: opacity 0.6s var(--ease); position: absolute; left: 50%; bottom: 7vh; transform: translateX(-50%); font-size: 12px; letter-spacing: 0.32em; color: var(--text-3); white-space: nowrap; text-align: center; }
.hint b { font-weight: 400; color: var(--text-2); }
.create { position: absolute; left: 100px; bottom: 34px; font-size: 12px; letter-spacing: 0.3em; color: var(--text-2); padding: 8px 4px; }
.create .plus { display: inline-block; font-weight: 300; transition: transform 0.6s var(--spring); }
.create:hover .plus { transform: rotate(90deg) scale(1.15); }
.hint .line { display: block; width: 1px; height: 28px; margin: 12px auto 0; background: linear-gradient(var(--text-3), transparent); animation: drip 2.6s ease-in-out infinite; }
@keyframes drip { 0% { transform: scaleY(0); transform-origin: top; opacity: 0; } 40% { transform: scaleY(1); transform-origin: top; opacity: 1; } 100% { transform: scaleY(1); transform-origin: top; opacity: 0; } }
.tag { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); white-space: nowrap; font-size: 12px; letter-spacing: 0.22em; color: var(--text-2); transition: opacity 0.6s, color 0.4s; will-change: transform; }
.tag .t { display: block; font-size: 13px; color: var(--text); letter-spacing: 0.3em; }
.tag .s { display: block; margin-top: 4px; font-size: 10px; letter-spacing: 0.28em; color: var(--text-3); }
.tag.primary .t { font-size: 15px; }
.tag.hot .t { color: #fff; text-shadow: 0 0 12px rgba(200, 215, 255, 0.5); }
.tag .rule { position: absolute; top: 50%; width: 26px; height: 1px; background: linear-gradient(90deg, transparent, var(--hair-2)); }

/* —— 行星视图 —— */
.neighbor { position: absolute; left: 0; top: 0; background: none; border: 0; padding: 6px 4px; color: var(--text-2); text-shadow: 0 0 8px rgba(0, 0, 0, 0.9); font-size: 12px; letter-spacing: 0.28em; white-space: nowrap; transition: color 0.4s, opacity 0.6s; }
.neighbor:hover { color: var(--text); }
.neighbor .nt::after { content: " →"; }
.neighbor.pinned .nt::before { content: "← "; }
.neighbor.pinned .nt::after { content: ""; }
.neighbor .sub { display: block; font-size: 10px; letter-spacing: 0.2em; margin-top: 4px; color: var(--text-3); }
.sat-label { position: absolute; left: 0; top: 0; white-space: nowrap; font-size: 12px; letter-spacing: 0.3em; color: var(--text-2); background: none; border: 0; padding: 4px 6px; transition: color 0.35s, opacity 0.5s; }
.sat-label .en { display: block; font-size: 9px; letter-spacing: 0.3em; color: var(--text-3); margin-top: 3px; }
.sat-label:hover, .sat-label.on { color: #fff; }
/* 窄屏：卫星标签只保留中文名，避免英文副标题在紧凑的轨道上互相挤压 */
@media (max-width: 720px) { .sat-label .en { display: none; } }

/* —— 液态玻璃 —— */
.glass { position: relative; background: var(--glass); backdrop-filter: var(--blur); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: var(--radius);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09), inset 0 -1px 0 rgba(255, 255, 255, 0.02), 0 30px 80px rgba(0, 0, 0, 0.38); }
/* 渐变描边：上缘亮、下缘暗，像玻璃边缘的折射 */
.glass::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.05) 32%, rgba(159, 184, 255, 0.04) 68%, rgba(244, 227, 193, 0.16));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
/* 指针高光：随鼠标移动的柔光 */
.glass::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity 0.5s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(255, 255, 255, 0.07), transparent 60%); }
.glass:hover::before { opacity: 1; }
.btn, .seg button, .icon-btn, .ph-chip, .switch { transition: transform 0.45s var(--spring), background 0.3s, border-color 0.3s, color 0.3s; }
.btn:active, .seg button:active, .icon-btn:active, .ph-chip:active { transform: scale(0.94); transition-duration: 0.12s; }

/* 分类面板：横屏在左侧（四角圆角、完整留在画面内），竖屏为底部抽屉；可收起为头部一条 */
.sheet { background: rgba(12, 15, 24, 0.58); position: absolute; left: 28px; top: 92px; width: min(560px, 40vw); --sheet-h: calc(100vh - 92px - 24px); height: var(--sheet-h); max-height: var(--sheet-h);
  display: flex; flex-direction: column; overflow: hidden; transform-origin: 30% 0%;
  transition: height 0.75s var(--spring-soft), opacity 0.5s var(--ease), transform 0.8s var(--spring), filter 0.6s var(--ease), visibility 0.6s; }
.sheet.collapsed { height: var(--head-h, 150px); }
.sheet.hide { transform: translateY(18px) scale(0.92); filter: blur(10px); }
.sheet-head { flex: none; padding: 20px 24px 14px; border-bottom: 1px solid transparent; transition: border-color 0.5s; cursor: default; }
.sheet:not(.collapsed) .sheet-head { border-bottom-color: var(--hair); }
.sheet.collapsed .sheet-head { cursor: pointer; }
.ph-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ph-eyebrow { font-size: 10.5px; letter-spacing: 0.5em; color: var(--text-3); }
.ph-title { margin: 8px 0 0 -8px; font-family: var(--thin); font-weight: 200; font-size: clamp(28px, 2.6vw, 40px); letter-spacing: 0.14em; line-height: 1.2; outline: none; border-radius: 10px; padding: 2px 8px;
  cursor: text; transition: background 0.4s, box-shadow 0.4s; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.ph-title:hover { background: rgba(255, 255, 255, 0.035); }
.ph-title:focus-visible { box-shadow: inset 0 0 0 1px var(--hair-2); }
.ph-title[contenteditable="true"] { background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 0 0 1px var(--hair-2); user-select: text; -webkit-user-select: text; white-space: normal; }
.ph-meta { margin-top: 8px; font-size: 11.5px; letter-spacing: 0.2em; color: var(--text-3); }
.ph-meta b { color: var(--text-2); font-weight: 400; }
.ph-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.ph-chip { flex: none; white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--hair); background: rgba(255, 255, 255, 0.025); border-radius: 999px; padding: 5px 12px; font-size: 11.5px; letter-spacing: 0.18em; color: var(--text-2); }
.ph-chip i { width: 5px; height: 5px; border-radius: 50%; box-shadow: 0 0 6px currentColor; }
.ph-chip:hover { background: rgba(255, 255, 255, 0.07); color: var(--text); }
.ph-chip.on { background: rgba(255, 255, 255, 0.1); color: #fff; border-color: var(--hair-2); }
.chev { flex: none; }
.chev-i { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(2px) rotate(-135deg); transition: transform 0.6s var(--spring); }
.sheet.collapsed .chev-i { transform: translateY(-2px) rotate(45deg); }
.sheet-body { position: relative; flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 4px 24px 30vh; scroll-behavior: smooth; user-select: text; -webkit-user-select: text; overscroll-behavior: contain; touch-action: pan-y;
  transition: opacity 0.45s var(--ease); }
.sheet.collapsed .sheet-body { opacity: 0; pointer-events: none; }
.sheet .editor { grid-template-columns: 1fr; }
.sheet-body::-webkit-scrollbar { width: 6px; }
.sheet-body::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.08); border-radius: 3px; }
.sec { padding: 34px 0 30px; border-bottom: 1px solid var(--hair); opacity: 0.001; transform: translateY(28px); filter: blur(6px); transition: opacity 1s var(--ease), transform 1.1s var(--ease), filter 1s var(--ease); }
.sec.in { opacity: 1; transform: none; filter: none; }
.sec-h { display: flex; align-items: baseline; gap: 14px; margin-bottom: 20px; }
.sec-h h3 { margin: 0; font-weight: 300; font-size: 22px; letter-spacing: 0.3em; }
.sec-h .en { font-size: 10px; letter-spacing: 0.4em; color: var(--text-3); text-transform: uppercase; }
.sec-h .hint2 { margin-left: auto; font-size: 11px; letter-spacing: 0.14em; color: var(--text-3); }
.sec-h .dot { width: 7px; height: 7px; border-radius: 50%; align-self: center; box-shadow: 0 0 10px currentColor; }

.field { display: block; margin-bottom: 14px; }
.field > span { display: block; font-size: 11px; letter-spacing: 0.22em; color: var(--text-3); margin-bottom: 8px; }
.input, .textarea, .select { width: 100%; border-radius: 14px; border: 1px solid var(--hair); background: rgba(255, 255, 255, 0.035); padding: 12px 14px; outline: none; transition: border-color 0.3s, background 0.3s; font-size: 14px; line-height: 1.6; }
.input:focus, .textarea:focus, .select:focus { border-color: rgba(159, 184, 255, 0.45); background: rgba(255, 255, 255, 0.06); }
.textarea { min-height: 150px; resize: vertical; font-family: var(--sans); }
.select { appearance: none; }
.select option { background: #0c0f18; }
.row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.row.end { justify-content: flex-end; }
.grow { flex: 1; min-width: 0; }
.btn { border-radius: 999px; border: 1px solid var(--hair-2); background: rgba(255, 255, 255, 0.05); padding: 9px 20px; font-size: 13px; letter-spacing: 0.2em; transition: background 0.3s, border-color 0.3s, color 0.3s, transform 0.2s; }
.btn:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.3); }
.btn:active { transform: scale(0.98); }
.btn.primary { background: linear-gradient(135deg, rgba(159, 184, 255, 0.28), rgba(244, 227, 193, 0.22)); border-color: rgba(214, 222, 255, 0.35); color: #fff; }
.btn.ghost { background: none; border-color: transparent; color: var(--text-2); }
.btn.danger { color: #ffb4a8; border-color: rgba(255, 150, 130, 0.3); }
.btn:disabled { opacity: 0.45; pointer-events: none; }
.seg { display: inline-flex; border: 1px solid var(--hair); border-radius: 999px; padding: 3px; background: rgba(255, 255, 255, 0.03); }
.seg button { border: 0; background: none; padding: 6px 14px; border-radius: 999px; font-size: 12px; letter-spacing: 0.16em; color: var(--text-2); transition: background 0.3s, color 0.3s; }
.seg button.on { background: rgba(255, 255, 255, 0.1); color: #fff; }
.chip { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; letter-spacing: 0.16em; color: var(--text-2); }
.chip i { width: 6px; height: 6px; border-radius: 50%; box-shadow: 0 0 8px currentColor; }
.list { display: flex; flex-direction: column; gap: 2px; }
.item { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; padding: 14px 14px; margin: 0 -14px; border-radius: 14px; background: none; border: 0; text-align: left; transition: background 0.3s; }
.item:hover { background: rgba(255, 255, 255, 0.04); }
.item .t { font-size: 15px; letter-spacing: 0.04em; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item .x { grid-column: 1 / -1; font-size: 13px; color: var(--text-2); line-height: 1.6; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.item .m { font-size: 11px; letter-spacing: 0.1em; color: var(--text-3); white-space: nowrap; }
.empty { padding: 26px 0; font-size: 13px; letter-spacing: 0.14em; color: var(--text-3); line-height: 1.9; }
mark { background: rgba(244, 227, 193, 0.22); color: #fff; border-radius: 3px; padding: 0 2px; }

/* 条目编辑 */
.editor { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 26px; }
.editor .title-in { font-size: 22px; font-weight: 300; letter-spacing: 0.06em; border: 0; background: none; border-bottom: 1px solid var(--hair); border-radius: 0; padding: 8px 0 12px; width: 100%; outline: none; }
.editor .title-in:focus { border-bottom-color: rgba(159, 184, 255, 0.5); }
.editor .body-in { min-height: 260px; }
.revs { display: flex; flex-direction: column; gap: 2px; max-height: 420px; overflow: auto; }
.rev { text-align: left; border: 0; background: none; padding: 10px 12px; border-radius: 12px; font-size: 12px; color: var(--text-2); transition: background 0.3s; position: relative; padding-left: 26px; }
.rev::before { content: ""; position: absolute; left: 10px; top: 16px; width: 5px; height: 5px; border-radius: 50%; background: var(--text-3); }
.rev::after { content: ""; position: absolute; left: 12px; top: 24px; bottom: -8px; width: 1px; background: var(--hair); }
.rev:last-child::after { display: none; }
.rev.cur::before { background: var(--warm); box-shadow: 0 0 8px var(--warm); }
.rev:hover, .rev.on { background: rgba(255, 255, 255, 0.05); color: var(--text); }
.rev b { font-weight: 400; color: var(--text); margin-right: 8px; font-family: var(--mono); font-size: 11px; }
.diff { font: 12.5px/1.7 var(--mono); white-space: pre-wrap; word-break: break-word; border-radius: 14px; border: 1px solid var(--hair); background: rgba(0, 0, 0, 0.18); padding: 14px 16px; max-height: 360px; overflow: auto; margin-top: 12px; }
.diff .a { color: #bff0cf; background: rgba(90, 200, 140, 0.1); display: block; }
.diff .d { color: #ffc2b8; background: rgba(240, 110, 90, 0.1); display: block; text-decoration: line-through; text-decoration-color: rgba(255, 160, 140, 0.35); }
.diff .k { color: var(--text-3); display: block; }

/* 模态层 */
.modal-wrap { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(2, 3, 8, 0.42); transition: opacity 0.5s var(--ease), visibility 0.6s; }
/* 模态弹层打开时，其余界面退后，避免与玻璃面板叠字（浮动设置窗除外） */
#app:has(.modal-wrap:not(.floating):not(.hide)) > :not(.modal-wrap):not(.toasts) { opacity: 0.1 !important; filter: blur(4px); }
.modal { background: var(--glass-strong); width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 64px); overflow: auto; padding: 30px 32px 28px; transform: none; opacity: 1; filter: none;
  transition: transform 0.7s var(--spring), opacity 0.35s var(--ease), filter 0.45s var(--ease); user-select: text; -webkit-user-select: text; transform-origin: 50% 40%; }
.modal-wrap.hide .modal { transform: translateY(22px) scale(0.92); opacity: 0; filter: blur(10px); }
/* 浮动设置窗：不遮挡画面，可拖动 */
.modal-wrap.floating { background: none; pointer-events: none !important; display: block; }
.modal-wrap.floating .modal { background: rgba(14, 17, 27, 0.8); pointer-events: auto; position: absolute; right: 24px; top: 68px; width: min(400px, calc(100vw - 24px)); max-height: calc(100vh - 88px); padding: 0; display: flex; flex-direction: column; transform-origin: 90% 0%; }
.modal-wrap.floating.hide .modal { transform: translateY(-10px) scale(0.9); pointer-events: none; }
.modal.float.dragging { transition: none; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 40px 100px rgba(0, 0, 0, 0.5); }
.win-head { flex: none; display: flex; align-items: center; gap: 12px; padding: 16px 56px 14px 20px; border-bottom: 1px solid var(--hair); cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.modal.float.dragging .win-head { cursor: grabbing; }
.win-head h3 { margin: 0; font-size: 16px; letter-spacing: 0.34em; }
.win-head .grip { width: 14px; height: 10px; flex: none; opacity: 0.4; background: radial-gradient(circle, currentColor 1px, transparent 1.5px) 0 0 / 5px 5px; }
.win-head .tabs { margin-left: auto; }
.modal.float .close { top: 13px; right: 12px; }
.win-body { overflow: auto; padding: 6px 20px 18px; min-height: 0; }
.group-t { margin: 16px 0 2px; font-size: 10px; letter-spacing: 0.5em; color: var(--text-3); }
.val { font-family: var(--mono); font-size: 11px; color: var(--text-3); width: 40px; text-align: right; flex: none; }
.row.nowrap { flex-wrap: nowrap; }
.swatches { display: flex; gap: 10px; }
.swatches button { width: 26px; height: 26px; border-radius: 50%; border: 2px solid transparent; box-shadow: 0 0 10px currentColor; opacity: 0.7; transition: transform 0.45s var(--spring), opacity 0.3s, border-color 0.3s; }
.swatches button.on { border-color: #fff; opacity: 1; transform: scale(1.12); }
.modal h3 { margin: 0 0 6px; font-weight: 300; font-size: 22px; letter-spacing: 0.3em; }
.modal .sub { font-size: 12px; letter-spacing: 0.18em; color: var(--text-3); margin-bottom: 24px; }
.modal .close { position: absolute; right: 18px; top: 18px; }
.set-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--hair); font-size: 13px; letter-spacing: 0.12em; }
.set-row:last-of-type { border-bottom: 0; }
.set-row small { display: block; color: var(--text-3); font-size: 11px; margin-top: 4px; letter-spacing: 0.08em; }
.switch { width: 40px; height: 22px; border-radius: 999px; border: 1px solid var(--hair-2); background: rgba(255, 255, 255, 0.05); position: relative; transition: background 0.3s; flex: none; }
.switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: rgba(255, 255, 255, 0.7); transition: transform 0.35s var(--ease); }
.switch.on { background: rgba(159, 184, 255, 0.45); }
.switch.on::after { transform: translateX(18px); background: #fff; }
input[type="range"] { accent-color: #c9d6ff; width: 130px; }
.about p { font-size: 13.5px; line-height: 2; color: var(--text-2); letter-spacing: 0.06em; margin: 0 0 14px; }
.about .ver { font: 12px var(--mono); color: var(--text-3); letter-spacing: 0.1em; }
.about dl { display: grid; grid-template-columns: 90px 1fr; gap: 10px 12px; font-size: 13px; margin: 20px 0 0; padding-top: 18px; border-top: 1px solid var(--hair); }
.about dt { color: var(--text-3); letter-spacing: 0.2em; }
.about dd { margin: 0; color: var(--text); letter-spacing: 0.06em; }
.about .big { font-family: var(--thin); font-weight: 200; font-size: 44px; letter-spacing: 0.4em; margin: 6px 0 2px; }
.err { color: #ffb4a8; font-size: 12px; letter-spacing: 0.08em; min-height: 18px; margin: 6px 0 0; }

/* 提示 */
.toasts { position: absolute; right: 30px; bottom: 30px; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.toast { transition: opacity 0.6s var(--ease), transform 0.6s var(--spring) !important; padding: 10px 18px; font-size: 12.5px; letter-spacing: 0.14em; border-radius: 999px; transition: opacity 0.6s var(--ease), transform 0.6s var(--ease); }
.toast.out { opacity: 0; transform: translateY(8px); }

@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .editor { grid-template-columns: 1fr; }
  .sheet { left: 8px; right: 8px; width: auto; top: auto; bottom: 8px; --sheet-h: 56vh; transform-origin: 50% 100%; }
  .sheet-head { padding: 16px 18px 12px; }
  .sheet-body { padding: 4px 18px 30vh; }
  .ph-title { font-size: 26px; }
  .ph-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -18px; padding-right: 18px; }
  .ph-nav::-webkit-scrollbar { display: none; }
  .corner.left { left: 18px; } .corner.right { right: 14px; }
  .create { left: 96px; bottom: 34px; }
  .modal-wrap.floating .modal { right: 12px; top: 62px; }
}
@media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.2s !important; } }
/* 星痕 v1.2 —— 液态玻璃 + 面板视图。白/灰/黑为主，蓝 #5ea0ff / 紫 #9b8cff 仅作点缀。 */
:root { --g-blue: #5ea0ff; --g-violet: #9b8cff; --g-fill: rgba(255, 255, 255, 0.06); --g-line: rgba(255, 255, 255, 0.14); }

/* —— 材质：厚、透明、轻微磨砂；细高光 + 弥散阴影 + 上缘反光 —— */
.glass { background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.035)); backdrop-filter: blur(18px) saturate(185%);
  border: 1px solid var(--g-line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 0 0 0.5px rgba(255, 255, 255, 0.04), inset 0 -12px 24px -18px rgba(255, 255, 255, 0.1), 0 24px 60px -18px rgba(0, 0, 0, 0.55), 0 2px 10px rgba(0, 0, 0, 0.18); }
.glass::before { opacity: 1; background:
  radial-gradient(360px circle at var(--mx, 30%) var(--my, -20%), rgba(255, 255, 255, 0.06), transparent 62%),
  linear-gradient(162deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.02) 22%, transparent 40%); }
.glass:hover::before { opacity: 1; }
.sheet.glass { background: linear-gradient(180deg, rgba(22, 26, 36, 0.62), rgba(14, 17, 25, 0.56)); }
html.focus-read .sheet.glass { background: linear-gradient(180deg, rgba(14, 17, 25, 0.9), rgba(10, 12, 18, 0.88)); }
.sheet.wide { width: min(820px, 62vw); }

/* 视图栈不再需要为“滚动到板块”预留的 30vh 底部留白（否则 sticky 操作栏会悬在中部） */
.sheet-body { padding-bottom: 28px; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) { .sheet-body { padding-bottom: 24px; } }

/* —— 头部 —— */
.ph-top { justify-content: flex-start; }
.ph-crumbs { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; font-size: 10.5px; letter-spacing: 0.4em; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-crumbs .sep { font-style: normal; opacity: 0.6; letter-spacing: 0; }
.back-i { transition: opacity 0.35s, transform 0.5s var(--spring), width 0.5s var(--spring); }
.back-i.off { opacity: 0; pointer-events: none; width: 0; padding: 0; margin: 0; border: 0; transform: scale(0.4); }
.chev-l { width: 8px; height: 8px; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateX(2px) rotate(45deg); }
.ph-title-row { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ph-title { cursor: default; font-size: clamp(24px, 2.2vw, 34px); flex: 0 1 auto; min-width: 0; }
.ph-title.editable { cursor: text; }
.ph-title:not(.editable):hover { background: none; }
.ph-tag { flex: none; margin-top: 8px; }

/* 状态标签 */
.stag { display: inline-flex; align-items: center; gap: 5px; flex: none; font-size: 11px; letter-spacing: 0.12em; padding: 3px 9px 3px 7px; border-radius: 999px; border: 1px solid transparent; background: rgba(255, 255, 255, 0.04); color: var(--text-2); white-space: nowrap; line-height: 1.4; }
button.stag, .stag[role="button"] { cursor: pointer; transition: background 0.3s, transform 0.4s var(--spring); }
button.stag:hover, .stag[role="button"]:hover { background: rgba(255, 255, 255, 0.09); }
.stag b { font-weight: 400; font-size: 10px; }
.s-adopted { color: #7fd6a8; } .s-candidate { color: #a9b8d6; } .s-rejected { color: #8a8f9c; } .s-superseded { color: #e6a86e; }
.stag.s-adopted { border-color: rgba(127, 214, 168, 0.25); } .stag.s-superseded { border-color: rgba(230, 168, 110, 0.28); }

/* —— 视图 —— */
.view { padding: 14px 0 20px; }
.blk { padding: 22px 0 6px; }
.blk-h { display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; }
.blk-h h3 { margin: 0; font-size: 13px; font-weight: 400; letter-spacing: 0.36em; color: var(--text); }
.blk-x { font-size: 10.5px; letter-spacing: 0.18em; color: var(--text-3); }
.blk-h .link { margin-left: auto; }
.link { background: none; border: 0; padding: 2px 4px; color: #b9d3ff; font-size: 12px; letter-spacing: 0.12em; border-radius: 6px; transition: color 0.3s, background 0.3s; }
.link:hover { color: #fff; background: rgba(94, 160, 255, 0.12); }
.faint { color: var(--text-3); font-size: 11.5px; letter-spacing: 0.1em; }
.pad { padding: 10px 4px; }
.pill { border-radius: 999px; border: 1px solid var(--g-line); background: rgba(255, 255, 255, 0.05); padding: 7px 16px; font-size: 12.5px; letter-spacing: 0.18em; white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); transition: background 0.3s, border-color 0.3s, transform 0.45s var(--spring); }
.pill:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.24); }
.pill:active { transform: scale(0.95); transition-duration: 0.12s; }
.pill.primary { background: linear-gradient(135deg, rgba(94, 160, 255, 0.28), rgba(155, 140, 255, 0.22)); border-color: rgba(190, 205, 255, 0.34); color: #fff; }
.pill:disabled { opacity: 0.4; pointer-events: none; }
.desk-actions { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 6px; }
.empty { padding: 14px 2px; }
.skel { display: grid; gap: 10px; padding: 10px 0; }
.skel i { display: block; height: 14px; border-radius: 8px; background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.04)); background-size: 200% 100%; animation: skel 1.3s linear infinite; }
.skel i:nth-child(2) { width: 82%; } .skel i:nth-child(3) { width: 64%; }
@keyframes skel { to { background-position: -200% 0; } }

/* 卡片：最近继续 */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.card { text-align: left; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.035); border-radius: 16px; padding: 12px 13px; display: grid; gap: 6px; min-width: 0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); transition: background 0.3s, border-color 0.3s, transform 0.5s var(--spring); }
.card:hover { background: rgba(255, 255, 255, 0.07); border-color: rgba(255, 255, 255, 0.16); transform: translateY(-2px); }
.card-top { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.card-t { font-size: 14px; letter-spacing: 0.04em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-x { font-size: 11.5px; line-height: 1.6; color: var(--text-3); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.card .stag { padding: 1px 7px 1px 5px; font-size: 10px; }

/* 专题卡片 */
.tgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.tcard { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 9px; row-gap: 2px; align-items: center; text-align: left; border-radius: 14px; padding: 11px 12px;
  border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.03); transition: background 0.3s, border-color 0.3s, transform 0.5s var(--spring); min-width: 0; }
.tcard:hover { background: rgba(255, 255, 255, 0.07); transform: translateY(-2px); }
.tdot { grid-row: 1 / 3; width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 10px currentColor; }
.tname { font-size: 13px; letter-spacing: 0.12em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcount { grid-column: 2; font-size: 10.5px; letter-spacing: 0.14em; color: var(--text-3); }
.tcard.add { display: block; text-align: center; color: var(--text-3); border-style: dashed; font-size: 12px; letter-spacing: 0.16em; }
.tinput, .pick-in, .note-in { width: 100%; border-radius: 12px; border: 1px solid var(--g-line); background: rgba(255, 255, 255, 0.05); padding: 9px 12px; outline: none; font-size: 13px; letter-spacing: 0.06em; transition: border-color 0.3s; min-width: 0; }
.tinput:focus, .pick-in:focus, .note-in:focus, .body-in:focus, .title-in:focus { border-color: rgba(94, 160, 255, 0.55); }

/* 行 */
.rows { display: flex; flex-direction: column; gap: 1px; }
.rows .row, .rows > .row { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; width: 100%; text-align: left; background: none; border: 0; border-radius: 12px; padding: 9px 10px; margin: 0 -10px; width: calc(100% + 20px); transition: background 0.25s; min-width: 0; }
.rows .row:hover { background: rgba(255, 255, 255, 0.05); }
.row-t { flex: 1; min-width: 0; font-size: 13.5px; letter-spacing: 0.04em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-time { flex: none; font-size: 10.5px; letter-spacing: 0.08em; color: var(--text-3); }
.rows .stag { padding: 1px 7px 1px 5px; font-size: 10px; }
.chip { flex: none; padding: 1px 8px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.1); font-size: 10.5px; letter-spacing: 0.12em; color: var(--c, var(--text-2)); background: rgba(255, 255, 255, 0.03); }
.chip.sel { cursor: pointer; padding: 5px 12px; font-size: 12px; transition: background 0.3s, border-color 0.3s, color 0.3s; }
.chip.sel.on { background: rgba(94, 160, 255, 0.18); border-color: rgba(94, 160, 255, 0.5); color: #fff; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.todo-n { flex: none; min-width: 22px; height: 22px; border-radius: 999px; display: grid; place-items: center; font-size: 11px; background: rgba(255, 255, 255, 0.06); color: var(--text-2); padding: 0 6px; }
.todo-n.warn { color: #e6a86e; background: rgba(230, 168, 110, 0.12); }
.todo-n.up { color: #b9d3ff; background: rgba(94, 160, 255, 0.14); }

/* 胶囊导航（液态指示器） */
.capsule-nav { position: relative; display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgba(0, 0, 0, 0.18); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); max-width: 100%; overflow-x: auto; scrollbar-width: none; margin: 14px 0 4px; }
.capsule-nav::-webkit-scrollbar { display: none; }
.cn-ind { position: absolute; left: 0; top: 3px; bottom: 3px; width: 0; border-radius: 999px; opacity: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.1)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 4px 14px -4px rgba(94, 160, 255, 0.35); border: 0.5px solid rgba(255, 255, 255, 0.2);
  transition: transform 0.56s var(--spring), width 0.56s var(--spring); }
.cn-item { position: relative; z-index: 1; border: 0; background: none; padding: 6px 15px; border-radius: 999px; font-size: 12.5px; letter-spacing: 0.2em; color: var(--text-2); white-space: nowrap; transition: color 0.3s; display: inline-flex; align-items: center; gap: 6px; }
.cn-item.on { color: #fff; }
.cn-badge { font-size: 10px; letter-spacing: 0; color: var(--text-3); }
.cn-item.on .cn-badge { color: #b9d3ff; }

/* 渐变开关 */
.gtoggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 12.5px; letter-spacing: 0.1em; cursor: pointer; position: relative; }
.gtoggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gt-text small { display: block; font-size: 10.5px; color: var(--text-3); margin-top: 3px; letter-spacing: 0.06em; }
.gt-track { flex: none; width: 42px; height: 24px; border-radius: 999px; position: relative; background: rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35); transition: background 0.4s; overflow: hidden; }
.gt-track::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, var(--g-blue), var(--g-violet)); opacity: 0; transition: opacity 0.4s; }
.gt-track i { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #f4f6fb; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35), inset 0 -1px 1px rgba(0, 0, 0, 0.08); transition: transform 0.55s var(--spring), width 0.25s var(--ease); }
.gtoggle:active .gt-track i { width: 25px; }
.gtoggle input:checked + .gt-track::before { opacity: 1; }
.gtoggle input:checked + .gt-track i { transform: translateX(18px); }
.gtoggle:active input:checked + .gt-track i { transform: translateX(13px); }
.gtoggle input:focus-visible + .gt-track { outline: 2px solid rgba(94, 160, 255, 0.6); outline-offset: 2px; }

/* 柱状条 */
.bars { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; align-items: end; gap: 5px; height: 74px; padding-top: 18px; }
.bar { height: 100%; display: flex; align-items: flex-end; border-radius: 6px; outline: none; cursor: default; }
.bar i { display: block; width: 100%; height: max(3px, calc(var(--v) * 100%)); border-radius: 6px; transform-origin: 50% 100%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.12)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5); transition: background 0.3s, filter 0.3s; }
.bar:hover i, .bar:focus i { background: linear-gradient(180deg, var(--g-blue), rgba(155, 140, 255, 0.5)); }
.bars-tip { position: absolute; top: -6px; transform: translateX(-50%) scale(0.8); padding: 3px 9px; border-radius: 999px; font-size: 10.5px; letter-spacing: 0.08em; white-space: nowrap; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.18); backdrop-filter: blur(10px); opacity: 0; pointer-events: none; transition: opacity 0.2s, transform 0.45s var(--spring), left 0.35s var(--spring); }
.bars-tip.on { opacity: 1; transform: translateX(-50%) scale(1); }

/* 通知卡片（堆叠） */
.notices { position: absolute; right: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; z-index: 60; pointer-events: none; }
.notice { pointer-events: auto; display: flex; align-items: center; gap: 10px; padding: 10px 12px 10px 14px; border-radius: 16px; font-size: 12.5px; letter-spacing: 0.1em; max-width: min(420px, calc(100vw - 32px)); background: linear-gradient(180deg, rgba(38, 42, 54, 0.72), rgba(24, 27, 36, 0.7)); }
.n-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--g-blue); box-shadow: 0 0 8px rgba(94, 160, 255, 0.7); }
.notice.warn .n-dot { background: #e6a86e; box-shadow: 0 0 8px rgba(230, 168, 110, 0.7); }
.n-dot.ok { background: #7fd6a8; box-shadow: none; }
.n-text { line-height: 1.5; }
.n-act { flex: none; border: 0; border-radius: 999px; padding: 4px 11px; font-size: 12px; letter-spacing: 0.14em; background: rgba(255, 255, 255, 0.12); color: #fff; }
.n-act:hover { background: rgba(94, 160, 255, 0.3); }

/* 水滴透镜 */
.lens { position: fixed; left: 0; top: 0; width: 104px; height: 104px; border-radius: 50%; pointer-events: none; z-index: 40; opacity: 0; transition: opacity 0.3s;
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.55), inset 0 -2px 6px rgba(255, 255, 255, 0.12), inset 0 0 18px rgba(255, 255, 255, 0.06), 0 8px 24px -8px rgba(0, 0, 0, 0.5);
  background: radial-gradient(circle at 34% 26%, rgba(255, 255, 255, 0.2), transparent 32%); backdrop-filter: blur(0.6px) brightness(1.1) contrast(1.05); }
html.refract .lens { backdrop-filter: url(#st-refract) brightness(1.08); }
.lens.on { opacity: 1; }

/* 弹出菜单 / 选择器 */
.pop { position: fixed; z-index: 70; pointer-events: auto; padding: 8px; border-radius: 18px; min-width: 190px; max-width: min(360px, calc(100vw - 24px)); background: linear-gradient(180deg, rgba(34, 38, 50, 0.84), rgba(22, 25, 34, 0.84)); user-select: text; }
.pop.wide { width: min(340px, calc(100vw - 24px)); }
.menu { display: grid; gap: 1px; }
.menu-h { font-size: 10.5px; letter-spacing: 0.3em; color: var(--text-3); padding: 6px 10px 8px; }
.menu-i { display: flex; align-items: center; gap: 9px; text-align: left; border: 0; background: none; padding: 8px 10px; border-radius: 10px; font-size: 13px; letter-spacing: 0.08em; transition: background 0.2s; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-i:hover { background: rgba(255, 255, 255, 0.08); }
.menu-i.on { background: rgba(94, 160, 255, 0.16); }
.menu-i b { font-weight: 400; width: 12px; text-align: center; flex: none; }
.picker { display: grid; gap: 6px; }
.pick-l { display: grid; gap: 1px; max-height: 280px; overflow: auto; }
.info { padding: 6px 10px; font-size: 12.5px; line-height: 1.8; letter-spacing: 0.06em; }
.info p { margin: 0 0 6px; }
.meta { display: grid; grid-template-columns: 78px 1fr; gap: 6px 10px; margin: 4px 8px; font-size: 11.5px; }
.meta dt { color: var(--text-3); letter-spacing: 0.14em; }
.meta dd { margin: 0; font-family: var(--mono); font-size: 11px; word-break: break-all; color: var(--text-2); }

/* —— 条目 —— */
.view.entry { display: grid; grid-template-columns: minmax(0, 1fr) 38px; gap: 14px; align-items: start; }
.entry-main { min-width: 0; }
.fork-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 11.5px; letter-spacing: 0.1em; color: var(--text-2); padding: 7px 12px; border-radius: 12px; background: rgba(155, 140, 255, 0.08); border: 1px solid rgba(155, 140, 255, 0.18); margin-bottom: 10px; }
.fk-mine { color: #d4ccff; }
.fk-up { color: #b9d3ff; }
.entry-sub { display: flex; align-items: center; gap: 12px; min-width: 0; }
.src-line { flex: 1; min-width: 0; display: flex; gap: 2px; background: none; border: 0; padding: 4px 0; text-align: left; font-size: 12px; letter-spacing: 0.06em; color: var(--text-2); }
.src-k { flex: none; color: var(--text-3); }
.src-v { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.src-line:hover .src-v { color: #fff; }
.src-line[aria-expanded="true"] .src-v { white-space: normal; }
.entry-sub .faint { flex: none; font-size: 11px; }
.src-x { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.5s var(--spring-soft), opacity 0.4s; opacity: 0; }
.src-x > * { overflow: hidden; min-height: 0; }
.src-x.on { grid-template-rows: auto; opacity: 1; margin: 4px 0 8px; }
.src-x:not(.on) > * { display: none; }
blockquote { margin: 6px 0; padding: 8px 12px; border-left: 2px solid rgba(255, 255, 255, 0.18); color: var(--text-2); font-size: 12.5px; line-height: 1.75; background: rgba(255, 255, 255, 0.025); border-radius: 0 10px 10px 0; white-space: pre-wrap; }
.ctx-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 10px 0 2px; padding: 8px 12px; border-radius: 12px; font-size: 12px; letter-spacing: 0.08em; color: var(--text-2); background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.07); }
.ctx-bar.ok { color: #aee6c6; background: rgba(127, 214, 168, 0.07); border-color: rgba(127, 214, 168, 0.16); }
.ctx-bar.warn { color: #f0c49a; background: rgba(230, 168, 110, 0.08); border-color: rgba(230, 168, 110, 0.2); }
.ctx-bar.up { color: #c6dcff; background: rgba(94, 160, 255, 0.08); border-color: rgba(94, 160, 255, 0.2); }
.ctx-bar.draft { color: #d4ccff; background: rgba(155, 140, 255, 0.08); border-color: rgba(155, 140, 255, 0.2); }
.pane { padding-top: 10px; min-height: 120px; }
.md { font-size: 14.5px; line-height: 1.95; letter-spacing: 0.03em; color: var(--text); word-break: break-word; }
.md h2, .md h3, .md h4, .md h5 { font-weight: 400; letter-spacing: 0.1em; margin: 1.2em 0 0.4em; }
.md h2 { font-size: 19px; } .md h3 { font-size: 16.5px; } .md h4, .md h5 { font-size: 15px; }
.md p { margin: 0 0 0.9em; }
.md ul, .md ol { margin: 0 0 0.9em; padding-left: 1.4em; }
.md code { font-family: var(--mono); font-size: 12.5px; background: rgba(255, 255, 255, 0.07); padding: 1px 5px; border-radius: 5px; }
.md pre { background: rgba(0, 0, 0, 0.25); border: 1px solid var(--hair); padding: 12px 14px; border-radius: 12px; overflow: auto; }
.md pre code { background: none; padding: 0; }
.ref-token { color: #b9d3ff; background: rgba(94, 160, 255, 0.1); border-radius: 6px; padding: 0 5px; }
.content .edit-btn { margin-top: 4px; }
.editor { display: grid; gap: 10px; grid-template-columns: 1fr !important; }
.title-in { font-size: 20px; font-weight: 300; letter-spacing: 0.06em; border: 0; background: none; border-bottom: 1px solid var(--hair); border-radius: 0; padding: 8px 0 10px; width: 100%; outline: none; }
.body-in { width: 100%; border-radius: 14px; border: 1px solid var(--g-line); background: rgba(0, 0, 0, 0.16); padding: 12px 14px; outline: none; font: 14px/1.85 var(--sans); letter-spacing: 0.02em; resize: vertical; min-height: 90px; user-select: text; }
.row-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.row-actions .note-in { flex: 1; min-width: 160px; }
.src-box { display: none; gap: 8px; }
.src-box.on { display: grid; }
.field { display: grid; gap: 4px; }
.entry-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--hair); }
.entry-actions.sticky { position: sticky; bottom: -1px; background: linear-gradient(180deg, transparent, rgba(16, 19, 27, 0.92) 30%); padding-bottom: 12px; z-index: 2; }
.tl { position: relative; display: grid; gap: 14px; padding-left: 4px; }
.tl-i { display: grid; grid-template-columns: 66px 1fr; gap: 12px; position: relative; }
.tl-i::before { content: ""; position: absolute; left: 72px; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, 0.4); }
.tl-d { font-size: 10.5px; letter-spacing: 0.06em; color: var(--text-3); padding-top: 2px; }
.tl-b { padding-left: 14px; border-left: 1px solid var(--hair); min-width: 0; }
.tl-t { font-size: 13px; letter-spacing: 0.06em; margin-bottom: 2px; }
.raw { font: 12px/1.7 var(--mono); white-space: pre-wrap; word-break: break-word; max-height: 300px; overflow: auto; background: rgba(0, 0, 0, 0.2); border-radius: 10px; padding: 10px 12px; margin: 6px 0 0; }
.rel { display: grid; gap: 14px; }
.rel-g { display: grid; gap: 6px; }
.rel-h { display: flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.3em; color: var(--text-3); }
.rel-l { display: flex; flex-wrap: wrap; gap: 6px; }
.rel-i { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.03); border-radius: 999px; padding: 4px 11px; font-size: 12.5px; letter-spacing: 0.04em; transition: background 0.25s; }
.rel-i:hover { background: rgba(255, 255, 255, 0.08); }
.rel-i b { font-weight: 400; font-size: 10px; }
.rel-note { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-3); }
.graph-w { border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.07); background: radial-gradient(ellipse at 50% 50%, rgba(94, 160, 255, 0.06), transparent 70%), rgba(0, 0, 0, 0.14); padding: 6px 8px 8px; }
.graph { width: 100%; height: auto; display: block; }
.graph text { fill: rgba(220, 228, 245, 0.72); font-size: 11px; letter-spacing: 0.04em; font-family: var(--sans); }
.graph .g-ct { fill: #fff; font-size: 12px; }
.g-node { cursor: pointer; animation: gIn 0.7s var(--spring) backwards; animation-delay: var(--d); transform-box: fill-box; transform-origin: center; }
.g-node:hover circle, .g-node:focus circle { stroke: #fff; stroke-width: 1.5; }
.g-node:hover text { fill: #fff; }
.g-node:focus { outline: none; }
.g-edge { animation: eIn 0.8s var(--ease) backwards; animation-delay: var(--d); }
@keyframes gIn { from { opacity: 0; transform: scale(0.3); } }
@keyframes eIn { from { opacity: 0; } }
.g-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 10.5px; color: var(--text-3); letter-spacing: 0.1em; padding: 2px 6px; }
.g-legend i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }

/* 边缘工具栏 */
.rail { position: sticky; top: 8px; display: flex; flex-direction: column; gap: 4px; padding: 5px 3px; border-radius: 999px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.tool { position: relative; width: 30px; height: 30px; border-radius: 50%; border: 0; background: none; color: var(--text-2); display: grid; place-items: center; font-size: 13px; transition: background 0.25s, color 0.25s, transform 0.45s var(--spring); }
.tool .tg { font-size: 13px; line-height: 1; letter-spacing: -0.02em; }
.tool.hist .tg { font-size: 10.5px; font-family: var(--mono); }
.tool.more .tg { font-size: 11px; letter-spacing: -0.1em; }
.tool:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.tool:active { transform: scale(0.88); }
.tool.danger:hover { color: #ffb4a8; background: rgba(255, 140, 120, 0.12); }
.tool::after { content: attr(data-tip); position: absolute; right: calc(100% + 8px); top: 50%; transform: translate(6px, -50%) scale(0.9); white-space: nowrap; font-size: 11px; letter-spacing: 0.12em; padding: 4px 10px; border-radius: 999px;
  background: rgba(30, 34, 46, 0.92); border: 1px solid rgba(255, 255, 255, 0.12); color: var(--text); opacity: 0; pointer-events: none; transition: opacity 0.2s, transform 0.4s var(--spring); }
.tool:hover::after, .tool:focus-visible::after { opacity: 1; transform: translate(0, -50%) scale(1); }

/* 历史抽屉 */
.drawer { position: absolute; top: var(--head-h, 120px); right: 10px; bottom: 10px; width: min(420px, calc(100% - 20px)); z-index: 5; display: flex; flex-direction: column; border-radius: 20px; padding: 12px 14px; background: linear-gradient(180deg, rgba(30, 34, 46, 0.9), rgba(20, 23, 32, 0.92)); user-select: text; }
.dr-top { display: flex; align-items: center; gap: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--hair); font-size: 13px; letter-spacing: 0.2em; }
.dr-l { display: grid; gap: 1px; max-height: 38%; overflow: auto; padding: 6px 0; flex: none; }
.dr-i { display: flex; align-items: center; gap: 10px; text-align: left; border: 0; background: none; border-radius: 10px; padding: 7px 8px; font-size: 12px; transition: background 0.2s; }
.dr-i b { font: 11px var(--mono); color: #b9d3ff; font-weight: 400; flex: none; width: 28px; }
.dr-n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); }
.dr-i:hover { background: rgba(255, 255, 255, 0.06); }
.dr-i.on { background: rgba(94, 160, 255, 0.14); }
.dr-detail { flex: 1; min-height: 0; overflow: auto; border-top: 1px solid var(--hair); padding-top: 10px; }
.dr-h { font-size: 12.5px; letter-spacing: 0.08em; margin-bottom: 4px; }
.dr-h b { font-family: var(--mono); font-weight: 400; color: #b9d3ff; }
.icon-btn { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--hair); background: rgba(255, 255, 255, 0.04); }

/* 差异 */
.diff { max-height: 320px; padding: 8px 0; }
.diff-sum { display: flex; gap: 10px; padding: 0 12px 6px; font-size: 11px; }
.d-plus { color: #9fe3bc; } .d-minus { color: #ffb8a8; }
.dl { padding: 0 12px 0 22px; position: relative; white-space: pre-wrap; word-break: break-word; font: 12px/1.75 var(--mono); }
.dl.eq { color: var(--text-3); }
.dl.ins { color: #c9f2d9; background: rgba(90, 200, 140, 0.1); }
.dl.ins::before { content: "+"; position: absolute; left: 8px; color: #7fd6a8; }
.dl.del { color: #ffcbc0; background: rgba(240, 110, 90, 0.1); text-decoration: line-through; text-decoration-color: rgba(255, 160, 140, 0.35); }
.dl.del::before { content: "−"; position: absolute; left: 8px; color: #ff9f8c; }
.dl.fold { color: var(--text-3); font-style: italic; font-family: var(--sans); font-size: 11px; padding: 3px 12px; }

/* 三方合并 */
.note { margin: 0; font-size: 13.5px; line-height: 1.85; color: var(--text); white-space: pre-wrap; }
.merge { display: grid; gap: 6px; font: 12px/1.75 var(--mono); }
.m-ok { border-radius: 10px; overflow: hidden; }
.m-tag { display: block; font: 10.5px var(--sans); letter-spacing: 0.14em; color: #b9d3ff; padding: 4px 12px 0; }
.m-ok.from-mine .m-tag { color: #d4ccff; }
.conflict { border-radius: 14px; border: 1px solid rgba(230, 168, 110, 0.3); background: rgba(230, 168, 110, 0.05); padding: 8px; display: grid; gap: 8px; transition: border-color 0.3s, background 0.3s; }
.conflict[class*="pick-"] { border-color: rgba(127, 214, 168, 0.3); background: rgba(127, 214, 168, 0.04); }
.m-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.m-col { border-radius: 10px; background: rgba(0, 0, 0, 0.2); min-width: 0; transition: opacity 0.3s, box-shadow 0.3s; }
.m-h { font: 10.5px var(--sans); letter-spacing: 0.16em; color: var(--text-3); padding: 6px 10px 2px; }
.m-col.theirs .m-h { color: #b9d3ff; } .m-col.mine .m-h { color: #d4ccff; }
.m-b { padding: 2px 0 8px; }
.m-b .dl { padding: 0 10px; }
.pick-theirs .m-col:not(.theirs), .pick-mine .m-col:not(.mine), .pick-custom .m-col.base { opacity: 0.45; }
.pick-theirs .m-col.theirs { box-shadow: inset 0 0 0 1px rgba(94, 160, 255, 0.5); }
.pick-mine .m-col.mine { box-shadow: inset 0 0 0 1px rgba(155, 140, 255, 0.55); }
.cc-seg { display: flex; flex-wrap: wrap; gap: 4px; padding: 3px; border-radius: 999px; background: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.07); width: fit-content; max-width: 100%; }
.seg { border: 0; background: none; border-radius: 999px; padding: 5px 12px; font-size: 12px; letter-spacing: 0.12em; color: var(--text-2); display: inline-flex; align-items: center; gap: 5px; transition: background 0.3s, color 0.3s; }
.seg:hover { color: #fff; }
.seg.on { background: rgba(255, 255, 255, 0.14); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.seg b { font-weight: 400; font-size: 10px; }
.m-edit { display: none; font-family: var(--mono); font-size: 12px; }
.m-edit.on { display: block; }

/* 控制中心卡片 */
.pop.cc-pop { padding: 10px; width: min(360px, calc(100vw - 24px)); max-width: min(360px, calc(100vw - 24px)); }
.cc { display: grid; gap: 8px; }
.cc-card, .share-card { border-radius: 16px; padding: 10px 12px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.cc-h { font-size: 10.5px; letter-spacing: 0.3em; color: var(--text-3); margin-bottom: 6px; }
.cc-card .cc-seg { width: 100%; }
.cc-card .cc-seg { flex-wrap: nowrap; }
.cc-card .seg { flex: 1; justify-content: center; padding: 5px 4px; font-size: 10.5px; letter-spacing: 0.02em; white-space: nowrap; gap: 3px; }
.cc-btns { display: flex; gap: 6px; }
.share { display: grid; gap: 10px; }
.share-card p { margin: 0 0 6px; font-size: 13px; line-height: 1.8; letter-spacing: 0.04em; }
.whos { display: grid; gap: 4px; margin-bottom: 6px; }
.who { display: flex; align-items: center; gap: 8px; font-size: 12.5px; }
.who .faint { margin-left: auto; }

/* 搜索 */
.search { position: absolute; left: 50%; top: 11vh; width: min(560px, calc(100vw - 24px)); margin-left: calc(min(560px, calc(100vw - 24px)) / -2); border-radius: 28px; z-index: 65; pointer-events: auto; padding: 6px; background: linear-gradient(180deg, rgba(30, 34, 45, 0.9), rgba(18, 21, 29, 0.92)); user-select: text; }
.search.closing { pointer-events: none; }
.s-cap { display: flex; align-items: center; gap: 10px; padding: 6px 8px 6px 14px; border-radius: 999px; background: rgba(0, 0, 0, 0.18); border: 1px solid rgba(255, 255, 255, 0.08); }
.s-ico { color: var(--text-2); display: grid; }
.s-in { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: 15px; letter-spacing: 0.06em; padding: 6px 0; }
.s-info { font-size: 10.5px; color: var(--text-3); letter-spacing: 0.06em; white-space: nowrap; }
.s-x { border: 1px solid var(--hair); background: none; border-radius: 8px; font: 10px var(--mono); color: var(--text-3); padding: 3px 6px; }
.s-list { display: grid; gap: 1px; max-height: min(56vh, 460px); overflow: auto; padding: 4px 0 2px; }
.s-list:empty { display: none; }
.s-label { font-size: 10.5px; letter-spacing: 0.3em; color: var(--text-3); padding: 8px 14px 4px; }
.s-hit { display: flex; align-items: center; gap: 12px; text-align: left; border: 0; background: none; border-radius: 16px; padding: 9px 12px; transition: background 0.2s; min-width: 0; animation: sIn 0.5s var(--spring) backwards; }
.s-hit:nth-child(2) { animation-delay: 20ms; } .s-hit:nth-child(3) { animation-delay: 40ms; } .s-hit:nth-child(4) { animation-delay: 60ms; } .s-hit:nth-child(5) { animation-delay: 80ms; } .s-hit:nth-child(n+6) { animation-delay: 100ms; }
@keyframes sIn { from { opacity: 0; transform: translateY(-6px) scale(0.98); } }
.s-hit.on { background: rgba(255, 255, 255, 0.08); }
.s-mark { flex: none; width: 16px; text-align: center; font-size: 11px; }
.s-mark.t { color: #b9d3ff; }
.s-main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.s-t { font-size: 13.5px; letter-spacing: 0.04em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-sn { font-size: 11.5px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-p { flex: none; font-size: 10.5px; letter-spacing: 0.14em; color: var(--text-3); border: 1px solid var(--hair); border-radius: 999px; padding: 1px 8px; }
.s-empty { padding: 16px 14px; font-size: 12.5px; color: var(--text-3); letter-spacing: 0.1em; }

/* 搜索飞船（与卫星同尺寸） */
.ship { position: absolute; left: 0; top: 0; --s: 36px; width: calc(var(--s) + 8px); height: calc(var(--s) + 8px); border: 0; padding: 0; background: none; opacity: 0; display: grid; place-items: center; transition: opacity 0.5s; pointer-events: none; }
.ship-i { width: var(--s); height: var(--s); display: grid; filter: drop-shadow(0 0 6px rgba(150, 190, 255, 0.35)); transition: transform 0.6s var(--spring), filter 0.3s; animation: shipBob 5.5s ease-in-out infinite; }
.ship-i svg { width: 100%; height: 100%; }
.ship .flame { transform-origin: 24px 36px; animation: flame 0.9s ease-in-out infinite alternate; }
.ship:hover .ship-i, .ship:focus-visible .ship-i { transform: scale(1.14) rotate(-6deg); filter: drop-shadow(0 0 10px rgba(150, 190, 255, 0.7)); }
.ship-t { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 11px; letter-spacing: 0.3em; color: var(--text-3); margin-top: 2px; transition: color 0.3s; }
.ship:hover .ship-t { color: #fff; }
@keyframes shipBob { 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes flame { from { transform: scaleY(0.75); opacity: 0.7; } to { transform: scaleY(1.15); opacity: 1; } }

@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .sheet.wide { width: auto; }
  .view.entry { grid-template-columns: minmax(0, 1fr); }
  .rail { position: static; flex-direction: row; flex-wrap: wrap; justify-content: space-between; border-radius: 16px; order: -1; }
  .tool::after { display: none; }
  .m-cols { grid-template-columns: 1fr; }
  .search { top: 8vh; }
  .notices { right: 12px; left: auto; bottom: auto; top: 62px; align-items: flex-end; max-width: calc(100vw - 24px); }
  .tl-i { grid-template-columns: 54px 1fr; }
  .tl-i::before { left: 60px; }
}
@media (prefers-reduced-motion: reduce) { .ship-i, .ship .flame { animation: none; } }
/* 星痕 v1.3 —— 第三屏构图（面板在右）、白洞/黑洞/空间站热区、悬停总览浮窗、光照滑杆、专题编辑、恒星总览桌面。 */

/* —— 面板：右侧，尺寸来自 layout.ts（main.ts 写入 --pl/--pt/--pw/--ph）—— */
.sheet { left: auto; right: 28px; top: var(--pt, 84px); width: var(--pw, 42vw); --sheet-h: var(--ph, calc(100vh - 112px)); transform-origin: 0% 50%; }
.sheet.wide { width: min(1000px, max(var(--pw, 42vw), 58vw)); }
.sheet.hide { transform: translateX(26px); filter: blur(8px); }
.sheet-seam { position: absolute; left: 0; top: 0; bottom: 0; width: 2px; z-index: 4; pointer-events: none; opacity: 0; border-radius: 2px;
  background: linear-gradient(180deg, transparent, rgba(244, 227, 193, 0.9) 30%, #fff 50%, rgba(207, 224, 255, 0.9) 70%, transparent);
  box-shadow: 0 0 14px rgba(244, 227, 193, 0.55), 0 0 42px rgba(160, 190, 255, 0.35); }
.sheet .view.overview .blk:first-child { margin-top: 6px; }

/* —— 黑洞（设置）：右下角 —— */
.bh-entry { left: auto; top: auto; right: 8px; bottom: 8px; width: 88px; height: 88px; }
.hole-tip { position: absolute; left: 0; top: 0; z-index: 6; pointer-events: none; white-space: nowrap; font-size: 11px; letter-spacing: 0.36em; padding: 4px 4px 4px 10px; color: var(--text-2);
  opacity: 0; filter: blur(4px); transition: opacity 0.45s var(--ease-out, ease), filter 0.45s var(--ease-out, ease), color 0.3s; text-shadow: 0 0 10px rgba(0, 0, 0, 0.9); }
.hole-tip.on { opacity: 1; filter: none; color: var(--text); }
.hole-tip::after { content: ""; display: block; height: 1px; margin-top: 5px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent); }
.bh-tip { left: auto; top: auto; right: 52px; bottom: 104px; transform: translate(50%, 6px); transition: opacity 0.45s var(--ease-out, ease), filter 0.45s, transform 0.6s var(--spring); }
.bh-tip.on { transform: translate(50%, 0); }
.wh-tip { color: #f4e3c1; }
.wh-tip.on { color: #fff6e6; }
.wh-entry, .station-hit { position: absolute; left: 0; top: 0; width: 60px; height: 60px; border: 0; padding: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.wh-entry:focus-visible, .station-hit:focus-visible, .bh-entry:focus-visible { outline: 1px solid rgba(255, 255, 255, 0.35); outline-offset: 3px; }
.station-tip { position: absolute; left: 0; top: 0; pointer-events: none; white-space: nowrap; font-size: 11px; letter-spacing: 0.3em; color: var(--text-2); text-shadow: 0 0 10px rgba(0, 0, 0, 0.9); transition: color 0.3s; }
.station-tip.on { color: #fff; }
.station-tip kbd { margin-left: 8px; font: inherit; font-size: 10px; letter-spacing: 0; padding: 0 5px; border-radius: 5px; border: 1px solid rgba(255, 255, 255, 0.16); color: var(--text-3); }
body.grabbing, body.grabbing #stage { cursor: grabbing !important; }

/* —— 星系：恒星标签（暖色）—— */
.sun-tag .t { color: #f4e3c1; }
.sun-tag.hot .t { color: #fff6e6; text-shadow: 0 0 14px rgba(255, 196, 120, 0.55); }

/* —— 第三屏：远景星球标签（未悬停很淡，悬停清晰）—— */
.neighbor.hot { color: #fff; }
.neighbor.hot .sub { color: var(--text-2); }
.neighbor.behind { text-shadow: 0 0 10px rgba(0, 0, 0, 1), 0 0 2px rgba(0, 0, 0, 1); }

/* —— 卫星标签：带发光色点 —— */
.sat-label { display: inline-flex; align-items: baseline; flex-wrap: wrap; column-gap: 0; }
.sat-label .sat-dot { width: 6px; height: 6px; border-radius: 50%; margin-right: 9px; background: var(--c); box-shadow: 0 0 8px var(--c), 0 0 16px var(--c); align-self: center; flex: none; }
.sat-label .en { flex-basis: 100%; padding-left: 15px; }
.sat-label:hover, .sat-label.on { color: #fff; text-shadow: 0 0 12px color-mix(in srgb, var(--c) 60%, transparent); }

/* —— 光照滑杆：第三屏左下角（压在主星暗面上）—— */
.lightctl { position: absolute; left: 28px; bottom: 28px; width: 248px; padding: 12px 14px 10px; border-radius: 18px; display: grid; gap: 6px; z-index: 5; }
.lc-t { white-space: nowrap; }
.lc-row { display: grid; grid-template-columns: 16px 30px 1fr 38px; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.2em; color: var(--text-2); cursor: default; }
.lc-i { display: grid; place-items: center; color: #f4e3c1; opacity: 0.85; }
.lc-i svg { width: 14px; height: 14px; }
.lc-row output { text-align: right; font-variant-numeric: tabular-nums; letter-spacing: 0.04em; color: var(--text-3); font-size: 11px; }
.lightctl input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 18px; background: transparent; cursor: pointer; --p: 50%; }
.lightctl input[type="range"]::-webkit-slider-runnable-track { height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(244, 227, 193, 0.9) var(--p), rgba(255, 255, 255, 0.14) var(--p)); }
.lightctl input[type="range"]::-moz-range-track { height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(244, 227, 193, 0.9) var(--p), rgba(255, 255, 255, 0.14) var(--p)); }
.lightctl input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 12px; margin-top: -5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(244, 227, 193, 0.18), 0 0 12px rgba(244, 227, 193, 0.8); transition: transform 0.4s var(--spring); }
.lightctl input[type="range"]::-moz-range-thumb { width: 12px; height: 12px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(244, 227, 193, 0.18), 0 0 12px rgba(244, 227, 193, 0.8); }
.lightctl input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.25); }

/* —— 悬停总览浮窗 —— */
.peek { position: absolute; left: 0; top: 0; z-index: 7; width: 272px; padding: 14px 16px 12px; border-radius: 20px; pointer-events: none; opacity: 0; filter: blur(6px);
  transition: opacity 0.35s var(--ease-out, ease), filter 0.35s var(--ease-out, ease), transform 0.5s var(--ease-out, ease); }
.peek.glass { background: linear-gradient(180deg, rgba(20, 24, 34, 0.8), rgba(12, 15, 22, 0.76)); }
.peek.on { opacity: 1; filter: none; }
.peek .pk { transform-origin: var(--ox, 0%) 30%; transform: scale(0.94); transition: transform 0.55s var(--spring); }
.peek.on .pk { transform: none; }
.pk-eb { display: flex; align-items: center; gap: 7px; font-size: 10px; letter-spacing: 0.32em; color: var(--text-3); }
.pk-h { margin: 5px 0 6px; font-size: 17px; letter-spacing: 0.16em; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk.sun .pk-h { color: #f4e3c1; }
.pk-n { font-size: 11px; letter-spacing: 0.12em; color: var(--text-2); }
.pk-n b { color: #fff; font-weight: 500; }
.pk-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 10px 0 2px; }
.pk-rows { margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, 0.08); display: grid; gap: 2px; }
.pk-row { display: flex; align-items: center; gap: 9px; font-size: 12px; letter-spacing: 0.04em; padding: 3px 0; min-width: 0; }
.pk-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); }
.pk-d { flex: none; font-size: 10.5px; color: var(--text-3); letter-spacing: 0.06em; }
.pk-s { flex: none; width: 6px; height: 6px; border-radius: 50%; background: #a9b8d6; }
.pk-s.s-adopted { background: #7fd6a8; } .pk-s.s-candidate { background: #a9b8d6; } .pk-s.s-rejected { background: #8a8f9c; } .pk-s.s-superseded { background: #e6a86e; }
.pk-p { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--c, #9cc2ff); box-shadow: 0 0 8px var(--c, #9cc2ff); }
.pk-empty { font-size: 11.5px; color: var(--text-3); letter-spacing: 0.1em; padding: 2px 0; }
.pk-hint { margin-top: 10px; font-size: 10.5px; letter-spacing: 0.24em; color: rgba(244, 227, 193, 0.72); }

/* —— 专题编辑 —— */
.pop-sw { padding: 12px; }
.swatches { display: grid; grid-template-columns: repeat(6, 26px); gap: 10px; }
.swatches .sw { width: 26px; height: 26px; padding: 0; border-radius: 50%; background: var(--c); color: var(--c); border: 2px solid transparent; }
.swatches .sw:hover { opacity: 1; transform: scale(1.1); }
.tcard .tdot { cursor: pointer; transition: transform 0.4s var(--spring); }
.tcard .tdot:hover { transform: scale(1.5); }
.pill.tcolor { display: inline-flex; align-items: center; gap: 7px; }
.pill.tcolor .tdot { grid-row: auto; width: 8px; height: 8px; background: var(--c); color: var(--c); }
.desk-actions .tinput { width: 180px; flex: none; }
.tgrid .tinput { height: 100%; min-height: 44px; }
.loose { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 12px; }
.loose-t { flex-basis: 100%; font-size: 10.5px; letter-spacing: 0.2em; color: var(--text-3); margin-bottom: 2px; }
.chip.add-chip { cursor: pointer; padding: 4px 10px; font-size: 11.5px; color: var(--text-2); transition: background 0.3s, color 0.3s, border-color 0.3s; }
.chip.add-chip:hover { color: #fff; background: rgba(255, 255, 255, 0.07); border-color: rgba(255, 255, 255, 0.22); }
.chip small { margin-left: 6px; font-size: 10px; color: var(--text-3); letter-spacing: 0.06em; }

/* —— 恒星 · 总览桌面 —— */
.pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.pcard { text-align: left; border-radius: 18px; padding: 14px 15px 12px; min-width: 0; border: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(160deg, color-mix(in srgb, var(--c) 12%, transparent), rgba(255, 255, 255, 0.02) 60%); transition: background 0.3s, border-color 0.3s, transform 0.5s var(--spring); }
.pcard:hover { border-color: color-mix(in srgb, var(--c) 40%, rgba(255, 255, 255, 0.1)); transform: translateY(-2px); }
.pc-top { display: flex; align-items: center; gap: 9px; min-width: 0; }
.pc-orb { flex: none; width: 14px; height: 14px; border-radius: 50%; background: radial-gradient(circle at 68% 38%, #fff 0, var(--c) 38%, #05070c 88%); box-shadow: 0 0 12px color-mix(in srgb, var(--c) 45%, transparent); }
.pc-t { flex: 1; min-width: 0; font-size: 14px; letter-spacing: 0.14em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-n { margin: 9px 0 8px; font-size: 11.5px; color: var(--text-2); letter-spacing: 0.1em; }
.pc-n b { color: #fff; font-weight: 500; }
.pc-tops { display: flex; flex-wrap: wrap; gap: 4px; }
.pc-last { margin-top: 9px; font-size: 11px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: 0.04em; }
.chip.pchip { color: var(--text-3); }
.alltops { display: grid; gap: 8px; }
.at-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.at-p { min-width: 76px; font-size: 11px; letter-spacing: 0.2em; color: var(--text-3); }
.at-row .chip { cursor: pointer; padding: 3px 10px; }
.todo-n.up { color: #9cc2ff; background: rgba(156, 194, 255, 0.12); }

/* —— 竖屏 / 窄屏 —— */
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .sheet { left: 8px; right: 8px; width: auto; top: auto; bottom: 8px; --sheet-h: 56vh; transform-origin: 50% 100%; }
  .sheet.wide { width: auto; }
  .sheet.hide { transform: translateY(24px); }
  .sheet-seam { left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, transparent, rgba(244, 227, 193, 0.9) 30%, #fff 50%, rgba(207, 224, 255, 0.9) 70%, transparent); }
  .lightctl { left: auto; right: 12px; bottom: calc(56vh + 84px); width: 168px; padding: 9px 11px 7px; border-radius: 16px; }
  .lc-row { grid-template-columns: 14px 1fr 34px; gap: 7px; }
  .lc-t { display: none; }
  .peek { width: 236px; }
  .pgrid { grid-template-columns: 1fr 1fr; }
  .bh-entry { right: 4px; bottom: 4px; }
}
@media (prefers-reduced-motion: reduce) { .peek .pk { transition: none; } }
/* 星痕 v1.4 —— 恒星总览：恒星居中作背景，大面板玻璃；表格 / 卡片 / 列表 */

/* —— 面板几何：居中的大玻璃（尺寸来自 layout.ts stageSun → main.ts 写入 --ol/--ot/--ow/--oh）—— */
.sheet.ov, .sheet.ov.wide { left: var(--ol, 6vw); right: auto; top: var(--ot, 76px); width: var(--ow, 88vw); --sheet-h: var(--oh, calc(100vh - 104px)); transform-origin: 50% 50%; border-radius: 26px; }
.sheet.ov.hide { transform: scale(0.965); filter: blur(10px); }
.sheet.ov .sheet-seam { display: none; }
/* 材质：深色烟熏玻璃。强模糊 + 压暗，恒星只剩一团暖光，文字对比度不受影响 */
.sheet.ov.glass {
  background:
    radial-gradient(ellipse 60% 55% at 50% 50%, rgba(255, 170, 90, 0.07), transparent 70%),
    linear-gradient(180deg, rgba(12, 12, 17, 0.64), rgba(9, 10, 15, 0.7));
  backdrop-filter: blur(26px) saturate(130%) brightness(0.58);

  border: 1px solid rgba(255, 236, 210, 0.1);
  box-shadow: 0 40px 120px -30px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 244, 225, 0.1), inset 0 0 0 1px rgba(255, 255, 255, 0.02), inset 0 0 120px rgba(255, 160, 80, 0.035);
}
.sheet.ov .chev { display: none; }
.sheet.ov .sheet-head { padding: 22px 30px 16px; }
.sheet.ov .ph-title { font-size: clamp(28px, 2.4vw, 38px); }
.sheet.ov .sheet-body { padding: 0 30px 34px; scroll-behavior: auto; }
.ph-tools:empty { display: none; }
.ph-tools { flex: none; display: flex; align-items: center; }

/* —— 右上角：放大镜 + 检索框 —— */
.ov-ico { display: grid; place-items: center; width: 16px; height: 16px; flex: none; }
.ov-ico svg { width: 100%; height: 100%; }
.ov-search { position: relative; display: flex; align-items: center; gap: 9px; width: clamp(220px, 26vw, 380px); height: 40px; padding: 0 10px 0 14px; border-radius: 999px; cursor: text;
  background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: var(--text-3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06); transition: width 0.6s var(--spring), background 0.3s, border-color 0.3s, box-shadow 0.4s; }
.ov-search:hover { background: rgba(255, 255, 255, 0.075); }
.ov-search:focus-within { width: clamp(260px, 32vw, 460px); background: rgba(255, 255, 255, 0.09); border-color: rgba(244, 227, 193, 0.38); color: var(--accent, #F4E3C1);
  box-shadow: 0 0 0 4px rgba(244, 227, 193, 0.07), 0 10px 30px -12px rgba(255, 190, 120, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.ov-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: none; color: var(--text); font: inherit; font-size: 13.5px; letter-spacing: 0.06em; }
.ov-search input::placeholder { color: var(--text-3); letter-spacing: 0.12em; }
.ov-search input::-webkit-search-cancel-button { display: none; }
.ov-search kbd { flex: none; min-width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.14); font: 11px/1 var(--mono, monospace); color: var(--text-3); transition: opacity 0.2s; }
.ov-clear { flex: none; width: 24px; height: 24px; border-radius: 50%; display: none; place-items: center; color: var(--text-2); }
.ov-clear:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.ov-clear .ov-ico { width: 13px; height: 13px; }
.ov-search.has .ov-clear { display: grid; }
.ov-search.has kbd, .ov-search:focus-within kbd { display: none; }

/* —— 概览条 —— */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0 8px; }
.kpi { position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: baseline; gap: 2px 12px; padding: 14px 18px; border-radius: 18px; text-align: left;
  background: rgba(255, 255, 255, 0.035); border: 1px solid rgba(255, 255, 255, 0.07); overflow: hidden; }
.kpi b { grid-row: 1 / 3; font-family: var(--thin); font-weight: 200; font-size: 36px; line-height: 1; color: #fff; letter-spacing: 0.02em; align-self: center; }
.kpi span { font-size: 12px; letter-spacing: 0.3em; color: var(--text-2); }
.kpi small { font-size: 11px; letter-spacing: 0.08em; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-spark { display: flex; align-items: flex-end; gap: 2px; height: 18px; }
.kpi-spark i { flex: 1; min-height: 2px; border-radius: 2px; background: linear-gradient(180deg, #F4E3C1, rgba(244, 227, 193, 0.25)); }
.kpi.warn { cursor: pointer; transition: background 0.3s, border-color 0.3s, transform 0.4s var(--spring); }
.kpi.warn:hover { background: rgba(230, 168, 110, 0.08); }
.kpi.warn b { color: #f2c08e; }
.kpi.warn.on { background: rgba(230, 168, 110, 0.14); border-color: rgba(230, 168, 110, 0.45); }
.kpi.warn:active { transform: scale(0.98); }

/* —— 表签（每个星系一张表）+ 视图切换，吸顶 —— */
.ov-bar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 14px; margin: 0 -30px; padding: 12px 30px 10px;
  background: linear-gradient(180deg, rgba(14, 14, 20, 0.86), rgba(14, 14, 20, 0.7)); backdrop-filter: blur(18px); border-bottom: 1px solid var(--hair); }
.ov-tabs { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.ov-tabs::-webkit-scrollbar { display: none; }
.ov-tab-ind { position: absolute; left: 0; bottom: 0; top: 0; width: 0; border-radius: 12px; background: rgba(255, 255, 255, 0.09); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -2px 0 var(--accent, #F4E3C1); pointer-events: none; }
.ov-tab { position: relative; z-index: 1; flex: none; display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border-radius: 12px; font-size: 13px; letter-spacing: 0.16em; color: var(--text-2); white-space: nowrap; transition: color 0.3s; }
.ov-tab:hover { color: var(--text); }
.ov-tab.on { color: #fff; }
.ov-tab .ov-n { min-width: 20px; padding: 0 6px; height: 18px; display: inline-grid; place-items: center; border-radius: 9px; font-size: 10.5px; letter-spacing: 0.04em; background: rgba(255, 255, 255, 0.08); color: var(--text-2); font-variant-numeric: tabular-nums; }
.ov-tab.on .ov-n { background: rgba(244, 227, 193, 0.18); color: #F4E3C1; }
.ov-tab.zero { opacity: 0.5; }
.ov-tab.add { width: 34px; padding: 0; justify-content: center; font-size: 15px; letter-spacing: 0; color: var(--text-3); border: 1px dashed rgba(255, 255, 255, 0.14); margin-left: 6px; }
.ov-tab.add:hover { color: #fff; border-color: rgba(255, 255, 255, 0.3); }
.ov-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--c); box-shadow: 0 0 8px var(--c); }
.ov-modes { flex: none; display: flex; padding: 3px; gap: 2px; border-radius: 12px; background: rgba(0, 0, 0, 0.22); border: 1px solid rgba(255, 255, 255, 0.07); }
.ov-mode { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border-radius: 9px; font-size: 12px; letter-spacing: 0.14em; color: var(--text-3); transition: background 0.3s, color 0.3s; }
.ov-mode:hover { color: var(--text); }
.ov-mode.on { background: rgba(255, 255, 255, 0.12); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12); }

/* —— 工具条 —— */
.ov-tools { display: flex; align-items: center; gap: 14px; padding: 12px 0 6px; }
.ov-chips { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ov-chip { display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.025); font-size: 11.5px; letter-spacing: 0.14em; color: var(--text-2); transition: background 0.25s, border-color 0.25s, color 0.25s; }
.ov-chip:hover { background: rgba(255, 255, 255, 0.07); color: var(--text); }
.ov-chip.on { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.22); color: #fff; }
.ov-chip.topic.on { border-color: color-mix(in srgb, var(--c) 60%, transparent); background: color-mix(in srgb, var(--c) 16%, transparent); }
.ov-chip small { font-size: 10px; color: var(--text-3); letter-spacing: 0; }
.ov-sep { width: 1px; height: 16px; background: var(--hair-2, rgba(255, 255, 255, 0.14)); margin: 0 4px; }
.ov-sortw { flex: none; display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.24em; color: var(--text-3); }
.ov-sort { height: 28px; padding: 0 26px 0 10px; border-radius: 9px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.04) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23aab' fill='none'/%3E%3C/svg%3E") no-repeat right 9px center; color: var(--text); font: inherit; font-size: 12px; letter-spacing: 0.1em; appearance: none; -webkit-appearance: none; cursor: pointer; }
.ov-sort option { background: #14151c; }

/* —— 单个星系的表头 —— */
.ov-planet { display: flex; align-items: center; gap: 14px; margin: 8px 0 4px; padding: 14px 18px; border-radius: 18px; background: linear-gradient(90deg, color-mix(in srgb, var(--c) 12%, transparent), rgba(255, 255, 255, 0.02) 60%); border: 1px solid rgba(255, 255, 255, 0.07); }
.ov-planet.hide-ph { display: none; }
.ov-planet .pc-orb { width: 30px; height: 30px; }
.ovp-main { flex: 1; min-width: 0; }
.ovp-t { font-size: 17px; letter-spacing: 0.18em; color: #fff; display: flex; align-items: baseline; gap: 12px; }
.ovp-eb { font-size: 10px; letter-spacing: 0.4em; color: var(--text-3); }
.ovp-s { margin-top: 3px; font-size: 11.5px; letter-spacing: 0.12em; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ov-planet .pill { display: inline-flex; align-items: center; gap: 6px; }
.ov-planet .pill .ov-ico { width: 13px; height: 13px; }

/* —— 表格 —— */
.ov-content { margin-top: 6px; }
.ov-table-wrap { border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.07); background: rgba(0, 0, 0, 0.12); overflow: clip; }
.ov-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 13px; }
.ov-table th { position: sticky; top: 57px; z-index: 3; height: 38px; padding: 0 14px; text-align: left; font-weight: 400; font-size: 10.5px; letter-spacing: 0.3em; color: var(--text-3); background: rgba(20, 20, 27, 0.94); border-bottom: 1px solid var(--hair); white-space: nowrap; user-select: none; }
.ov-table th.sortable { cursor: pointer; }
.ov-table th.sortable:hover, .ov-table th.on { color: var(--text); }
.ov-arrow { font-style: normal; margin-left: 6px; color: #F4E3C1; letter-spacing: 0; }
.ov-table td { padding: 11px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.045); vertical-align: middle; color: var(--text-2); }
.ov-table tbody tr { cursor: pointer; transition: background 0.18s; }
.ov-table tbody tr:last-child td { border-bottom: 0; }
.ov-table tbody tr:hover { background: rgba(255, 255, 255, 0.045); }
.ov-table tbody tr:focus-visible { outline: none; background: rgba(244, 227, 193, 0.08); box-shadow: inset 2px 0 0 #F4E3C1; }
.ov-table .c-title { width: auto; }
.ov-table .c-planet { width: 150px; }
.ov-table .c-topic { width: 190px; }
.ov-table .c-status { width: 124px; }
.ov-table .c-ver { width: 64px; font-variant-numeric: tabular-nums; color: var(--text-3); }
.ov-table .c-time { width: 104px; font-size: 12px; color: var(--text-3); white-space: nowrap; }
.ov-table .c-act { width: 46px; padding: 0 8px 0 0; text-align: right; }
.t-t { color: var(--text); font-size: 14px; letter-spacing: 0.06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t-ex { margin-top: 3px; font-size: 12px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c-topic { white-space: nowrap; overflow: hidden; }
.c-topic .chip { margin-right: 4px; }
.chip.pchip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; color: var(--text-2); }
.chip.pchip .ov-dot { width: 6px; height: 6px; }
.chip.more { color: var(--text-3); }
.ov-up { margin-left: 6px; color: #e6a86e; font-size: 12px; }
.ov-fly { width: 30px; height: 30px; border-radius: 10px; display: inline-grid; place-items: center; color: var(--text-3); opacity: 0; transition: opacity 0.2s, background 0.2s, color 0.2s; }
.ov-fly .ov-ico { width: 15px; height: 15px; }
tr:hover .ov-fly, tr:focus-within .ov-fly, .ov-card:hover .ov-fly, .ol-row:hover .ov-fly, .ov-fly:focus-visible { opacity: 1; }
.ov-fly:hover { background: rgba(244, 227, 193, 0.14); color: #F4E3C1; }
mark { background: rgba(244, 227, 193, 0.24); color: #fff; border-radius: 3px; padding: 0 1px; }

/* —— 卡片 —— */
.ov-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.ov-card { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 176px; padding: 16px 16px 12px; border-radius: 18px; cursor: pointer;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)); border: 1px solid rgba(255, 255, 255, 0.08); overflow: hidden;
  transition: transform 0.5s var(--spring), border-color 0.3s, background 0.3s; }
.ov-card::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--c), transparent 70%); opacity: 0.7; }
.ov-card:hover { transform: translateY(-3px); border-color: rgba(255, 255, 255, 0.16); background: linear-gradient(160deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03)); }
.ov-card:focus-visible { outline: none; border-color: rgba(244, 227, 193, 0.5); }
.oc-top { display: flex; align-items: center; gap: 8px; }
.oc-top .pchip { max-width: 45%; }
.oc-time { margin-left: auto; font-size: 11px; color: var(--text-3); white-space: nowrap; }
.oc-t { margin: 2px 0 0; font-weight: 400; font-size: 15.5px; letter-spacing: 0.06em; color: #fff; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.oc-ex { margin: 0; flex: 1; font-size: 12.5px; line-height: 1.7; color: var(--text-3); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.oc-foot { display: flex; align-items: center; gap: 8px; }
.oc-tags { flex: 1; min-width: 0; display: flex; gap: 4px; overflow: hidden; }
.oc-ver { font-size: 11px; color: var(--text-3); font-variant-numeric: tabular-nums; }

/* —— 列表 —— */
.ov-list { display: flex; flex-direction: column; }
.ol-h { position: sticky; top: 57px; z-index: 2; padding: 14px 4px 6px; font-size: 10.5px; letter-spacing: 0.45em; color: var(--text-3); background: linear-gradient(180deg, rgba(14, 14, 20, 0.9), rgba(14, 14, 20, 0)); }
.ol-row { display: grid; grid-template-columns: 22px minmax(120px, 0.9fr) minmax(0, 1.4fr) auto 92px 34px; align-items: center; gap: 14px; min-height: 44px; padding: 0 8px; border-radius: 12px; cursor: pointer; transition: background 0.18s; }
.ol-row:hover { background: rgba(255, 255, 255, 0.045); }
.ol-row:focus-visible { outline: none; background: rgba(244, 227, 193, 0.08); }
.ol-mark { text-align: center; font-size: 12px; }
.ol-mark.s-adopted { color: #7fd6a8; } .ol-mark.s-candidate { color: #a9b8d6; } .ol-mark.s-rejected { color: #8a8f9c; } .ol-mark.s-superseded { color: #e6a86e; }
.ol-t { color: var(--text); font-size: 13.5px; letter-spacing: 0.05em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ol-ex { font-size: 12px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ol-time { font-size: 11.5px; color: var(--text-3); text-align: right; white-space: nowrap; }

/* —— 空态 / 脚注 —— */
.ov-empty { display: grid; justify-items: center; gap: 14px; padding: 64px 0 40px; color: var(--text-3); letter-spacing: 0.16em; font-size: 13px; }
.ov-empty p { margin: 0; }
.ov-empty-o { width: 54px; height: 54px; border-radius: 50%; border: 1px solid rgba(244, 227, 193, 0.25); box-shadow: 0 0 40px rgba(255, 180, 110, 0.18), inset 0 0 20px rgba(255, 180, 110, 0.12); }
.ov-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; font-size: 11px; letter-spacing: 0.18em; color: var(--text-3); }
.ov-hint { opacity: 0.8; }

/* —— 竖屏 / 窄屏：恒星在上方，面板占下方 —— */
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .sheet.ov, .sheet.ov.wide { left: 8px; right: 8px; width: auto; top: var(--ot, 27vh); bottom: 8px; --sheet-h: calc(100vh - var(--ot, 27vh) - 8px); border-radius: 22px; }
  .sheet.ov .sheet-head { padding: 16px 16px 10px; }
  .sheet.ov .sheet-body { padding: 0 14px 28px; }
  .sheet.ov .ph-title { font-size: 24px; }
  .sheet.ov .ph-meta { display: none; }
  .ov-search, .ov-search:focus-within { width: min(52vw, 240px); height: 36px; }
  .ov-search kbd { display: none; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
  .kpi { padding: 10px 12px; }
  .kpi b { font-size: 26px; }
  .ov-bar { margin: 0 -14px; padding: 8px 14px; gap: 8px; }
  .ov-tab { padding: 0 10px; letter-spacing: 0.08em; }
  .ov-mode { padding: 0 8px; }
  .ov-mode > span:not(.ov-ico) { display: none; }
  .ov-tools { gap: 8px; }
  .ov-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -2px; }
  .ov-chips::-webkit-scrollbar { display: none; }
  .ov-chip { flex: none; }
  .ov-sortw span { display: none; }
  .ov-table th { top: 51px; }
  .ov-table .c-planet, .ov-table .c-topic, .ov-table .c-ver { display: none; }
  .ov-table .c-status { width: 96px; }
  .ov-table .c-time { width: 76px; }
  .ov-table .c-act { width: 0; padding: 0; }
  .ov-fly { display: none; }
  .ov-cards { grid-template-columns: 1fr; }
  .ov-card { min-height: 0; }
  .ol-h { top: 51px; }
  .ol-row { grid-template-columns: 18px minmax(0, 1fr) 70px; }
  .ol-row .ol-ex, .ol-row .pchip { display: none; }
}

/* 按钮复位（全局 button 没有复位边框/底色） */
.ov-tab, .ov-mode, .ov-clear, .ov-fly { border: 0; background: none; }
.ov-tab.add { border: 1px dashed rgba(255, 255, 255, 0.14); }
.kpi.warn { font: inherit; color: inherit; }

/* 最近继续 / 全部专题（v1.4.1） */
.ov-lbl { flex: none; font-size: 10.5px; letter-spacing: 0.4em; color: var(--text-3); margin-right: 2px; }
.ov-recent { display: flex; align-items: center; gap: 14px; margin: 6px 0 14px; }
.ovr-list { flex: 1; min-width: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.ovr-list::-webkit-scrollbar { display: none; }
.ovr { flex: none; display: inline-flex; align-items: center; gap: 8px; max-width: 260px; height: 34px; padding: 0 14px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.035); font-size: 12.5px; letter-spacing: 0.06em; color: var(--text); transition: background 0.25s, border-color 0.25s, transform 0.4s var(--spring); }
.ovr:hover { background: rgba(255, 255, 255, 0.08); border-color: color-mix(in srgb, var(--c) 45%, transparent); transform: translateY(-1px); }
.ovr-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ovr small { flex: none; font-size: 10.5px; color: var(--text-3); letter-spacing: 0.04em; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .ov-recent { gap: 8px; margin: 4px 0 10px; }
  .ov-recent > .ov-lbl, .ov-chips .ov-lbl { display: none; }
  .ovr { max-width: 200px; height: 32px; padding: 0 11px; }
}
.ov-table .c-status { white-space: nowrap; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) { .ov-hint { display: none; } .ov-table .c-status { width: 112px; } }
/* 星痕 v1.5 —— 更快的动效、左下角构图、宽面板、专题分栏 / 卡片 / 表格、折叠小胶囊、「新专题」卫星 */

/* —— 动效整体提速：笔记软件以效率为先 —— */
.fade { transition: opacity 0.35s var(--ease), visibility 0.35s, transform 0.35s var(--ease), filter 0.35s var(--ease); }
.sheet { right: 24px; transition: height 0.32s var(--spring-soft), width 0.32s var(--spring-soft), border-radius 0.32s, opacity 0.24s var(--ease), transform 0.34s var(--spring), filter 0.26s var(--ease), visibility 0.26s; }
.sheet-head, .sheet-body { transition-duration: 0.2s; }

/* —— 折叠：只剩一颗小胶囊，悬停才显示名称 —— */
.sheet-mini { display: none; }
.sheet.collapsed, .sheet.collapsed.wide { width: 52px; height: 52px; --sheet-h: 52px; max-height: 52px; border-radius: 26px; }
.sheet.collapsed > .sheet-head, .sheet.collapsed > .sheet-body, .sheet.collapsed > .sheet-seam { opacity: 0; pointer-events: none; }
.sheet.collapsed .sheet-mini { display: flex; position: absolute; inset: 0; align-items: center; justify-content: flex-end; gap: 10px; padding: 0 5px 0 18px; border: 0; background: none; color: var(--text); cursor: pointer; }
.sm-name { flex: 1; min-width: 0; font-size: 12.5px; letter-spacing: 0.18em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transform: translateX(8px); transition: opacity 0.2s, transform 0.3s var(--spring); }
.sm-orb { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 38% 32%, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.04) 70%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12), 0 0 18px rgba(244, 227, 193, 0.12); }
.sm-orb .chev-i { transform: translateY(-2px) rotate(45deg); }
.sheet.collapsed:has(.sheet-mini:focus-visible) { width: min(320px, calc(100vw - 32px)); }
.sheet.collapsed:has(.sheet-mini:focus-visible) .sm-name { opacity: 1; transform: none; }
@media (hover: hover) {
  .sheet.collapsed:hover { width: min(320px, calc(100vw - 32px)); }
  .sheet.collapsed:hover .sm-name { opacity: 1; transform: none; }
}

/* —— 轨道上的「新专题」卫星 —— */
.sat-label.add { color: #f4e3c1; }
.sat-label.add .sat-dot.plus { width: 16px; height: 16px; margin-right: 8px; display: grid; place-items: center; font-size: 11px; line-height: 1; color: #1a1408; background: #f4e3c1; box-shadow: 0 0 10px rgba(244, 227, 193, 0.8), 0 0 22px rgba(244, 227, 193, 0.35); position: relative; }
.sat-label.add .sat-dot.plus::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid rgba(244, 227, 193, 0.6); animation: st-ping 1.8s var(--ease) infinite; }
.sat-label.add .en.guide { color: rgba(244, 227, 193, 0.7); letter-spacing: 0.16em; padding-left: 24px; opacity: 0; transition: opacity 0.2s; }
.sat-label.add.lone .en.guide, .sat-label.add:hover .en.guide { opacity: 1; }
.sat-label.add.lone { font-size: 13px; }
.sat-label.add.lone .en.guide::before { content: "← "; }
@keyframes st-ping { 0% { transform: scale(0.7); opacity: 0.9; } 100% { transform: scale(1.9); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .sat-label.add .sat-dot.plus::after { animation: none; } }
.pop.nt { min-width: 260px; padding: 12px; }
.nt-pop { display: grid; gap: 10px; }
.nt-h { display: flex; align-items: baseline; justify-content: space-between; font-size: 13px; letter-spacing: 0.24em; color: var(--text); }
.nt-h small { font-size: 10.5px; letter-spacing: 0.1em; color: var(--text-3); }
.nt-in { height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid rgba(244, 227, 193, 0.35); background: rgba(255, 255, 255, 0.06); color: var(--text); font: inherit; font-size: 13.5px; outline: none; }
.nt-in:focus { box-shadow: 0 0 0 3px rgba(244, 227, 193, 0.12); }
.nt-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nt-chips .chip { cursor: pointer; padding: 3px 10px; }

/* —— 适配面板高度的视图：正文不再留 30vh 空白 —— */
.sheet-body:has(> .view.fit) { padding-bottom: 12px; }
.eb-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 6px 0 12px; }
.eb-bar.all { flex-wrap: nowrap; }
.eb-bar.all .capsule-nav { min-width: 0; overflow-x: auto; scrollbar-width: none; }
.eb-sp { flex: 1; }
.eb-modes .ov-mode { height: 26px; }

/* 分栏：两条半预览，第三条下缘半透明 */
.eb-split { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; transition: grid-template-columns 0.28s var(--spring-soft); }
.eb-split.open { grid-template-columns: minmax(220px, 0.38fr) minmax(0, 0.62fr); gap: 14px; }
.eb-stream { min-height: 0; overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 10px; padding: 0 4px 40px 0;
  -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 22%), rgba(0, 0, 0, 0.18)); mask-image: linear-gradient(180deg, #000 calc(100% - 22%), rgba(0, 0, 0, 0.18)); scrollbar-width: thin; }
.eb-stream::-webkit-scrollbar { width: 4px; } .eb-stream::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 2px; }
.eb-note { flex: none; height: var(--ih, 200px); display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border-radius: 18px; cursor: pointer; overflow: hidden;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018)); border: 1px solid rgba(255, 255, 255, 0.075); transition: background 0.18s, border-color 0.18s, transform 0.25s var(--spring); }
.eb-note:hover { background: linear-gradient(160deg, rgba(255, 255, 255, 0.085), rgba(255, 255, 255, 0.03)); border-color: rgba(255, 255, 255, 0.14); }
.eb-note:focus-visible { outline: none; border-color: rgba(244, 227, 193, 0.5); }
.eb-note.on { border-color: rgba(244, 227, 193, 0.45); background: linear-gradient(160deg, rgba(244, 227, 193, 0.1), rgba(255, 255, 255, 0.02)); box-shadow: inset 3px 0 0 #F4E3C1; }
.en-top { display: flex; align-items: center; gap: 8px; min-width: 0; }
.en-time { margin-left: auto; font-size: 11px; color: var(--text-3); white-space: nowrap; }
.en-t { margin: 0; font-weight: 400; font-size: 17px; line-height: 1.4; letter-spacing: 0.06em; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.split-open .en-t, .eb-split.open .en-t { font-size: 14px; }
.en-ex { margin: 0; flex: 1; min-height: 0; font-size: 13px; line-height: 22px; color: var(--text-2); display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.en-foot { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-3); letter-spacing: 0.12em; }
.en-go { opacity: 0; transition: opacity 0.2s; color: #F4E3C1; }
.eb-note:hover .en-go { opacity: 1; }
.eb-split.open .eb-note { padding: 12px 14px; gap: 6px; }
.eb-reader { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 18px 22px 24px; border-radius: 18px; background: rgba(0, 0, 0, 0.16); border: 1px solid rgba(255, 255, 255, 0.07); user-select: text; }
.er-head { display: flex; align-items: center; gap: 10px; }
.er-meta { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.er-t { margin: 12px 0 10px; font-weight: 300; font-size: 22px; letter-spacing: 0.08em; color: #fff; line-height: 1.35; }
.eb-md { font-size: 14px; line-height: 1.9; color: var(--text); }
.er-actions { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--hair); }
.er-actions .pill { display: inline-flex; align-items: center; gap: 6px; }
.er-actions .ov-ico { width: 13px; height: 13px; }
.er-hint { font-size: 11px; color: var(--text-3); letter-spacing: 0.1em; }
.eb-x { flex: none; }

/* 卡片 / 表格：每页条数按面板大小 */
.eb-paged { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.eb-cards { display: grid; gap: 12px; align-content: start; }
.eb-card { display: flex; flex-direction: column; gap: 7px; padding: 14px 15px 11px; border-radius: 16px; cursor: pointer; overflow: hidden; background: linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)); border: 1px solid rgba(255, 255, 255, 0.08); transition: transform 0.25s var(--spring), border-color 0.2s; }
.eb-card:hover { transform: translateY(-2px); border-color: rgba(255, 255, 255, 0.16); }
.eb-card .oc-ex { -webkit-line-clamp: 3; }
.eb-table td { padding-top: 7px; padding-bottom: 7px; }
.eb-pager { margin-top: auto; display: flex; align-items: center; justify-content: space-between; font-size: 11px; letter-spacing: 0.16em; color: var(--text-3); }
.eb-pgs { display: inline-flex; align-items: center; gap: 6px; }
.eb-pg { width: 30px; height: 28px; border-radius: 9px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.04); color: var(--text); font-size: 15px; line-height: 1; }
.eb-pg:hover { background: rgba(255, 255, 255, 0.1); }
.eb-pg:disabled { opacity: 0.3; pointer-events: none; }
.eb-pn { min-width: 44px; text-align: center; font-variant-numeric: tabular-nums; color: var(--text-2); }

/* 恒星总览：每页条数自适应（固定行高），恒星已调暗，玻璃压暗相应放轻 */
.ov-table tbody tr { height: 56px; }
.sheet.ov.glass { backdrop-filter: blur(26px) saturate(130%) brightness(0.7); }

@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .sheet.collapsed, .sheet.collapsed.wide { left: auto; right: 12px; bottom: 12px; top: auto; }
  .eb-split.open { grid-template-columns: minmax(0, 1fr); }
  .eb-split.open .eb-stream { display: none; }
  .eb-modes .ov-mode > span:not(.ov-ico) { display: none; }
  .eb-bar.all { flex-wrap: wrap; }
}
.ov-table tbody tr { height: 54px; }
.ov-table tbody td { padding-top: 6px; padding-bottom: 6px; }
.ov-table .t-ex { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* v1.5 r2：总览顶部更紧凑，把高度留给表格（每页多 1–2 条） */
@media (min-width: 761px) and (min-aspect-ratio: 1/1) {
  .kpis { margin: 12px 0 4px; gap: 10px; }
  .kpi { padding: 9px 16px; border-radius: 16px; }
  .kpi b { font-size: 28px; }
  .ov-recent { margin: 4px 0 8px; }
  .ov-recent .ovr { height: 30px; }
}

/* v1.5 r2：光照滑杆——横屏常显；竖屏收成一颗小按钮，点开才出现 */
.lc-tog { display: none; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .lightctl:not(.open) { width: 38px; height: 38px; padding: 0; border-radius: 50%; display: grid; place-items: center; bottom: calc(56vh + 64px); }
  .lightctl:not(.open) > .lc-row { display: none; }
  .lightctl:not(.open) > .lc-tog { display: grid; place-items: center; width: 38px; height: 38px; border: 0; background: none; color: #f4e3c1; padding: 0; }
  .lc-tog svg { width: 18px; height: 18px; }
  .lightctl.open { bottom: calc(56vh + 64px); }
}
/* 星痕 v1.6 —— 标题与屏名、可拖动面板、二次确认、“−”收起、名称前缀、专题分栏、文件夹、范围搜索、
   笔记放大模式、所见即所得 Markdown、全局搜索说明。只做增量覆盖，不改动之前版本的样式文件。 */

/* —— 0a / 0b：首屏标题 —— 中文“星痕”稍收，英文 STARTRACE 放大为细体宽字距的银色字标，二者同宽成组 */
.title { font-size: clamp(56px, 8.6vw, 148px); letter-spacing: 0.3em; padding-left: 0.3em; }
.wordmark { margin-top: clamp(14px, 1.8vw, 24px); display: flex; justify-content: center; gap: 0; font-family: var(--thin); font-weight: 200;
  font-size: clamp(17px, 2.05vw, 34px); letter-spacing: 0.72em; padding-left: 0.72em; line-height: 1; color: transparent; opacity: 1; animation: none; }
.wordmark span { display: inline-block; background: linear-gradient(180deg, #ffffff 0%, #dfe5f3 50%, #9fb0d6 100%); -webkit-background-clip: text; background-clip: text;
  opacity: 0; transform: translateY(0.35em); filter: blur(4px); animation: wm-in 1.6s var(--ease) forwards; animation-delay: calc(1.5s + var(--i) * 0.06s); text-shadow: none; }
@keyframes wm-in { to { opacity: 0.92; transform: none; filter: blur(0); } }
.tagline { font-family: var(--thin); font-weight: 300; font-style: italic; font-size: clamp(13px, 1.12vw, 17px); letter-spacing: 0.1em; color: rgba(226, 232, 245, 0.72); }

/* —— 3：左上角“星痕” + 屏名 + 返回按钮（竖向排列） —— */
.corner.left { flex-direction: column; align-items: flex-start; gap: 2px; }
.screen-name { font-size: 10.5px; letter-spacing: 0.34em; color: var(--text-3); padding: 0 0 0 1px; white-space: nowrap; }
.corner.left .back.corner-back { position: static; margin-top: 10px; pointer-events: auto; }
.corner.left .back.corner-back.off { display: none; }

/* —— 2：白洞上方“新建星系”常驻 50%，悬停完全显示 —— */
.wh-tip { opacity: 0.5; filter: none; }
.wh-tip.on { opacity: 1; }

/* 空间站（全局搜索）在所有屏可见 */
.station-hit { z-index: 5; }
.station-tip { z-index: 5; }

/* —— 5：可拖动 —— */
.drag-handle { cursor: grab; }
.sheet.collapsed .sheet-head.drag-handle { cursor: pointer; }
body.panel-dragging, body.panel-dragging * { cursor: grabbing !important; user-select: none !important; -webkit-user-select: none !important; }
.sheet.dragging, .modal.dragging, .search.dragging, .drawer.dragging, .confirm.dragging { transition: none !important; }
.modal.drag-handle input, .modal.drag-handle button, .modal.drag-handle label { cursor: auto; }
.modal.drag-handle button { cursor: pointer; }

/* —— 6：二次确认 —— */
.confirm-wrap { position: fixed; inset: 0; z-index: 90; pointer-events: auto; display: grid; place-items: center; background: rgba(4, 6, 10, 0.4); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); animation: cf-fade 0.2s var(--ease) both; }
.confirm-wrap.closing { opacity: 0; transition: opacity 0.18s; pointer-events: none; }
@keyframes cf-fade { from { opacity: 0; } }
.confirm { width: min(430px, calc(100vw - 32px)); padding: 18px 22px 18px; border-radius: 22px; background: linear-gradient(180deg, rgba(34, 38, 50, 0.92), rgba(20, 23, 32, 0.94)); user-select: text; }
.cf-h { display: flex; align-items: center; gap: 10px; font-size: 15px; letter-spacing: 0.08em; color: #fff; padding: 2px 0; }
.cf-h b { font-weight: 400; }
.cf-ico { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 12px; font-weight: 600; background: rgba(159, 184, 255, 0.14); color: #cfe0ff; box-shadow: inset 0 0 0 1px rgba(159, 184, 255, 0.4); }
.confirm.danger .cf-ico { background: rgba(255, 120, 110, 0.14); color: #ff9b91; box-shadow: inset 0 0 0 1px rgba(255, 120, 110, 0.42); }
.cf-msg { margin: 12px 0 18px; font-size: 13.5px; line-height: 1.85; color: var(--text-2); letter-spacing: 0.03em; }
.cf-act { display: flex; justify-content: flex-end; gap: 10px; }
.pill.danger { border-color: rgba(255, 120, 110, 0.4); color: #ffb3ab; background: rgba(255, 110, 100, 0.1); }
.pill.danger:hover { background: rgba(255, 110, 100, 0.2); border-color: rgba(255, 140, 130, 0.6); color: #fff; }

/* —— 7：“−”收起按钮 —— */
.minus-i { display: block; width: 12px; height: 1.6px; border-radius: 1px; background: currentColor; }
.max-i { display: block; width: 11px; height: 11px; border: 1.5px solid currentColor; border-radius: 3px; }
.size-btn.off { display: none; }
.ph-top .icon-btn.minus, .ph-top .size-btn { color: var(--text-2); }
.ph-top .icon-btn.minus:hover, .ph-top .size-btn:hover { color: #fff; }

/* —— 4：名称前缀（小号） —— */
.pfx { display: inline-block; font-size: 10px; font-weight: 400; font-style: normal; letter-spacing: 0.06em; color: var(--text-3); margin-right: 4px; vertical-align: 0.1em; opacity: 0.9; white-space: nowrap; }
.ph-title .pfx { font-size: 12px; letter-spacing: 0.1em; vertical-align: 0.55em; margin-right: 6px; }
.ph-title.editable .ph-tt { cursor: text; border-radius: 6px; transition: background 0.2s; }
.ph-title.editable:hover .ph-tt { background: rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.05); }
.ph-tt[contenteditable="true"] { outline: none; background: rgba(255, 255, 255, 0.07); box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.07); }

/* —— 12：完整路径（不再是大写宽字距的系统名） —— */
.ph-crumbs { font-size: 11.5px; letter-spacing: 0.04em; gap: 6px; }
.ph-crumbs .cr { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ph-crumbs .link-cr { border: 0; background: none; padding: 2px 4px; margin: -2px -4px; border-radius: 6px; color: var(--text-3); font: inherit; letter-spacing: inherit; cursor: pointer; transition: color 0.2s, background 0.2s; }
.ph-crumbs .link-cr:hover { color: #fff; background: rgba(255, 255, 255, 0.06); }
.ph-crumbs .cr:last-child { color: var(--text-2); }
.sheet-head { position: relative; z-index: 3; }
.ph-tools { gap: 8px; }
.ph-toolrow { display: flex; align-items: center; gap: 6px; }
.icon-btn.mini { width: 28px; height: 28px; }
.icon-btn.danger { color: var(--text-3); }
.icon-btn.danger:hover { color: #ff9b91; border-color: rgba(255, 120, 110, 0.4); background: rgba(255, 110, 100, 0.08); }
.tcolor .tdot { display: block; width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 10px var(--c); }

/* —— 15：笔记页放大到整页 80%（居中，可拖动；“−”还原） —— */
.sheet.max:not(.ov) { left: 10vw; right: 10vw; width: auto; top: 10vh; --sheet-h: 80vh; z-index: 8; border-radius: 26px; transform-origin: 50% 50%; }
.sheet.max:not(.ov) .sheet-seam { display: none; }
.sheet.max .view.entry .md, .sheet.max .editor { max-width: 920px; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .sheet.max:not(.ov) { left: 3vw; right: 3vw; top: 7vh; bottom: auto; --sheet-h: 86vh; }
}
.sheet.wide { width: var(--pw, 42vw); }   /* 旧的宽屏开关已移除 */

/* —— 5 / 7：“⋯”更多菜单 —— */
.has-more { position: relative; }
.more-btn { position: absolute; top: 7px; right: 7px; z-index: 2; width: 26px; height: 22px; border-radius: 8px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(20, 24, 34, 0.72); color: var(--text); font-size: 14px; line-height: 1; letter-spacing: 0; display: grid; place-items: center; cursor: pointer; opacity: 0; transition: opacity 0.15s, background 0.15s; backdrop-filter: blur(6px); }
.more-btn:hover { background: rgba(255, 255, 255, 0.14); }
.has-more:hover > .more-btn, .has-more:focus-within > .more-btn, .more-btn:focus-visible, .tcol:hover .more-btn, .tcol:focus-within .more-btn { opacity: 1; }
@media (hover: none) { .more-btn { opacity: 0.75; } }
.row.has-more > .more-btn { position: static; flex: none; margin-left: 2px; }
.tcol-h .more-btn { position: static; flex: none; }
.menu-i.danger { color: #ffaba3; }
.menu-i.danger:hover { background: rgba(255, 110, 100, 0.12); }
.menu-i.sub { padding-left: 28px; font-size: 12.5px; }
.mi-ico { display: inline-block; width: 18px; opacity: 0.7; }

/* —— 12：专题分栏 —— */
.blk-topics { margin-top: 4px; }
.tboard { display: flex; gap: 14px; overflow-x: auto; overflow-y: hidden; padding: 6px 2px 12px; scroll-snap-type: x proximity; scrollbar-width: thin; overscroll-behavior-x: contain; }
.tboard::-webkit-scrollbar { height: 4px; } .tboard::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 2px; }
.tcol { position: relative; flex: none; width: 248px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 8px; padding: 13px 12px 10px; border-radius: 18px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015)); border: 1px solid rgba(255, 255, 255, 0.075); }
.tcol::before { content: ""; position: absolute; left: 16px; right: 16px; top: 0; height: 2px; border-radius: 2px; background: var(--c, #9fb8ff); opacity: 0.6; }
.tcol-h { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tcol-h .tdot { flex: none; width: 9px; height: 9px; border-radius: 50%; cursor: pointer; box-shadow: 0 0 10px var(--c); grid-row: auto; transition: transform 0.2s var(--spring); }
.tcol-h .tdot:hover { transform: scale(1.35); }
.tcol-name { flex: 1; min-width: 0; text-align: left; background: none; border: 0; padding: 2px 0; color: var(--text); font: inherit; font-size: 14.5px; letter-spacing: 0.06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: text; }
.tcol-name.static { cursor: pointer; }
.tcol-name:not(.static):hover .tn { text-decoration: underline dotted rgba(255, 255, 255, 0.4); text-underline-offset: 4px; }
.tcol-h .tinput { flex: 1; min-width: 0; height: 28px; font-size: 13.5px; }
.tcol-n { flex: none; font-size: 11px; color: var(--text-3); }
.tcol-folders { align-self: flex-start; border: 0; background: rgba(255, 255, 255, 0.04); border-radius: 8px; padding: 3px 8px; font: inherit; font-size: 11.5px; color: var(--text-2); cursor: pointer; }
.tcol-folders:hover { background: rgba(255, 255, 255, 0.09); }
.tcol-list { display: flex; flex-direction: column; gap: 8px; height: calc(3 * 80px + 2 * 8px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 2px; }
.tcol-list::-webkit-scrollbar { width: 3px; } .tcol-list::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 2px; }
.tnote { position: relative; flex: none; height: 80px; display: flex; flex-direction: column; gap: 3px; padding: 11px 12px 8px; border-radius: 12px; background: rgba(255, 255, 255, 0.035); border: 1px solid rgba(255, 255, 255, 0.06); cursor: pointer; overflow: hidden; transition: background 0.18s, border-color 0.18s; }
.tnote:hover { background: rgba(255, 255, 255, 0.07); border-color: rgba(255, 255, 255, 0.13); }
.tnote:focus-visible { outline: none; border-color: rgba(244, 227, 193, 0.5); }
.tn-t { font-size: 13px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 26px; letter-spacing: 0.03em; }
.tn-x { font-size: 11.5px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tn-f { color: var(--text-2); }
.tn-m { display: flex; align-items: center; gap: 6px; margin-top: auto; }
.tn-m .stag { font-size: 10px; padding: 1px 7px 1px 5px; }
.tcol-empty { flex: 1; display: grid; place-items: center; font-size: 12px; color: var(--text-3); border: 1px dashed rgba(255, 255, 255, 0.08); border-radius: 12px; }
.tcol-foot { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; }
.tcol-foot .link { font-size: 12px; }
.tcol.ghost { cursor: pointer; border-style: dashed; border-color: rgba(244, 227, 193, 0.28); text-align: left; font: inherit; color: var(--text-2); justify-content: flex-start; min-height: 160px; background: rgba(244, 227, 193, 0.025); transition: background 0.2s, border-color 0.2s; }
.tcol.ghost:hover { background: rgba(244, 227, 193, 0.06); border-color: rgba(244, 227, 193, 0.5); }
.tcol.ghost::before { background: #f4e3c1; opacity: 0.35; }
.tcol.ghost .tdot { background: #f4e3c1; --c: #f4e3c1; cursor: inherit; }
.tcol.ghost.lone { width: 330px; }
.tcol-guide { font-size: 12px; line-height: 1.8; color: var(--text-3); letter-spacing: 0.03em; }
.loose { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.loose-t { font-size: 11px; color: var(--text-3); letter-spacing: 0.12em; margin-right: 4px; }
.add-chip small { margin-left: 4px; opacity: 0.6; font-size: 10px; }

/* 最近继续（缩小） */
.cards.mini { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.card.mini { position: relative; overflow: hidden; padding: 11px 12px 9px; min-height: 0; }
.card.mini .card-t { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card.mini .card-x { display: flex; align-items: center; gap: 6px; margin-top: 4px; -webkit-line-clamp: unset; }
.card.mini .stag { font-size: 10px; padding: 1px 7px 1px 5px; }

/* —— 14：每条笔记顶部一条低透明度的彩色细条 —— */
.tnote::before, .eb-note::before, .eb-card::before, .card.mini::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--nc, transparent); opacity: 0.4; pointer-events: none; }
.eb-note, .eb-card { position: relative; overflow: hidden; }

/* 统计栏（最底部） */
.desk-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 22px 0 4px; padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--hair); font-size: 12px; letter-spacing: 0.08em; color: var(--text-3); }
.desk-stats b { font-weight: 400; color: var(--text); margin-right: 2px; }
.desk-stats > span:first-child { color: var(--text-2); margin-right: auto; }

/* —— 18：文件夹 —— */
.folders { display: flex; flex-wrap: wrap; gap: 10px; margin: 2px 0 14px; }
.fcard { position: relative; display: flex; align-items: center; gap: 8px; min-width: 170px; padding: 10px 42px 10px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); cursor: pointer; overflow: hidden; transition: background 0.18s, border-color 0.18s; }
.fcard::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; border-radius: 2px; background: var(--c); opacity: 0.6; }
.fcard:hover { background: rgba(255, 255, 255, 0.075); border-color: rgba(255, 255, 255, 0.15); }
.fc-ico { font-size: 14px; }
.fc-name { border: 0; background: none; padding: 0; font: inherit; font-size: 13.5px; color: var(--text); cursor: text; letter-spacing: 0.04em; }
.fc-name:hover { text-decoration: underline dotted rgba(255, 255, 255, 0.4); text-underline-offset: 4px; }
.fcard .tinput { height: 28px; width: 130px; font-size: 13px; }
.fc-n { font-size: 11px; color: var(--text-3); }
.fcard > .more-btn { top: 50%; transform: translateY(-50%); }
.field.off { display: none; }

/* —— 17：面板内的范围搜索 —— */
.ss { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.ss-cap { display: flex; align-items: center; gap: 6px; height: 28px; width: 168px; padding: 0 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.09); color: var(--text-3); transition: width 0.25s var(--spring-soft), border-color 0.2s; cursor: text; }
.ss-cap:focus-within { width: 220px; border-color: rgba(159, 184, 255, 0.45); color: var(--text-2); }
.ss-in { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: none; color: var(--text); font: inherit; font-size: 12.5px; letter-spacing: 0.03em; }
.ss-scope { font-size: 9.5px; letter-spacing: 0.14em; color: var(--text-3); padding-left: 12px; white-space: nowrap; opacity: 0.85; }
.ss-list { position: absolute; top: 32px; right: 0; width: 300px; max-height: 340px; overflow-y: auto; padding: 6px; border-radius: 14px; z-index: 40; display: none; background: linear-gradient(180deg, rgba(34, 38, 50, 0.95), rgba(22, 25, 34, 0.95)); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4); }
.ss-list.on { display: block; }
.ss-hit { display: flex; align-items: baseline; gap: 6px; width: 100%; text-align: left; border: 0; background: none; color: var(--text); padding: 8px 10px; border-radius: 10px; font: inherit; font-size: 13px; cursor: pointer; }
.ss-hit.on, .ss-hit:hover { background: rgba(255, 255, 255, 0.07); }
.ss-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-sub { flex: none; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; color: var(--text-3); }
.ss-empty { padding: 10px; font-size: 12px; color: var(--text-3); }
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .ss-cap { width: 120px; } .ss-cap:focus-within { width: 160px; } .ss-scope { display: none; }
}

/* —— 15：笔记分栏 —— 笔记列最宽为原来的一半，内容少时按内容自适应；右侧为阅读区 */
.eb-split.two { grid-template-columns: fit-content(50%) minmax(0, 1fr); gap: 14px; }
.eb-split.two .eb-stream { min-width: 240px; }
.eb-reader.idle { display: grid; place-items: center; text-align: center; background: rgba(0, 0, 0, 0.1); border-style: dashed; }
.er-idle { display: flex; flex-direction: column; gap: 8px; max-width: 260px; font-size: 12.5px; line-height: 1.8; color: var(--text-3); }
.er-idle b { font-weight: 400; color: var(--text-2); letter-spacing: 0.16em; }
.eb-note .en-t { padding-right: 30px; }
.eb-card .oc-t { padding-right: 30px; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .eb-split.two:not(.open) { grid-template-columns: minmax(0, 1fr); }
  .eb-split.two:not(.open) .eb-reader.idle { display: none; }
}

/* —— 13：版本号 —— */
.ed-meta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 0.5fr); gap: 10px; }
.ver-in { font-variant-numeric: tabular-nums; }
.ver-row { flex-wrap: wrap; margin: 10px 0 12px; }
.ver-row .ver-in { width: 190px; flex: none; }

/* —— 16：所见即所得 Markdown 编辑器 —— */
.mde { display: flex; flex-direction: column; border: 1px solid var(--hair); border-radius: 14px; background: rgba(0, 0, 0, 0.14); overflow: hidden; }
.mde:focus-within { border-color: rgba(94, 160, 255, 0.45); }
.mde-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; padding: 6px 8px; border-bottom: 1px solid var(--hair); background: rgba(255, 255, 255, 0.025); position: sticky; top: 0; z-index: 1; }
.mde-b { min-width: 28px; height: 26px; padding: 0 7px; border: 0; border-radius: 7px; background: none; color: var(--text-2); font: inherit; font-size: 12.5px; cursor: pointer; transition: background 0.15s, color 0.15s; }
.mde-b:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.mde-b.on { background: rgba(94, 160, 255, 0.2); color: #fff; }
.mde-b.b { font-weight: 700; } .mde-b.i { font-style: italic; } .mde-b.s { text-decoration: line-through; }
.mde-sep { width: 1px; height: 16px; margin: 0 4px; background: var(--hair); }
.mde-sp { flex: 1; }
.mde-bar.src .mde-b:not(.mde-src) { opacity: 0.35; pointer-events: none; }
.md.md-edit { min-height: 16em; padding: 14px 16px 18px; outline: none; cursor: text; user-select: text; -webkit-user-select: text; }
.md.md-edit.is-empty::before { content: attr(data-placeholder); position: absolute; pointer-events: none; color: var(--text-3); opacity: 0.8; }
.md.md-edit { position: relative; }
.md.md-edit > :first-child { margin-top: 0; }
.mde .md-src { border: 0; border-radius: 0; background: none; min-height: 16em; padding: 14px 16px; font: 13px/1.8 var(--mono); resize: vertical; }
.md h1 { font-weight: 400; font-size: 22px; letter-spacing: 0.08em; margin: 1.1em 0 0.45em; }
.md h6 { font-weight: 400; font-size: 14px; margin: 1em 0 0.4em; color: var(--text-2); }
.md li.task { list-style: none; margin-left: -1.3em; }
.md li.task input { margin: 0 8px 0 0; vertical-align: -1px; accent-color: #9fb8ff; }
.md li.task.done { color: var(--text-3); text-decoration: line-through; text-decoration-color: rgba(255, 255, 255, 0.25); }
.md del { color: var(--text-3); }
.md hr { border: 0; height: 1px; background: var(--hair); margin: 1.4em 0; }
.md pre { position: relative; }
.md pre[data-lang]::after { content: attr(data-lang); position: absolute; right: 10px; top: 6px; font: 10px var(--mono); color: var(--text-3); letter-spacing: 0.1em; }
.md .md-table { overflow-x: auto; margin: 0 0 1em; }
.md table { border-collapse: collapse; font-size: 13px; min-width: 50%; }
.md th, .md td { border: 1px solid var(--hair); padding: 6px 10px; text-align: left; }
.md th { background: rgba(255, 255, 255, 0.04); font-weight: 400; color: var(--text-2); }
.md img { max-width: 100%; border-radius: 10px; }
.ref-token { display: inline-block; padding: 0 6px; margin: 0 2px; border-radius: 6px; background: rgba(94, 160, 255, 0.14); color: #cfe0ff; font-size: 0.92em; }

/* —— 16：全局搜索说明与结果路径 —— */
.s-scope { padding: 6px 18px 2px 46px; font-size: 11px; letter-spacing: 0.12em; color: var(--text-3); }
.s-scope b { font-weight: 400; color: #f4e3c1; }
.s-path { display: block; font-size: 10.5px; letter-spacing: 0.04em; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: 0.85; }
.s-group { padding-top: 10px; color: rgba(244, 227, 193, 0.7); }
.search .s-cap.drag-handle { cursor: grab; }
.search .s-cap.drag-handle input { cursor: text; }

/* 历史抽屉：头部可拖动 */
.drawer .dr-top.drag-handle { cursor: grab; }

/* 新专题弹窗 */
.nt-pop .row-actions { margin-top: 8px; gap: 8px; align-items: center; }
.nt-pop .row-actions .faint { font-size: 11px; }
.nt-chips .faint { font-size: 11px; margin-right: 4px; }
/* v1.7：删除免确认（红色、收进“⋯”）· 专题不限数量 / 卫星置顶 · 自动保存 · 速记 · 命令面板 · 效率模式 */

/* —— 删除：统一红色，放在菜单最下方 —— */
.menu-sep { height: 1px; margin: 4px 6px; background: rgba(255, 255, 255, 0.1); }
.menu-i.danger { color: #ff7b70; }
.menu-i.danger .mi-ico { color: #ff7b70; }
.menu-i.danger:hover { background: rgba(255, 90, 80, 0.16); color: #ff9a90; }
.pill.danger { color: #ff8a80; border-color: rgba(255, 100, 90, 0.5); background: rgba(255, 90, 80, 0.12); }
.cc-danger .cc-btns { justify-content: flex-start; }
.ph-more.more-btn { position: static; opacity: 1; width: 30px; height: 30px; border-radius: 10px; }

/* —— 卫星标记：置顶的专题 —— */
.sat-badge { flex: none; font-size: 11px; color: var(--c, #f4e3c1); text-shadow: 0 0 8px var(--c, #f4e3c1); margin-left: -2px; }
.tcol.no-sat .tcol-h .tdot { opacity: 0.7; }
.ver-row .more-btn { position: static; opacity: 1; width: 30px; height: 28px; }

/* —— 自动保存编辑 —— */
.md-read { cursor: text; border-radius: 12px; transition: background 0.2s; }
.md-read:hover { background: rgba(255, 255, 255, 0.018); }
.read-foot { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.saved-chip { font-size: 11px; letter-spacing: 0.1em; color: var(--text-3); }
.saved-chip.ok::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #7fd6a4; margin-right: 6px; vertical-align: 1px; box-shadow: 0 0 6px rgba(127, 214, 164, 0.7); }
.draft-bar { gap: 12px; }
.mde-foot { display: flex; align-items: center; gap: 10px; padding: 6px 12px; border-top: 1px solid rgba(255, 255, 255, 0.06); font-size: 11px; letter-spacing: 0.08em; color: var(--text-3); }
.mde-status[data-tone="ok"] { color: #8fdcb0; }
.mde-status[data-tone="busy"] { color: #9cc2ff; }
.mde-status[data-tone="warn"] { color: #ffb08a; }
.mde-count { font-variant-numeric: tabular-nums; }
.mde { position: relative; }
.editor.autosave .row-actions { align-items: center; }
.ed-hint { font-size: 11px; }
.ed-more.more-btn { position: static; opacity: 1; width: 32px; height: 30px; border-radius: 10px; }
.ed-meta-d { font-size: 12px; color: var(--text-3); }
.ed-meta-d summary { cursor: pointer; padding: 4px 0; letter-spacing: 0.1em; list-style: none; }
.ed-meta-d summary::before { content: "▸ "; }
.ed-meta-d[open] summary::before { content: "▾ "; }
.tpl-row { align-items: center; }
.chip.tpl { cursor: pointer; }

/* 补全弹层（[[ 与 /） */
.mde-sug { position: absolute; z-index: 20; width: 260px; max-height: 280px; overflow-y: auto; padding: 5px; border-radius: 14px; background: linear-gradient(180deg, rgba(34, 38, 50, 0.96), rgba(22, 25, 34, 0.96)); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45); }
.mde-sug-i { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; border: 0; background: none; padding: 7px 9px; border-radius: 9px; font-size: 13px; color: var(--text); cursor: pointer; }
.mde-sug-i.on, .mde-sug-i:hover { background: rgba(94, 160, 255, 0.16); }
.mde-sug-ico { flex: none; min-width: 26px; font-size: 11px; color: var(--text-3); text-align: center; }
.mde-sug-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mde-sug-i small { flex: none; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-3); font-size: 11px; }

/* 专注写作 */
.mde.mde-focus { position: fixed; inset: 4vh max(4vw, calc(50vw - 460px)); z-index: 80; background: rgba(12, 14, 20, 0.97); box-shadow: 0 30px 120px rgba(0, 0, 0, 0.7); pointer-events: auto; }
.mde.mde-focus .md-edit { flex: 1; overflow-y: auto; font-size: calc(16px * var(--fs, 1)); padding: 28px 36px; }
html.writing-focus #stage { filter: brightness(0.35) blur(2px); transition: filter 0.4s; }
.mde-focus-b.on, .mde.mde-focus .mde-focus-b { color: #9cc2ff; }

/* 大纲 + 被引用 */
.read-wrap.has-outline { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: start; }
.outline { position: sticky; top: 8px; display: flex; flex-direction: column; gap: 2px; padding: 8px 6px; border-left: 1px solid rgba(255, 255, 255, 0.08); max-height: 60vh; overflow-y: auto; }
.ol-h { font-size: 10.5px; letter-spacing: 0.3em; color: var(--text-3); padding: 0 6px 6px; }
.ol-i { text-align: left; border: 0; background: none; color: var(--text-2); font-size: 12px; padding: 4px 6px; border-radius: 7px; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ol-i:hover { background: rgba(255, 255, 255, 0.06); color: #fff; }
.ol-h2 { padding-left: 14px; } .ol-h3 { padding-left: 22px; font-size: 11.5px; }
@media (max-width: 760px) { .read-wrap.has-outline { grid-template-columns: 1fr; } .outline { position: static; flex-direction: row; flex-wrap: wrap; border-left: 0; max-height: none; } }
.backlinks:not(.empty-bl) { margin-top: 18px; padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.bl-h { width: 100%; font-size: 10.5px; letter-spacing: 0.26em; color: var(--text-3); margin-bottom: 2px; }
.bl-i { border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.04); color: var(--text); border-radius: 999px; padding: 4px 11px; font-size: 12px; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.bl-i:hover { border-color: rgba(94, 160, 255, 0.5); }

/* —— 速记 / 导入 —— */
.qc { position: absolute; left: 50%; bottom: 9vh; width: min(520px, calc(100vw - 24px)); margin-left: calc(min(520px, calc(100vw - 24px)) / -2); z-index: 66; pointer-events: auto; border-radius: 20px; padding: 10px 12px 12px; background: linear-gradient(180deg, rgba(30, 34, 45, 0.94), rgba(18, 21, 29, 0.95)); display: flex; flex-direction: column; gap: 8px; box-shadow: 0 20px 70px rgba(0, 0, 0, 0.5); }
.qc-h { display: flex; align-items: center; gap: 10px; }
.qc-h b { font-weight: 400; letter-spacing: 0.3em; font-size: 12px; color: var(--text-2); }
.qc-tgt { border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.05); color: var(--text); border-radius: 999px; padding: 4px 11px; font-size: 12px; cursor: pointer; max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qc-tgt:hover { border-color: rgba(94, 160, 255, 0.5); }
.qc-in { width: 100%; resize: vertical; min-height: 120px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.22); color: var(--text); padding: 12px 14px; font: inherit; font-size: calc(14px * var(--fs, 1)); line-height: 1.8; outline: none; }
.qc-in:focus { border-color: rgba(94, 160, 255, 0.55); }
.qc-in::first-line { font-weight: 500; color: #fff; }
.qc-f { display: flex; align-items: center; gap: 10px; }
.tgt-menu { max-height: 50vh; overflow-y: auto; }
.menu-i.sub2 { padding-left: 38px; font-size: 12px; }
.imp-b { display: flex; flex-direction: column; gap: 10px; padding: 4px 2px; }
.imp-opt { font-size: 12.5px; color: var(--text-2); display: flex; align-items: center; gap: 6px; }
.kbd-hint { font-size: 11px; }
.desk-actions .grow { flex: 1; }

/* —— 命令面板 —— */
.ck-wrap { position: absolute; inset: 0; z-index: 75; pointer-events: auto; background: rgba(4, 6, 10, 0.35); }
.ck { position: absolute; left: 50%; top: 12vh; width: min(600px, calc(100vw - 24px)); transform: translateX(-50%); border-radius: 22px; padding: 6px; background: linear-gradient(180deg, rgba(30, 34, 45, 0.96), rgba(18, 21, 29, 0.97)); box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55); }
.ck-cap { display: flex; align-items: center; gap: 10px; padding: 6px 10px; }
.ck-k { font-size: 10.5px; color: var(--text-3); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 6px; padding: 2px 6px; letter-spacing: 0.05em; }
.ck-in { flex: 1; min-width: 0; border: 0; outline: none; background: none; color: #fff; font: inherit; font-size: 15px; letter-spacing: 0.04em; padding: 8px 0; }
.ck-list { max-height: min(60vh, 480px); overflow-y: auto; padding: 2px 4px 6px; }
.ck-g { font-size: 10px; letter-spacing: 0.3em; color: var(--text-3); padding: 10px 10px 4px; }
.ck-i { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: 0; background: none; color: var(--text); padding: 8px 10px; border-radius: 11px; font-size: 13.5px; cursor: pointer; }
.ck-i.on { background: rgba(94, 160, 255, 0.16); }
.ck-ico { flex: none; width: 22px; text-align: center; color: var(--text-3); }
.ck-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ck-h { flex: none; max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-3); font-size: 11px; }
.ck-i kbd, .kbd { font: inherit; font-size: 10.5px; color: var(--text-3); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 5px; padding: 1px 6px; }
.ck-foot { padding: 6px 12px 4px; font-size: 11px; border-top: 1px solid rgba(255, 255, 255, 0.06); }

/* —— 搜索：筛选 / 最近 —— */
.s-filters, .s-recent, .s-tips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px 14px; }
.s-fchip { cursor: pointer; border-color: rgba(94, 160, 255, 0.45); }
.s-recent .chip, .s-tips .chip { cursor: pointer; }
.ghost-chip { background: none; border-style: dashed; }
.s-sn mark, .s-t mark { background: rgba(94, 160, 255, 0.28); color: #fff; border-radius: 3px; padding: 0 1px; }

/* —— 多选 / 拖拽 —— */
.eb.selecting [data-entry] { cursor: copy; }
[data-entry].sel-on { outline: 2px solid rgba(94, 160, 255, 0.75); outline-offset: -2px; background: rgba(94, 160, 255, 0.1) !important; }
.bulk { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 12; display: flex; align-items: center; gap: 8px; padding: 8px 10px 8px 16px; border-radius: 999px; background: linear-gradient(180deg, rgba(34, 40, 54, 0.96), rgba(20, 24, 33, 0.96)); box-shadow: 0 14px 44px rgba(0, 0, 0, 0.5); max-width: calc(100% - 24px); flex-wrap: wrap; }
.bulk-n { font-weight: 400; font-size: 12.5px; letter-spacing: 0.12em; color: #cfe0ff; margin-right: 4px; }
.bulk-more.more-btn { position: static; opacity: 1; width: 32px; height: 30px; border-radius: 10px; }
.bulk-hint { font-size: 10.5px; width: 100%; text-align: center; }
.drag-ghost { position: fixed; top: -100px; left: -100px; padding: 6px 12px; border-radius: 999px; background: #2a3a5a; color: #fff; font-size: 12px; }
body.note-dragging [data-drop-topic], body.note-dragging .sat-label { transition: box-shadow 0.15s, transform 0.15s; }
body.note-dragging [data-drop-topic] { box-shadow: inset 0 0 0 1px rgba(94, 160, 255, 0.35); }
.drop-on { box-shadow: inset 0 0 0 2px rgba(94, 160, 255, 0.9), 0 0 24px rgba(94, 160, 255, 0.35) !important; transform: scale(1.02); }

/* —— 并排对照 —— */
.sbs { position: absolute; inset: calc(var(--head-h, 110px) - 4px) 10px 10px; z-index: 8; border-radius: 20px; display: flex; flex-direction: column; background: linear-gradient(180deg, rgba(26, 30, 41, 0.97), rgba(16, 19, 27, 0.98)); outline: none; }
.sbs-top { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.07); }
.sbs-top b { font-weight: 400; letter-spacing: 0.2em; font-size: 12.5px; }
.sbs-body { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; }
.sbs-col { min-height: 0; overflow-y: auto; padding: 14px 18px 22px; }
.sbs-col.l { border-right: 1px solid rgba(255, 255, 255, 0.07); }
.sbs-h { display: flex; align-items: baseline; gap: 6px; margin-bottom: 10px; position: sticky; top: -14px; padding: 8px 0; background: rgba(20, 23, 32, 0.95); }
.sbs-h b { font-weight: 400; color: #fff; }
@media (max-width: 760px) { .sbs-body { grid-template-columns: 1fr; } .sbs-col.l { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.07); } }

/* —— 字号与信息密度 —— */
.md { font-size: calc(14.5px * var(--fs, 1)); }
.md-edit { font-size: calc(14.5px * var(--fs, 1)); }
html.density-compact .tnote { height: 62px; padding: 8px 10px 6px; }
html.density-compact .tnote .tn-x { display: none; }
html.density-compact .tcol-list { height: calc(3 * 62px + 2 * 6px); gap: 6px; }
html.density-compact .row { padding-top: 6px; padding-bottom: 6px; }
html.density-compact .eb-card { padding: 10px 12px 8px; gap: 4px; }
html.density-compact .card.mini { padding: 8px 10px 7px; }
html.density-compact .section, html.density-compact .blk { margin-bottom: 14px; }
html.density-compact .sheet-body { --gap: 10px; }
/* 星痕 v1.8 —— 打开即编辑 / 吸顶与固定操作栏 / 分栏快速编辑 / 专注写作铺满 / 图标按钮 */

/* —— 9：屏名为数字 —— */
.screen-name { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; letter-spacing: 0.08em; }

/* —— 1：专注写作 —— 面板本身铺满（不再用 fixed 子元素，避免被玻璃的 backdrop-filter 困住） */
.sheet.writing:not(.ov) { left: 2.5vw !important; right: 2.5vw !important; top: 3vh !important; width: auto !important; --sheet-h: 94vh; z-index: 9; border-radius: 24px; transform-origin: 50% 50%; }
.sheet.writing .sheet-head, .sheet.writing .sheet-seam, .sheet.writing .rail, .sheet.writing .outline,
.sheet.writing .entry-main > :not(.pane):not(.sticky-foot), .sheet.writing .sticky-foot > :not(.foot-status):not(.ed-more):not(.grow) { display: none !important; }
.sheet.writing .entry-layout, .sheet.writing .has-outline { grid-template-columns: minmax(0, 1fr) !important; }
.sheet.writing .sheet-body { padding-top: 10px; }
.sheet.writing .mde { max-width: 900px; margin: 0 auto; border-color: transparent; background: none; }
.sheet.writing .md-edit { font-size: calc(16.5px * var(--fs, 1)); padding: 26px 40px 40px; min-height: 70vh; }
/* 旧版 fixed 专注样式作废：保持原位 */
.mde.mde-focus { position: relative; inset: auto; z-index: auto; background: none; box-shadow: none; }
.mde.mde-focus .md-edit { overflow: visible; padding: 26px 40px 40px; }

/* —— 7：编辑器工具栏吸顶；底部操作栏固定、与顶部一样留窄边 —— */
.mde { overflow: clip; }                      /* clip 不产生滚动容器，吸顶才能生效 */
.view.entry .mde-bar, .eb-reader .mde-bar { top: 0; z-index: 3; background: rgba(20, 24, 33, 0.9); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); }
.sheet-body:has(> .view.entry) { padding-bottom: 0; }
.entry-actions.sticky-foot { position: sticky; bottom: 0; z-index: 4; margin: 18px -24px 0; padding: 10px 24px 12px; gap: 8px; flex-wrap: nowrap;
  background: linear-gradient(180deg, rgba(18, 21, 30, 0.82), rgba(14, 17, 25, 0.94)); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid var(--hair); }
.entry-actions.sticky-foot::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.06), transparent); }
.foot-status { min-width: 0; display: flex; align-items: center; overflow: hidden; }
.foot-status .mde-foot { border: 0; padding: 0; white-space: nowrap; }
.sticky-foot .pill { white-space: nowrap; }
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
  .entry-actions.sticky-foot { margin: 14px -18px 0; padding: 8px 12px 10px; overflow-x: auto; }
  .foot-status { display: none; }
}

/* 保存为新版本弹层 */
.ver-pop { display: flex; flex-direction: column; gap: 8px; min-width: 240px; padding: 12px; }
.ver-pop .menu-h { font-size: 11px; letter-spacing: 0.3em; color: var(--text-3); }
.ver-pop input { width: 100%; }
.ver-pop .pill { align-self: flex-end; }

/* —— 5：分栏快速编辑 / 分栏新建 —— */
.eb { container-type: inline-size; }
.eb-reader { position: relative; }
.eb-reader::before { content: ""; position: absolute; left: 18px; right: 18px; top: 0; height: 3px; border-radius: 0 0 3px 3px; background: var(--nc, transparent); opacity: 0.55; pointer-events: none; }
.eb-reader:not(.idle) { display: flex; flex-direction: column; padding: 14px 18px 0; }
.eb-reader .er-body { flex: 1; min-height: 0; margin-top: 8px; }
.eb-reader .qe-title { width: 100%; margin: 4px 0 10px; font-size: 20px; font-weight: 300; letter-spacing: 0.06em; }
.eb-reader .mde { border-radius: 12px; }
.eb-reader .md-edit { min-height: 12em; }
.eb-reader .er-actions { position: sticky; bottom: 0; z-index: 3; margin: 12px -18px 0; padding: 9px 18px 11px; gap: 10px;
  background: linear-gradient(180deg, rgba(18, 21, 30, 0.8), rgba(14, 17, 25, 0.95)); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.eb-reader .er-actions .mde-foot { border: 0; padding: 0; white-space: nowrap; }
.eb-reader .er-hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.eb-open { flex: none; }
.er-new { font-weight: 400; letter-spacing: 0.24em; color: var(--text); font-size: 12px; }
.compose.embed { padding: 0; }
.compose.embed .title-in { font-size: 20px; }
.compose.embed .done-btn { position: sticky; bottom: 10px; }
.eb-reader.new { border-style: solid; border-color: rgba(244, 227, 193, 0.22); }
/* 面板较窄（含竖屏）时：打开笔记后右侧铺满，左侧列表让位 */
@container (max-width: 620px) {
  .eb-split.two.open { grid-template-columns: minmax(0, 1fr) !important; }
  .eb-split.two.open .eb-stream { display: none; }
}

/* —— 4：只显示符号的按钮；悬停 / 聚焦时文字从符号旁滑出 —— */
.ia { display: inline-flex; align-items: center; height: 30px; padding: 0 7px; gap: 0; border: 1px solid transparent; border-radius: 999px; background: none; color: var(--text-3);
  font: inherit; font-size: 12px; letter-spacing: 0.12em; cursor: pointer; transition: color 0.25s, background 0.25s, border-color 0.25s, gap 0.3s var(--spring-soft), padding 0.3s var(--spring-soft); }
.ia-i { display: grid; place-items: center; width: 16px; height: 16px; flex: none; }
.ia-i svg { width: 16px; height: 16px; }
.ia-t { max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width 0.35s var(--spring-soft), opacity 0.2s; }
.ia:hover, .ia:focus-visible { color: var(--text); background: rgba(255, 255, 255, 0.06); border-color: var(--hair); gap: 6px; padding: 0 11px 0 8px; outline: none; }
.ia:hover .ia-t, .ia:focus-visible .ia-t { max-width: 12em; opacity: 1; }
.ia:active { transform: scale(0.95); }
.tcol-foot { display: flex; align-items: center; gap: 4px; }
.tcol-foot .grow { flex: 1; }
.tcol .tc-open { flex-direction: row-reverse; }
.tcol .tc-open:hover, .tcol .tc-open:focus-visible { padding: 0 8px 0 11px; }
@media (hover: none) { .ia .ia-t { max-width: 12em; opacity: 1; } .ia { gap: 6px; } }

/* —— 3：专题卡片空白处可点 —— */
.tcol { cursor: pointer; }
.tcol .tnote, .tcol button, .tcol .tcol-name { cursor: pointer; }
.tcol:hover { border-color: color-mix(in srgb, var(--c, #fff) 26%, transparent); }

/* —— 6：笔记颜色 —— 复位按钮 */
.sw.sw-reset { display: grid; place-items: center; background: none; color: var(--text-2); font-size: 13px; border: 1px dashed var(--hair-2); }

/* 程序聚焦到正文区（Esc 离开编辑器后）不画白色描边 */
.sheet-body:focus, .sheet-body:focus-visible { outline: none; }
/* v1.9 —— 公共星域 / 友邻文明 / 访客模式 / 实时保存 / 图文笔记，以及面板视觉统一（在 v13–v18 基础上叠加，不改旧结构） */

/* ===== 面板视觉统一：同一套圆角、描边、标题节奏、菜单与焦点环 ===== */
:root { --r-panel: 22px; --r-pop: 16px; --r-ctl: 12px; --line-soft: rgba(220, 230, 255, 0.1); --focus: 0 0 0 2px rgba(159, 184, 255, 0.55); --danger: #ff9d8c; }
.pop.glass, .modal.glass, .redcoast.glass { border-radius: var(--r-pop); }
.modal.glass { border-radius: var(--r-panel); }
.pop .menu { display: flex; flex-direction: column; min-width: 188px; padding: 4px; gap: 1px; }
.pop .menu-i { display: flex; align-items: center; gap: 10px; text-align: left; padding: 8px 12px; border-radius: 10px; font-size: 13px; color: var(--text); letter-spacing: 0.02em; transition: background 0.18s, color 0.18s; }
.pop .menu-i:hover, .pop .menu-i:focus-visible { background: rgba(255, 255, 255, 0.08); outline: none; }
.pop .menu-i.danger { color: var(--danger); }
.pop .menu-i.danger:hover { background: rgba(255, 120, 100, 0.12); }
.pop .menu-sep { height: 1px; margin: 4px 8px; background: var(--line-soft); }
.sheet .sheet-head { border-bottom-color: var(--line-soft); }
.sheet .ph-title { letter-spacing: 0.04em; }
.pill:focus-visible, .btn:focus-visible, .icon-btn:focus-visible, .more-btn:focus-visible, .menu-i:focus-visible, .cz-card:focus-visible, .acc-opt:focus-visible { outline: none; box-shadow: var(--focus); }
.win-body .set-row small { line-height: 1.55; }
.win-body .group-t { margin-top: 18px; }

/* ===== 首屏远处的星系群（公共星域入口） ===== */
.cosmos-gate { position: absolute; right: clamp(24px, 9vw, 180px); top: clamp(72px, 16vh, 200px); width: clamp(150px, 16vw, 240px); aspect-ratio: 5 / 3; padding: 0; border: 0; background: none; cursor: pointer;
  opacity: 0; pointer-events: none; transform: scale(0.96); transition: opacity 1.2s var(--ease), transform 1.2s var(--ease); z-index: 3; }
.cosmos-gate.on { opacity: 0.62; pointer-events: auto; transform: none; }
.cosmos-gate.on:hover, .cosmos-gate.on:focus-visible { opacity: 1; transform: scale(1.04); outline: none; }
.cosmos-gate .cg-art { position: absolute; inset: 0; filter: drop-shadow(0 0 14px rgba(170, 190, 255, 0.35)); animation: cg-drift 38s linear infinite, cosmos-breathe 3.2s ease-in-out infinite; }
.cosmos-gate.on .cg-art { filter: drop-shadow(0 0 18px rgba(170, 190, 255, 0.55)) drop-shadow(0 0 36px rgba(120, 140, 255, 0.3)); }
@keyframes cosmos-breathe { 0%,100% { scale: 1; filter: drop-shadow(0 0 14px rgba(170,190,255,0.35)); } 50% { scale: 1.04; filter: drop-shadow(0 0 22px rgba(170,190,255,0.65)) drop-shadow(0 0 42px rgba(120,140,255,0.35)); } }
/* v1.11.14 公共星域呼吸脉动但不喧宾夺主 */
.cosmos-gate::before { content:""; position:absolute; inset:-10%; border-radius:50%; border:1px solid rgba(170,190,255,0.12); animation: cosmos-ring 3.2s ease-in-out infinite; pointer-events:none; }
@keyframes cosmos-ring { 0%,100% { scale:0.96; opacity:0.35; } 50% { scale:1.06; opacity:0.12; } }
.cosmos-gate .cg-art svg { width: 100%; height: 100%; display: block; }
@keyframes cg-drift { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(4deg) scale(1.03); } 100% { transform: rotate(0deg) scale(1); } }
.cosmos-gate .cg-tip { position: absolute; left: 50%; top: 100%; transform: translate(-50%, 4px); display: flex; flex-direction: column; align-items: center; gap: 3px; white-space: nowrap; pointer-events: none;
  opacity: 0.45; transition: opacity 0.4s, transform 0.4s var(--ease); }
.cosmos-gate .cg-tip b { font-weight: 300; font-size: 13px; letter-spacing: 0.42em; color: var(--text); padding-left: 0.42em; }
.cosmos-gate .cg-tip small { font-size: 10.5px; letter-spacing: 0.18em; color: var(--text-3); opacity: 0; transition: opacity 0.4s; }
.cosmos-gate:hover .cg-tip, .cosmos-gate:focus-visible .cg-tip { opacity: 1; transform: translate(-50%, 8px); }
.cosmos-gate:hover .cg-tip small, .cosmos-gate:focus-visible .cg-tip small { opacity: 1; }
.cg-badge { display: none; position: absolute; right: 8%; top: 8%; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #e8806e; color: #fff; font-size: 11px; line-height: 18px; text-align: center; box-shadow: 0 0 12px rgba(232, 128, 110, 0.7); }
.cg-badge.on { display: inline-block; }
.rc-open .cg-badge { position: static; margin-left: 6px; }
html.in-cosmos .hero, html.in-cosmos .corner.left .screen-name { opacity: 0 !important; pointer-events: none; }

/* ===== 公共星域 ===== */
.cosmos { position: fixed; inset: 0; z-index: 40; display: flex; flex-direction: column; overflow: hidden; visibility: hidden; opacity: 0; pointer-events: none;
  transition: opacity 0.7s var(--ease), visibility 0s linear 0.7s; }
.cosmos.on { visibility: visible; opacity: 1; pointer-events: auto; transition: opacity 0.7s var(--ease); }
.cosmos .cz-sky { position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(1200px 700px at 72% 18%, rgba(120, 140, 255, 0.16), transparent 60%),
    radial-gradient(900px 600px at 12% 90%, rgba(244, 227, 193, 0.1), transparent 60%),
    radial-gradient(1px 1px at 12% 22%, #fff 99%, transparent), radial-gradient(1px 1px at 32% 68%, #cfd8ff 99%, transparent),
    radial-gradient(1px 1px at 54% 14%, #fff 99%, transparent), radial-gradient(1.5px 1.5px at 78% 58%, #fff 99%, transparent),
    radial-gradient(1px 1px at 88% 32%, #dfe6ff 99%, transparent), radial-gradient(1px 1px at 22% 84%, #fff 99%, transparent),
    radial-gradient(1px 1px at 66% 88%, #fff 99%, transparent), radial-gradient(1px 1px at 44% 42%, #cfd8ff 99%, transparent),
    rgba(3, 5, 10, 0.86);
  backdrop-filter: blur(6px); }
.cosmos.on .cz-sky { animation: cz-in 0.9s var(--ease); }
@keyframes cz-in { from { transform: scale(1.08); opacity: 0; } to { transform: none; opacity: 1; } }
.cz-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: clamp(24px, 6vh, 64px) clamp(20px, 6vw, 96px) 12px; }
.cz-title h2 { margin: 0; font-weight: 200; font-size: clamp(26px, 3.2vw, 40px); letter-spacing: 0.5em; color: var(--text); }
.cz-title p { margin: 10px 0 0; max-width: 560px; font-size: 13px; line-height: 1.8; color: var(--text-2); letter-spacing: 0.04em; }
.cz-tools { display: flex; align-items: center; gap: 10px; }
.cz-x { font-size: 22px; line-height: 1; }
.cz-body { flex: 1; min-height: 0; overflow: auto; padding: 8px clamp(20px, 6vw, 96px) 24px; margin-bottom: 116px; scrollbar-width: thin; -webkit-mask-image: linear-gradient(#000 calc(100% - 36px), transparent); mask-image: linear-gradient(#000 calc(100% - 36px), transparent); }
.cz-sec { margin: 18px 0 30px; }
.cz-h { display: flex; align-items: baseline; gap: 14px; margin-bottom: 14px; }
.cz-h h3 { margin: 0; font-weight: 300; font-size: 15px; letter-spacing: 0.3em; color: var(--warm); }
.cz-h .faint { font-size: 12px; }
.cz-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(236px, 1fr)); gap: 16px; }
.cz-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 16px 16px; text-align: left; border-radius: 18px; cursor: pointer; color: var(--text);
  transition: transform 0.45s var(--spring-soft), box-shadow 0.3s, border-color 0.3s; }
.cz-card:hover { transform: translateY(-3px); border-color: rgba(214, 222, 255, 0.28); }
.czc-kind { position: absolute; right: 14px; top: 12px; font-size: 10.5px; letter-spacing: 0.2em; color: var(--text-3); }
.cz-card.friend .czc-kind { color: #9fe0c0; }
.cz-card.featured .czc-kind { color: var(--warm); }
.czc-art { width: 100%; height: 118px; display: flex; justify-content: center; }
.czc-art svg { height: 100%; width: auto; transition: transform 1.2s var(--ease); }
.cz-card:hover .czc-art svg { transform: rotate(-6deg) scale(1.06); }
.czc-t { font-size: 15px; letter-spacing: 0.06em; }
.czc-m { font-size: 12px; color: var(--text-2); display: flex; align-items: center; gap: 8px; }
.czc-co { color: #9fe0c0; letter-spacing: 0.1em; }
.czc-ps { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.czc-p { font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--c, #8fb4ff) 45%, transparent); color: color-mix(in srgb, var(--c, #8fb4ff) 70%, #fff); }
.czc-p.more { --c: #8a93a8; }
.czc-go { margin-top: 6px; font-size: 12px; letter-spacing: 0.2em; color: var(--accent); opacity: 0; transform: translateX(-4px); transition: opacity 0.3s, transform 0.3s; }
.cz-card:hover .czc-go, .cz-card:focus-visible .czc-go { opacity: 1; transform: none; }
.cz-empty { max-width: 520px; margin: 40px auto; text-align: center; color: var(--text-2); font-size: 13px; line-height: 1.9; }
.cz-empty.small { margin: 6px 0; text-align: left; max-width: none; }
.cz-empty b { display: block; color: var(--text); font-weight: 400; margin-bottom: 6px; }
.cz-loading { margin: 60px auto; text-align: center; color: var(--text-3); letter-spacing: 0.3em; font-size: 12px; animation: cz-pulse 1.6s ease-in-out infinite; }
@keyframes cz-pulse { 50% { opacity: 0.4; } }
/* 自己的星系：缩到左下角，作为返回入口 */
.cz-home { z-index: 2; position: absolute; left: clamp(12px, 3vw, 40px); bottom: clamp(12px, 3vh, 36px); display: flex; align-items: center; gap: 10px; padding: 6px 16px 6px 6px; border: 0; background: none; color: var(--text); cursor: pointer; opacity: 0.8; transition: opacity 0.3s, transform 0.45s var(--spring-soft); }
.cz-home:hover, .cz-home:focus-visible { opacity: 1; transform: translateY(-2px); outline: none; }
.czh-art { width: 84px; height: 84px; border-radius: 50%; display: block; filter: drop-shadow(0 0 18px rgba(244, 227, 193, 0.35)); animation: cg-drift 30s linear infinite; }
.czh-art svg { width: 100%; height: 100%; }
.czh-t { display: flex; flex-direction: column; gap: 2px; font-size: 13px; letter-spacing: 0.2em; text-align: left; }
.czh-t small { font-size: 11px; color: var(--text-3); letter-spacing: 0.1em; }

/* ===== 访客横幅 ===== */
.visit-bar { position: fixed; left: 50%; top: 14px; transform: translate(-50%, -140%); z-index: 30; display: flex; align-items: center; gap: 12px; padding: 8px 10px 8px 16px; border-radius: 999px; font-size: 13px; color: var(--text);
  transition: transform 0.6s var(--spring-soft); white-space: nowrap; max-width: calc(100vw - 24px); }
.visit-bar.on { transform: translate(-50%, 0); }
.vb-dot { width: 8px; height: 8px; border-radius: 50%; background: #9fe0c0; box-shadow: 0 0 10px #9fe0c0; animation: cz-pulse 2.4s ease-in-out infinite; }
.vb-t { overflow: hidden; text-overflow: ellipsis; letter-spacing: 0.06em; }
.vb-mode { padding: 2px 8px; border-radius: 999px; border: 1px solid var(--hair-2); font-size: 11px; letter-spacing: 0.12em; }
.vb-mode.co { color: #9fe0c0; border-color: rgba(159, 224, 192, 0.4); }
.visit-bar .pill { padding: 6px 14px; }
@media (max-width: 640px) { .visit-bar { top: auto; bottom: 12px; transform: translate(-50%, 160%); } .visit-bar.on { transform: translate(-50%, 0); } .vb-cz { display: none; } }
/* 访客：隐藏只属于主人的入口 */
html.visiting .wh-entry, html.visiting .wh-tip, html.visiting .ov-tab.add, html.visiting .cosmos-gate { display: none !important; }
html.ro .desk-actions .pill.primary, html.ro .sheet .more-btn, html.ro .tcol-add, html.ro .tcol-guide, html.ro .mde-bar, html.ro .cc-danger, html.ro .rel-h .link, html.ro .eb-new, html.ro .ov-new { display: none !important; }
html.ro .sheet .ph-title { pointer-events: none; }
html.ro .ver-in, html.ro .drawer .more-btn, html.ro .pop-more .menu-i.danger { display: none !important; }

/* ===== 红岸基地（友邻管理抽屉） ===== */
.redcoast { position: fixed; right: 14px; top: 14px; bottom: 14px; width: min(380px, calc(100vw - 28px)); z-index: 45; display: flex; flex-direction: column; overflow: hidden;
  transform: translateX(calc(100% + 24px)); transition: transform 0.55s var(--spring-soft); }
.redcoast.on { transform: none; }
.rc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 18px 12px; border-bottom: 1px solid var(--line-soft); }
.rc-head h3 { margin: 0; font-weight: 300; font-size: 17px; letter-spacing: 0.3em; }
.rc-head p { margin: 8px 0 0; font-size: 12px; line-height: 1.7; }
.rc-body { flex: 1; overflow: auto; padding: 8px 18px 24px; }
.rc-h { font-size: 11px; letter-spacing: 0.26em; color: var(--text-3); margin: 18px 0 10px; }
.rc-send { display: flex; flex-direction: column; gap: 8px; }
.rc-send .note-in { width: 100%; }
.rc-send .pill { align-self: flex-start; }
.rc-row { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-radius: 12px; }
.rc-row:hover { background: rgba(255, 255, 255, 0.04); }
.rc-av { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; color: #10131c; background: var(--c, #9fb8ff); box-shadow: 0 0 12px color-mix(in srgb, var(--c, #9fb8ff) 50%, transparent); }
.rc-who { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rc-who b { font-weight: 400; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rc-who small { font-size: 11px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.small { font-size: 11.5px; }

/* ===== 可见范围与共创 ===== */
.pop-acc { width: min(340px, calc(100vw - 24px)); }
.acc-panel { display: flex; flex-direction: column; gap: 8px; padding: 6px 4px 2px; }
.acc-h { font-size: 11px; letter-spacing: 0.22em; color: var(--text-3); margin-top: 6px; }
.acc-h.dim, .acc-seg.dim { opacity: 0.45; }
.acc-opts { display: flex; flex-direction: column; gap: 4px; }
.acc-opt { display: flex; flex-direction: column; gap: 2px; text-align: left; padding: 9px 12px; border-radius: var(--r-ctl); border: 1px solid transparent; color: var(--text); transition: background 0.2s, border-color 0.2s; }
.acc-opt:hover { background: rgba(255, 255, 255, 0.05); }
.acc-opt.on { border-color: rgba(159, 184, 255, 0.45); background: rgba(159, 184, 255, 0.1); }
.acc-opt b { font-weight: 400; font-size: 13px; }
.acc-opt small { font-size: 11.5px; color: var(--text-2); }
.acc-seg { display: flex; gap: 4px; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, 0.05); }
.acc-seg button { flex: 1; padding: 6px 10px; border-radius: 999px; font-size: 12px; color: var(--text-2); }
.acc-seg button.on { background: rgba(255, 255, 255, 0.14); color: var(--text); }
.acc-feat { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: var(--r-ctl); background: rgba(244, 227, 193, 0.06); cursor: pointer; }
.acc-feat span { display: flex; flex-direction: column; gap: 2px; }
.acc-feat b { font-weight: 400; font-size: 13px; color: var(--warm); }
.acc-feat small { font-size: 11.5px; color: var(--text-2); }
.acc-foot { display: flex; justify-content: flex-end; }

/* ===== 实时保存与图文 ===== */
.live-lock { display: flex; align-items: center; gap: 10px; }
.live-lock .ll-dot { width: 8px; height: 8px; border-radius: 50%; background: #e6a86e; box-shadow: 0 0 10px #e6a86e; animation: cz-pulse 1.4s ease-in-out infinite; }
.live-lock .ll-t { flex: 1; }
.mde-status[data-tone="ok"]::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: #7fd6a8; vertical-align: 1px; }
.mde.mde-ro .md-edit { cursor: default; }
.md img { max-width: 100%; height: auto; border-radius: 10px; display: block; margin: 10px 0; box-shadow: 0 8px 28px -12px rgba(0, 0, 0, 0.6); }
.md img.att-miss { min-height: 40px; min-width: 160px; background: rgba(255, 255, 255, 0.05); border: 1px dashed var(--hair-2); }
.md-edit.drop-img { outline: 2px dashed rgba(159, 184, 255, 0.55); outline-offset: 6px; border-radius: 10px; }
.md-edit img { cursor: default; }

/* ===== 设置：存储空间 ===== */
.cap { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; min-width: 150px; }
.cap-bar { width: 150px; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.cap-bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #9fb8ff, #f4e3c1); transition: width 0.6s var(--ease); }
.cap-bar.warn i { background: linear-gradient(90deg, #e6a86e, #e8806e); }
.cap-t { font-size: 11.5px; }

/* 日间主题：星域与访客横幅保持夜空（它们本身就是宇宙的一部分），抽屉和面板随日间玻璃 */
html.theme-day .cosmos { color: rgba(236, 240, 250, 0.92); --text: rgba(236, 240, 250, 0.92); --text-2: rgba(214, 222, 240, 0.66); --text-3: rgba(200, 210, 232, 0.42); }
html.theme-day .redcoast .rc-av { color: #fff; }
@media (prefers-reduced-motion: reduce) { .cosmos-gate .cg-art, .czh-art { animation: none; } }
@media (max-width: 760px) { .cz-grid { grid-template-columns: 1fr 1fr; gap: 10px; } .czc-art { height: 86px; } .cz-top { flex-direction: column; } .czh-art { width: 60px; height: 60px; } }

/* —— v1.9.1 太空碎片 · 快捷入口 · 随手记 —— */
.db-field { position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: 0; transition: opacity 0.6s var(--ease); }
.db-field.on { opacity: 1; }
.db-shard { position: absolute; width: var(--s, 22px); height: var(--s, 22px); translate: 0 0; transform: translate(-50%, -50%); padding: 0; border: 0; background: none; cursor: grab; pointer-events: none; outline: none; touch-action: none; transition: translate 0.6s var(--spring), opacity 0.5s var(--ease), scale 0.25s var(--ease); }
.db-field.on .db-shard { pointer-events: auto; }
.db-drift { position: absolute; inset: 0; display: block; animation: db-drift var(--dur, 26s) ease-in-out var(--delay, 0s) infinite alternate; }
/* v1.11.16 太空碎石：暗色多面体，慢速翻滚（旋转 + 横向压缩模拟三维翻转），亮面一道冷白边光 */
.db-rot { position: absolute; inset: 0; display: block; filter: drop-shadow(0 0 3px rgba(150, 176, 230, 0.28)) drop-shadow(0 3px 8px rgba(0, 0, 0, 0.7)); animation: db-rot var(--dur, 26s) ease-in-out var(--delay, 0s) infinite alternate, db-tumble var(--tum, 7s) ease-in-out var(--delay, 0s) infinite alternate; }
.db-rot svg { width: 100%; height: 100%; display: block; overflow: visible; }
.db-body { fill: #141925; stroke: rgba(8, 10, 16, 0.9); stroke-width: 0.04; }
.db-facet { stroke: rgba(10, 13, 20, 0.3); stroke-width: 0.02; stroke-linejoin: round; }
.db-pit { fill: rgba(6, 8, 14, 0.45); stroke: rgba(190, 205, 240, 0.18); stroke-width: 0.02; }
.db-edge { fill: none; stroke: rgba(226, 234, 255, 0.78); stroke-width: 0.055; stroke-linecap: round; stroke-linejoin: round; }
@keyframes db-drift { from { transform: translate(0, 0); } to { transform: translate(var(--dx, 12px), var(--dy, 10px)); } }
@keyframes db-rot { from { rotate: var(--r0, 0deg); } to { rotate: calc(var(--r0, 0deg) + var(--dr, 40deg)); } }
@keyframes db-tumble { from { scale: 1 1; } to { scale: var(--tz, 0.62) 1; } }
/* v1.11.17 人造碎片的细节线条（单位 = SVG 视框，2 个单位 ≈ 碎片边长） */
.db-bus { fill: none; stroke: rgba(150, 178, 240, 0.32); stroke-width: 0.012; }
.db-bus-strong { stroke: rgba(170, 190, 235, 0.55); stroke-width: 0.02; }
.db-crack { fill: none; stroke: rgba(140, 170, 230, 0.55); stroke-width: 0.014; }
.db-strut { fill: none; stroke: #aab3c3; stroke-width: 0.045; stroke-linecap: round; stroke-linejoin: round; }
.db-tear { fill: none; stroke: rgba(235, 240, 250, 0.55); stroke-width: 0.025; stroke-linejoin: bevel; }
.db-scorch { fill: none; stroke: rgba(24, 14, 6, 0.6); stroke-width: 0.22; stroke-linejoin: round; }
.db-fold { fill: none; stroke: rgba(240, 244, 252, 0.5); stroke-width: 0.022; }
.db-rivet { fill: #4a5262; stroke: rgba(235, 240, 250, 0.55); stroke-width: 0.012; }
.db-truss-web { fill: none; stroke: #7f899b; stroke-width: 0.04; stroke-linecap: round; }
.db-beam-lit { fill: none; stroke: #d3dae6; stroke-width: 0.085; stroke-linecap: butt; }
.db-beam { fill: none; stroke: #5d6678; stroke-width: 0.085; stroke-linecap: butt; }
.db-joint { fill: #9aa4b6; stroke: rgba(20, 24, 32, 0.6); stroke-width: 0.01; }
.db-foil { stroke: rgba(70, 46, 8, 0.35); stroke-width: 0.012; stroke-linejoin: round; }
.db-wrinkle { fill: none; stroke: rgba(255, 238, 190, 0.4); stroke-width: 0.014; }
.db-wingp { stroke: #8a94a8; stroke-width: 0.03; stroke-linejoin: round; }
.db-rib { fill: none; stroke: rgba(70, 80, 100, 0.45); stroke-width: 0.016; }
.db-edge-warm { stroke: rgba(255, 240, 200, 0.85); }
/* 星芒：与背景星空同款 —— 亮核 + 柔光晕 + 细长十字衍射芒 + 弱对角芒；不随碎石旋转（芒永远横平竖直） */
.db-glint { position: absolute; left: var(--gx, 36%); top: var(--gy, 32%); width: calc(var(--s, 30px) * 3.4 * var(--gl, 1)); height: calc(var(--s, 30px) * 3.4 * var(--gl, 1)); translate: -50% -50%; pointer-events: none; mix-blend-mode: screen; animation: db-breathe var(--star-dur, 1s) cubic-bezier(0.45, 0, 0.35, 1) var(--star-delay, 0s) infinite; }
.db-glint i { position: absolute; left: 50%; top: 50%; display: block; translate: -50% -50%; }
.db-glint .core { width: 18%; height: 18%; border-radius: 50%; background: radial-gradient(circle closest-side, #fff 0, rgba(255, 255, 255, 0.96) 26%, rgba(var(--gc), 0.55) 56%, rgba(var(--gc), 0) 100%); }
.db-glint .halo { width: 52%; height: 52%; border-radius: 50%; background: radial-gradient(circle closest-side, rgba(var(--gc), 0.42) 0, rgba(var(--gc), 0.16) 34%, rgba(var(--gc), 0.05) 64%, rgba(var(--gc), 0) 100%); }
.db-glint .h, .db-glint .v, .db-glint .d1, .db-glint .d2 { width: 100%; height: 2px; border-radius: 1px; background: linear-gradient(90deg, rgba(var(--gc), 0) 0%, rgba(var(--gc), 0.05) 14%, rgba(var(--gc), 0.18) 30%, rgba(var(--gc), 0.5) 42%, rgba(255, 255, 255, 0.95) 48.5%, #fff 50%, rgba(255, 255, 255, 0.95) 51.5%, rgba(var(--gc), 0.5) 58%, rgba(var(--gc), 0.18) 70%, rgba(var(--gc), 0.05) 86%, rgba(var(--gc), 0) 100%); }
.db-glint .v { rotate: 90deg; }
.db-glint .d1, .db-glint .d2 { width: 44%; height: 1.2px; opacity: 0.38; }
.db-glint .d1 { rotate: 45deg; } .db-glint .d2 { rotate: -45deg; }
.db-glint .h, .db-glint .v { animation: db-spike var(--star-dur, 1s) cubic-bezier(0.45, 0, 0.35, 1) var(--star-delay, 0s) infinite; }
@keyframes db-breathe { 0%, 100% { scale: 0.42; opacity: 0.5; } 46% { scale: 1; opacity: 1; } }
@keyframes db-spike { 0%, 100% { scale: 0.55 1; } 46% { scale: 1 1; } }
/* 碎片本身的阴影 */
.db-shard { filter: none; }
.db-shard.fresh .db-glint { --gl: 1.35; }
.db-shard.fresh .db-glint .halo { opacity: 0.7; }
.db-shard.fresh .db-edge { stroke: rgba(255, 238, 206, 0.95); }
.db-shard:hover, .db-shard:focus-visible { scale: 1.35; z-index: 2; }
.db-shard:focus-visible .db-rot { filter: drop-shadow(0 0 0 2px var(--focus, #9fb8ff)) drop-shadow(0 0 10px rgba(160, 196, 255, 0.8)); }
/* 标题常驻：前6字一直显示，完整标题悬停展开 */
.db-lab-wrap { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 4px; pointer-events: none; }
.db-lab-short { white-space: nowrap; font-size: 12px; font-weight: 400; letter-spacing: 0.14em; color: rgba(228, 234, 250, 0.86); padding: 1px 4px; max-width: 140px; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 0 6px rgba(0, 0, 0, 0.95), 0 0 2px rgba(0, 0, 0, 0.9); }
.db-lab { white-space: nowrap; max-width: 240px; overflow: hidden; text-overflow: ellipsis; font-size: 11.5px; letter-spacing: 0.06em; color: var(--text); padding: 4px 10px; border-radius: 999px; background: rgba(14, 17, 25, 0.9); border: 1px solid var(--hair, rgba(255, 255, 255, 0.12)); opacity: 0; transform: translateY(4px) scale(0.92); transition: opacity 0.22s, transform 0.22s var(--spring-soft); }
.db-shard:hover .db-lab, .db-shard:focus-visible .db-lab, .db-shard.dragging .db-lab { opacity: 1; transform: none; }
.db-shard:hover .db-lab-short, .db-shard:focus-visible .db-lab-short { opacity: 0; transform: scale(0.85); transition: opacity 0.15s, transform 0.15s; }
.db-lab-short { transition: opacity 0.2s, transform 0.2s; }
.db-shard.dragging { cursor: grabbing; transition: none; scale: 1.3; pointer-events: none !important; z-index: 5; }
.db-shard.dragging .db-drift, .db-shard.dragging .db-rot { animation-play-state: paused; }
.db-shard.back { transition: translate 0.6s var(--spring); }
.db-shard.filing { transition: translate 0.55s var(--ease), opacity 0.55s var(--ease), scale 0.55s var(--ease); scale: 0.1; opacity: 0; pointer-events: none !important; }
.db-shard.gone { opacity: 0; scale: 0.3; }
.db-shard.spawn { animation: db-spawn 1.3s var(--spring-soft, ease-out) both; }
@keyframes db-spawn { from { translate: var(--fx, 0) var(--fy, 0); scale: 2.4; opacity: 0; } 30% { opacity: 1; } to { translate: 0 0; scale: 1; opacity: 1; } }
.db-ring { position: fixed; z-index: 6; pointer-events: none; border-radius: 50%; border: 1.5px dashed rgba(255, 214, 150, 0.85); box-shadow: 0 0 24px rgba(255, 214, 150, 0.35), inset 0 0 18px rgba(255, 214, 150, 0.2); opacity: 0; transition: opacity 0.2s, left 0.15s, top 0.15s, width 0.15s, height 0.15s; }
.db-ring.on { opacity: 1; animation: db-ring 1.6s linear infinite; }
@keyframes db-ring { to { rotate: 360deg; } }
.db-hint { position: fixed; z-index: 7; pointer-events: none; font-size: 12px; letter-spacing: 0.08em; padding: 5px 12px; border-radius: 999px; background: rgba(14, 17, 25, 0.88); border: 1px solid var(--hair, rgba(255, 255, 255, 0.12)); color: var(--text-2); opacity: 0; transition: opacity 0.2s; white-space: nowrap; }
.db-hint.on { opacity: 1; }
.db-hint.ok { color: #ffe2aa; border-color: rgba(255, 214, 150, 0.5); }
body.debris-dragging, body.debris-dragging * { cursor: grabbing !important; }
html.motion-reduced .db-drift, html.motion-reduced .db-rot { animation: none; rotate: var(--r0, 0deg); }
html.motion-reduced .db-glint, html.motion-reduced .db-glint i { animation: none; }
@media (prefers-reduced-motion: reduce) { .db-drift, .db-rot, .db-glint, .db-glint i { animation: none; } .db-rot { rotate: var(--r0, 0deg); } }

/* v1.11.14 常驻左下角：快捷键始终可见 */
.qdock { position: absolute; left: 20px; bottom: 24px; z-index: 34; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; opacity: 0.92; pointer-events: auto; transform: none; transition: opacity 0.4s var(--ease), transform 0.4s var(--spring); }
.qdock.on { opacity: 1; transform: none; }
.qdock:hover { opacity: 1; }
/* 常驻提示：底部快捷键说明 */
.qdock::after { content: "快捷键  N 随手记  / 搜索  Ctrl+Enter 保存"; position: absolute; left: 0; top: calc(100% + 10px); white-space: nowrap; font-size: 10.5px; letter-spacing: 0.08em; color: var(--text-3); background: rgba(14,17,25,0.82); border: 1px solid var(--hair); padding: 4px 8px; border-radius: 999px; opacity: 0.75; pointer-events: none; }
@media (max-width: 640px) { .qdock::after { display: none; } }
.qd-b { display: flex; align-items: center; justify-content: center; gap: 0; height: 40px; min-width: 40px; padding: 0 11px; border-radius: 999px; border: 1px solid var(--hair, rgba(255, 255, 255, 0.12)); background: rgba(20, 24, 34, 0.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); color: var(--text); cursor: pointer; font: inherit; font-size: 12.5px; letter-spacing: 0.12em; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); transition: background 0.2s, border-color 0.2s, gap 0.3s var(--spring); overflow: hidden; }
.qd-b .qd-i { width: 18px; height: 18px; display: grid; place-items: center; flex: none; }
.qd-b .qd-i svg { display: block; }
.qd-b .qd-t, .qd-b kbd { max-width: 0; opacity: 0; overflow: hidden; white-space: nowrap; transition: max-width 0.3s var(--spring), opacity 0.2s; }
.qd-b kbd { font: inherit; font-size: 10.5px; letter-spacing: 0.04em; color: var(--text-3); border: 0 solid var(--hair, rgba(255, 255, 255, 0.14)); border-radius: 6px; padding: 0; }
.qd-b:hover kbd, .qd-b:focus-visible kbd { border-width: 1px; padding: 0 5px; }
.qd-b:hover, .qd-b:focus-visible { gap: 8px; border-color: rgba(159, 184, 255, 0.5); background: rgba(28, 34, 48, 0.9); outline: none; }
.qd-b:hover .qd-t, .qd-b:focus-visible .qd-t { max-width: 80px; opacity: 1; }
.qd-b:hover kbd, .qd-b:focus-visible kbd { max-width: 70px; opacity: 1; }
.qd-q { border-color: rgba(255, 214, 150, 0.35); }
.qd-q .qd-i { color: #ffe2aa; }
.qd-n { position: absolute; left: 48px; bottom: 9px; white-space: nowrap; transition: opacity 0.2s; display: none; border: 1px solid rgba(255, 214, 150, 0.3); background: rgba(20, 24, 34, 0.7); color: #ffe2aa; font: inherit; font-size: 11.5px; letter-spacing: 0.08em; padding: 3px 10px; border-radius: 999px; cursor: pointer; }
.qd-q:hover ~ .qd-n, .qd-q:focus-visible ~ .qd-n { opacity: 0; pointer-events: none; }
.qd-n.on { display: inline-block; }
.qd-n:hover { border-color: rgba(255, 214, 150, 0.6); }
.db-menu { max-height: min(60vh, 460px); overflow: auto; }
.db-menu .menu-i { display: flex; align-items: center; gap: 8px; }
.db-dot { width: 7px; height: 7px; flex: none; border-radius: 2px; transform: rotate(20deg); background: linear-gradient(135deg, #e9edf7, #4a5367); box-shadow: 0 0 6px rgba(255, 214, 150, 0.5); }
html.in-cosmos .db-field { opacity: 0 !important; pointer-events: none; }
@media (max-width: 640px) { .qdock { left: 12px; bottom: 140px; } .qd-b { height: 38px; min-width: 38px; } }

.qc-title { width: 100%; border: 0; border-bottom: 1px solid var(--hair, rgba(255, 255, 255, 0.1)); background: none; color: var(--text); font: inherit; font-size: calc(16px * var(--fs, 1)); letter-spacing: 0.04em; padding: 6px 4px 8px; outline: none; }
.qc-title:focus { border-bottom-color: rgba(94, 160, 255, 0.55); }
.qc-title::placeholder { color: var(--text-3); }
.qc .qc-in::first-line { font-weight: inherit; color: inherit; }
.qc-tgt.debris { border-color: rgba(255, 214, 150, 0.4); color: #ffe2aa; }
.qc-st { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.qc-f { min-width: 0; }
.tip[data-side="top"]::after { bottom: -6px; left: var(--ax, 18px); border-left: 0; border-top: 0; }
.tip[data-side="right"]::after { left: -6px; top: 16px; border-right: 0; border-top: 0; }

html.theme-day .db-lab, html.theme-day .db-hint { background: rgba(255, 255, 255, 0.92); color: #1d2433; }
html.theme-day .qd-b, html.theme-day .qd-n { background: rgba(255, 255, 255, 0.8); color: #1d2433; box-shadow: 0 8px 24px rgba(30, 50, 90, 0.14); }
html.theme-day .qd-q .qd-i, html.theme-day .qd-n, html.theme-day .qc-tgt.debris { color: #a0661a; }
/* v1.9.2 */
/* 分栏右侧底部固定窄边：状态 + 常用按钮 */
.eb-reader .er-actions.er-bar { min-height: 44px; padding: 7px 18px 8px; gap: 8px; flex-wrap: nowrap; }
.eb-reader .er-bar .er-btn { height: 28px; padding: 0 12px; font-size: 12px; white-space: nowrap; flex: none; }
.eb-reader .er-bar .mde-foot { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.eb-reader .er-bar .grow { flex: 1; min-width: 4px; }
.eb-reader .er-bar .er-row { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 0; border: 0; }
.eb-reader .er-bar .er-row .done-btn { position: static; }
.eb-reader .er-bar .er-row .ed-hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; font-size: 11px; }
.eb-reader .er-body.quick-edit { cursor: default; }

/* 左上角层级路线 */
.screen-name.trail { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 0; max-width: min(46vw, 520px); margin-top: 6px; font-size: 11px; letter-spacing: 0.12em; line-height: 1.6; color: var(--text-3); white-space: normal; pointer-events: auto; }
.trail .tr-c { max-width: 12em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 1px 3px; border-radius: 6px; background: none; border: 0; color: inherit; font: inherit; letter-spacing: inherit; }
.trail button.tr-c { cursor: pointer; color: var(--text-2); transition: color 0.2s, background 0.2s; }
.trail button.tr-c:hover { color: var(--text); background: rgba(255, 255, 255, 0.06); }
.trail .tr-c.cur { color: var(--text); }
.trail .tr-s { font-style: normal; opacity: 0.7; padding: 0 3px; }
html.theme-day .trail button.tr-c:hover { background: rgba(8, 18, 48, 0.12); }

/* 访问别人的星系：新建入口提前隐藏 */
html.visiting .qdock .qd-q, html.visiting .qdock .qd-n { display: none !important; }

/* 设置：恒星颜色 */
.star-sw { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.star-sw .star-custom { width: 26px; height: 26px; padding: 0; border: 1px solid var(--hair-2); border-radius: 50%; background: none; cursor: pointer; overflow: hidden; }
.star-sw .star-custom::-webkit-color-swatch-wrapper { padding: 0; }
.star-sw .star-custom::-webkit-color-swatch { border: 0; border-radius: 50%; }

/* 公共星域入口：跟随场景投影的位置（transform 不做过渡，由逐帧平滑负责） */
.cosmos-gate.placed { left: 0; top: 0; right: auto; transform: translate3d(var(--gx, 0), var(--gy, 0), 0) translate(-50%, -50%) scale(var(--gs, 1)); transition: opacity 1.2s var(--ease); will-change: transform; }
.cosmos-gate.placed.on { opacity: var(--ga, 0.62); transform: translate3d(var(--gx, 0), var(--gy, 0), 0) translate(-50%, -50%) scale(var(--gs, 1)); }
.cosmos-gate.placed.on:hover, .cosmos-gate.placed.on:focus-visible { opacity: 1; transform: translate3d(var(--gx, 0), var(--gy, 0), 0) translate(-50%, -50%) scale(calc(var(--gs, 1) * 1.05)); }

/* —— 首屏标题（v1.9.2）：星际感的细体宽字距 ——
   「星痕」用思源黑体 ExtraLight（Noto Sans SC，OFL），「STARTRACE」用 Jost Light（OFL）；两者只内嵌用到的字形（约 3KB），不访问网络。
   配色：「星」冷银、「痕」淡金——与下方那道由蓝转暖的星痕同一组色，不再用暗红；一道极淡的光每隔一段时间掠过标题。 */
@font-face { font-family: "Startrace Title"; src: url(data:font/woff2;base64,d09GMgABAAAAAAaIABIAAAAADigAAAYpAAIBBgAAAAAAAAAAAAAAAAAAAAAAAAAAGYIKGyAcQgZgP1NUQVQqADwRCAqEQINKATYCJAMICwgABCAFjxoHIAwHFyQYCBtyDFHUyElqYiQ/E3gTlnd5aeIFtjT9CuxtBUagDiLAs//ZJE3hI/hA6cssqnABs5H2Cg8A309nUdX8apdNB1QF0dmjTrEVe0zym1HI//+1Vvl4nUjTh0QOMXEohRn/3F1v+zD1LtooSSyplrgJPPQG/uZr3X4ddC0bHiLBjgu+SQTBxjDga/qhodfUtehAXP+p40ZQMHjcwOEUDOk7aihxw/uO6kvciL4TRlGADoCCRhgxJHEIHQAVDRteBLAB1fNMQlWLmYF4QsMPbWj/Qf2y3T1h6ICBo8eNHjlKMmcSeRQlBhBDQhiRiw4wB1T1PDogc0AAYQoC2BDAD0GgggpQAIHPghHAQghhiK7zTGgAHg8AcJaXUaE7KiMqIyojKmOuDIDgbE19jycYQFmmdAGap7+SXmRJLShWhZZMAGFbWVPVmopB4RNfU8d4Am2JRAACoIQr7wER6AiCCQF8ECAEZfLgIRNEAAUBECtPAFAAlc0qUigaCUIPCYqcpt8oKrZ+vCwV0QIQZDMBJ0Spz9eBAGA/8CEAoAFgwIRVU9toradNM1ktmttiGt/M1dHo1ocNdgwcaJziHDRIH9zZiWM4vIsb12CrYhmGU0Zl+zgVR8fcM6++WrCpuKrfC28MtmPrZFdsYldtXV97reOGLT6vt6Wd+iZeObd/0vU33hjnxJFmVea82ua3ueZ75Y22p3TK3/ra2cCCbWynyzlfc+DPXzB80xeYU7WcEpbceeNW3wuhBwd8qNfm42KwanM3tPv2n/xlxJerQ0q3zOh5d1STlXi/+wzKmztZxf+Si4eXxC5x3d0du3tuYq/YXltfjX8cb5gyqWxS6eaJZRMHRC3vuLzZ1G1sRc+6tr2jrzxpd2LAHIZfeRT1iPOvNr8afUo79Y4jftbt/WtCBr6c389vU49hS0O6tXc+NrfNb59Z1SG7fU6bgmlfvBD3wsT4pCLznIi5JdOzva8eq3QXjQ+ebp6av/mJ9d+I6psT3ZOCK8Nrovtm9M4u3v2kW9bEjwYOfS6wdvCKxsA62y9DZPy/5UZvQxf/oaGzh7bXRsyMnlAQWhI/koVvfbsdgA8RQBG9asffX/R2lvxmUtUvAd49E3MY4POPe/5MmCf1jjoG0FEAENCW/P8hqF8y4knYjkAr5TBlACWENaoMxxo8TnGeN1+jIpoZ2AFLEqLYQQoObpFKBc/O1HhkYJjYSCdMJpGRTbKBTFiUJDLLBiWHLGJRn5CVHO1lskuUQScHOXoCuQjQe5Abkz4hNRAffUYnEWz6mlxaj26zg4SFJc8gEgh99r6QUfFa6KSyZ3iSq7Y/+XznrthDvL/Kk0jte/YGzkZz2LJje+IUhtIoLKlmeBTL0Sb8yLMUFYipcRD3YJebZsvZsSIb8QQCn/3S6XdXv0Bmozex7yZbrogHv3WyMwpnAnnau3Hkl1w04dSfIKTWnlDoe565ppIH64EvjJJfBuWrL+sIfNI12orbgXFAoJZSlpKWBOY6PFaSaYB8Q3xEGNP6pFjJzdiTm9QnFiRMWyJRgUYUJmCmJ/N1t1cpBZaTeDz5/zHr4GZ36TbyRvc2wJOSGnoDe2mlloPAAzApS2apzd2zX2BNxwr6Hhjr0tBiXq+mocEjy1xiuXdV37mqTIJ0x1FDjjSmpgc1WCsMqEs+2y1gd86cf/b5T68fOPfkBR5PuNuFFEjn0YwmlakW3WcwETRRSSvqiXh88F7AI1HhbWJjILQogmZupxO+T/59+GNaoZhARqTZueKa4US1zULVz2ng2V2jYNpzktyzPjwhsCDmGt1p+sqWkVUKThT0wRpzo9uanMwI10dgcNIAhA/GJNMgUwnLSZmbDDVklPRosk3rxUK6Qago7w/jzm632k4w+5ovy2TFBb3joCbyWcazbamevQoacSH7yTfbuRPij8p6NmxEMuqfSpd0u8SyzJ5pU++QeDKHlcjsBj57DhFvY7qPCLXBdLsxpUd7w44TmQ8x2n1BJXc2y2b9CRa5HbFL0gWthexxwHM9YjPfajgPnLJmYh5uNuM7Yfs/bDLJwsHF97zz7eA9bW6e+WS53xXxLDyjrURct7/+b1O/nChCDJAi1DMAAA==) format("woff2"); font-weight: 100 900; font-display: swap; unicode-range: U+661F, U+75D5; }
@font-face { font-family: "Startrace Mark"; src: url(data:font/woff2;base64,d09GMgABAAAAAASsABAAAAAACSgAAARRAAO1wwAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbgRIcMAZgP1NUQVREAEwRCAqEAIMxATYCJAMcCxAABCAFhnYHIAwHG7MHUVRQxhB8cWDTyRcajKwdzBZLRYfB2kqbYnKDt/nw/usT4buIf38vbc59b0svFEW3GyRKrcZjfItvRaGWFZ5gkYR4sPyrudzL5YskMyufQZVZX/MbwsuDkK1V5Gx5/vsbnXfnZ5pQwmlQ2EySpEu+uECrK7Qkb8hOL4UumazK+AJYAW8a25XeCFQP4N+PzQpeCR0eeCI0EqWTCA3/PMQSdw+Lrkm0Ra5PxNu8el5aaAsxz0Q6Hx6vSqFMeBPBNKBEjIpg0rEmZTm7eYGNQ8gANnT4b/TtlASwxOnRdIUYV86puOMI1xmO7PYADI/T3zPM9Su7mCbKqCgjwodfBWjMpLdV8dq9LSEXNH5iLejs6J7VlOWoV3wAPJGXyQrN2tMax6tcnkVw7cLLUPr/SZ8zBRDIL0PYZ8od/zksU3BMuUxLMsDlKTxGw3TzGGTKbaCJqh2AgELDMi5YpnoETBpXyoVjp156QMd5+obDdX8froavAoBI/5tDjIFZTOM5fgI6oETXREavFKef3ZlwV8IbozaN+OI9YWw0RIhIzvo6LFtdlUWNrEmVrpxJwFULkVo3RrUpLW3l2hrEoNCiyBVK+YlA0RQR6Cd7VPzDoHVYCoRF11E5IRYVeeu0x/Es68vmpgRTaxMK9/quZnacrN+8lGszcHx2ld+9Og5OSkFQBIrCvcquorDmLToljg5RP0Yaa3B3o2iAgMgAP/uiLAdnVVe8uVyTbU+UwNE2XQMJUs9zckKLbNGFbB2pdI9dk5m8Y0rNOcsxKApSkA098Dxe1hrWNPaQ9hCYcjx3tLhz7ExQ/qvVeZquXCVzNTVFCzeOZp5qnkWskiFiYmroG6tskQd8JqeBZ0TVUN6WEsqwlFdiminvT6XZK3hLK5saGSot5b39WgxykdXR8pRTdlBTVE43YWxl2gh21fUc7CzUrOVUrAGmqK9Yu7hPo9UpeIahfb6/7jMaguYM/i3x9gd+POw5AL//Ac8m+r1SZR2jCoTXNFVvE2A2T4HROVZ/qRuWHStv58BLIHaj3a4/s9L+hrtUEGfHzfqoyZjAW3QQ495CmfUVmtu+oVv3DyM2S4VR66XBTO2nC7Pu5U22YSdfOmE6r2DEZF7DtrV8xR368lceC0XmEjaTRUJNdUyhFwSXVK+EUnKzB4mQg+hT5aGMZFG1iRTKp7KAaiQ1VCOT7Xi5zIcqXchXYwuMUXJKZEnR7tCjuJXWuQipMQgWNPd/QkwZj5BoqeppqBuxSUWjgAWVmdGGkN7QVaDthsHEUo+WUPWFxZbiWcsP9J+FDNI0TtARPfk4HQmkyBjK7kEhgeSd7n126Qa6v/75oMD8TSJOeTBzTgOh48kNLc9Y1QoTgn09jrseR9MnRUiUp0OPOgvFGbLn6pgopb8ztREpVeVCnup7sPJNNffO3ISy52x/U1BMnHf2dgZvNIVLkrhKFkK4M1NDozuqv9V/wedeAQA=) format("woff2"); font-weight: 100 900; font-display: swap; unicode-range: U+41, U+43, U+45, U+52-54; }
.title { font-family: "Startrace Title", var(--thin); font-weight: 200; letter-spacing: 0.42em; padding-left: 0.42em; }
.title .ch, .title .ch:nth-child(2) {
  background: linear-gradient(112deg, transparent 0%, transparent 42%, rgba(255, 255, 255, 0.95) 50%, transparent 58%, transparent 100%) no-repeat, linear-gradient(180deg, #ffffff 0%, #eef2fa 38%, #c3cde2 78%, #9fb0d6 100%);
  background-size: 260% 100%, 100% 100%; background-position: 160% 0, 0 0; -webkit-background-clip: text; background-clip: text;
  animation: ch-in 2.4s var(--ease) forwards, title-sheen 11s 4.2s var(--ease) infinite; }
.title .ch:nth-child(2) {
  background: linear-gradient(112deg, transparent 0%, transparent 42%, rgba(255, 252, 240, 0.95) 50%, transparent 58%, transparent 100%) no-repeat, linear-gradient(180deg, #fffaf0 0%, #f6ecd9 38%, #e4cfa6 78%, #c9a978 100%);
  background-size: 260% 100%, 100% 100%; background-position: 160% 0, 0 0; -webkit-background-clip: text; background-clip: text;
  animation: ch-in 2.4s 0.28s var(--ease) forwards, title-sheen 11s 4.5s var(--ease) infinite; }
.title .ch::after { text-shadow: 0 0 34px rgba(170, 195, 255, 0.26), 0 0 90px rgba(120, 150, 230, 0.12); }
.title .ch:nth-child(2)::after { text-shadow: 0 0 34px rgba(244, 216, 166, 0.24), 0 0 90px rgba(230, 180, 110, 0.1); }
@keyframes title-sheen { 0%, 70% { background-position: 160% 0, 0 0; } 100% { background-position: -60% 0, 0 0; } }
.wordmark { font-family: "Startrace Mark", var(--thin); font-weight: 300; letter-spacing: 0.86em; padding-left: 0.86em; }
.wordmark span { background: linear-gradient(180deg, #ffffff 0%, #e3e8f4 55%, #b4c0dc 100%); -webkit-background-clip: text; background-clip: text; }
@media (prefers-reduced-motion: reduce) { .title .ch, .title .ch:nth-child(2) { animation: ch-in 1.2s var(--ease) forwards; } }

/* v1.9.2 管理员：所有星系 */
.cz-card.all .czc-kind { color: #e8c07a; }

/* v1.11.14 指定可见好友选择器 */
.fp-panel { min-width: 300px; max-width: 360px; }
.fp-list { max-height: 220px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; margin: 8px 0; }
.fp-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.fp-row:hover { background: rgba(255,255,255,.06); }
.fp-row.dim { opacity: .45; }
.fp-who { display: flex; flex-direction: column; line-height: 1.3; }
.fp-who small { color: var(--text-3); font-size: 11px; }
.acc-fp { margin-top: 10px; }
.mde-keys { margin-left: 10px; font-size: 11px; white-space: nowrap; }
.mde-b.mde-ai{color:#f0c76a;font-weight:700;text-shadow:0010pxrgba(240,199,106,.35)}
/* v1.11.14 task7: brighter rows/tags, nicer empty */
.rows .row-t{color:var(--text-1,#f4f1e8);font-weight:500}
.rows .chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}
.empty{padding:18px 14px;text-align:center;color:var(--text-2);border:1px dashed var(--line-soft);border-radius:12px}
/* v1.10：实时多人编辑 / 视频附件 / 改昵称 / 设置里的管理员 */
/* 在场成员条（“XX 也在编辑 · 修改实时同步”） */
.live-peers { display: flex; align-items: center; gap: 10px; font-size: 12px; letter-spacing: 0.06em; }
.live-peers .lp-dots { display: inline-flex; gap: 0; flex: none; }
.live-peers .lp-dots i { width: 10px; height: 10px; border-radius: 50%; margin-right: -3px; border: 1.5px solid rgba(8, 10, 16, 0.9); box-shadow: 0 0 8px currentColor; animation: cz-pulse 2.4s ease-in-out infinite; }
.live-peers .lp-dots:empty { display: none; }
.live-peers .lp-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); }
html.theme-day .live-peers .lp-dots i { border-color: rgba(255, 255, 255, 0.95); }

/* 视频附件 */
.md video.md-video { display: block; width: 100%; max-width: 100%; max-height: 70vh; margin: 8px 0; border-radius: 10px; background: #000; outline: none; }
.md-edit video.md-video { cursor: default; }
.md-edit video.md-video:focus-visible { box-shadow: 0 0 0 2px rgba(255, 170, 90, 0.6); }

/* 昵称 */
.nick { gap: 8px; }
.nick .nick-in { width: 12em; max-width: 42vw; }

/* 管理员页 */
.admin-pane .small { font-size: 11px; letter-spacing: 0.06em; line-height: 1.7; margin: 2px 0 10px; }
.admin-pane .adm-list { display: flex; flex-direction: column; margin-bottom: 14px; }
.admin-pane .adm-u { display: flex; align-items: center; gap: 10px; padding: 9px 2px; border-bottom: 1px solid var(--hair); }
.admin-pane .adm-u:last-child { border-bottom: 0; }
.admin-pane .adm-main { flex: 1; min-width: 0; }
.admin-pane .adm-name { font-size: 13px; letter-spacing: 0.08em; display: flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-pane .adm-main small { display: block; color: var(--text-3); font-size: 11px; margin-top: 3px; letter-spacing: 0.04em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-pane .adm-tag { flex: none; font-size: 10px; letter-spacing: 0.1em; padding: 1px 7px; border-radius: 999px; color: #ffcf8a; background: rgba(255, 170, 90, 0.14); border: 1px solid rgba(255, 170, 90, 0.35); }
.admin-pane .adm-tag.me { color: #8fe3cf; background: rgba(90, 210, 180, 0.12); border-color: rgba(90, 210, 180, 0.35); }
.admin-pane .adm-visit { flex: none; height: 28px; padding: 0 12px; font-size: 12px; }
.admin-pane .adm-allow-in { flex: 1; min-width: 0; }
html.theme-day .admin-pane .adm-tag { color: #9a5a12; background: rgba(230, 140, 40, 0.12); }
html.theme-day .admin-pane .adm-tag.me { color: #1f7a64; background: rgba(40, 160, 130, 0.1); }

/* v1.10.3 公共星域入口：星系群由三维场景绘制，按钮只是同样大小的透明点击区；标签悬停才出现 */
.cosmos-gate.placed.in3d { width: var(--gw, 200px); height: var(--gh, 120px); aspect-ratio: auto; min-width: 90px; min-height: 60px; transition: opacity 0.6s var(--ease); }
.cosmos-gate.placed.in3d, .cosmos-gate.placed.in3d.on, .cosmos-gate.placed.in3d.on:hover, .cosmos-gate.placed.in3d.on:focus-visible { opacity: 1; transform: translate3d(var(--gx, 0), var(--gy, 0), 0) translate(-50%, -50%); }
.cosmos-gate.placed.in3d:not(.on) { opacity: 0; }
.cosmos-gate.in3d .cg-art { display: none; }
/* v1.11.13：标题“公共星域”常驻（50% 透明），悬停 / 聚焦时完全显示；副标题仍只在悬停时出现 */
.cosmos-gate.in3d .cg-tip { opacity: 0.5; transition: opacity 0.35s, transform 0.35s; }
.cosmos-gate.in3d .cg-tip b { text-shadow: 0 1px 10px rgba(0, 0, 0, 0.6), 0 0 2px rgba(0, 0, 0, 0.35); }
.cosmos-gate.in3d.on:hover .cg-tip, .cosmos-gate.in3d.on:focus-visible .cg-tip { opacity: 1; }

/* v1.11 开放公共星域：卡片“⋯”（拉黑）与拉黑名单 */
.cz-cell { position: relative; display: grid; }
.cz-cell > .cz-card { width: 100%; height: 100%; }
.cz-cell > .czc-more { top: 10px; left: 10px; right: auto; }
.cz-cell:hover > .czc-more, .cz-cell:focus-within > .czc-more, .czc-more:focus-visible { opacity: 1; }
@media (hover: none) { .cz-cell > .czc-more { opacity: 0.8; } }
.cz-blocked > summary { cursor: pointer; list-style: none; }
.cz-blocked > summary::-webkit-details-marker { display: none; }
.cz-blocked > summary h3::before { content: "▸ "; opacity: 0.6; }
.cz-blocked[open] > summary h3::before { content: "▾ "; }
.cz-bl { display: grid; gap: 6px; max-width: 520px; margin-top: 8px; }
.cz-bl .rc-row { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); }
.cz-bl .rc-who { flex: 1; }
html.theme-day .cz-bl .rc-row { background: rgba(20, 30, 50, 0.05); }

/* v1.11.13：右下角版本号（很淡，不挡操作） */
.app-ver { position: fixed; right: 12px; bottom: 7px; z-index: 4; pointer-events: none; font-size: 10.5px; letter-spacing: 0.14em; color: rgba(220, 228, 255, 0.34); font-variant-numeric: tabular-nums; user-select: none; }
html.theme-day .app-ver { color: rgba(255, 255, 255, 0.62); text-shadow: 0 1px 6px rgba(8, 18, 48, 0.45); }
html.in-cosmos .app-ver { z-index: 60; }
/* 自动生成：scripts/gen-day.mjs —— 请勿手改；手调写在 theme.css */
/* styles.css */
:where(html.theme-day .glass, html.theme-day .glass *)::selection {
  background: rgba(48, 96, 232, 0.402);
}
/* styles.css */
.icon-btn:hover:where(html.theme-day .glass, html.theme-day .glass *),
.icon-btn:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.024);
}
/* styles.css */
.status-dot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(50, 205, 141, 1);
  box-shadow: 0 0 8px rgba(127, 224, 184, 0.55);
}
/* styles.css */
.glass:where(html.theme-day .glass, html.theme-day .glass *)::after {
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.224), rgba(26, 40, 78, 0.04) 32%, rgba(48, 96, 232, 0.046) 68%, rgba(220, 167, 60, 0.184));
}
/* styles.css */
.sheet:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.735);
}
/* styles.css */
.ph-title:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.028);
}
/* styles.css */
.ph-title[contenteditable="true"]:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* styles.css */
.ph-chip:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.02);
}
/* styles.css */
.ph-chip:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
}
/* styles.css */
.ph-chip.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  color: rgba(22, 30, 48, 0.94);
}
/* styles.css */
.sheet-body:where(html.theme-day .glass, html.theme-day .glass *)::-webkit-scrollbar-thumb {
  background: rgba(26, 40, 78, 0.064);
}
/* styles.css */
.input:where(html.theme-day .glass, html.theme-day .glass *),
.textarea:where(html.theme-day .glass, html.theme-day .glass *),
.select:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.028);
}
/* styles.css */
.input:focus:where(html.theme-day .glass, html.theme-day .glass *),
.textarea:focus:where(html.theme-day .glass, html.theme-day .glass *),
.select:focus:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 71, 207, 0.517);
  background: rgba(26, 40, 78, 0.048);
}
/* styles.css */
.select option:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.94);
}
/* styles.css */
.btn:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* styles.css */
.btn:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  border-color: rgba(26, 40, 78, 0.32);
}
/* styles.css */
.btn.primary:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(135deg, rgba(48, 96, 232, 0.322), rgba(220, 167, 60, 0.253));
  border-color: rgba(26, 40, 78, 0.32);
  color: rgba(22, 30, 48, 0.94);
}
/* styles.css */
.btn.danger:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 39, 18, 1);
  border-color: rgba(207, 52, 23, 0.345);
}
/* styles.css */
.seg button.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  color: rgba(22, 30, 48, 0.94);
}
/* styles.css */
.item:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
}
/* styles.css */
.rev:hover:where(html.theme-day .glass, html.theme-day .glass *),
.rev.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* styles.css */
.diff:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.435);
}
/* styles.css */
.diff .a:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(35, 149, 72, 1);
  background: rgba(83, 198, 135, 0.115);
}
/* styles.css */
.diff .d:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 39, 18, 1);
  background: rgba(232, 73, 48, 0.115);
  text-decoration-color: rgba(165, 44, 18, 0.35);
}
/* styles.css */
.modal-wrap:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.615);
}
/* styles.css */
.modal-wrap.floating .modal:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.9);
}
/* styles.css */
.modal.float.dragging:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 40px 100px rgba(30, 45, 90, 0.15);
}
/* styles.css */
.swatches button.on:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(26, 40, 78, 0.32);
}
/* styles.css */
.switch:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* styles.css */
.switch:where(html.theme-day .glass, html.theme-day .glass *)::after {
  background: rgba(26, 32, 48, 0.7);
}
/* styles.css */
.switch.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(25, 79, 230, 0.45);
}
/* styles.css */
.switch.on:where(html.theme-day .glass, html.theme-day .glass *)::after {
  background: rgba(26, 32, 48, 1);
}
/* styles.css */
input[type="range"]:where(html.theme-day .glass, html.theme-day .glass *) {
  accent-color: rgba(18, 54, 165, 1);
}
/* styles.css */
.err:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 39, 18, 1);
}
/* ui/panel.css */
.glass:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(26, 40, 78, 0.06), rgba(26, 40, 78, 0.028));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.528), inset 0 0 0 0.5px rgba(255, 255, 255, 0.096), inset 0 -12px 24px -18px rgba(255, 255, 255, 0.24), 0 24px 60px -18px rgba(30, 45, 90, 0.165), 0 2px 10px rgba(30, 45, 90, 0.054);
}
/* ui/panel.css */
.glass:where(html.theme-day .glass, html.theme-day .glass *)::before {
  background: radial-gradient(360px circle at var(--mx, 30%) var(--my, -20%), rgba(26, 40, 78, 0.048), transparent 62%),
  linear-gradient(162deg, rgba(26, 40, 78, 0.08) 0%, rgba(26, 40, 78, 0.016) 22%, transparent 40%);
}
/* ui/panel.css */
.sheet.glass:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.765), rgba(250, 251, 254, 0.72));
}
/* ui/panel.css */
html.focus-read .sheet.glass:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
}
/* ui/panel.css */
.stag:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
}
/* ui/panel.css */
button.stag:hover:where(html.theme-day .glass, html.theme-day .glass *),
.stag[role="button"]:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.072);
}
/* ui/panel.css */
.s-adopted:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(45, 139, 89, 1);
}
/* ui/panel.css */
.s-candidate:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(59, 81, 124, 1);
}
/* ui/panel.css */
.s-rejected:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.s-superseded:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(157, 90, 27, 1);
}
/* ui/panel.css */
.stag.s-adopted:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(56, 174, 111, 0.287);
}
/* ui/panel.css */
.stag.s-superseded:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(196, 112, 34, 0.322);
}
/* ui/panel.css */
.link:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.link:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
  background: rgba(48, 124, 232, 0.138);
}
/* ui/panel.css */
.pill:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24);
}
/* ui/panel.css */
.pill:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  border-color: rgba(26, 40, 78, 0.304);
}
/* ui/panel.css */
.pill.primary:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(135deg, rgba(48, 124, 232, 0.322), rgba(72, 48, 232, 0.253));
  border-color: rgba(23, 65, 207, 0.391);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.skel i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(90deg, rgba(26, 40, 78, 0.032), rgba(26, 40, 78, 0.072), rgba(26, 40, 78, 0.032));
}
/* ui/panel.css */
.card:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.128);
  background: rgba(26, 40, 78, 0.028);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.192);
}
/* ui/panel.css */
.card:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
  border-color: rgba(26, 40, 78, 0.216);
}
/* ui/panel.css */
.tcard:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.128);
  background: rgba(26, 40, 78, 0.024);
}
/* ui/panel.css */
.tcard:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
}
/* ui/panel.css */
.tinput:where(html.theme-day .glass, html.theme-day .glass *),
.pick-in:where(html.theme-day .glass, html.theme-day .glass *),
.note-in:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* ui/panel.css */
.tinput:focus:where(html.theme-day .glass, html.theme-day .glass *),
.pick-in:focus:where(html.theme-day .glass, html.theme-day .glass *),
.note-in:focus:where(html.theme-day .glass, html.theme-day .glass *),
.body-in:focus:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 98, 207, 0.632);
}
/* ui/panel.css */
.rows .row:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* ui/panel.css */
.chip:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(26, 40, 78, 0.024);
}
/* ui/panel.css */
.chip.sel.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.207);
  border-color: rgba(23, 98, 207, 0.575);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.todo-n:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.048);
}
/* ui/panel.css */
.todo-n.warn:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(157, 90, 27, 1);
  background: rgba(221, 138, 59, 0.138);
}
/* ui/panel.css */
.capsule-nav:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.435);
  border: 1px solid rgba(26, 40, 78, 0.128);
  box-shadow: inset 0 1px 2px rgba(30, 45, 90, 0.09);
}
/* ui/panel.css */
.cn-ind:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(26, 40, 78, 0.16), rgba(26, 40, 78, 0.08));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84), 0 4px 14px -4px rgba(94, 160, 255, 0.193);
  border: 0.5px solid rgba(26, 40, 78, 0.26);
}
/* ui/panel.css */
.cn-item.on:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.cn-item.on .cn-badge:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.gt-track:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  box-shadow: inset 0 1px 3px rgba(30, 45, 90, 0.105);
}
/* ui/panel.css */
.gt-track i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 32, 48, 1);
  box-shadow: 0 2px 6px rgba(30, 45, 90, 0.105), inset 0 -1px 1px rgba(30, 45, 90, 0.024);
}
/* ui/panel.css */
.gtoggle input:focus-visible + .gt-track:where(html.theme-day .glass, html.theme-day .glass *) {
  outline: 2px solid rgba(23, 98, 207, 0.69);
}
/* ui/panel.css */
.bar i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(26, 32, 48, 0.5), rgba(26, 40, 78, 0.096));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
/* ui/panel.css */
.bar:hover i:where(html.theme-day .glass, html.theme-day .glass *),
.bar:focus i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, var(--g-blue), rgba(52, 25, 230, 0.5));
}
/* ui/panel.css */
.bars-tip:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.112);
  border: 1px solid rgba(26, 40, 78, 0.238);
}
/* ui/panel.css */
.notice:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.84), rgba(250, 251, 254, 0.825));
}
/* ui/panel.css */
.n-dot:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: 0 0 8px rgba(94, 160, 255, 0.385);
}
/* ui/panel.css */
.notice.warn .n-dot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(218, 125, 37, 1);
  box-shadow: 0 0 8px rgba(230, 168, 110, 0.385);
}
/* ui/panel.css */
.n-dot.ok:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(62, 193, 124, 1);
}
/* ui/panel.css */
.n-act:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.096);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.n-act:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.345);
}
/* ui/panel.css */
.lens:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.9), inset 0 -2px 6px rgba(255, 255, 255, 0.288), inset 0 0 18px rgba(255, 255, 255, 0.144), 0 8px 24px -8px rgba(30, 45, 90, 0.15);
  background: radial-gradient(circle at 34% 26%, rgba(26, 40, 78, 0.16), transparent 32%);
}
/* ui/panel.css */
.pop:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.93), rgba(250, 251, 254, 0.93));
}
/* ui/panel.css */
.menu-i:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/panel.css */
.menu-i.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.184);
}
/* ui/panel.css */
.fork-h:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(72, 48, 232, 0.092);
  border: 1px solid rgba(47, 23, 207, 0.207);
}
/* ui/panel.css */
.fk-mine:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(41, 18, 165, 1);
}
/* ui/panel.css */
.fk-up:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.src-line:hover .src-v:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
blockquote:where(html.theme-day .glass, html.theme-day .glass *) {
  border-left: 2px solid rgba(26, 40, 78, 0.238);
  background: rgba(26, 40, 78, 0.02);
}
/* ui/panel.css */
.ctx-bar:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
  border: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/panel.css */
.ctx-bar.ok:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(43, 140, 85, 1);
  background: rgba(81, 199, 137, 0.081);
  border-color: rgba(56, 174, 111, 0.184);
}
/* ui/panel.css */
.ctx-bar.warn:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(160, 90, 24, 1);
  background: rgba(221, 138, 59, 0.092);
  border-color: rgba(196, 112, 34, 0.23);
}
/* ui/panel.css */
.ctx-bar.up:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 75, 165, 1);
  background: rgba(48, 124, 232, 0.092);
  border-color: rgba(23, 98, 207, 0.23);
}
/* ui/panel.css */
.ctx-bar.draft:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(41, 18, 165, 1);
  background: rgba(72, 48, 232, 0.092);
  border-color: rgba(47, 23, 207, 0.23);
}
/* ui/panel.css */
.md code:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
}
/* ui/panel.css */
.md pre:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.487);
}
/* ui/panel.css */
.body-in:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.42);
}
/* ui/panel.css */
.entry-actions.sticky:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, transparent, rgba(250, 251, 254, 0.94) 30%);
}
/* ui/panel.css */
.tl-i:where(html.theme-day .glass, html.theme-day .glass *)::before {
  background: rgba(26, 40, 78, 0.32);
}
/* ui/panel.css */
.raw:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.45);
}
/* ui/panel.css */
.rel-i:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(26, 40, 78, 0.024);
}
/* ui/panel.css */
.rel-i:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/panel.css */
.graph-w:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.117);
  background: radial-gradient(ellipse at 50% 50%, rgba(48, 124, 232, 0.069), transparent 70%), rgba(250, 251, 254, 0.405);
}
/* ui/panel.css */
.graph text:where(html.theme-day .glass, html.theme-day .glass *) {
  fill: rgba(22, 30, 48, 0.744);
}
/* ui/panel.css */
.graph .g-ct:where(html.theme-day .glass, html.theme-day .glass *) {
  fill: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.g-node:hover circle:where(html.theme-day .glass, html.theme-day .glass *),
.g-node:focus circle:where(html.theme-day .glass, html.theme-day .glass *) {
  stroke: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.g-node:hover text:where(html.theme-day .glass, html.theme-day .glass *) {
  fill: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.rail:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
  border: 1px solid rgba(26, 40, 78, 0.128);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.192);
}
/* ui/panel.css */
.tool:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.tool.danger:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 39, 18, 1);
  background: rgba(232, 76, 48, 0.138);
}
/* ui/panel.css */
.tool:where(html.theme-day .glass, html.theme-day .glass *)::after {
  background: rgba(250, 251, 254, 0.94);
  border: 1px solid rgba(26, 40, 78, 0.172);
}
/* ui/panel.css */
.drawer:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
}
/* ui/panel.css */
.dr-i b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.dr-i:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.048);
}
/* ui/panel.css */
.dr-i.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.161);
}
/* ui/panel.css */
.dr-h b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.icon-btn:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
}
/* ui/panel.css */
.d-plus:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(41, 142, 84, 1);
}
/* ui/panel.css */
.d-minus:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 45, 18, 1);
}
/* ui/panel.css */
.dl.ins:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
  background: rgba(83, 198, 135, 0.115);
}
/* ui/panel.css */
.dl.ins:where(html.theme-day .glass, html.theme-day .glass *)::before {
  color: rgba(45, 139, 89, 1);
}
/* ui/panel.css */
.dl.del:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 44, 18, 1);
  background: rgba(232, 73, 48, 0.115);
  text-decoration-color: rgba(165, 44, 18, 0.35);
}
/* ui/panel.css */
.dl.del:where(html.theme-day .glass, html.theme-day .glass *)::before {
  color: rgba(165, 43, 18, 1);
}
/* ui/panel.css */
.m-tag:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.m-ok.from-mine .m-tag:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(41, 18, 165, 1);
}
/* ui/panel.css */
.conflict:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(196, 112, 34, 0.345);
  background: rgba(221, 138, 59, 0.057);
}
/* ui/panel.css */
.conflict[class*="pick-"]:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(56, 174, 111, 0.345);
  background: rgba(81, 199, 137, 0.046);
}
/* ui/panel.css */
.m-col:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.45);
}
/* ui/panel.css */
.m-col.theirs .m-h:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.m-col.mine .m-h:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(41, 18, 165, 1);
}
/* ui/panel.css */
.pick-theirs .m-col.theirs:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: inset 0 0 0 1px rgba(94, 160, 255, 0.275);
}
/* ui/panel.css */
.pick-mine .m-col.mine:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: inset 0 0 0 1px rgba(155, 140, 255, 0.303);
}
/* ui/panel.css */
.cc-seg:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.45);
  border: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/panel.css */
.seg:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/panel.css */
.seg.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.112);
  color: rgba(22, 30, 48, 0.94);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
/* ui/panel.css */
.cc-card:where(html.theme-day .glass, html.theme-day .glass *),
.share-card:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
  border: 1px solid rgba(26, 40, 78, 0.128);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24);
}
/* ui/panel.css */
.search:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
}
/* ui/panel.css */
.s-cap:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.435);
  border: 1px solid rgba(26, 40, 78, 0.128);
}
/* ui/panel.css */
.s-hit.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/panel.css */
.s-mark.t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 73, 165, 1);
}
/* ui/panel.css */
.ship-i:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 6px rgba(150, 190, 255, 0.193));
}
/* ui/panel.css */
.ship:hover .ship-i:where(html.theme-day .glass, html.theme-day .glass *),
.ship:focus-visible .ship-i:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 10px rgba(150, 190, 255, 0.385));
}
/* ui/panel.css */
.ship:hover .ship-t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v13.css */
.sheet-seam:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, transparent, rgba(217, 157, 38, 0.9) 30%, rgba(26, 32, 48, 1) 50%, rgba(25, 98, 230, 0.9) 70%, transparent);
  box-shadow: 0 0 14px rgba(244, 227, 193, 0.303), 0 0 42px rgba(160, 190, 255, 0.193);
}
/* ui/v13.css */
.hole-tip:where(html.theme-day .glass, html.theme-day .glass *) {
  text-shadow: 0 0 10px rgba(30, 45, 90, 0.27);
}
/* ui/v13.css */
.hole-tip:where(html.theme-day .glass, html.theme-day .glass *)::after {
  background: linear-gradient(90deg, transparent, rgba(26, 40, 78, 0.28), transparent);
}
/* ui/v13.css */
.lc-i:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 1);
}
/* ui/v13.css */
.lightctl input[type="range"]:where(html.theme-day .glass, html.theme-day .glass *)::-webkit-slider-runnable-track {
  background: linear-gradient(90deg, rgba(217, 157, 38, 0.9) var(--p), rgba(26, 40, 78, 0.112) var(--p));
}
/* ui/v13.css */
.lightctl input[type="range"]:where(html.theme-day .glass, html.theme-day .glass *)::-moz-range-track {
  background: linear-gradient(90deg, rgba(217, 157, 38, 0.9) var(--p), rgba(26, 40, 78, 0.112) var(--p));
}
/* ui/v13.css */
.lightctl input[type="range"]:where(html.theme-day .glass, html.theme-day .glass *)::-webkit-slider-thumb {
  background: rgba(26, 32, 48, 1);
  box-shadow: 0 0 0 3px rgba(244, 227, 193, 0.099), 0 0 12px rgba(244, 227, 193, 0.44);
}
/* ui/v13.css */
.lightctl input[type="range"]:where(html.theme-day .glass, html.theme-day .glass *)::-moz-range-thumb {
  background: rgba(26, 32, 48, 1);
  box-shadow: 0 0 0 3px rgba(244, 227, 193, 0.099), 0 0 12px rgba(244, 227, 193, 0.44);
}
/* ui/v13.css */
.peek.glass:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.9), rgba(250, 251, 254, 0.87));
}
/* ui/v13.css */
.pk.sun .pk-h:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 1);
}
/* ui/v13.css */
.pk-n b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v13.css */
.pk-rows:where(html.theme-day .glass, html.theme-day .glass *) {
  border-top: 1px solid rgba(26, 40, 78, 0.128);
}
/* ui/v13.css */
.pk-s:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(82, 112, 173, 1);
}
/* ui/v13.css */
.pk-s.s-adopted:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(62, 193, 124, 1);
}
/* ui/v13.css */
.pk-s.s-candidate:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(82, 112, 173, 1);
}
/* ui/v13.css */
.pk-s.s-rejected:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 32, 48, 1);
}
/* ui/v13.css */
.pk-s.s-superseded:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(218, 125, 37, 1);
}
/* ui/v13.css */
.pk-p:where(html.theme-day .glass, html.theme-day .glass *) {
  background: var(--c, rgba(25, 104, 230, 1));
  box-shadow: 0 0 8px var(--c, rgba(156, 194, 255, 0.55));
}
/* ui/v13.css */
.pk-hint:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 0.72);
}
/* ui/v13.css */
.chip.add-chip:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
  background: rgba(26, 40, 78, 0.056);
  border-color: rgba(26, 40, 78, 0.282);
}
/* ui/v13.css */
.pcard:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.128);
  background: linear-gradient(160deg, color-mix(in srgb, var(--c) 12%, transparent), rgba(26, 40, 78, 0.016) 60%);
}
/* ui/v13.css */
.pcard:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: color-mix(in srgb, var(--c) 40%, rgba(26, 40, 78, 0.15));
}
/* ui/v13.css */
.pc-orb:where(html.theme-day .glass, html.theme-day .glass *) {
  background: radial-gradient(circle at 68% 38%, rgba(26, 32, 48, 1) 0, var(--c) 38%, rgba(250, 251, 254, 0.94) 88%);
}
/* ui/v13.css */
.pc-n b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v13.css */
.todo-n.up:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 75, 165, 1);
  background: rgba(48, 119, 232, 0.138);
}
/* ui/v14.css */
.sheet.ov.glass:where(html.theme-day .glass, html.theme-day .glass *) {
  background: radial-gradient(ellipse 60% 55% at 50% 50%, rgba(232, 137, 48, 0.081), transparent 70%),
    linear-gradient(180deg, rgba(250, 251, 254, 0.78), rgba(250, 251, 254, 0.825));
  border: 1px solid rgba(207, 129, 23, 0.115);
  box-shadow: 0 40px 120px -30px rgba(30, 45, 90, 0.225), inset 0 1px 0 rgba(255, 255, 255, 0.24), inset 0 0 0 1px rgba(255, 255, 255, 0.048), inset 0 0 120px rgba(255, 160, 80, 0.019);
}
/* ui/v14.css */
.ov-search:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
  border: 1px solid rgba(26, 40, 78, 0.15);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.144);
}
/* ui/v14.css */
.ov-search:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.06);
}
/* ui/v14.css */
.ov-search:focus-within:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.072);
  border-color: rgba(195, 141, 35, 0.437);
  color: var(--accent, rgba(156, 113, 28, 1));
  box-shadow: 0 0 0 4px rgba(244, 227, 193, 0.039), 0 10px 30px -12px rgba(255, 190, 120, 0.193), inset 0 1px 0 rgba(255, 255, 255, 0.192);
}
/* ui/v14.css */
.ov-search kbd:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.194);
}
/* ui/v14.css */
.ov-clear:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.kpi:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.028);
  border: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/v14.css */
.kpi b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.kpi-spark i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(217, 157, 38, 1), rgba(220, 167, 60, 0.287));
}
/* ui/v14.css */
.kpi.warn:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(221, 138, 59, 0.092);
}
/* ui/v14.css */
.kpi.warn b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 92, 19, 1);
}
/* ui/v14.css */
.kpi.warn.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(221, 138, 59, 0.161);
  border-color: rgba(196, 112, 34, 0.517);
}
/* ui/v14.css */
.ov-bar:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.825));
}
/* ui/v14.css */
.ov-tab-ind:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.072);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), inset 0 -2px 0 var(--accent, rgba(244, 227, 193, 0.55));
}
/* ui/v14.css */
.ov-tab.on:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.ov-tab .ov-n:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/v14.css */
.ov-tab.on .ov-n:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.207);
  color: rgba(156, 113, 28, 1);
}
/* ui/v14.css */
.ov-tab.add:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
  border-color: rgba(26, 40, 78, 0.32);
}
/* ui/v14.css */
.ov-modes:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.465);
  border: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/v14.css */
.ov-mode.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.096);
  color: rgba(22, 30, 48, 0.94);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.288);
}
/* ui/v14.css */
.ov-chip:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.128);
  background: rgba(26, 40, 78, 0.02);
}
/* ui/v14.css */
.ov-chip:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
}
/* ui/v14.css */
.ov-chip.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.096);
  border-color: rgba(26, 40, 78, 0.282);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.ov-sep:where(html.theme-day .glass, html.theme-day .glass *) {
  background: var(--hair-2, rgba(26, 40, 78, 0.112));
}
/* ui/v14.css */
.ov-sort:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(26, 40, 78, 0.032) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23aab' fill='none'/%3E%3C/svg%3E") no-repeat right 9px center;
}
/* ui/v14.css */
.ov-sort option:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.94);
}
/* ui/v14.css */
.ov-planet:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(90deg, color-mix(in srgb, var(--c) 12%, transparent), rgba(26, 40, 78, 0.016) 60%);
  border: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/v14.css */
.ovp-t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.ov-table-wrap:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.117);
  background: rgba(250, 251, 254, 0.39);
}
/* ui/v14.css */
.ov-table th:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.94);
}
/* ui/v14.css */
.ov-arrow:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 1);
}
/* ui/v14.css */
.ov-table td:where(html.theme-day .glass, html.theme-day .glass *) {
  border-bottom: 1px solid rgba(26, 40, 78, 0.089);
}
/* ui/v14.css */
.ov-table tbody tr:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.036);
}
/* ui/v14.css */
.ov-table tbody tr:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.092);
  box-shadow: inset 2px 0 0 rgba(244, 227, 193, 0.55);
}
/* ui/v14.css */
.ov-up:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(157, 90, 27, 1);
}
/* ui/v14.css */
.ov-fly:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.161);
  color: rgba(156, 113, 28, 1);
}
/* ui/v14.css */
mark:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.276);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.ov-card:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.048), rgba(26, 40, 78, 0.016));
  border: 1px solid rgba(26, 40, 78, 0.128);
}
/* ui/v14.css */
.ov-card:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(26, 40, 78, 0.216);
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.072), rgba(26, 40, 78, 0.024));
}
/* ui/v14.css */
.ov-card:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(195, 141, 35, 0.575);
}
/* ui/v14.css */
.oc-t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.ol-h:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.3));
}
/* ui/v14.css */
.ol-row:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.036);
}
/* ui/v14.css */
.ol-row:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.092);
}
/* ui/v14.css */
.ol-mark.s-adopted:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(45, 139, 89, 1);
}
/* ui/v14.css */
.ol-mark.s-candidate:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(59, 81, 124, 1);
}
/* ui/v14.css */
.ol-mark.s-rejected:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v14.css */
.ol-mark.s-superseded:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(157, 90, 27, 1);
}
/* ui/v14.css */
.ov-empty-o:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(195, 141, 35, 0.287);
  box-shadow: 0 0 40px rgba(255, 180, 110, 0.099), inset 0 0 20px rgba(255, 180, 110, 0.066);
}
/* ui/v14.css */
.ov-tab.add:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px dashed rgba(26, 40, 78, 0.194);
}
/* ui/v14.css */
.ovr:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.128);
  background: rgba(26, 40, 78, 0.028);
}
/* ui/v14.css */
.ovr:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/v15.css */
.sm-orb:where(html.theme-day .glass, html.theme-day .glass *) {
  background: radial-gradient(circle at 38% 32%, rgba(26, 40, 78, 0.176), rgba(26, 40, 78, 0.032) 70%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.288), 0 0 18px rgba(244, 227, 193, 0.066);
}
/* ui/v15.css */
.nt-in:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(195, 141, 35, 0.402);
  background: rgba(26, 40, 78, 0.048);
}
/* ui/v15.css */
.nt-in:focus:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: 0 0 0 3px rgba(244, 227, 193, 0.066);
}
/* ui/v15.css */
.eb-stream:where(html.theme-day .glass, html.theme-day .glass *)::-webkit-scrollbar-thumb {
  background: rgba(26, 40, 78, 0.08);
}
/* ui/v15.css */
.eb-note:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.044), rgba(26, 40, 78, 0.014));
  border: 1px solid rgba(26, 40, 78, 0.122);
}
/* ui/v15.css */
.eb-note:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.068), rgba(26, 40, 78, 0.024));
  border-color: rgba(26, 40, 78, 0.194);
}
/* ui/v15.css */
.eb-note:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(195, 141, 35, 0.575);
}
/* ui/v15.css */
.eb-note.on:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(195, 141, 35, 0.517);
  background: linear-gradient(160deg, rgba(220, 167, 60, 0.115), rgba(26, 40, 78, 0.016));
  box-shadow: inset 3px 0 0 rgba(244, 227, 193, 0.55);
}
/* ui/v15.css */
.en-t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v15.css */
.en-go:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 1);
}
/* ui/v15.css */
.eb-reader:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.42);
  border: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/v15.css */
.er-t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v15.css */
.eb-card:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.048), rgba(26, 40, 78, 0.016));
  border: 1px solid rgba(26, 40, 78, 0.128);
}
/* ui/v15.css */
.eb-card:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(26, 40, 78, 0.216);
}
/* ui/v15.css */
.eb-pg:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(26, 40, 78, 0.032);
}
/* ui/v15.css */
.eb-pg:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
}
/* ui/v16.css */
.confirm-wrap:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.6);
}
/* ui/v16.css */
.confirm:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
}
/* ui/v16.css */
.cf-h:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v16.css */
.cf-ico:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 96, 232, 0.161);
  color: rgba(18, 70, 165, 1);
  box-shadow: inset 0 0 0 1px rgba(159, 184, 255, 0.22);
}
/* ui/v16.css */
.confirm.danger .cf-ico:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(232, 61, 48, 0.161);
  color: rgba(165, 32, 18, 1);
  box-shadow: inset 0 0 0 1px rgba(255, 120, 110, 0.231);
}
/* ui/v16.css */
.pill.danger:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(232, 60, 48, 0.23);
  border-color: rgba(207, 38, 23, 0.69);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v16.css */
.ph-top .icon-btn.minus:hover:where(html.theme-day .glass, html.theme-day .glass *),
.ph-top .size-btn:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v16.css */
.ph-title.editable:hover .ph-tt:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.12);
}
/* ui/v16.css */
.ph-tt[contenteditable="true"]:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.168);
}
/* ui/v16.css */
.ph-crumbs .link-cr:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
  background: rgba(26, 40, 78, 0.048);
}
/* ui/v16.css */
.icon-btn.danger:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 32, 18, 1);
  border-color: rgba(207, 36, 23, 0.46);
  background: rgba(232, 60, 48, 0.092);
}
/* ui/v16.css */
.more-btn:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(250, 251, 254, 0.84);
}
/* ui/v16.css */
.more-btn:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.112);
}
/* ui/v16.css */
.tboard:where(html.theme-day .glass, html.theme-day .glass *)::-webkit-scrollbar-thumb {
  background: rgba(26, 40, 78, 0.096);
}
/* ui/v16.css */
.tcol:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(160deg, rgba(26, 40, 78, 0.044), rgba(26, 40, 78, 0.012));
  border: 1px solid rgba(26, 40, 78, 0.122);
}
/* ui/v16.css */
.tcol:where(html.theme-day .glass, html.theme-day .glass *)::before {
  background: var(--c, rgba(25, 79, 230, 1));
}
/* ui/v16.css */
.tcol-folders:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
}
/* ui/v16.css */
.tcol-folders:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.072);
}
/* ui/v16.css */
.tcol-list:where(html.theme-day .glass, html.theme-day .glass *)::-webkit-scrollbar-thumb {
  background: rgba(26, 40, 78, 0.08);
}
/* ui/v16.css */
.tnote:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.028);
  border: 1px solid rgba(26, 40, 78, 0.106);
}
/* ui/v16.css */
.tnote:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
  border-color: rgba(26, 40, 78, 0.183);
}
/* ui/v16.css */
.tnote:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(195, 141, 35, 0.575);
}
/* ui/v16.css */
.tn-t:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v16.css */
.tcol-empty:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px dashed rgba(26, 40, 78, 0.128);
}
/* ui/v16.css */
.tcol.ghost:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(195, 141, 35, 0.322);
  background: rgba(220, 167, 60, 0.029);
}
/* ui/v16.css */
.tcol.ghost:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.069);
  border-color: rgba(195, 141, 35, 0.575);
}
/* ui/v16.css */
.tcol.ghost:where(html.theme-day .glass, html.theme-day .glass *)::before {
  background: rgba(217, 157, 38, 1);
}
/* ui/v16.css */
.tcol.ghost .tdot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(217, 157, 38, 1);
}
/* ui/v16.css */
.desk-stats:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.024);
}
/* ui/v16.css */
.fcard:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
  border: 1px solid rgba(26, 40, 78, 0.128);
}
/* ui/v16.css */
.fcard:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.06);
  border-color: rgba(26, 40, 78, 0.205);
}
/* ui/v16.css */
.ss-cap:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
  border: 1px solid rgba(26, 40, 78, 0.139);
}
/* ui/v16.css */
.ss-cap:focus-within:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 71, 207, 0.517);
}
/* ui/v16.css */
.ss-list:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
  box-shadow: 0 18px 40px rgba(30, 45, 90, 0.12);
}
/* ui/v16.css */
.ss-hit.on:where(html.theme-day .glass, html.theme-day .glass *),
.ss-hit:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.056);
}
/* ui/v16.css */
.eb-reader.idle:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.375);
}
/* ui/v16.css */
.mde:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.405);
}
/* ui/v16.css */
.mde:focus-within:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 98, 207, 0.517);
}
/* ui/v16.css */
.mde-bar:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.02);
}
/* ui/v16.css */
.mde-b:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v16.css */
.mde-b.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.23);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v16.css */
.md li.task input:where(html.theme-day .glass, html.theme-day .glass *) {
  accent-color: rgba(18, 57, 165, 1);
}
/* ui/v16.css */
.md li.task.done:where(html.theme-day .glass, html.theme-day .glass *) {
  text-decoration-color: rgba(22, 30, 48, 0.297);
}
/* ui/v16.css */
.md th:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
}
/* ui/v16.css */
.ref-token:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.161);
  color: rgba(18, 70, 165, 1);
}
/* ui/v16.css */
.s-scope b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 1);
}
/* ui/v16.css */
.s-group:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 0.7);
}
/* ui/v17.css */
.menu-sep:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.08);
}
/* ui/v17.css */
.menu-i.danger:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 30, 18, 1);
}
/* ui/v17.css */
.menu-i.danger .mi-ico:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 30, 18, 1);
}
/* ui/v17.css */
.menu-i.danger:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(232, 59, 48, 0.184);
  color: rgba(165, 32, 18, 1);
}
/* ui/v17.css */
.pill.danger:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 30, 18, 1);
  border-color: rgba(207, 34, 23, 0.575);
  background: rgba(232, 59, 48, 0.138);
}
/* ui/v17.css */
.sat-badge:where(html.theme-day .glass, html.theme-day .glass *) {
  color: var(--c, rgba(156, 113, 28, 1));
  text-shadow: 0 0 8px var(--c, rgba(244, 227, 193, 0.55));
}
/* ui/v17.css */
.md-read:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.014);
}
/* ui/v17.css */
.saved-chip.ok:where(html.theme-day .glass, html.theme-day .glass *)::before {
  background: rgba(62, 193, 118, 1);
  box-shadow: 0 0 6px rgba(127, 214, 164, 0.385);
}
/* ui/v17.css */
.mde-foot:where(html.theme-day .glass, html.theme-day .glass *) {
  border-top: 1px solid rgba(26, 40, 78, 0.106);
}
/* ui/v17.css */
.mde-status[data-tone="ok"]:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(44, 140, 85, 1);
}
/* ui/v17.css */
.mde-status[data-tone="busy"]:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 75, 165, 1);
}
/* ui/v17.css */
.mde-status[data-tone="warn"]:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 66, 18, 1);
}
/* ui/v17.css */
.mde-sug:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
  box-shadow: 0 12px 40px rgba(30, 45, 90, 0.135);
}
/* ui/v17.css */
.mde-sug-i.on:where(html.theme-day .glass, html.theme-day .glass *),
.mde-sug-i:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.184);
}
/* ui/v17.css */
.mde-focus-b.on:where(html.theme-day .glass, html.theme-day .glass *),
.mde.mde-focus .mde-focus-b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 75, 165, 1);
}
/* ui/v17.css */
.outline:where(html.theme-day .glass, html.theme-day .glass *) {
  border-left: 1px solid rgba(26, 40, 78, 0.128);
}
/* ui/v17.css */
.ol-i:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.048);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v17.css */
.backlinks:not(.empty-bl):where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.024);
  border: 1px solid rgba(26, 40, 78, 0.106);
}
/* ui/v17.css */
.bl-i:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(26, 40, 78, 0.032);
}
/* ui/v17.css */
.bl-i:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 98, 207, 0.575);
}
/* ui/v17.css */
.qc:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
  box-shadow: 0 20px 70px rgba(30, 45, 90, 0.15);
}
/* ui/v17.css */
.qc-tgt:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.172);
  background: rgba(26, 40, 78, 0.04);
}
/* ui/v17.css */
.qc-tgt:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 98, 207, 0.575);
}
/* ui/v17.css */
.qc-in:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.15);
  background: rgba(250, 251, 254, 0.465);
}
/* ui/v17.css */
.qc-in:focus:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 98, 207, 0.632);
}
/* ui/v17.css */
.qc-in:where(html.theme-day .glass, html.theme-day .glass *)::first-line {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v17.css */
.ck-wrap:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.563);
}
/* ui/v17.css */
.ck:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
  box-shadow: 0 30px 90px rgba(30, 45, 90, 0.165);
}
/* ui/v17.css */
.ck-k:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.194);
}
/* ui/v17.css */
.ck-in:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v17.css */
.ck-i.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.184);
}
/* ui/v17.css */
.ck-i kbd:where(html.theme-day .glass, html.theme-day .glass *),
.kbd:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(26, 40, 78, 0.194);
}
/* ui/v17.css */
.ck-foot:where(html.theme-day .glass, html.theme-day .glass *) {
  border-top: 1px solid rgba(26, 40, 78, 0.106);
}
/* ui/v17.css */
.s-fchip:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 98, 207, 0.517);
}
/* ui/v17.css */
.s-sn mark:where(html.theme-day .glass, html.theme-day .glass *),
.s-t mark:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(48, 124, 232, 0.322);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v17.css */
[data-entry].sel-on:where(html.theme-day .glass, html.theme-day .glass *) {
  outline: 2px solid rgba(23, 98, 207, 0.862);
  background: rgba(48, 124, 232, 0.115) !important;
}
/* ui/v17.css */
.bulk:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
  box-shadow: 0 14px 44px rgba(30, 45, 90, 0.15);
}
/* ui/v17.css */
.bulk-n:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(18, 70, 165, 1);
}
/* ui/v17.css */
.drag-ghost:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(42, 58, 90, 1);
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v17.css */
body.note-dragging [data-drop-topic]:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: inset 0 0 0 1px rgba(94, 160, 255, 0.193);
}
/* ui/v17.css */
.drop-on:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: inset 0 0 0 2px rgba(94, 160, 255, 0.495), 0 0 24px rgba(94, 160, 255, 0.193) !important;
}
/* ui/v17.css */
.sbs:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.94), rgba(250, 251, 254, 0.94));
}
/* ui/v17.css */
.sbs-top:where(html.theme-day .glass, html.theme-day .glass *) {
  border-bottom: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/v17.css */
.sbs-col.l:where(html.theme-day .glass, html.theme-day .glass *) {
  border-right: 1px solid rgba(26, 40, 78, 0.117);
}
/* ui/v17.css */
.sbs-h:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.94);
}
/* ui/v17.css */
.sbs-h b:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(22, 30, 48, 0.94);
}
/* ui/v18.css */
.view.entry .mde-bar:where(html.theme-day .glass, html.theme-day .glass *),
.eb-reader .mde-bar:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.94);
}
/* ui/v18.css */
.entry-actions.sticky-foot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.915), rgba(250, 251, 254, 0.94));
}
/* ui/v18.css */
.entry-actions.sticky-foot:where(html.theme-day .glass, html.theme-day .glass *)::after {
  background: linear-gradient(90deg, transparent, rgba(26, 40, 78, 0.048), transparent);
}
/* ui/v18.css */
.eb-reader .er-actions:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(180deg, rgba(250, 251, 254, 0.9), rgba(250, 251, 254, 0.94));
}
/* ui/v18.css */
.eb-reader.new:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(195, 141, 35, 0.253);
}
/* ui/v18.css */
.ia:hover:where(html.theme-day .glass, html.theme-day .glass *),
.ia:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.048);
}
/* ui/v18.css */
.tcol:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: color-mix(in srgb, var(--c, rgba(26, 40, 78, 0.32)) 26%, transparent);
}
/* ui/v19.css */
.pop .menu-i:hover:where(html.theme-day .glass, html.theme-day .glass *),
.pop .menu-i:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/v19.css */
.pop .menu-i.danger:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(232, 72, 48, 0.138);
}
/* ui/v19.css */
.cosmos-gate .cg-art:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 14px rgba(170, 190, 255, 0.193));
}
/* ui/v19.css */
.cg-badge:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 62, 35, 1);
  color: rgba(22, 30, 48, 0.94);
  box-shadow: 0 0 12px rgba(232, 128, 110, 0.385);
}
/* ui/v19.css */
.cosmos .cz-sky:where(html.theme-day .glass, html.theme-day .glass *) {
  background: radial-gradient(1200px 700px at 72% 18%, rgba(48, 76, 232, 0.184), transparent 60%),
    radial-gradient(900px 600px at 12% 90%, rgba(220, 167, 60, 0.115), transparent 60%),
    radial-gradient(1px 1px at 12% 22%, rgba(26, 32, 48, 1) 99%, transparent), radial-gradient(1px 1px at 32% 68%, rgba(25, 64, 230, 1) 99%, transparent),
    radial-gradient(1px 1px at 54% 14%, rgba(26, 32, 48, 1) 99%, transparent), radial-gradient(1.5px 1.5px at 78% 58%, rgba(26, 32, 48, 1) 99%, transparent),
    radial-gradient(1px 1px at 88% 32%, rgba(26, 32, 48, 1) 99%, transparent), radial-gradient(1px 1px at 22% 84%, rgba(26, 32, 48, 1) 99%, transparent),
    radial-gradient(1px 1px at 66% 88%, rgba(26, 32, 48, 1) 99%, transparent), radial-gradient(1px 1px at 44% 42%, rgba(25, 64, 230, 1) 99%, transparent),
    rgba(250, 251, 254, 0.94);
}
/* ui/v19.css */
.cz-card:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(26, 40, 78, 0.32);
}
/* ui/v19.css */
.cz-card.friend .czc-kind:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(45, 139, 93, 1);
}
/* ui/v19.css */
.czc-co:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(45, 139, 93, 1);
}
/* ui/v19.css */
.czc-p:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid color-mix(in srgb, var(--c, rgba(23, 84, 207, 1)) 45%, transparent);
  color: color-mix(in srgb, var(--c, rgba(18, 67, 165, 1)) 70%, rgba(22, 30, 48, 0.94));
}
/* ui/v19.css */
.czh-art:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 18px rgba(244, 227, 193, 0.193));
}
/* ui/v19.css */
.vb-dot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(62, 193, 129, 1);
  box-shadow: 0 0 10px rgba(159, 224, 192, 0.55);
}
/* ui/v19.css */
.vb-mode.co:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(45, 139, 93, 1);
  border-color: rgba(56, 173, 116, 0.46);
}
/* ui/v19.css */
.rc-row:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.032);
}
/* ui/v19.css */
.rc-av:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(250, 251, 254, 1);
  background: var(--c, rgba(25, 79, 230, 1));
  box-shadow: 0 0 12px color-mix(in srgb, var(--c, rgba(159, 184, 255, 0.55)) 50%, transparent);
}
/* ui/v19.css */
.acc-opt:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* ui/v19.css */
.acc-opt.on:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 71, 207, 0.517);
  background: rgba(48, 96, 232, 0.115);
}
/* ui/v19.css */
.acc-seg:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* ui/v19.css */
.acc-seg button.on:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.112);
}
/* ui/v19.css */
.acc-feat:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(220, 167, 60, 0.069);
}
/* ui/v19.css */
.live-lock .ll-dot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(218, 125, 37, 1);
  box-shadow: 0 0 10px rgba(230, 168, 110, 0.55);
}
/* ui/v19.css */
.mde-status[data-tone="ok"]:where(html.theme-day .glass, html.theme-day .glass *)::before {
  background: rgba(62, 193, 124, 1);
}
/* ui/v19.css */
.md img:where(html.theme-day .glass, html.theme-day .glass *) {
  box-shadow: 0 8px 28px -12px rgba(30, 45, 90, 0.18);
}
/* ui/v19.css */
.md img.att-miss:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.04);
}
/* ui/v19.css */
.md-edit.drop-img:where(html.theme-day .glass, html.theme-day .glass *) {
  outline: 2px dashed rgba(23, 71, 207, 0.632);
}
/* ui/v19.css */
.cap-bar:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.064);
}
/* ui/v19.css */
.cap-bar i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(90deg, rgba(25, 79, 230, 1), rgba(217, 157, 38, 1));
}
/* ui/v19.css */
.cap-bar.warn i:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(90deg, rgba(218, 125, 37, 1), rgba(220, 62, 35, 1));
}
/* ui/v19.css */
.db-drift:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 5px rgba(170, 196, 255, 0.193));
}
/* ui/v19.css */
.db-body:where(html.theme-day .glass, html.theme-day .glass *) {
  stroke: rgba(22, 30, 48, 0.326);
}
/* ui/v19.css */
.db-edge:where(html.theme-day .glass, html.theme-day .glass *) {
  stroke: rgba(165, 115, 18, 0.75);
}
/* ui/v19.css */
.db-shard.fresh .db-drift:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 8px rgba(255, 214, 150, 0.33));
}
/* ui/v19.css */
.db-shard:focus-visible .db-drift:where(html.theme-day .glass, html.theme-day .glass *) {
  filter: drop-shadow(0 0 0 2px var(--focus, rgba(159, 184, 255, 0.55))) drop-shadow(0 0 10px rgba(160, 196, 255, 0.44));
}
/* ui/v19.css */
.db-lab:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.915);
  border: 1px solid var(--hair, rgba(26, 40, 78, 0.172));
}
/* ui/v19.css */
.db-ring:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1.5px dashed rgba(207, 135, 23, 0.977);
  box-shadow: 0 0 24px rgba(255, 214, 150, 0.193), inset 0 0 18px rgba(255, 214, 150, 0.11);
}
/* ui/v19.css */
.db-hint:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(250, 251, 254, 0.94);
  border: 1px solid var(--hair, rgba(26, 40, 78, 0.172));
}
/* ui/v19.css */
.db-hint.ok:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 115, 18, 1);
  border-color: rgba(207, 135, 23, 0.575);
}
/* ui/v19.css */
.qd-b:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid var(--hair, rgba(26, 40, 78, 0.172));
  background: rgba(250, 251, 254, 0.84);
  box-shadow: 0 8px 24px rgba(30, 45, 90, 0.105);
}
/* ui/v19.css */
.qd-b kbd:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 0 solid var(--hair, rgba(26, 40, 78, 0.194));
}
/* ui/v19.css */
.qd-b:hover:where(html.theme-day .glass, html.theme-day .glass *),
.qd-b:focus-visible:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(23, 71, 207, 0.575);
  background: rgba(250, 251, 254, 0.94);
}
/* ui/v19.css */
.qd-q:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(207, 135, 23, 0.402);
}
/* ui/v19.css */
.qd-q .qd-i:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(165, 115, 18, 1);
}
/* ui/v19.css */
.qd-n:where(html.theme-day .glass, html.theme-day .glass *) {
  border: 1px solid rgba(207, 135, 23, 0.345);
  background: rgba(250, 251, 254, 0.825);
  color: rgba(165, 115, 18, 1);
}
/* ui/v19.css */
.qd-n:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(207, 135, 23, 0.69);
}
/* ui/v19.css */
.db-dot:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(135deg, rgba(26, 32, 48, 1), rgba(250, 251, 254, 1));
  box-shadow: 0 0 6px rgba(255, 214, 150, 0.275);
}
/* ui/v19.css */
.qc-title:where(html.theme-day .glass, html.theme-day .glass *) {
  border-bottom: 1px solid var(--hair, rgba(26, 40, 78, 0.15));
}
/* ui/v19.css */
.qc-title:focus:where(html.theme-day .glass, html.theme-day .glass *) {
  border-bottom-color: rgba(23, 98, 207, 0.632);
}
/* ui/v19.css */
.qc-tgt.debris:where(html.theme-day .glass, html.theme-day .glass *) {
  border-color: rgba(207, 135, 23, 0.46);
  color: rgba(165, 115, 18, 1);
}
/* ui/v192.css */
.trail button.tr-c:hover:where(html.theme-day .glass, html.theme-day .glass *) {
  background: rgba(26, 40, 78, 0.048);
}
/* ui/v192.css */
.cz-card.all .czc-kind:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(157, 109, 27, 1);
}
@media (max-width: 760px), (max-aspect-ratio: 1/1) {
/* ui/v13.css */
.sheet-seam:where(html.theme-day .glass, html.theme-day .glass *) {
  background: linear-gradient(90deg, transparent, rgba(217, 157, 38, 0.9) 30%, rgba(26, 32, 48, 1) 50%, rgba(25, 98, 230, 0.9) 70%, transparent);
}
/* ui/v15.css */
.lightctl:not(.open) > .lc-tog:where(html.theme-day .glass, html.theme-day .glass *) {
  color: rgba(156, 113, 28, 1);
}
}
@media (max-width: 760px) {
/* ui/v17.css */
.sbs-col.l:where(html.theme-day .glass, html.theme-day .glass *) {
  border-bottom: 1px solid rgba(26, 40, 78, 0.117);
}
}
/* 星痕 v1.8 —— 液态玻璃（夜间默认）+ 日间主题的手调部分。day.css 为自动生成，本文件在其后引入。 */

/* —— 液态玻璃：内侧高光边 + 缓慢流动的隐约光泽（参考 iOS Liquid Glass） —— */
@property --lg-a { syntax: "<angle>"; inherits: false; initial-value: 200deg; }
@keyframes lg-flow { to { --lg-a: 560deg; } }
.sheet.glass, .modal.glass, .pop.glass, .ck.glass, .search.glass, .notice.glass, .bulk.glass {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),            /* 上缘反光 */
    inset 0 0 0 1px rgba(255, 255, 255, 0.045),        /* 内侧细边 */
    inset 0 -1px 0 rgba(255, 255, 255, 0.05),          /* 下缘回光 */
    inset 0 0 36px -8px rgba(150, 185, 255, 0.07),     /* 玻璃体内的冷色折射 */
    0 28px 70px -20px rgba(0, 0, 0, 0.6), 0 2px 10px rgba(0, 0, 0, 0.2);
}
.sheet.glass::before, .modal.glass::before, .ck.glass::before, .search.glass::before {
  background:
    radial-gradient(360px circle at var(--mx, 30%) var(--my, -20%), rgba(255, 255, 255, 0.06), transparent 62%),
    linear-gradient(var(--lg-a), transparent 28%, rgba(255, 255, 255, 0.028) 42%, rgba(170, 200, 255, 0.05) 50%, rgba(255, 255, 255, 0.022) 58%, transparent 72%),
    linear-gradient(162deg, rgba(255, 255, 255, 0.09) 0%, rgba(255, 255, 255, 0.015) 22%, transparent 40%);
  animation: lg-flow 26s steps(260) infinite;
}
.sheet.glass::after, .modal.glass::after, .pop.glass::after, .ck.glass::after {
  background: linear-gradient(var(--lg-a), rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.06) 30%, rgba(159, 184, 255, 0.05) 66%, rgba(244, 227, 193, 0.18));
  animation: lg-flow 26s steps(260) infinite;
}
@media (prefers-reduced-motion: reduce) { .glass::before, .glass::after { animation: none !important; } }
html.motion-reduced .glass::before, html.motion-reduced .glass::after { animation: none !important; }

/* —— 日间主题 —— */
.dawn { position: fixed; inset: 0; pointer-events: none; opacity: 0; transition: opacity 1.4s var(--ease); mix-blend-mode: screen;
  background:
    radial-gradient(120% 85% at 78% 112%, rgba(255, 214, 170, 0.34), transparent 58%),   /* 地平线的晨光 */
    radial-gradient(90% 70% at 10% -10%, rgba(120, 170, 255, 0.38), transparent 62%),
    linear-gradient(180deg, rgba(58, 96, 176, 0.5) 0%, rgba(96, 140, 214, 0.44) 55%, rgba(150, 182, 236, 0.5) 100%); }
/* v1.11.13：日间天色改由渲染终合成只加在背景上（core/renderer.ts dawnP），这层全屏滤色不再盖在恒星 / 行星上 */
html.theme-day .dawn { opacity: 0; }
html.theme-day { --ink: #1b2a4a; }

/* 玻璃面板内：变量换成日间 */
html.theme-day .glass {
  --text: rgba(20, 28, 46, 0.92);
  --text-2: rgba(34, 46, 72, 0.66);
  --text-3: rgba(44, 58, 90, 0.46);
  --hair: rgba(26, 40, 78, 0.1);
  --hair-2: rgba(26, 40, 78, 0.18);
  --accent: #3563d8;
  --warm: #9a6a1c;
  --glass: rgba(252, 253, 255, 0.62);
  --glass-strong: rgba(252, 253, 255, 0.82);
  --g-fill: rgba(26, 40, 78, 0.05);
  --g-line: rgba(255, 255, 255, 0.7);
  color-scheme: light;
  color: var(--text);
}
/* 材质：乳白玻璃，边缘更亮，阴影更轻更蓝 */
html.theme-day .glass { background: linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(244, 247, 253, 0.66)); border-color: rgba(255, 255, 255, 0.75); backdrop-filter: blur(24px) saturate(170%) brightness(1.06); -webkit-backdrop-filter: blur(24px) saturate(170%) brightness(1.06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95), inset 0 0 0 1px rgba(255, 255, 255, 0.35), inset 0 -1px 0 rgba(255, 255, 255, 0.5), inset 0 0 40px -10px rgba(120, 160, 255, 0.14), 0 26px 60px -22px rgba(20, 40, 100, 0.42), 0 2px 10px rgba(20, 40, 100, 0.1); }
/* v1.11.14 重要入口与辅助文字对比度提升：更清晰不偏暗 */
:root { --text: rgba(236,240,255,0.96); --text-2: rgba(214,222,240,0.78); --text-3: rgba(200,210,232,0.58); }
.glass { --text: rgba(236,240,255,0.96); --text-2: rgba(214,222,240,0.78); --text-3: rgba(200,210,232,0.58); }
.faint, .sub, .en, .hint { color: var(--text-2) !important; }
.menu-h, .group-t, .cz-h h3 { color: var(--text) !important; letter-spacing: 0.14em; }
.pill, .btn, .icon-btn { font-weight: 500; }
.corner .tag, .neighbor { font-weight: 400; letter-spacing: 0.08em; }
/* 入口按钮更亮 */
.qd-b, .cosmos-gate .cg-tip b, .sat-label { color: var(--text) !important; }
html.theme-day .sheet.glass { background: linear-gradient(180deg, rgba(255, 255, 255, 0.8), rgba(242, 246, 253, 0.74)); }
html.theme-day .pop.glass, html.theme-day .ck.glass, html.theme-day .mde-sug.glass, html.theme-day .modal-wrap.floating .modal { background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(244, 247, 253, 0.9)); }
html.theme-day .glass::before {
  background:
    radial-gradient(360px circle at var(--mx, 30%) var(--my, -20%), rgba(255, 255, 255, 0.5), transparent 62%),
    linear-gradient(var(--lg-a), transparent 28%, rgba(255, 255, 255, 0.35) 44%, rgba(200, 220, 255, 0.28) 50%, rgba(255, 255, 255, 0.2) 56%, transparent 72%),
    linear-gradient(162deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.08) 24%, transparent 42%);
}
html.theme-day .glass::after { background: linear-gradient(var(--lg-a), rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.4) 30%, rgba(120, 150, 220, 0.25) 70%, rgba(255, 255, 255, 0.8)); }
html.theme-day .modal-wrap:not(.floating) { background: rgba(40, 60, 110, 0.25); }
html.theme-day.focus-read .sheet.glass { background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(246, 248, 253, 0.93)); }

/* 吸顶 / 固定栏：日间用乳白 */
html.theme-day .view.entry .mde-bar, html.theme-day .eb-reader .mde-bar { background: rgba(250, 251, 255, 0.9); }
html.theme-day .entry-actions.sticky-foot, html.theme-day .eb-reader .er-actions { background: linear-gradient(180deg, rgba(250, 251, 255, 0.84), rgba(244, 247, 253, 0.95)); }
html.theme-day .ia:hover, html.theme-day .ia:focus-visible { background: rgba(26, 40, 78, 0.06); }

/* 专题色在白底上加深，保证可读 */
html.theme-day .glass .chip, html.theme-day .glass .tcol-name, html.theme-day .glass [style*="--c"] .tn { color: color-mix(in srgb, var(--c, #3563d8) 58%, #172036); }
html.theme-day .glass .chip { background: color-mix(in srgb, var(--c, #3563d8) 14%, transparent); border-color: color-mix(in srgb, var(--c, #3563d8) 34%, transparent); }
html.theme-day .tnote::before, html.theme-day .eb-note::before, html.theme-day .eb-card::before, html.theme-day .card.mini::before { opacity: 0.85; }
html.theme-day .glass input, html.theme-day .glass textarea, html.theme-day .glass select { color: var(--text); }
html.theme-day .glass input::placeholder, html.theme-day .glass textarea::placeholder { color: var(--text-3); }
html.theme-day .glass .md code, html.theme-day .glass .md pre { background: rgba(26, 40, 78, 0.06); }
html.theme-day .glass ::-webkit-scrollbar-thumb { background: rgba(26, 40, 78, 0.18); }

/* —— 右上角日夜快速切换 —— */
.theme-tog { position: relative; overflow: hidden; }
.theme-tog .tt-i { position: absolute; inset: 0; display: grid; place-items: center; transition: transform 0.6s var(--spring-soft), opacity 0.35s; }
.theme-tog .tt-i svg { width: 17px; height: 17px; }
.theme-tog .tt-sun { transform: translateY(120%) rotate(-60deg); opacity: 0; }
html.theme-day .theme-tog .tt-sun { transform: none; opacity: 1; color: #ffe1a6; }
html.theme-day .theme-tog .tt-moon { transform: translateY(-120%) rotate(60deg); opacity: 0; }

/* —— 首次使用指引：只有两条 —— */
.tip { position: fixed; z-index: 90; pointer-events: auto; max-width: 250px; padding: 12px 14px 10px; border-radius: 16px; font-size: 12.5px; line-height: 1.7; letter-spacing: 0.06em;
  animation: tip-in 0.5s var(--spring-soft) both; }
/* v1.11.13：内容压在玻璃光泽层（::before，日间是较亮的白色高光）之上，否则日间文字会被洗白看不清 */
.tip > * { position: relative; }
.tip b { display: block; font-weight: 400; letter-spacing: 0.2em; margin-bottom: 2px; color: var(--text); }
.tip p { margin: 0; color: var(--text-2); }
.tip .tip-f { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; font-size: 11px; color: var(--text-3); }
.tip .tip-f button { border: 0; background: rgba(255, 255, 255, 0.1); color: var(--text); font: inherit; padding: 4px 12px; border-radius: 999px; cursor: pointer; }
html.theme-day .tip .tip-f button { background: rgba(26, 40, 78, 0.08); }
.tip::after { content: ""; position: absolute; width: 10px; height: 10px; background: inherit; border: inherit; transform: rotate(45deg); }
.tip[data-side="bottom"]::after { top: -6px; right: var(--ax, 18px); border-right: 0; border-bottom: 0; }
.tip[data-side="left"]::after { right: -6px; top: 16px; border-left: 0; border-bottom: 0; }
.tip-pulse { position: fixed; z-index: 89; pointer-events: none; border-radius: 999px; box-shadow: 0 0 0 0 rgba(160, 196, 255, 0.55); animation: tip-pulse 1.8s ease-out infinite; }
@keyframes tip-in { from { opacity: 0; transform: translateY(6px) scale(0.96); } }
@keyframes tip-pulse { 70% { box-shadow: 0 0 0 12px rgba(160, 196, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(160, 196, 255, 0); } }
@media (prefers-reduced-motion: reduce) { .tip, .tip-pulse { animation: none; } }

/* 日间：星空上的 HUD 文字加一层柔和暗影，保证在晨曦色背景上可读 */
html.theme-day :is(.corner, .tag, .neighbor, .sat-label, .hint, .screen-name) { text-shadow: 0 1px 8px rgba(8, 18, 48, 0.55), 0 0 2px rgba(8, 18, 48, 0.4); }
/* 指引气泡要压得住下面的内容：几乎不透明 */
.tip.glass { background: linear-gradient(180deg, rgba(30, 35, 48, 0.97), rgba(20, 24, 34, 0.97)); border-color: rgba(160, 196, 255, 0.28); }
html.theme-day .tip.glass { background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 247, 253, 0.97)); border-color: rgba(53, 99, 216, 0.25); }
/* v1.11.16 宇宙入场动画「星痕 · 创世」（ui/intro.ts）——叠层、字幕、跳过提示、音效开关，以及与首页标题的交接 */
.intro-root { position: fixed; inset: 0; z-index: 9999; background: #000; cursor: default; overflow: hidden; contain: strict; }
.intro-root.live { background: transparent; }
.intro-root canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.intro-root.skipping { cursor: default; }

.intro-line { position: absolute; left: 0; right: 0; text-align: center; pointer-events: none; white-space: nowrap;
  font-family: "Startrace Title", var(--thin); font-weight: 200; font-size: clamp(16px, 1.55vw, 26px);
  letter-spacing: 0.62em; padding-left: 0.62em; color: rgba(226, 232, 245, 0.9);
  text-shadow: 0 0 18px rgba(150, 175, 255, 0.35);
  opacity: 0; filter: blur(10px); transform: translateY(8px) scale(0.985);
  transition: opacity 1.1s var(--ease), filter 1.2s var(--ease), letter-spacing 2.6s var(--ease), transform 1.6s var(--ease); }
.intro-line.l1 { top: calc(50% + max(64px, 9vh)); }
.intro-line b { font-weight: 200; }
.intro-line b.cool { color: #e6ecfb; text-shadow: 0 0 22px rgba(170, 195, 255, 0.7); }
.intro-line.on { opacity: 1; filter: blur(0); letter-spacing: 0.42em; padding-left: 0.42em; transform: none; }
.intro-line.off { opacity: 0; filter: blur(8px); letter-spacing: 0.5em; transition-duration: 0.8s; }
/* 英文字幕：与首页 STARTRACE 字标同一款细体 */
.intro-line.en { font-family: "Startrace Mark", var(--thin); font-weight: 300; font-size: clamp(15px, 1.35vw, 23px); letter-spacing: 0.5em; padding-left: 0.5em; }
.intro-line.en.on { letter-spacing: 0.32em; padding-left: 0.32em; }
.intro-line.en.off { letter-spacing: 0.4em; }
.intro-line.en b { font-weight: 300; }

.intro-hint { position: absolute; left: 0; right: 0; bottom: clamp(18px, 3.4vh, 34px); text-align: center; pointer-events: none;
  font-size: 11px; letter-spacing: 0.32em; padding-left: 0.32em; color: rgba(200, 210, 232, 0.42); opacity: 0; transition: opacity 0.9s var(--ease); }
.intro-hint.on { opacity: 1; }

/* 音效开关（左下角；M 键同效）。浏览器不允许自动出声时提示“点击任意处开启声音” */
.intro-snd { position: absolute; left: clamp(14px, 2.2vw, 30px); bottom: clamp(14px, 3vh, 30px); display: flex; align-items: center; gap: 8px;
  padding: 7px 12px 7px 10px; border: 1px solid rgba(200, 212, 240, 0.14); border-radius: 999px; background: rgba(8, 12, 22, 0.35);
  color: rgba(214, 224, 244, 0.62); font: 11px/1 var(--sans, system-ui); letter-spacing: 0.18em; cursor: pointer;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); opacity: 0; pointer-events: none; transition: opacity 0.9s var(--ease), color 0.3s, border-color 0.3s; }
.intro-snd.on { opacity: 1; pointer-events: auto; }
.intro-snd:hover, .intro-snd:focus-visible { color: rgba(236, 242, 255, 0.92); border-color: rgba(200, 212, 240, 0.32); outline: none; }
.intro-snd svg { width: 16px; height: 16px; flex: none; }
.intro-snd .x { display: none; }
.intro-snd[data-st="off"] .w1, .intro-snd[data-st="off"] .w2 { display: none; }
.intro-snd[data-st="off"] .x { display: inline; }
.intro-snd[data-st="blocked"] { color: rgba(243, 223, 182, 0.85); border-color: rgba(243, 223, 182, 0.3); animation: intro-snd-pulse 2.4s ease-in-out infinite; }
.intro-snd[data-st="on"] .w1 { animation: intro-snd-wave 1.6s ease-in-out infinite; }
.intro-snd[data-st="on"] .w2 { animation: intro-snd-wave 1.6s 0.25s ease-in-out infinite; }
.intro-snd kbd { font: 10px/1 var(--mono, ui-monospace, monospace); padding: 2px 5px; border-radius: 4px; border: 1px solid rgba(200, 212, 240, 0.2); color: rgba(214, 224, 244, 0.55); letter-spacing: 0; }
@keyframes intro-snd-wave { 0%, 100% { opacity: 0.35; } 50% { opacity: 1; } }
@keyframes intro-snd-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(243, 223, 182, 0); } 50% { box-shadow: 0 0 0 4px rgba(243, 223, 182, 0.08); } }

/* 播放期间：首页文字先不出现（由粒子字代替），也不跑它自己的入场动画 */
html.intro-on .hero .title .ch, html.intro-on .hero .wordmark span, html.intro-on .hero .tagline, html.intro-on .hero .enter { animation: none !important; opacity: 0 !important; transform: none !important; }
html.intro-on .hero .trace::before, html.intro-on .hero .trace::after { animation: none !important; opacity: 0 !important; }

/* 交接：标题在粒子字的位置上淡入（不再位移、不再收字距），光迹已由动画划好，其余文字依次浮现 */
html.intro-handoff .hero .title .ch { transform: none; animation: intro-ch 1.1s var(--ease) forwards, title-sheen 11s 3.2s var(--ease) infinite; }
html.intro-handoff .hero .title .ch:nth-child(2) { animation: intro-ch 1.1s 0.08s var(--ease) forwards, title-sheen 11s 3.5s var(--ease) infinite; }
html.intro-handoff .hero .trace::before { transform: scaleX(1); opacity: 0; animation: intro-fade 0.7s var(--ease) forwards; }
html.intro-handoff .hero .trace::after { left: calc(92% - 2px); opacity: 0; animation: intro-fade 0.7s var(--ease) forwards, head-breathe 4.2s 1.2s ease-in-out infinite; }
html.intro-handoff .hero .wordmark span { animation: wm-in 1.2s var(--ease) forwards; animation-delay: calc(0.2s + var(--i) * 0.05s); }
html.intro-handoff .hero .tagline { animation: rise 1.1s 0.45s var(--ease) forwards; }
html.intro-handoff .hero .enter { animation: rise 1.1s 0.65s var(--ease) forwards; }
@keyframes intro-ch { from { opacity: 0; filter: blur(5px) brightness(1.7); } to { opacity: 1; filter: none; } }
@keyframes intro-fade { from { opacity: 0; } to { opacity: 1; } }

/* 停在首页 2 秒无操作自动进入星系：「进入星系」下划线在这 2 秒里展开，作为倒计时 */
.enter.auto-go { color: var(--text); }
.enter.auto-go::after { left: 8%; right: 8%; transition: left 2s linear, right 2s linear; }

@media (prefers-reduced-motion: reduce) {
  .intro-line { transition-duration: 0.6s; filter: none; }
}
.tour-layer{position:fixed;inset:0;z-index:10000;pointer-events:none;isolation:isolate;}
.tour-veil{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;}
.tour-mask{fill:rgba(3,8,18,.56);pointer-events:fill;}
.tour-rings{fill:none;stroke:#f6d28d;stroke-width:1.6;filter:drop-shadow(0 0 7px #eab85688);pointer-events:none;}
.tour-layer .tour-card{box-sizing:border-box;right:auto;bottom:auto;position:absolute;pointer-events:auto;z-index:1;margin:0;max-height:calc(100dvh - 28px);overflow:auto;padding:22px;border-radius:22px;background:linear-gradient(140deg,rgba(28,39,61,.98),rgba(10,18,34,.98));border:1px solid #f1d29677;box-shadow:0 18px 70px #0009,0 0 32px #edbd5014;backdrop-filter:blur(18px);}
.tour-layer .tour-card::before{content:"";position:absolute;left:24px;right:24px;top:0;height:1px;background:linear-gradient(90deg,transparent,#ffe7ab,transparent);}
.tour-layer .tour-eyebrow{font-size:10px;letter-spacing:.06em;color:#eed7ab;gap:8px;}
.tour-layer .tour-card h3{font-size:18px;line-height:1.55;color:#ffe5ac;margin:13px 0 9px;}
.tour-layer .tour-card p{font-size:13px;line-height:1.9;color:#e0e9fa;margin:0 0 17px;}
.tour-layer .tour-skip{border:1px solid #bfcee533;border-radius:8px;color:#d2def1;white-space:nowrap;font-size:10px;padding:5px 8px;background:#a0b3d109;}
.tour-layer .tour-skip:hover{background:#a0b3d11a;border-color:#e8cf9966;}
.tour-layer .tour-actions{flex-wrap:wrap;gap:9px;justify-content:flex-end;}
.tour-layer .tour-wait{flex-basis:100%;font-size:11px;color:#becfe9;line-height:1.7;}
.tour-layer .pill{font-size:12px;line-height:1.6;padding:7px 13px;}
.tour-layer .pill.primary{color:#fff1ca;background:#e2b45828;border-color:#ecc5787a;}
.tour-layer button:focus-visible{outline:2px solid #ffe2a0;outline-offset:3px;}
html .tour-layer .tour-actions{justify-content:flex-start;gap:12px;}
html .tour-layer .tour-actions .tour-wait{flex:1 0 100%;min-width:0;}
html .tour-layer .tour-next{min-width:112px;min-height:40px;font-size:13px;}
html .tour-layer .tour-next:disabled{opacity:.5;cursor:default;}
html .tour-layer .tour-actions .tour-skip{margin-left:auto;flex:none;align-self:center;min-height:32px;padding:6px 4px;border:0;background:none;box-shadow:none;font-size:11px;color:var(--text-2,#becfe9);}
html .tour-layer .tour-actions .tour-skip:hover{color:var(--text,#fff);background:transparent;text-decoration:underline;text-underline-offset:4px;}
.tour-rings{animation:tour-focus-breathe 1.8s ease-in-out infinite;}
@keyframes tour-focus-breathe{50%{stroke:#ffe9b9;filter:drop-shadow(0 0 11px #eab856b3);}}
@media(prefers-reduced-motion:reduce){.tour-rings{animation:none;}}
html.tour-active .tip,html.tour-active .tip-pulse{visibility:hidden!important;}
html.tour-active .db-drift,html.tour-active .db-rot{animation-play-state:paused!important;}
html.tour-active .db-shard.spawn{animation:none!important;}
@media(max-width:540px){.tour-layer .tour-card{padding:16px;border-radius:18px;}.tour-layer .tour-card h3{font-size:16px;}.tour-layer .tour-card p{font-size:12px;line-height:1.8;}}
/* Codex 体验修整：保持现有星空与玻璃风格，提升文字对比和可发现性。 */
:root,.glass { --text: #edf2ff; --text-2: rgba(228,236,255,.86); --text-3: rgba(215,226,248,.74); }
html.theme-day .glass { --text: #182943; --text-2: #344761; --text-3: #495d78; }
.sub,.faint,.hint,.blk-x,.src-k,.row-time,.mde-keys,.menu-h { opacity:1; }
.modal.glass,.qc.glass { background-color:rgba(12,19,34,.94); }
html.theme-day .modal.glass,html.theme-day .qc.glass { background-color:rgba(240,246,255,.96); }
.permission-notice { display:flex;gap:9px;align-items:flex-start;margin:10px 0;padding:10px 13px;border:1px solid rgba(244,205,125,.4);border-radius:12px;background:rgba(202,151,58,.13);font-size:12px;line-height:1.7;color:#ffe1a0; }
html.theme-day .permission-notice {color:#775016;border-color:#c2a575;background:#fbf0d9;}
.sat-label {color:#f8edcf;font-size:13px;letter-spacing:.08em;padding:5px 9px;max-width:148px;border-radius:9px;background:rgba(6,12,24,.86);text-shadow:0 1px 5px #000;border:1px solid rgba(238,208,142,.2);}
.sat-label .en {color:#dde6f6;letter-spacing:.08em;}
.qdock {left:18px!important;bottom:17px!important;z-index:91;flex-direction:row;gap:8px;}
.qdock::after{content:none;}
.qdock .qd-b{gap:7px;}
.qdock .qd-t,.qdock kbd{max-width:none!important;}
@media(min-width:760px){.lightctl{bottom:128px;}}
.qdock .qd-t,.qdock kbd {opacity:1!important;display:inline!important;}
.shortcut-guide {position:fixed;left:19px;bottom:69px;z-index:90;display:flex;gap:9px;flex-wrap:wrap;max-width:370px;padding:8px 12px;border:1px solid rgba(187,210,255,.25);border-radius:12px;background:rgba(9,16,30,.84);color:#e5edff;font-size:11px;line-height:1.7;backdrop-filter:blur(12px);}
.shortcut-guide kbd {font-family:inherit;font-weight:600;color:#ffdc92;}
.cosmos-gate.in3d .cg-tip {opacity:.95;}
.cosmos-gate.in3d .cg-tip b {color:#ffe4ae;animation:public-entry-pulse 3.2s ease-in-out infinite;}
@keyframes public-entry-pulse {0%,100%{text-shadow:0 0 5px #080c18,0 0 9px #dbaa4140;}50%{text-shadow:0 0 5px #080c18,0 0 18px #ffd17890;}}
.db-shard {min-width:42px;min-height:42px;}
.db-burst {animation-duration:1.1s!important;}
.db-lab-short {color:#ffe4a3!important;font-size:12px!important;font-weight:600;background:rgba(16,13,7,.84);border:1px solid rgba(255,216,129,.33);padding:4px 8px;border-radius:8px;text-shadow:0 1px 4px #000;}
.db-lab-wrap {pointer-events:none;}
.chip,.stag,.ph-tag {opacity:1;color:var(--text-2);}
.mde-status.ok {color:#99e8c2;}
html.theme-day .mde-status.ok {color:#1f7358;}
.mde-keys {font-size:10px;color:var(--text-2);}
.tour-card {position:fixed;right:22px;bottom:24px;z-index:98;width:min(360px,calc(100vw - 32px));padding:20px;border-radius:20px;background:linear-gradient(145deg,rgba(25,34,53,.97),rgba(9,16,30,.97));border:1px solid rgba(237,202,131,.44);box-shadow:0 14px 60px #0008,0 0 30px #ffc56110;color:#ecf1fb;backdrop-filter:blur(18px);}
.tour-card h3{margin:8px 0 10px;color:#ffe4a9;font-size:17px;letter-spacing:.02em;}
.tour-card p{font-size:13px;line-height:1.85;margin:8px 0 14px;color:#d5e1f5;}
.tour-eyebrow{font-size:10px;letter-spacing:.15em;color:#efd19b;display:flex;justify-content:space-between;align-items:center;}
.tour-progress{height:3px;background:#ffffff15;border-radius:9px;overflow:hidden;margin-bottom:14px;}
.tour-progress i{display:block;height:100%;background:#f3ca78;transition:width .4s;}
.tour-skip{font-size:11px;color:#bccbe1;background:none;border:0;cursor:pointer;padding:5px;}
.tour-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;}
.tour-wait{font-size:11px;color:#b8c9e6;flex:1;}
[data-tour-hl]{outline:2px solid #efca77!important;outline-offset:5px;box-shadow:0 0 22px #e5b65750!important;}
.session-notice{position:fixed;left:50%;top:16px;transform:translateX(-50%);z-index:99;display:flex;gap:12px;align-items:center;border:1px solid #f0d29755;border-radius:14px;padding:10px 14px;background:#101a2cf2;color:#eadcbd;font-size:12px;max-width:90vw;}
@media(max-width:720px){.tour-card{bottom:140px;right:16px;width:min(330px,calc(100vw - 32px));}.shortcut-guide{font-size:10px;max-width:310px;left:12px;}.qdock{left:12px!important;}.sat-label{font-size:11px;}.mde-keys{max-width:160px;}}
@media(prefers-reduced-motion:reduce){.db-burst,.db-star,.cosmos-gate.in3d .cg-tip b{animation:none!important;}}
html.motion-reduced .db-burst,html.motion-reduced .db-star,html.motion-reduced .cosmos-gate.in3d .cg-tip b{animation:none!important;}

.edit-complete-hint{font-size:11px;line-height:1.8;color:var(--text-2);padding:8px 2px;text-align:right;}

.sat-label .zh{display:inline-block;max-width:114px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sat-label .en{display:none;}
.tn-empty,.empty,.ph-meta,.ss-scope{color:var(--text-2);opacity:1;}
/* v1.11.18 — 内容向前，操作悬浮。基础 / 内容 / 导航 / 临时浮层四层材质。 */
@property --lg-energy {syntax:"<number>";inherits:true;initial-value:0;}
:root {
  --ui-s1:4px; --ui-s2:8px; --ui-s3:12px; --ui-s4:16px; --ui-s6:24px; --ui-s8:32px;
  --ui-r1:8px; --ui-r2:12px; --ui-r3:16px; --ui-r4:24px;
  --text:#f3f5fa; --text-1:#f3f5fa; --text-2:#bcc4d4; --text-3:#98a4ba;
  --ui-muted:#98a4ba; --ui-line:rgba(212,224,246,.12); --ui-hover:rgba(202,218,255,.065);
  --ui-paper:#0d131e; --ui-raised:#18202f; --ui-inset:rgba(5,11,22,.44);
  --lg-fill:rgba(32,45,65,.32); --lg-border:rgba(219,232,255,.22);
  --lg-edge:linear-gradient(145deg,#f3f8ff88,#b5d2ff2e 24%,#ffffff08 49%,#c1b1eb32 76%,#ffddbd58);
  --lg-high:rgba(232,242,255,.17); --ui-accent:#c5d9ff; --ui-accent-fill:#344c70;
  --ui-shadow:0 24px 72px -24px #000b,0 8px 24px -12px #0007;
}
html.theme-day {
  --text:#1c2a40; --text-1:#1c2a40; --text-2:#465973; --text-3:#64758b; --ui-muted:#64758b;
  --ui-line:rgba(44,69,102,.13); --ui-hover:rgba(48,78,118,.065);
  --ui-paper:#f6f9fd; --ui-raised:#fff; --ui-inset:rgba(232,238,247,.72);
  --lg-fill:rgba(241,247,255,.54); --lg-border:rgba(255,255,255,.70); --lg-high:rgba(255,255,255,.48);
  --lg-edge:linear-gradient(145deg,#ffffffdd,#ffffff55 28%,#7586ab18 52%,#cbbee552 78%,#fff4e3aa);
  --ui-accent:#365f94; --ui-accent-fill:#dfebfa; --ui-shadow:0 24px 72px -24px #243f6445,0 8px 24px -12px #29496b30;
}
/* 普通内容不套玻璃；保留极浅环境色，消除旧版重复材质和发光。 */
html :is(.sheet.glass,.modal.glass,.search.glass,.ck.glass,.redcoast.glass) {
  background:var(--ui-paper); color:var(--text); border:1px solid var(--ui-line);
  backdrop-filter:none; -webkit-backdrop-filter:none; border-radius:var(--ui-r4); box-shadow:var(--ui-shadow);
}
html :is(.sheet.glass,.modal.glass,.search.glass,.ck.glass,.redcoast.glass)::before,
html :is(.sheet.glass,.modal.glass,.search.glass,.ck.glass,.redcoast.glass)::after {content:none;}
/* 浮动功能玻璃：轻度模糊＋圆角边缘位移。伪元素过滤背景，不过滤控件文字。 */
html .lg-surface {
  background:var(--lg-fill); border:1px solid var(--lg-border); color:var(--text);
  backdrop-filter:var(--lg-lens,blur(12px)) saturate(135%); -webkit-backdrop-filter:var(--lg-lens,blur(12px)) saturate(135%);
  box-shadow:inset 0 1px 0 #f4f8ff42,inset 0 -1px 0 #9fb5e51a,0 8px 32px -14px #0007;
}
html .lg-surface::before {
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:-1;
  background:radial-gradient(ellipse at var(--lg-x,20%) var(--lg-y,0%),rgba(235,246,255,calc(.10 + var(--lg-energy,0) * .18)),transparent 66%);
  opacity:1; height:auto; animation:none;
}
html .lg-surface::after {
  content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; pointer-events:none;
  background:var(--lg-edge); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:.85; animation:none;
}
html :is(.pop.glass,.notice.glass,.tip.glass,.tour-card.glass,.lightctl.glass,.bulk.glass) {background:var(--lg-fill);}
html .pop.glass {border-radius:var(--ui-r3);padding:8px;max-width:calc(100vw - 24px);box-shadow:var(--ui-shadow);}
html .pop :is(.menu,.fp-panel,.info,.cc,.meta) {background:none;backdrop-filter:none;}
html :is(.pill,.btn,.ov-mode,.menu-i,.ck-i,.ss-hit,.s-hit,.cf-act button,.tool,.set-row,.library-link) {letter-spacing:0;font-family:var(--sans);}
html :is(.pill,.btn) {min-height:36px;padding:8px 16px;border-radius:var(--ui-r2);font-size:13px;background:var(--ui-hover);border:1px solid var(--ui-line);color:var(--text);box-shadow:none;}
html :is(.pill,.btn):hover {background:rgba(179,202,242,.14);border-color:#b8cceb40;}
html :is(.pill,.btn).primary {background:var(--ui-accent-fill);color:var(--text);border-color:#b9ceee45;text-shadow:none;box-shadow:inset 0 1px 0 #ffffff20;}
html .lg-surface :is(.pill,.btn).primary {background:rgba(90,133,194,.28);border-color:#c5d9ff50;}
html.theme-day .lg-surface :is(.pill,.btn).primary {background:rgba(107,151,213,.20);border-color:#648db64a;}
html :is(.pill,.btn).danger {color:#f5b8b8;border-color:#f4adad35;background:#e28d8d12;}
html :is(.icon-btn,.more-btn,.tool) {border-radius:12px;min-width:32px;min-height:32px;color:var(--text-2);background:transparent;box-shadow:none;}
html :is(button,input,textarea,[contenteditable=true]):focus-visible {outline:2px solid var(--ui-accent);outline-offset:3px;}
html :is(.input,.note-in,.pick-in,.tinput,.title-in,.body-in) {border-radius:12px;font-size:14px;letter-spacing:0;color:var(--text);background:var(--ui-inset);border:1px solid var(--ui-line);padding:12px 16px;}
html :is(input,textarea)::placeholder {color:var(--ui-muted);opacity:1;}
html .pfx {letter-spacing:0;font-size:11px;color:var(--text-3);opacity:.8;}
html :is(.ph-meta,.blk-x,.row-time,.oc-time,.en-time,.faint,.ss-scope,.set-row small,.s-sub,.ck-h,.empty,.tcol-empty) {color:var(--text-2);letter-spacing:0;line-height:1.6;opacity:1;}
html :is(.chip,.stag) {letter-spacing:0;font-size:11px;border:0;background:var(--ui-hover);color:var(--text-2);padding:3px 8px;box-shadow:none;text-shadow:none;}
html :is(.chip,.stag)::before {box-shadow:none;}
html .s-adopted {color:#9ecab6;} html .s-superseded {color:#e4c69d;} html.theme-day .s-adopted {color:#30644f;}
html .empty {border:0;border-radius:0;background:transparent;padding:32px 16px;line-height:1.8;font-size:13px;text-align:left;}
/* 顶部操作层与左下常驻入口。品牌与宇宙仍是内容；工具组是玻璃。 */
html .head-tools {display:flex;gap:4px;padding:4px;border-radius:999px;z-index:12;}
html .head-tools .icon-btn {width:36px;height:36px;border-radius:999px;border:0;}
html .qdock {position:absolute;left:24px!important;bottom:24px!important;gap:4px;padding:4px;border-radius:999px;isolation:isolate;}
html .qdock .qd-b {background:transparent;border:0;box-shadow:none;padding:10px 16px;min-height:40px;font-size:13px;letter-spacing:0;border-radius:999px;color:var(--text);backdrop-filter:none;}
html .qdock .qd-b:hover {background:var(--ui-hover);}
html .qdock .qd-b::before,html .qdock .qd-b::after {content:none;}
html .qdock kbd {font-size:10px;color:var(--text-3);margin-left:4px;}
html .shortcut-guide {left:24px;bottom:84px;max-width:360px;display:flex;flex-wrap:wrap;gap:4px 8px;line-height:1.6;font-size:11px;border:0;border-radius:12px;background:rgba(8,15,26,.52);color:#bdc8db;box-shadow:none;padding:8px 12px;backdrop-filter:blur(8px);}
html .shortcut-guide kbd {color:#dae4f5;} html.theme-day .shortcut-guide {background:rgba(244,249,255,.74);color:#4e627f;} html.theme-day .shortcut-guide kbd {color:#233d60;}
html .lightctl {border-radius:16px;padding:12px 16px;bottom:152px;left:24px;}
html .cosmos-gate {text-shadow:0 2px 16px #050915;}
/* 行星面板：保留三维视口，分类导航 + 安静内容。大屏限制无意义的宽行。 */
html .sheet:not(.max):not(.ov):not(.writing):not(.collapsed) {left:auto;right:24px;top:80px;width:min(1040px,64vw);--sheet-h:calc(100dvh - 104px);max-height:var(--sheet-h);border-radius:24px;}
html .sheet.max:not(.ov):not(.writing) {left:max(24px,calc((100vw - 1280px)/2));right:max(24px,calc((100vw - 1280px)/2));top:80px;width:auto;--sheet-h:calc(100dvh - 104px);border-radius:24px;}
html .sheet.ov:not(.collapsed) {left:24px;right:24px;top:80px;width:auto;--sheet-h:calc(100dvh - 104px);max-width:1440px;margin:auto;}
html .sheet.collapsed {background:transparent;backdrop-filter:none;box-shadow:none;border:0;}
html .sheet-mini {border-radius:999px;}
html .sheet-head {padding:16px 24px 20px;border-bottom:1px solid var(--ui-line);}
html .sheet-head {background:radial-gradient(ellipse at 0 0,rgba(144,175,229,.045),transparent 70%);}
html .ph-top {gap:8px;min-height:32px;margin-bottom:12px;}
html .ph-crumbs {font-size:12px;letter-spacing:0;color:var(--text-3);}
html .ph-title {font-size:28px;line-height:1.35;font-weight:600;letter-spacing:-.02em;padding:0;margin:0;color:var(--text);text-shadow:none;}
html .ph-title .lens {display:none;}
html .ph-title.editable:hover {background:var(--ui-hover);}
html .ph-tag {margin-top:0;}
html .ph-meta {font-size:12px;margin-top:8px;line-height:1.6;}
html .sheet-body {padding:0 24px 24px;scrollbar-gutter:stable;}
html .sheet.library .sheet-body {padding:0;}
html .sheet.library .sheet-head {padding-bottom:16px;}
html .sheet.library .ph-top {min-height:28px;margin-bottom:8px;}
html .sheet.library .ph-tools:empty {display:none;}
.library-layout {display:grid;grid-template-columns:176px minmax(0,1fr);align-items:start;min-height:100%;}
.library-nav {position:sticky;top:0;height:100%;min-height:400px;padding:24px 12px;display:flex;flex-direction:column;gap:4px;align-self:stretch;background:rgba(133,158,197,.025);border-right:1px solid var(--ui-line);}
.library-label {font-size:11px;font-weight:500;color:var(--text-3);padding:0 12px;margin:0 0 8px;}
.library-label:not(:first-child) {margin-top:24px;}
.library-link {display:flex;align-items:center;gap:8px;text-align:left;padding:10px 12px;border:0;border-radius:12px;background:none;font-size:13px;line-height:1.5;color:var(--text-2);min-width:0;}
.library-link span {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.library-link small {font-size:11px;color:var(--text-3);}
.library-link.on {background:var(--ui-hover);color:var(--text);font-weight:600;}
.library-link:hover {background:var(--ui-hover);}
.library-dot {width:6px;height:6px;border-radius:999px;opacity:.8;flex:none;}
.library-folder {padding-left:28px;}
.library-help {font-size:12px;line-height:1.8;color:var(--text-3);padding:0 12px;}
.library-bottom {margin-top:auto;padding:32px 12px 0;display:grid;gap:4px;color:var(--text-3);font-size:11px;line-height:1.6;}
.library-bottom small {font-size:10px;}
.library-content {min-width:0;padding:16px 24px 24px;}
.library-search {margin-bottom:12px;position:relative;z-index:5;}
html .library-search .ss {width:100%;max-width:none;}
html .library-search .ss-cap {width:100%;height:44px;border-radius:12px;padding:0 16px;display:flex;align-items:center;gap:8px;}
html .library-search .ss-in {height:100%;font-size:14px;letter-spacing:0;padding:0;}
html .library-search .ss-scope {position:static;font-size:11px;display:block;padding:8px 4px 0;color:var(--text-3);}
html .library-search .ss-list {top:48px;left:0;right:0;width:100%;max-width:none;border-radius:16px;background:var(--ui-raised);box-shadow:var(--ui-shadow);backdrop-filter:none;}
html .view {padding:0;}
html .desk-actions {padding-top:0;gap:8px;align-items:center;}
html .desk-actions .kbd-hint {display:none;}
html .blk {padding:24px 0 0;}
html .blk-h {margin-bottom:16px;gap:12px;}
html .blk-h h3 {font-size:14px;letter-spacing:0;font-weight:600;}
html .blk-x {font-size:11px;}
/* 分类卡片只显示入口与少量预览，不再成为多列编辑区。 */
html .tboard {display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;overflow:visible;padding:0;}
html .tcol {width:auto;min-width:0;flex:none;height:auto;min-height:152px;border-radius:16px;padding:16px;background:rgba(158,183,220,.035);border:1px solid var(--ui-line);box-shadow:none;}
html .tcol::before,html .tcol::after {content:none;}
html .tcol-h {gap:8px;padding:0;min-height:32px;}
html .tcol-name {font-size:15px;letter-spacing:0;color:var(--text);font-weight:500;}
html .tcol-name .pfx {display:none;}
html .tcol-n {font-size:11px;color:var(--text-3);letter-spacing:0;}
html .tdot {width:8px;height:8px;box-shadow:none;}
html .tcol-list {max-height:112px;min-height:0;margin-top:12px;overflow-y:auto;mask-image:none;}
html .tnote {padding:8px 0;border:0;border-bottom:1px solid var(--ui-line);background:none;border-radius:0;box-shadow:none;}
html .tnote::before,html .tnote::after {content:none;}
html .tn-t {font-size:12px;letter-spacing:0;}
html .tn-t .pfx,html .tn-m {display:none;}
html .tn-x {font-size:11px;color:var(--text-3);line-height:1.5;letter-spacing:0;}
html .tcol-foot {padding:12px 0 0;min-height:32px;border:0;}
html .tcol-guide {font-size:12px;line-height:1.7;color:var(--text-3);padding:12px 0 0;}
html .tcol.ghost {border-style:dashed;background:none;}
html .tcol.ghost.lone {max-width:none;}
html .row {border:0;border-bottom:1px solid var(--ui-line);background:none;border-radius:0;min-height:52px;padding:12px 0;box-shadow:none;}
html .row-t {font-size:14px;letter-spacing:0;}
html .card.mini {border:0;border-radius:12px;background:var(--ui-hover);padding:12px 16px;box-shadow:none;}
html .card-t {font-size:14px;letter-spacing:0;}
html .desk-stats {display:none;}
/* 笔记列表：三层信息，一屏可读多条，辅助操作按悬停 / 键盘焦点显示。 */
html .eb {margin-top:16px;}
html .eb-bar.all {flex-wrap:wrap;gap:8px;margin:8px 0;}
html .eb-bar.all .capsule-nav {margin:0;}
html .eb-modes {gap:2px;padding:3px;background:var(--ui-hover);border:0;border-radius:12px;}
html .ov-mode {padding:6px 8px;min-height:32px;font-size:11px;border-radius:8px;border:0;}
html .ov-mode.on {background:var(--ui-raised);color:var(--text);box-shadow:0 2px 8px #0002;}
html .ov-mode .ov-ico {width:14px;height:14px;}
.knowledge-summary {display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);padding:0 0 12px;}
html .knowledge-list.eb-stream {display:block;width:100%;max-width:none;padding:0;overflow-y:auto;mask-image:none;scrollbar-gutter:stable;}
html .knowledge-row.eb-note {position:relative;padding:12px 8px 12px 0;min-height:88px;height:auto;display:flex;flex-direction:row;align-items:center;gap:16px;border:0;border-bottom:1px solid var(--ui-line);border-radius:0;background:none;box-shadow:none;cursor:pointer;margin:0;}
html .knowledge-row.eb-note::before,html .knowledge-row.eb-note::after {content:none;}
html .knowledge-row:hover,html .knowledge-row:focus-visible {background:var(--ui-hover);}
.knowledge-copy {min-width:0;flex:1;}
html .knowledge-row .en-t {font-size:16px;font-weight:500;letter-spacing:0;line-height:1.4;margin:0;display:block;color:var(--text);}
.knowledge-excerpt {color:var(--text-2);font-size:13px;line-height:1.5;margin:4px 0 6px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.knowledge-meta {display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:11px;line-height:1.5;flex-wrap:wrap;}
html .knowledge-meta .chip {padding:0;background:none;font-size:11px;color:var(--text-3);}
html .knowledge-row .more-btn {position:static;flex:none;}
html .has-more .more-btn {opacity:0;}
html .has-more:hover .more-btn,html .has-more:focus-within .more-btn {opacity:1;}
html .eb-split.two:not(.open) {grid-template-columns:minmax(0,1fr);}
html .eb-stream .eb-note:not(.knowledge-row) {min-height:96px;background:none;border:0;border-bottom:1px solid var(--ui-line);border-radius:0;box-shadow:none;}
html .eb-note:not(.knowledge-row) .en-t {font-size:15px;letter-spacing:0;}
html .eb-note .en-ex {font-size:13px;line-height:1.7;letter-spacing:0;}
html .eb-reader {background:transparent;border-left:1px solid var(--ui-line);border-radius:0;box-shadow:none;}
html .eb-reader::before {content:none;}
html .eb-split {gap:16px;}
html .eb-split.open {grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);}
html .eb-card {border-radius:16px;background:var(--ui-hover);border:1px solid var(--ui-line);box-shadow:none;}
html .eb-card::before {content:none;}
html .oc-t {font-size:16px;font-weight:500;letter-spacing:0;}
html .oc-ex {font-size:13px;line-height:1.7;letter-spacing:0;color:var(--text-2);}
html .folders {gap:12px;}
html .fcard {border:1px solid var(--ui-line);border-radius:12px;background:var(--ui-hover);box-shadow:none;padding:12px 16px;}
html .fcard .fc-name {letter-spacing:0;font-size:14px;}
html .fcard::before {content:none;}
/* 阅读：正文限宽，操作在外围；编辑内容不套玻璃。 */
html .view.entry {display:grid;grid-template-columns:minmax(0,720px) 168px;gap:32px;max-width:920px;margin:24px auto 0;align-items:start;}
html .entry-aside {position:sticky;top:24px;min-width:0;}
html .entry-aside h3 {font-size:12px;font-weight:500;letter-spacing:0;margin:0 0 16px;color:var(--text-3);}
html .entry-facts {margin:0 0 24px;display:grid;gap:4px;font-size:11px;line-height:1.7;}
html .entry-facts dt {color:var(--text-3);margin-top:12px;}
html .entry-facts dd {margin:0;color:var(--text-2);overflow-wrap:anywhere;}
html .entry-aside .rail {display:grid;grid-template-columns:1fr 1fr;width:auto;border-radius:16px;gap:4px;padding:8px;}
html .entry-aside .rail .tool {width:auto;height:56px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:4px;font-size:15px;}
html .tool-label {font-size:10px;white-space:nowrap;color:var(--text-2);}
html .desk-activity {margin:32px 0 8px;color:var(--text-3);font-size:12px;}
html .desk-activity summary {cursor:pointer;padding:12px 0;border-top:1px solid var(--ui-line);display:flex;justify-content:space-between;}
html .desk-activity summary span {font-size:11px;}
html .entry-main {min-width:0;}
html .entry-sub {gap:16px;flex-wrap:wrap;font-size:12px;}
html :is(.src-line,.fork-h,.ctx-bar) {font-size:12px;letter-spacing:0;line-height:1.8;}
html .fork-h {padding:0 0 12px;border:0;background:none;border-radius:0;}
html .ctx-bar {padding:8px 0;background:none;border:0;}
html .capsule-nav {border-radius:12px;padding:4px;display:inline-flex;width:fit-content;margin:16px 0;}
html .capsule-nav button {font-size:12px;letter-spacing:0;padding:8px 16px;}
html .mde {background:none;border:0;box-shadow:none;border-radius:0;}
html .view.entry :is(.mde-body,.mde-live,.mde-in,.md,.editor),html .sheet.max .view.entry .md {width:100%;min-width:0;max-width:720px;margin-inline:0;align-self:stretch;box-sizing:border-box;}
html .mde .md-edit {width:100%;min-width:0;align-self:stretch;box-sizing:border-box;border:0;text-align:left;}
html .mde-align {font-size:12px;white-space:nowrap;}
html .sheet.tour-dock:not(.collapsed):not(.ov):not(.writing) {left:auto;right:24px;top:80px;width:min(540px,38vw);min-width:0;translate:none!important;--sheet-h:calc(100dvh - 112px);}
@media(max-width:760px) {html .sheet.tour-dock:not(.collapsed):not(.ov):not(.writing) {left:auto;right:12px;top:108px;width:42vw;--sheet-h:140px;}html .sheet.tour-dock .sheet-body {display:none;}html .sheet.tour-dock .ph-meta,html .sheet.tour-dock .ph-tools {display:none;}}
html .view.entry :is(.mde-in,.md-edit) {font-size:calc(16px * var(--fs,1));line-height:1.95;letter-spacing:0;padding:20px 0;}
html .view.entry .md {font-size:calc(16px * var(--fs,1));line-height:1.95;letter-spacing:0;padding:20px 0;}
html .mde-bar {background:var(--ui-paper);border:0;border-bottom:1px solid var(--ui-line);backdrop-filter:none;gap:4px;padding:8px 0;border-radius:0;}
html .mde-b {min-width:32px;min-height:32px;border-radius:8px;color:var(--text-2);}
html .mde-b.mde-ai {color:var(--ui-accent);text-shadow:none;}
html .rail {border-radius:16px;padding:4px;top:16px;width:48px;gap:4px;}
html .rail .tool {width:38px;height:38px;}
html .entry-actions.sticky-foot {border-radius:16px;bottom:12px;margin:24px 0 12px;padding:8px 12px;min-height:52px;gap:8px;flex-wrap:wrap;}
html .entry-actions.sticky-foot::after {inset:-1px;height:auto;}
html .sticky-foot .pill {min-height:32px;font-size:12px;padding:6px 12px;}
html .foot-status {font-size:11px;color:var(--text-2);}
html .foot-status .mde-foot {background:none;border:0;padding:0;}
html .mde-keys {font-size:10px;letter-spacing:0;}
html .sheet[data-view=entry] .ph-title-row {max-width:800px;margin-inline:auto;}
html .sheet[data-view=entry] .ph-meta {max-width:800px;margin-inline:auto;}
html .sheet.writing .view.entry {max-width:760px;display:block;}
/* 设置与通用弹窗。窗口属于空间层，行与分组靠留白区分。 */
html .modal-wrap {z-index:62;}
html .modal-wrap:not(.floating) {background:rgba(2,6,14,.38);backdrop-filter:blur(4px);}
html .modal {width:min(520px,calc(100vw - 32px));padding:32px;max-height:calc(100dvh - 48px);}
html .modal h3 {font-size:24px;font-weight:600;letter-spacing:-.02em;margin:0 0 16px;}
html .modal .sub {font-size:13px;line-height:1.8;letter-spacing:0;color:var(--text-2);margin-bottom:24px;}
html .modal .field {margin:0 0 16px;gap:8px;font-size:13px;letter-spacing:0;}
html .modal .close {top:16px;right:16px;z-index:8;}
html .modal-wrap.floating .modal.settings-window {width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;overflow:hidden;border-radius:24px;background:var(--ui-paper);backdrop-filter:none;}
html .settings-window .win-head {padding:20px 24px;margin:0;min-height:72px;border-radius:24px 24px 0 0;gap:16px;}
html .settings-window .win-head h3 {font-size:22px;margin:0;}
html .settings-window .win-head .grip {display:none;}
html .settings-window .seg.tabs {margin-left:auto;margin-right:40px;}
html .settings-window .win-body {padding:0;max-height:calc(100dvh - 144px);overflow:auto;}
.prefs-layout {display:grid;grid-template-columns:144px minmax(0,1fr);}
.prefs-nav {position:sticky;top:0;padding:24px 12px;align-self:start;display:grid;gap:4px;}
.prefs-link {border:0;background:none;text-align:left;font-size:13px;letter-spacing:0;padding:12px 16px;border-radius:12px;color:var(--text-2);}
.prefs-link.on,.prefs-link:hover {background:var(--ui-hover);color:var(--text);}
.prefs-content {padding:24px 24px 32px;border-left:1px solid var(--ui-line);min-width:0;}
.prefs-group {scroll-margin:24px;margin-bottom:32px;}
.prefs-group[hidden] {display:none!important;}
html .settings-window .group-t {margin:0 0 8px;padding:0;font-size:15px;font-weight:600;letter-spacing:0;color:var(--text);}
html .set-row {padding:16px 0;min-height:64px;gap:16px;border-bottom:1px solid var(--ui-line);align-items:center;font-size:13px;line-height:1.5;}
html .set-row>div:first-child {min-width:0;flex:1;}
html .set-row small {font-size:11px;line-height:1.7;margin-top:6px;display:block;}
html .set-row :is(.seg,.btn,.switch) {flex-shrink:0;}
html .set-row .seg {padding:3px;gap:2px;border:0;border-radius:12px;background:var(--ui-hover);}
html .set-row .seg button {padding:8px;min-height:32px;white-space:nowrap;letter-spacing:0;font-size:12px;border-radius:8px;}
html .set-row .btn {white-space:nowrap;letter-spacing:0;}
html .set-row .row {padding:0;border:0;min-height:0;}
html .settings-window :is(.about,.admin-pane) {padding:24px 32px;}
html .about p {font-size:14px;line-height:1.85;letter-spacing:0;}
/* 临时浮层：更高阴影；内容平面、搜索与底部操作玻璃。 */
html .qc.glass {width:min(560px,calc(100vw - 32px));margin-left:calc(min(560px,calc(100vw - 32px)) / -2);padding:0;border-radius:24px;background:var(--ui-paper);border:1px solid var(--ui-line);backdrop-filter:none;box-shadow:var(--ui-shadow);}
html .qc.glass::before,html .qc.glass::after {content:none;}
html .qc-h {border-radius:24px 24px 0 0;margin:0;padding:16px 24px;min-height:64px;gap:8px;}
html .qc-h b {font-size:18px;letter-spacing:0;}
html .qc-title {display:block;width:calc(100% - 48px);margin:24px 24px 0;font-size:20px;padding:0 0 12px;background:none;border:0;border-bottom:1px solid var(--ui-line);letter-spacing:0;}
html .qc-in {display:block;width:calc(100% - 48px);margin:12px 24px;padding:8px 0;min-height:176px;font-size:15px;line-height:1.85;letter-spacing:0;background:none;border:0;}
html .qc-f {margin:0;padding:16px 24px;border-top:1px solid var(--ui-line);font-size:11px;gap:8px;flex-wrap:wrap;}
html .qc-f .pill {flex-shrink:0;}
html .qc-f .qc-st {flex:1 1 180px;min-width:0;white-space:normal;line-height:1.6;}
html .qc .permission-notice {margin:0 24px 16px;font-size:11px;background:none;border:0;border-left:2px solid #bacce340;padding:0 0 0 12px;color:var(--text-2);line-height:1.7;}
html .permission-notice {background:var(--ui-hover);border:1px solid var(--ui-line);border-radius:12px;font-size:12px;line-height:1.8;letter-spacing:0;color:var(--text-2);padding:12px 16px;}
html .ck,.search {width:min(680px,calc(100vw - 32px));padding:0;border-radius:24px;}
html .ck-cap,html .s-cap {border-radius:24px 24px 0 0;padding:20px 24px;border:0;border-bottom:1px solid var(--ui-line);}
html .ck-in,html .s-in {font-size:17px;letter-spacing:0;background:none;}
html :is(.ck-list,.s-results,.s-list) {padding:12px 16px;}
html :is(.ck-i,.s-hit,.ss-hit,.menu-i) {padding:12px;min-height:44px;border-radius:12px;gap:12px;font-size:13px;box-shadow:none;}
html :is(.ck-i,.s-hit,.ss-hit,.menu-i).on {background:var(--ui-hover);}
html :is(.ck-h,.s-sub,.ss-sub) {font-size:11px;}
html :is(.ck-foot,.s-foot) {padding:12px 24px;border-top:1px solid var(--ui-line);font-size:11px;letter-spacing:0;color:var(--text-3);}
html .ck-g {font-size:11px;letter-spacing:0;padding:12px;color:var(--text-3);}
html .redcoast {border-radius:24px;}
html :is(.cz-card,.rc-card,.share-card,.cc-card,.pub-card,.acc-sec,.migration-preview,.dr-detail,.merge-box) {background:none;box-shadow:none;border:0;border-bottom:1px solid var(--ui-line);border-radius:0;padding:16px 0;}
html .cz-grid {gap:16px;}
html .cz-card {border:1px solid var(--ui-line);border-radius:16px;padding:24px;background:var(--ui-hover);}
html :is(.czc-name,.rc-title,.cc-h,.acc-title) {letter-spacing:0;font-weight:500;}
html .drawer {background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:24px;box-shadow:var(--ui-shadow);backdrop-filter:none;}
html .dr-list {background:none;}
html .dr-i {padding:12px;border-radius:12px;border:0;background:none;letter-spacing:0;}
html .dr-i.on {background:var(--ui-hover);}
html .confirm {background:var(--ui-raised);border:1px solid var(--ui-line);border-radius:24px;padding:24px;box-shadow:var(--ui-shadow);backdrop-filter:none;}
html .confirm p {line-height:1.8;font-size:14px;letter-spacing:0;}
/* 引导仍然透光，非操作区域继续由 spotlight 蒙版拦截。 */
html .tour-layer .tour-card.glass {border-radius:24px;padding:24px;width:min(360px,calc(100vw - 32px));background:var(--glass-wash);backdrop-filter:blur(9px) saturate(125%);overflow:visible;box-shadow:var(--ui-shadow);border-color:transparent;}
html .tour-card h3 {font-size:20px;line-height:1.45;font-weight:600;letter-spacing:-.01em;color:var(--text);margin:16px 0 8px;}
html .tour-card p {font-size:13px;line-height:1.85;color:var(--text-2);letter-spacing:0;margin:0 0 16px;}
html :is(.tour-eyebrow,.tour-wait,.tour-skip) {font-size:11px;letter-spacing:0;color:var(--text-2);}
html .tour-skip {border:1px solid var(--ui-line);border-radius:8px;padding:6px 8px;background:var(--ui-hover);}
html .tour-progress {height:2px;background:var(--ui-line);border-radius:999px;}
html .tour-progress i {background:var(--ui-accent);box-shadow:none;}
html.theme-day .tour-layer .tour-card.glass {background:var(--glass-wash);color:var(--text);}
html.theme-day .tour-layer .tour-card :is(h3,p,.tour-eyebrow,.tour-wait,.tour-skip) {color:var(--text);}
html .notice {font-size:12px;letter-spacing:0;border-radius:16px;padding:12px 16px;}
html .ovw {padding-top:24px;}
html .ov-search {min-width:280px;max-width:480px;border-radius:12px;min-height:40px;background:var(--ui-hover);border-color:var(--ui-line);}
html .ov-search input {font-size:13px;letter-spacing:0;color:var(--text);}
html .kpis {gap:24px;margin:0 0 24px;}
html .kpi {padding:16px 0;border:0;border-bottom:1px solid var(--ui-line);background:none;box-shadow:none;border-radius:0;}
html .kpi b {font-size:28px;font-weight:500;letter-spacing:-.03em;text-shadow:none;color:var(--text);}
html .kpi span {font-size:12px;letter-spacing:0;color:var(--text-2);}
html .kpi small {font-size:11px;letter-spacing:0;line-height:1.6;color:var(--text-3);}
html :is(.ov-recent,.ov-tabs,.ov-toolbar,.ov-tools) {letter-spacing:0;font-size:12px;}
html .ov-tab {letter-spacing:0;font-size:13px;padding:12px 16px;}
html .ov-content {padding-top:16px;}
html .ov-table {background:none;border:0;font-size:13px;letter-spacing:0;}
html .ov-table th {font-size:11px;font-weight:400;color:var(--text-3);letter-spacing:0;background:none;padding:12px 16px;}
html .ov-table tbody tr {height:64px;border-color:var(--ui-line);}
html .ov-table td {padding:12px 16px;letter-spacing:0;}
html :is(.ov-table .ot-title,.ov-table .ot-t,.ov-list .ol-t) {font-size:14px;font-weight:500;color:var(--text);}
html :is(.ovr,.ov-card,.pcard) {background:var(--ui-hover);border:1px solid var(--ui-line);border-radius:16px;box-shadow:none;text-shadow:none;}
html :is(.cz-title,.rc-head h3,.s-scope,.acc-h,.migration-title,.dr-title) {letter-spacing:0;}
html .cz-title {font-size:28px;font-weight:600;}
html .cz-top {margin-bottom:24px;}
html .czc-kind {font-size:11px;letter-spacing:0;color:var(--text-3);}
html .czc-name {font-size:18px;line-height:1.5;color:var(--text);}
html .czc-desc {font-size:13px;letter-spacing:0;line-height:1.7;color:var(--text-2);}
html :is(.rc-head,.dr-head) {padding:20px 24px;border-bottom:1px solid var(--ui-line);}
html .rc-body {padding:24px;}
html .cf-h {font-size:18px;letter-spacing:0;}
html .meta {font-size:12px;line-height:1.8;letter-spacing:0;}
html .meta dt {color:var(--text-3);}
html .meta dd {color:var(--text-2);overflow-wrap:anywhere;}
html .edit-complete-hint {padding:8px 24px;font-size:11px;letter-spacing:0;color:var(--text-3);}
/* 紧凑模式与窄屏：布局缩成单列，保留搜索、分类、完成，不隐藏功能。 */
html.density-compact .knowledge-row.eb-note {min-height:80px;padding-block:12px;}
@media(max-width:1200px) {
  html .sheet:not(.max):not(.ov):not(.writing):not(.collapsed) {width:66vw;}
  .library-layout {grid-template-columns:144px minmax(0,1fr);}
  .library-content {padding:20px;}
  .library-nav {padding:20px 8px;}
  html .eb-bar {gap:8px;flex-wrap:wrap;}
  html .eb-modes {margin-left:auto;}
  html .tboard {grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
}
@media(max-width:900px) {
  html .sheet:not(.max):not(.ov):not(.writing):not(.collapsed) {width:calc(100vw - 280px);min-width:480px;right:16px;}
  .library-layout {grid-template-columns:128px minmax(0,1fr);}
  .library-content {padding:16px;}
  html .view.entry {gap:16px;}
  html .ph-title {font-size:24px;}
  html .prefs-content {padding:20px;}
}
@media(max-width:720px) {
  html .sheet:not(.max):not(.ov):not(.writing):not(.collapsed) {left:12px;right:12px;top:108px;width:auto;min-width:0;--sheet-h:calc(100dvh - 212px);max-height:var(--sheet-h);}
  html .sheet:not(.writing):not(.collapsed),html .sheet.max:not(.ov):not(.writing),html .sheet.ov:not(.collapsed) {left:12px;right:12px;top:108px;width:auto;min-width:0;--sheet-h:calc(100dvh - 212px);max-height:var(--sheet-h);border-radius:20px;bottom:auto;}
  html .sheet-head {padding:12px 16px 16px;}
  html .ph-top {margin-bottom:8px;}
  html .ph-title {font-size:22px;}
  html .ph-meta {font-size:11px;}
  .library-layout {display:block;}
  .library-nav {position:relative;min-height:0;height:auto;display:flex;flex-direction:row;gap:4px;padding:12px 16px;border-right:0;border-bottom:1px solid var(--ui-line);overflow-x:auto;white-space:nowrap;align-items:center;}
  .library-nav :is(.library-label,.library-help,.library-bottom) {display:none;}
  .library-link {flex:none;max-width:180px;font-size:12px;padding:8px 12px;}
  .library-content {padding:16px;}
  html .sheet-body {padding:0 16px 16px;}
  html .tboard {grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
  html .tcol {min-height:140px;}
  html .desk-actions .pill {padding:8px 12px;font-size:12px;}
  html .view.entry {display:block;margin-top:16px;}
  html .entry-aside {position:static;margin-top:24px;padding-top:20px;border-top:1px solid var(--ui-line);}
  html .entry-facts {grid-template-columns:96px 1fr;align-items:baseline;gap:8px;}
  html .entry-facts dt {margin:0;}
  html .entry-aside .rail {grid-template-columns:repeat(4,minmax(0,1fr));}
  html .view.entry>.rail {position:sticky;top:0;flex-direction:row;width:auto;margin:16px 0;justify-content:center;}
  html .view.entry .mde-in {font-size:calc(15px * var(--font-scale,1));}
  html .entry-actions.sticky-foot {bottom:4px;padding:8px;gap:6px;}
  html .foot-status {width:100%;}
  html .mde-keys {white-space:normal;}
  html .eb-split.open {grid-template-columns:minmax(0,1fr);height:auto!important;}
  html .eb-split.open .eb-stream {max-height:200px;}
  html .eb-reader {border:0;border-top:1px solid var(--ui-line);}
  html .modal-wrap.floating .modal.settings-window {width:calc(100vw - 24px);left:12px!important;right:12px;top:72px!important;max-height:calc(100dvh - 96px);translate:none!important;}
  html .settings-window .win-head {padding:16px;min-height:64px;gap:8px;}
  html .settings-window .win-head h3 {font-size:20px;}
  html .settings-window .win-body {max-height:calc(100dvh - 164px);}
  .prefs-layout {display:block;}
  .prefs-nav {position:sticky;z-index:5;top:0;display:flex;gap:4px;padding:8px 16px;background:var(--ui-paper);overflow-x:auto;}
  .prefs-link {padding:8px 12px;white-space:nowrap;font-size:12px;}
  .prefs-content {padding:16px;border-left:0;}
  html .set-row {flex-wrap:wrap;gap:12px;}
  html .set-row>div:first-child {flex-basis:60%;}
  html .set-row .seg {max-width:100%;flex-wrap:wrap;}
  html .set-row .row.nowrap {flex-wrap:wrap;}
  html .qdock {left:12px!important;bottom:16px!important;}
  html .qdock .qd-b {min-height:36px;padding:8px 12px;}
  html .shortcut-guide {left:12px;bottom:72px;max-width:calc(100vw - 24px);font-size:10px;padding:6px 10px;}
  html .lightctl {bottom:120px;left:12px;padding:8px 12px;}
  html .qc.glass {left:12px!important;right:12px;top:112px;bottom:auto;width:auto;margin-left:0;translate:none!important;max-height:calc(100dvh - 140px);overflow-y:auto;}
  html .qc-h {padding:12px 16px;flex-wrap:wrap;}
  html .qc-h .qc-target {max-width:200px;}
  html .qc-title,html .qc-in {margin-inline:16px;width:calc(100% - 32px);}
  html .qc-f {padding:12px 16px;flex-wrap:wrap;}
  html .qc .permission-notice {margin-inline:16px;}
  html .modal {padding:24px;}
  html .head-tools {padding:2px;gap:0;}
  html .head-tools .icon-btn {width:32px;height:32px;}
  html .ck-cap,html .s-cap {padding:16px;}
  html .ck-in,html .s-in {font-size:14px;}
  html .tour-layer .tour-card.glass {padding:20px;}
  html .knowledge-row.eb-note {min-height:96px;}
  html .knowledge-summary span {display:none;}
  html .ov-search {min-width:0;width:100%;}
  html .kpis {gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));}
  html .ov-table :is(th,td) {padding:8px;font-size:12px;}
  html .ph-tools:has(.ov-search) {max-width:55%;}
}
@media(hover:none) {html .has-more .more-btn {opacity:1;}}
@media(prefers-reduced-motion:reduce) {html .lg-surface {transition:none;} html .lg-surface::before {background:none;}}
html.motion-reduced .lg-surface::before {background:linear-gradient(155deg,#ffffff08,transparent);}
html.motion-reduced :is(.modal-wrap,.modal) {transition:none;}
@supports not (backdrop-filter:blur(1px)) {html .lg-surface {background:var(--ui-raised);}}
@media(prefers-reduced-transparency:reduce) {
  html .lg-surface,html .tour-layer .tour-card.glass {background:var(--ui-raised);backdrop-filter:none;-webkit-backdrop-filter:none;}
}
@media(prefers-contrast:more) {
  html .lg-surface,html .tour-layer .tour-card.glass {background:var(--ui-raised);border-color:var(--text-2);}
  html .lg-surface :is(.pill,.btn).primary {background:var(--ui-accent-fill);}
}

/* 参考图修正：一整块透光的介质，局部弧面高光代替面板框线。 */
:root {
  --ui-paper:transparent; --ui-raised:rgba(229,240,255,.10); --ui-inset:rgba(220,235,255,.055);
  --ui-line:transparent; --ui-hover:rgba(235,242,255,.075);
  --lg-fill:rgba(211,229,255,.06); --lg-border:transparent;
  --lg-edge:conic-gradient(from 145deg,#ffffff00 0deg,#f9fdff09 35deg,#f6fbffac 72deg,#deedff16 112deg,#ffffff00 155deg,#ffffff00 220deg,#cce1fa80 264deg,#f8fdffc2 300deg,#ffffff00 350deg);
  --ui-shadow:0 12px 44px -16px #0007,0 3px 12px -5px #0004;
  --glass-wash:radial-gradient(ellipse at 12% -12%,#e4f1ff20,transparent 60%),linear-gradient(125deg,#ecf4ff10,#bdd5f905 50%,#cce3fa10);
}
html.theme-day {
  --text:#0d192b; --text-1:#0d192b; --text-2:#162638; --text-3:#273b4e; --ui-muted:#273b4e;
  --ui-paper:transparent; --ui-raised:rgba(255,255,255,.20); --ui-inset:rgba(255,255,255,.10);
  --ui-line:transparent; --ui-hover:rgba(255,255,255,.20); --lg-fill:rgba(255,255,255,.12);
  --glass-wash:radial-gradient(ellipse at 12% -12%,#ffffff44,transparent 60%),linear-gradient(125deg,#ffffff24,#f0f6ff0c 50%,#ffffff22);
  --ui-shadow:0 16px 48px -20px #35496445,0 3px 12px -5px #334b662b;
}
html .lg-surface {
  background:var(--glass-wash);border:0;
  -webkit-backdrop-filter:var(--lg-lens,blur(3px)) blur(2px) saturate(125%);
  backdrop-filter:var(--lg-lens,blur(3px)) blur(2px) saturate(125%);
  box-shadow:inset 0 .5px 0 #ffffff38,inset 0 -.5px 0 #d6e8ff1f,var(--ui-shadow);
  isolation:isolate;
}
html .lg-surface::before {
  inset:0;z-index:-1;
  background:radial-gradient(ellipse at var(--lg-x,18%) var(--lg-y,-10%),rgba(245,251,255,calc(.08 + var(--lg-energy,0) * .16)),transparent 64%);
}
html .lg-surface::after {inset:0;padding:1px;filter:blur(.5px);opacity:.75;}
html :is(.sheet.glass,.modal.glass,.qc.glass,.search.glass,.ck.glass,.redcoast.glass,.drawer,.confirm,.tour-layer .tour-card.glass).lg-surface {
  background:var(--glass-wash);border:0;border-radius:36px;
  -webkit-backdrop-filter:var(--lg-lens,blur(2px)) blur(9px) saturate(125%);
  backdrop-filter:var(--lg-lens,blur(2px)) blur(9px) saturate(125%);
  box-shadow:inset 0 .5px 0 #ffffff24,inset 0 -.5px 0 #d9eaff16,var(--ui-shadow);
}
html :is(.sheet.glass,.modal.glass,.qc.glass,.search.glass,.ck.glass,.redcoast.glass,.drawer,.confirm,.tour-layer .tour-card.glass).lg-surface::before,
html :is(.sheet.glass,.modal.glass,.qc.glass,.search.glass,.ck.glass,.redcoast.glass,.drawer,.confirm,.tour-layer .tour-card.glass).lg-surface::after {content:"";}
html .modal-wrap.floating .modal.settings-window.lg-surface {background:var(--glass-wash);border-radius:36px;max-height:calc(100dvh - 96px);}
html .settings-window .win-body {max-height:calc(100dvh - 180px);}
html .lg-surface.lg-nested {
  background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;
}
html .lg-surface.lg-nested::before,html .lg-surface.lg-nested::after {content:none;}
html :is(.sheet-head,.library-nav,.prefs-content,.set-row,.knowledge-row.eb-note,.row,.tnote,.qc-h,.qc-f,.qc-title,.ck-cap,.s-cap,.ck-foot,.s-foot,.mde-bar,.eb-reader,.desk-activity summary) {border:0;}
html :is(.sheet-head,.library-nav,.prefs-nav,.prefs-content,.library-content,.win-head,.win-body,.mde-bar) {background:transparent;}
html .sheet-head {padding-top:24px;padding-bottom:20px;}
html .knowledge-row.eb-note {padding-block:12px;min-height:88px;}
html .sheet.library[data-view=all] .sheet-head {padding-top:16px;padding-bottom:16px;}
html :is(.ph-title,.en-t,.set-row,.qc-in,.md,.md-edit,.tour-card p,.tour-card h3) {text-shadow:0 1px 5px #0005;}
html.theme-day :is(.ph-title,.en-t,.set-row,.qc-in,.md,.md-edit,.tour-card p,.tour-card h3) {text-shadow:0 1px 3px #ffffff38;}
html :is(.tcol,.tcol.ghost,.fcard,.eb-card,.ov-card,.pcard,.cz-card,.card.mini,.permission-notice) {
  background:rgba(223,238,255,.035);border:0;box-shadow:none;border-radius:20px;
}
html :is(.tcol,.fcard,.eb-card,.cz-card):hover {background:var(--ui-hover);}
html :is(.tcol-list,.tcol-empty,.tcol-foot,.tcol-guide,.entry-aside,.dr-i,.eb-note:not(.knowledge-row)) {border:0;background:transparent;}
html :is(.library-link.on,.prefs-link.on,.seg button.on,.ov-mode.on) {
  background:rgba(225,240,255,.10);border:0;box-shadow:inset 0 .5px 0 #ffffff1a,0 2px 8px #0001;
}
html :is(.seg,.eb-modes,.permission-notice,.bulk) {border:0;background:rgba(228,240,255,.035);box-shadow:none;}
html :is(.pill,.btn,.input,.note-in,.pick-in,.tinput,.title-in,.body-in) {border:0;border-radius:999px;}
html :is(.pill,.btn) {background:rgba(233,243,255,.07);box-shadow:inset 0 .5px 0 #ffffff16;}
html :is(.pill,.btn).primary,html .lg-surface :is(.pill,.btn).primary {
  background:rgba(193,218,255,.14);border:0;box-shadow:inset 0 .5px 0 #ffffff32,0 4px 14px -8px #0007;
}
html.theme-day .lg-surface :is(.pill,.btn).primary {background:rgba(255,255,255,.26);}
html .ss-cap.lg-nested {border-radius:999px;background:rgba(232,242,255,.045);box-shadow:inset 0 .5px 0 #ffffff15;padding-inline:16px;}
html .qc-h,html .settings-window .win-head {border-radius:36px 36px 0 0;padding-top:24px;}
html .qc-title {border-radius:0;background:transparent;}
html .qc .permission-notice {border:0;padding:0;}
html .tour-layer .tour-card.glass.lg-surface {background:var(--glass-wash);border:0;border-radius:32px;}
html .tour-rule {background:rgba(239,246,255,.12);height:1px;}
html .modal-wrap:not(.floating) {background:rgba(2,6,14,.12);-webkit-backdrop-filter:none;backdrop-filter:none;}
html .settings-window .set-row {padding-block:18px;}
html .shortcut-guide {background:rgba(190,215,248,.035);border:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
html .switch {border:0;background:rgba(227,240,255,.12);box-shadow:inset 0 1px 3px #0002;}
html .switch::after {box-shadow:0 2px 5px #0002;}
html .switch.on {background:rgba(199,224,255,.38);}
html.glass-contrast {--glass-wash:rgba(15,23,36,.86);--ui-hover:rgba(222,237,255,.08);}
html.glass-contrast.theme-day {--glass-wash:rgba(242,247,253,.90);}
html.glass-contrast .lg-surface:not(.lg-nested) {background:var(--glass-wash);-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;}
html.glass-contrast .lg-nested {background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;}
@media(prefers-reduced-transparency:reduce) {
  html.glass-system {--glass-wash:rgba(15,23,36,.94);}
  html.glass-system.theme-day {--glass-wash:rgba(242,247,253,.96);}
  html.glass-system .lg-surface:not(.lg-nested) {background:var(--glass-wash);-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}
  html.glass-system .lg-nested {background:transparent;}
}
@media(prefers-contrast:more) {
  html.glass-system {--glass-wash:rgba(15,23,36,.96);}
  html.glass-system.theme-day {--glass-wash:rgba(242,247,253,.98);}
}
@media(max-width:720px) {
  html :is(.sheet.glass,.modal.glass,.qc.glass,.search.glass,.ck.glass,.redcoast.glass,.drawer,.confirm).lg-surface {border-radius:28px;}
  html .sheet-head {padding-top:16px;}
  html .knowledge-row.eb-note {min-height:96px;padding-block:12px;}
  html .prefs-nav {background:transparent;}
  html .settings-window .win-body {max-height:calc(100dvh - 172px);}
}

/* 设置分类独立分页；数据说明与操作分行，避免按钮把文字挤成竖排。 */
html .settings-window .prefs-group {margin-bottom:0;}
html .settings-window .set-row {display:grid;grid-template-columns:minmax(0,1fr) auto;}
html .settings-window .set-description {min-width:0;overflow-wrap:anywhere;}
html .settings-window .set-control {min-width:0;max-width:100%;justify-self:end;}
html .settings-window .set-control>.row {display:flex;align-items:center;gap:8px;}
html .settings-window .set-control input[type=range] {min-width:0;max-width:144px;}
html .settings-window .set-row-wide {grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;}
html .settings-window .set-row-wide .set-control {width:100%;justify-self:start;}
html .settings-window .import-panel {min-width:0;width:100%;}
html .settings-window .import-panel>.row {display:flex;flex-wrap:wrap;gap:8px;}
html .settings-window .import-panel .pill {max-width:100%;white-space:normal;text-align:left;}
html .settings-window .import-panel p {margin:12px 0 0;overflow-wrap:anywhere;}
html .settings-window .cap {min-width:0;width:100%;align-items:flex-start;}
html .settings-window .cap-bar {width:100%;}
html .settings-window .cap-t {width:auto;min-width:0;max-width:100%;white-space:normal;text-align:left;}
@media(max-width:720px) {
  html .settings-window .set-row {grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;}
  html .settings-window .set-control {justify-self:start;}
  html .settings-window .set-control>.row {flex-wrap:wrap;}
}
/* Scene-coupled glass. Only the background is refracted; DOM text stays sharp. */
html .lg-surface[data-scene-glass=active] {
  background:transparent!important;border:0!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  box-shadow:0 20px 56px -24px #0008,0 4px 14px -8px #0004;
}
html .lg-surface[data-scene-glass=active]::before,
html .lg-surface[data-scene-glass=active]::after {content:none!important;}
html.writing-focus #stage {filter:none;}
html .glass-occluded {visibility:hidden!important;pointer-events:none!important;}
html .lg-surface {--ui-line:rgba(218,232,250,.10);}
html.theme-day .lg-surface {--ui-line:rgba(24,42,66,.12);}
html .lg-surface :is(.ph-title,.en-t,.set-row,.qc-in,.md,.md-edit,.tour-card p,.tour-card h3) {text-shadow:none;}

/* Layout controls stay visible and say what they do. */
html .sheet .size-btn {display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:76px;padding:0 12px;white-space:nowrap;font-size:12px;color:var(--text);background:var(--ui-hover);border-radius:999px;}
html .sheet .size-btn.off {display:none;}
html .sheet[data-view=entry] {container:entry-panel / inline-size;}
/* Match the normal-window selector's specificity. A viewport-height sheet left
   short notes in a tall, mostly empty shell after restoring from writing. */
html .sheet[data-view=entry]:not(.max):not(.ov):not(.writing):not(.collapsed):not(.tour-dock) {
  left:auto;right:24px;top:80px;bottom:auto;
  width:min(960px,72vw,calc(100vw - 48px));min-width:0;
  --sheet-h:min(720px,calc(100dvh - 104px));
  height:auto;min-height:0;max-height:var(--sheet-h);
}
html .sheet[data-view=entry]:not(.max):not(.collapsed) .sheet-body {flex:0 1 auto;}
html .sheet[data-view=entry] .sheet-head {padding:20px 24px 8px;}
html .sheet[data-view=entry] .ph-top {max-width:1104px;margin:0 auto;min-height:36px;}
html .sheet[data-view=entry] .ph-title-row {max-width:1104px;margin:12px auto 0;}
html .sheet[data-view=entry] .ph-title {font-size:28px;line-height:1.3;margin:0;font-weight:550;letter-spacing:-.02em;}
html .sheet[data-view=entry] .ph-meta:empty {display:none;}
html .sheet[data-view=entry] .sheet-body {padding:0 24px 16px;}
html .view.entry {display:grid;grid-template-columns:minmax(0,1fr) 184px;gap:24px;width:100%;max-width:1104px;margin:8px auto 0;padding:0;}
html .view.entry .entry-main {display:flex;flex-direction:column;min-height:0;}
html .entry-sub {font-size:12px;min-height:28px;gap:16px;}
html .entry-sub .ent-ver {margin-left:auto;}
html .entry-main .capsule-nav {margin:8px 0 12px;padding:3px;border-radius:999px;}
html .entry-main .capsule-nav button {padding:6px 14px;}
html .entry-aside {top:12px;margin:0;padding:4px 0 0;}
html :is(.entry-details,.entry-toolbox) summary {font-size:12px;font-weight:600;color:var(--text);cursor:pointer;padding:8px 0;}
html :is(.entry-details,.entry-toolbox) summary:focus-visible {outline:2px solid var(--ui-accent);outline-offset:4px;border-radius:4px;}
html .entry-toolbox {margin-top:8px;}
html .entry-facts {display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;font-size:12px;line-height:1.6;margin:4px 0 12px;}
html .entry-facts dt {margin:0;color:var(--text-3);}
html .entry-facts dd {margin:0;min-width:0;color:var(--text);overflow-wrap:anywhere;}
html .entry-aside .rail {position:static;gap:4px;padding:0;}
html .entry-aside .rail .tool {height:48px;border-radius:12px;gap:4px;}
html .entry-aside .rail .tool:hover {background:var(--ui-hover);}
html .tool-label {font-size:11px;}
html :is(.view.entry,.eb-reader,.compose) .mde-bar {
  background:var(--ui-hover);backdrop-filter:none;-webkit-backdrop-filter:none;
  border:0;border-radius:16px;gap:2px;padding:6px;position:sticky;top:0;align-items:center;
}
html .mde-bar .mde-b {min-width:26px;min-height:30px;padding:4px 5px;font-size:12px;}
html .mde-bar .mde-sep {margin-inline:3px;background:var(--ui-line);}
html .mde-bar .mde-sp {min-width:0;}
html .view.entry :is(.md,.md-edit,.mde-in,.mde-live,.mde-body) {max-width:none;}
html .sheet.max .view.entry .md {max-width:none;}
html .view.entry .md-edit>:not(table):not(pre) {max-width:720px;}
html .view.entry :is(.md-edit,.md-src) {min-height:160px!important;padding:16px 4px;font-size:calc(16px * var(--fs,1));line-height:1.9;}
html .view.entry .md-src {width:100%;max-width:100%;box-sizing:border-box;}
html .view.entry .md-edit> :first-child {margin-top:0;}
html .mde .md-edit:focus-visible {outline:none;box-shadow:none;}
html .entry-actions.sticky-foot {margin:8px 0 0;bottom:0;padding:8px 0;border-radius:0;min-height:48px;gap:8px;flex-wrap:wrap;}
html .sheet .entry-actions.sticky-foot {background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;}
html .entry-actions .foot-status {flex-basis:100%;}
html .entry-actions .mde-foot {gap:12px;flex-wrap:wrap;white-space:normal;}
html .entry-actions .grow {display:none;}
html .entry-actions .mde-keys {font-size:11px;}
html .entry-actions .mde-sp {display:none;}

/* Focus is one bounded workspace; metadata cannot fall under the editor. */
/* One expanded state for every page; note editors use its writing layout. */
html .sheet.max:not(.collapsed) {inset:16px!important;width:auto!important;max-width:none!important;--sheet-h:calc(100dvh - 32px);max-height:var(--sheet-h)!important;translate:none!important;}
html .sheet.max .sheet-head {cursor:default;}
html .sheet.writing .sheet-head {display:block!important;padding:12px 24px 8px;}
/* Leave the global navigation row clear, including at narrow widths. */
html .sheet.max:not(.collapsed) .sheet-head {padding-top:56px;}
html .sheet.writing .sheet-head :is(.ph-title-row,.ph-meta),
html .sheet.writing .entry-aside {display:none!important;}
html .sheet.writing .ph-top {max-width:960px;margin:auto;}
html .sheet.writing .sheet-body {padding:0 24px 16px;}
html .sheet.writing .view.entry {display:block;max-width:960px;margin:0 auto;}
html .sheet.writing .mde {max-width:none;margin:0;}
html .sheet.writing .mde :is(.md-edit,.md-src) {min-height:max(160px,calc(100dvh - var(--entry-chrome,260px)))!important;padding:24px 0;}
html .sheet.writing .entry-actions.sticky-foot {margin-top:8px;display:flex;}
html .sheet.writing .sticky-foot > :is(.tour-version,.ed-more) {display:inline-flex!important;}
html .sheet.writing .entry-main .entry-actions.sticky-foot > .tour-version {display:inline-flex!important;}
html .sheet.writing .sticky-foot .foot-status {flex:1;}
html .sheet.writing .ph-top .size-btn {min-width:76px;}
html .sheet.writing .view.compose {width:100%;max-width:960px;margin:0 auto;}
html .sheet.writing .view.compose .editor {max-width:none;}

/* The session indicator participates in navigation layout, never floats over it. */
html .session-status {display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 10px;white-space:nowrap;border:0;border-radius:999px;background:var(--ui-hover);color:var(--text);font-size:11px;}
html .session-status i {width:5px;height:5px;background:#98c4ef;border-radius:50%;}
html .session-detail {width:min(312px,calc(100vw - 56px));padding:12px;font-size:13px;line-height:1.75;}
html .session-detail strong {font-weight:600;}
html .session-detail p {margin:8px 0 16px;color:var(--text-2);}
html .session-detail .pill {margin-right:8px;}

/* Overview: compact header, one filter row, title and excerpt on the same axis. */
html .sheet.ov {max-width:1440px;left:max(24px,calc((100vw - 1440px)/2));right:max(24px,calc((100vw - 1440px)/2));}
html .sheet.ov .sheet-head {padding:20px 32px 12px;}
html .sheet.ov .ph-title {font-size:30px;line-height:1.3;margin:12px 0 4px;}
html .sheet.ov .ph-meta {font-size:12px;margin:4px 0 0;}
html .sheet.ov .sheet-body {padding:0 32px 20px;}
html .ovw {padding-top:4px;}
html .kpis {gap:24px;margin:0 0 12px;}
html .kpi {padding:12px 0;gap:3px 12px;}
html .kpi b {font-size:24px;}
html .kpi .kpi-spark {max-width:120px;height:14px;}
html .ov-recent {margin:0 0 12px;padding:0;min-height:32px;}
html .ovr-list {gap:8px;}
html .ovr {padding:6px 12px;max-width:280px;}
html .ov-bar {position:relative;top:auto;background:transparent;backdrop-filter:none;border:0;margin:0;padding:8px 0;gap:16px;}
html .ov-tools {display:flex;gap:12px;padding:8px 0;align-items:center;flex-wrap:wrap;}
html .ov-chips {display:flex;align-items:center;gap:6px;flex:1;}
html .ov-topic-select,html .ov-sort {height:32px;max-width:240px;border:0;border-radius:10px;background:var(--ui-hover);color:var(--text);padding:4px 10px;font:inherit;font-size:12px;}
html :is(.ov-topic-select,.ov-sort) option {color:#16263b;background:#edf1f7;}
html .ov-content {padding-top:8px;}
html .ol-h {position:static;padding:10px 12px 6px;background:transparent;letter-spacing:0;font-size:11px;}
html .ov-list .ol-row {grid-template-columns:16px minmax(0,1fr) auto 88px 28px;gap:16px;min-height:68px;padding:10px 12px;border-radius:12px;}
html .ol-copy {display:flex;flex-direction:column;min-width:0;gap:4px;}
html .ol-copy .ol-t {font-size:14px;font-weight:500;letter-spacing:0;}
html .ol-copy .ol-ex {font-size:12px;line-height:1.6;color:var(--text-2);}
html .ol-row:not(:has(.pchip)) {grid-template-columns:16px minmax(0,1fr) 88px 28px;}
html .ov-foot {padding:12px 0 0;margin-top:8px;}

/* Day text sits over a light regular material, not over uncontrolled scene colour. */
html.theme-day,html.theme-day .glass,html.theme-day .lg-surface {--text:#152334;--text-1:#152334;--text-2:#293c52;--text-3:#304156;--ui-muted:#304156;--ui-accent:#174f89;--ui-hover:rgba(36,60,92,.07);}
html.theme-day .lg-surface :is(button,input,textarea,select,.md,.md-edit,.en-t,.ph-title,.tool-label,.stag,.chip,.kpi b,.kpi span,.kpi small,.ol-t,.ol-ex,.ol-time,.faint,.set-row small,.src-line,.src-v,.ov-lbl,.ov-chip,.ov-tab,.ov-mode,.ov-foot) {color:var(--text);text-shadow:none;}
html.theme-day .lg-surface :is(.link,.mde-ai) {color:#174f89;}
html.theme-day .lg-surface :is(.danger,.s-rejected) {color:#962d40;}
html.theme-day .lg-surface .s-adopted {color:#1d6047;}
html.theme-day .lg-surface .s-superseded {color:#80500d;}
html.theme-day :is(.head-tools,.qdock,.lightctl,.pop,.tip,.notice).lg-surface:not(.lg-nested) {background:rgba(230,239,251,.76);}
html.theme-day .lg-surface :is(.mde-bar,.ov-mode.on,.ov-tab.on,.capsule-nav button.on,.prefs-link.on,.library-link.on) {background:rgba(45,69,101,.09);}
html.theme-day .shortcut-guide {color:#152334;background:rgba(232,241,253,.85);}
html.theme-day :is(.ov-search input,.note-in,.input,.md-src)::placeholder {color:#485d75;}
html.theme-day .ov-search {background:rgba(232,241,252,.38);border:0;box-shadow:none;}
html.theme-day :is(.brand,.screen-name,.trail,.sat-label,.station-tip) {color:#eef4ff;--text:#eef4ff;--text-2:#d7e4f8;--text-3:#c6d6ed;}
html.theme-day .neighbor {color:#eef4ff;--text:#eef4ff;--text-2:#d7e4f8;--text-3:#c6d6ed;}
html.theme-day .lg-surface :is(.tcol-name,.tcol-name .tn,.library-link,.en-time,.oc-time,.row-time) {color:var(--text);}

/* A floating sheet can be narrow on a wide monitor. Break on its own width,
   not the viewport; the editor always keeps the useful part of the space. */
@container entry-panel (max-width:860px) {
  html .view.entry {grid-template-columns:minmax(0,1fr);gap:16px;}
  html .entry-aside {position:static;display:block;margin:0;padding:0;}
  html .entry-aside .rail {grid-template-columns:repeat(4,minmax(0,1fr));}
  html .entry-facts {grid-template-columns:64px minmax(0,1fr) 64px minmax(0,1fr);gap:8px 12px;}
}
@container entry-panel (max-width:1080px) {
  html .read-wrap.has-outline {grid-template-columns:minmax(0,1fr);gap:8px;}
  html .read-wrap .outline {position:static;flex-direction:row;flex-wrap:wrap;max-height:96px;border:0;padding:4px 0;}
}
@container entry-panel (max-width:500px) {
  html .sheet[data-view=entry] :is(.sheet-head,.sheet-body) {padding-inline:16px;}
  html .sheet[data-view=entry] .ph-title {font-size:24px;}
  html .view.entry {gap:8px;}
  html .entry-sub {gap:4px 8px;}
  html .entry-sub .ent-ver {margin-left:0;}
  html .entry-facts {grid-template-columns:64px minmax(0,1fr);}
  html .entry-actions .mde-foot {gap:4px 12px;}
  html .entry-actions .mde-keys {flex-basis:100%;}
}
@media(max-width:760px) {
  html .sheet[data-view=entry]:not(.max):not(.ov):not(.writing):not(.collapsed):not(.tour-dock) {
    left:12px;right:12px;top:108px;width:auto;
    --sheet-h:min(720px,calc(100dvh - 212px));
  }
}
@media(max-width:720px) {
  html .sheet.ov :is(.sheet-head,.sheet-body) {padding-inline:16px;}
  html .sheet.max:not(.collapsed) {inset:8px!important;--sheet-h:calc(100dvh - 16px);}
  html .sheet.writing {--entry-chrome:310px;}
  html .sheet.ov {left:12px;right:12px;}
  html .ov-bar {flex-wrap:wrap;gap:8px;}
  html .ov-tabs {flex-basis:100%;}
  html .ov-chips {flex-wrap:wrap;}
  html .ov-topic-select {max-width:100%;}
  html .ov-list .ol-row,html .ol-row:not(:has(.pchip)) {grid-template-columns:12px minmax(0,1fr) 64px;gap:8px;min-height:68px;}
  html .ol-row .ol-copy .ol-ex {display:block;}
  html .ol-row :is(.pchip,.ov-fly) {display:none;}
  html .kpis {gap:12px;}
  html .session-status {padding:6px;width:28px;justify-content:center;}
  html .session-status span {display:none;}
}
/* Keep the breakpoint aligned with compactViewport() in core/layout.ts.
   One constrained window system for phones and portrait tablets. */
.sat-nav {display:contents;}
.title-done[hidden] {display:none!important;}
:root {--visible-height:100dvh;--visible-top:0px;}
@media (max-width:900px), (max-width:1100px) and (max-aspect-ratio:19/20) {
  :root {--panel-top:max(112px,calc(env(safe-area-inset-top) + 104px));--panel-bottom:calc(84px + env(safe-area-inset-bottom));}
  html .corner.left {left:16px;right:16px;top:max(12px,env(safe-area-inset-top));gap:6px;}
  html .brand {font-size:14px;letter-spacing:.25em;min-height:36px;}
  html .brand small {display:none;}
  html .corner.right {top:max(12px,env(safe-area-inset-top));right:12px;gap:0;}
  html .head-tools {padding:2px;gap:0;}
  html .head-tools .icon-btn {width:40px;height:40px;}
  html .head-tools .status-dot {margin:0 4px;}
  html .session-status {width:28px;min-height:32px;padding:4px;justify-content:center;}
  html .session-status span {display:none;}
  html .screen-name.trail {max-width:100%;width:100%;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;font-size:12px;letter-spacing:0;min-height:24px;scrollbar-width:none;}
  html .trail .tr-c {flex-shrink:0;max-width:140px;overflow:hidden;text-overflow:ellipsis;}
  html .corner.left .back.corner-back {margin:0;min-height:32px;font-size:13px;padding:4px 0;}
  html :is(.shortcut-guide,.hint,.qdock kbd,.station-tip kbd,.fps,.bh-entry,.bh-tip) {display:none!important;}
  html .qdock {position:fixed;left:12px!important;right:auto;bottom:calc(12px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 84px);padding:4px;gap:0;}
  html .qdock .qd-b {min-height:44px;padding:8px 12px;font-size:13px;gap:8px;}
  html .station-tip {font-size:12px;letter-spacing:0;max-width:calc(100vw - 100px);}
  html .planet-ui .neighbor {display:none;}
  html .lightctl {left:auto;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));width:44px;height:44px;padding:0;border-radius:50%;}
  html .lightctl .lc-tog {display:grid;width:44px;height:44px;place-items:center;}
  html .lightctl:not(.open) .lc-row {display:none;}
  html .lightctl.open {width:min(248px,calc(100vw - 32px));height:auto;border-radius:20px;padding:8px 12px;}
  html .lightctl.open .lc-row {display:flex;}
  html .lightctl.open .lc-tog {margin-left:auto;}
  html .sat-nav {position:absolute;top:172px;bottom:152px;right:16px;width:min(54vw,240px);display:flex;flex-direction:column;align-items:stretch;gap:8px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;padding:4px 0;scrollbar-width:thin;}
  html .sat-nav .sat-label {position:relative;left:auto;top:auto;transform:none!important;flex:none;display:flex;align-items:center;min-height:44px;width:100%;padding:8px 12px;gap:8px;text-align:left;letter-spacing:0;}
  html .sat-nav .sat-label .zh {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}
  html .sat-nav .sat-label .en {display:none;}
  html .tag {max-width:min(160px,42vw);white-space:normal;letter-spacing:0;}
  html .tag :is(.t,.s) {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0;}
  html .tag .t {font-size:14px;}
  html .tag .s {font-size:11px;}

  /* Fixed bounds override desktop geometry and historic drag offsets. */
  html .sheet:not(.collapsed),html .sheet.max:not(.collapsed) {
    position:fixed;left:12px!important;right:12px!important;top:calc(var(--visible-top) + var(--panel-top))!important;bottom:auto!important;
    width:auto!important;min-width:0!important;max-width:none!important;translate:none!important;
    --sheet-h:max(100px,calc(var(--visible-height) - var(--panel-top) - var(--panel-bottom)))!important;
    height:var(--sheet-h)!important;max-height:var(--sheet-h)!important;border-radius:24px;
  }
  html .sheet[data-view=entry]:not(.max):not(.collapsed) {height:auto!important;}
  html .sheet.max:not(.collapsed) {--panel-top:max(64px,calc(env(safe-area-inset-top) + 60px));--panel-bottom:calc(12px + env(safe-area-inset-bottom));}
  html .sheet.collapsed {position:fixed;left:auto!important;right:12px!important;top:auto!important;bottom:calc(16px + env(safe-area-inset-bottom))!important;width:48px!important;height:48px!important;min-width:0!important;max-height:48px!important;translate:none!important;}
  html .sheet.collapsed .sm-name {display:none;}
  html .sheet.collapsed .sheet-mini {padding:4px;}
  html .sheet :is(.sheet-head,.sheet-body) {min-width:0;}
  html .sheet:not(.collapsed) .sheet-head {padding:12px 16px 8px;}
  html .sheet.max:not(.collapsed) .sheet-head {padding-top:12px;}
  html .sheet:not(.collapsed) .sheet-body {padding:0 16px 16px;overflow-y:auto;overflow-x:hidden;min-height:0;scroll-padding-block:64px 100px;}
  html .sheet:not(.collapsed) :is(.sheet-head,.sheet-body) {padding-inline:16px;}
  html .sheet.library:not(.collapsed) .sheet-body {padding:0;}
  html .ph-top {gap:6px;flex-wrap:wrap;}
  html .ph-top .ph-crumbs {flex:1;min-width:48px;font-size:11px;}
  html .ph-tools:empty {display:none;}
  html .ph-top .ph-tools:has(.ov-search) {order:5;flex-basis:100%;width:100%;max-width:none;}
  html .ph-title-row {gap:8px;}
  html .sheet .ph-title {font-size:24px;}
  html .sheet .ph-meta {font-size:12px;line-height:1.5;letter-spacing:0;}
  html .sheet .size-btn {min-width:64px;padding:0 10px;min-height:36px;}
  html .sheet .ph-top .icon-btn {flex-shrink:0;}
  html .sheet .view {min-width:0;max-width:100%;}
  html .library-layout,html .prefs-layout {display:block;min-width:0;}
  html .library-nav,html .prefs-nav {position:sticky;top:0;z-index:5;display:flex;flex-direction:row;align-items:center;min-height:0;height:auto;gap:4px;padding:8px 12px;overflow-x:auto;white-space:nowrap;border:0;}
  html .library-nav :is(.library-label,.library-help,.library-bottom) {display:none;}
  html :is(.library-link,.prefs-link) {flex:none;max-width:180px;min-height:40px;padding:8px 12px;font-size:12px;}
  html :is(.library-content,.prefs-content) {min-width:0;padding:16px;border:0;}
  html :is(.desk-actions,.eb-bar,.eb-tools,.row-actions,.ov-tools,.ov-bar) {flex-wrap:wrap;gap:8px;}
  html .eb-modes {max-width:100%;overflow-x:auto;}
  html .eb-split,html .eb-split.open {display:block;height:auto!important;min-height:0;}
  html .eb-split.open .eb-stream {max-height:152px!important;}
  html .eb-split .eb-reader {min-width:0;margin-top:12px;}
  html .eb-paged {height:auto!important;min-height:0;}
  html .eb-cards {grid-template-columns:minmax(0,1fr)!important;grid-auto-rows:auto!important;}
  html .eb-card {min-height:112px;}
  html .knowledge-row.eb-note {grid-template-columns:minmax(0,1fr) auto;min-width:0;}
  html .tboard,html .tgrid,html .cards {grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));min-width:0;}
  html .tcol {min-width:0;min-height:120px;}
  html .ov-table-wrap {max-width:100%;overflow-x:auto;}
  html .ov-table {min-width:520px;}
  html .ov-search {min-width:0;width:100%;max-width:none;}
  html .kpis {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;}
  html .kpi {padding:8px 0;}
  html .ov-tabs {max-width:100%;overflow-x:auto;}
  html .ov-chips {flex-wrap:wrap;}
  html .ov-list .ol-row,html .ol-row:not(:has(.pchip)) {grid-template-columns:12px minmax(0,1fr) 64px;gap:8px;}
  html .ol-row :is(.pchip,.ov-fly) {display:none;}

  /* Writing and creation use the same usable width as category panels. */
  html :is(.view.entry,.view.compose,.eb-reader) {min-width:0;max-width:100%;}
  html .view.entry {display:block;}
  html .entry-aside {position:static;margin:12px 0 0;padding:0;}
  html .sheet.writing .entry-aside {display:none!important;}
  html :is(.editor,.read-wrap.has-outline) {grid-template-columns:minmax(0,1fr)!important;min-width:0;}
  html :is(.editor,.mde,.pane,.content,.read-wrap,.er-body) {min-width:0;max-width:100%;}
  html :is(.md,.md-edit) {overflow-wrap:anywhere;}
  html .sheet .mde :is(.md-edit,.md-src) {min-height:144px!important;padding:12px 0;width:100%;font-size:16px;}
  html .sheet.writing .mde :is(.md-edit,.md-src) {min-height:max(144px,calc(var(--visible-height) - 280px))!important;}
  html .mde-bar {gap:2px;padding:4px;}
  html .mde-bar .mde-b {min-height:36px;padding:6px;}
  html .entry-actions.sticky-foot {position:relative;bottom:auto;flex-wrap:wrap;gap:6px;padding:8px 0;}
  html .entry-actions .foot-status {flex-basis:100%;}
  html .entry-actions .mde-foot {flex-wrap:wrap;gap:6px 12px;}
  html .entry-actions .mde-keys {flex-basis:100%;white-space:normal;}
  html .editor .row-actions .ed-hint {flex-basis:100%;white-space:normal;line-height:1.6;}
  html .editor .row-actions .grow {display:none;}
  html :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),textarea,select) {min-width:0;max-width:100%;font-size:16px;}
  html :is(.md pre,.md table,.raw,.diff) {max-width:100%;overflow:auto;}

  /* Search, quick capture, settings and secondary dialogs stay inside the
     visual viewport, including when the software keyboard is open. */
  html :is(.search.glass,.ck.glass,.qc.glass,.drawer.glass,.redcoast.glass) {
    position:fixed;left:12px!important;right:12px!important;top:calc(var(--visible-top) + 12px + env(safe-area-inset-top))!important;bottom:auto!important;
    width:auto!important;min-width:0!important;max-width:none!important;margin-left:0!important;translate:none!important;
    max-height:calc(var(--visible-height) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;
  }
  html .modal-wrap {padding:12px;align-items:flex-start;overflow:auto;}
  html .modal-wrap .modal,html .modal-wrap.floating .modal.settings-window {
    position:fixed;left:12px!important;right:12px!important;top:calc(var(--visible-top) + 12px + env(safe-area-inset-top))!important;
    width:auto!important;min-width:0;max-width:none;max-height:calc(var(--visible-height) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));translate:none!important;margin:0;overflow:auto;
  }
  html .modal:not(.settings-window) {padding:20px;}
  html .settings-window .win-head {padding:12px 16px;min-height:56px;}
  html .settings-window .win-body {min-height:0;max-height:none;overflow:auto;}
  html .set-row {flex-wrap:wrap;gap:12px;}
  html .set-row>div:first-child {flex:1 1 100%;min-width:0;}
  html .set-row :is(.row.nowrap,.seg) {flex-wrap:wrap;max-width:100%;}
  html .qc .qc-h,html .qc .qc-f {padding:12px 16px;flex-wrap:wrap;min-height:0;}
  html .qc :is(.qc-title,.qc-in) {width:calc(100% - 32px);margin:8px 16px;}
  html .qc .qc-in {min-height:112px;}
  html .qc .permission-notice {margin:0 16px 12px;}
  html :is(.ck-cap,.s-cap) {padding:12px 16px;}
  html :is(.s-list,.ck-list) {max-height:calc(var(--visible-height) - 176px);overflow:auto;}
  html .s-info {display:none;}
  html .s-x {min-width:36px;min-height:36px;}
  html .pop {max-width:calc(100vw - 24px)!important;max-height:calc(var(--visible-height) - 24px);overflow:auto;translate:none!important;}
  html :is(.m-cols,.dr-cols,.dr-body,.compare-grid,.cc-grid) {grid-template-columns:minmax(0,1fr);}
  html :is(.dr-list,.dr-l) {max-height:160px;overflow:auto;}
  html .sheet .drawer.glass {position:absolute;left:0!important;right:0!important;top:0!important;bottom:0!important;height:100%;max-height:100%;border-radius:inherit;}
  html .dr-top {flex-wrap:wrap;gap:8px;}
  html .settings-window .seg.tabs {margin-left:0;margin-right:32px;flex-wrap:wrap;}
  html .tour-layer .tour-card.glass {max-width:calc(100vw - 24px);padding:16px;max-height:calc(var(--visible-height) * .45);overflow:auto;}
  html .tour-card h3 {font-size:18px;margin:8px 0;}
  html .tour-card p {line-height:1.6;font-size:12px;margin-bottom:12px;}
  html:has(.sheet.max:not(.collapsed):not(.hide)) .qdock {display:none;}
  html:has(.sheet:not(.collapsed):not(.hide)) :is(.station-hit,.station-tip,.sat-nav,.lightctl) {visibility:hidden;pointer-events:none;}
  html:has(.sheet.tour-dock:not(.hide)) .sat-nav {visibility:visible;pointer-events:auto;}
  html:has(.sheet.tour-dock:not(.hide)) .sat-nav {top:196px;}
  html .sheet.tour-dock:not(.collapsed) {top:calc(var(--visible-top) + var(--panel-top))!important;max-height:68px!important;height:68px!important;}
  html .sheet.tour-dock :is(.sheet-body,.ph-title-row,.ph-meta) {display:none;}
  html.keyboard-open .sheet {--panel-top:8px!important;--panel-bottom:8px!important;}
  html.keyboard-open :is(.corner,.qdock,.sheet.collapsed,.lightctl,.station-tip,.station-hit) {visibility:hidden!important;}
  html.keyboard-open .tour-card p {display:none;}
}
@media (max-width:900px) and (max-height:520px) {
  html .sat-nav {top:132px;bottom:84px;width:40vw;}
  html .lightctl {bottom:80px;}
  html .sheet:not(.collapsed) {--panel-top:64px;--panel-bottom:12px;}
  html:has(.sheet:not(.collapsed):not(.hide)) .qdock {display:none;}
}
@media (pointer:coarse) {
  html :is(.shortcut-guide,.qdock kbd) {display:none!important;}
}
