/* 新标签页原型 v3：默认页参照青柠（壁纸、时间、搜索、一言），卡片页参照 iTab（侧栏、图标、卡片网格）。
   只用系统字体和本地图片，不加载外网资源。位置变化用 translate / scale，只有拖动时的预览框直接改尺寸。 */
:root {
  --font: "HarmonyOS Sans SC", "MiSans", "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  --font-clock: "Segoe UI Variable Display", "HarmonyOS Sans SC", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --t-mode: .5s;
  --side-w: 52px;
  --focus: #7fe3ff;
  --menu: rgba(22, 22, 26, .8);
  --ink: #1f2329;
  --ink-2: #4e5563;
  --ink-3: #8a909c;
  --line-l: #e8eaef;
  --blue: #3b6fe0;
  /* 时间、搜索框在两种页面里的位置：元素按卡片页的位置摆，默认页再往下平移。
     默认页（2026-11-14 按本人要求）：搜索框下边在屏幕正中往上一个搜索框高（46px）处，时间在搜索框上方；
     窗口很矮时保证时间不顶出屏幕。时间 1920 宽时约 73px（青柠的大小）；卡片页时间缩到 0.9 倍（iTab 约 70px） */
  --clock-size: clamp(60px, 3.8vw, 80px);
  --k-scale: .9;
  --k-clock: 22px;
  --k-date: calc(var(--k-clock) + var(--clock-size) * var(--k-scale) + 2px);
  --k-search: calc(var(--k-date) + 30px);
  --k-grid: calc(var(--k-search) + 46px + 28px);
  --h-search: max(calc(var(--clock-size) + 64px), calc(50vh - 92px));
  --h-clock: calc(var(--h-search) - var(--clock-size) - 26px);
  --h-date: calc(var(--h-clock) + var(--clock-size) + 4px);
  color-scheme: dark;
}
/* 默认页显示日期时，搜索框不动，时间再往上让出日期这一行 */
body.home-date { --h-clock: calc(var(--h-search) - var(--clock-size) - 50px); --h-date: calc(var(--h-clock) + var(--clock-size) + 4px); }

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body { font: 14px/1.5 var(--font); color: #fff; background: #1d2433; overflow: hidden; -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
p, h2, h3, figure { margin: 0; }
h2, h3 { font-weight: 600; }
ol, ul { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
[tabindex="-1"]:focus { outline: none; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.noscript { position: fixed; inset: 40% 0 auto; text-align: center; font-size: 18px; }
.i { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em; }
.muted { color: var(--ink-3); }
.tag-sample { display: inline-flex; align-items: center; height: 18px; padding: 0 6px; border-radius: 5px; font-size: 11px; font-weight: 500; line-height: 1; color: #b7791f; background: rgba(255, 196, 0, .16); border: 1px solid rgba(214, 158, 46, .45); white-space: nowrap; }
.aqi { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.aqi::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--aqi, #9ca3af); }
.aqi-1 { --aqi: #4ade80; } .aqi-2 { --aqi: #facc15; } .aqi-3 { --aqi: #fb923c; }
.aqi-4 { --aqi: #f87171; } .aqi-5 { --aqi: #c084fc; } .aqi-6 { --aqi: #e11d48; }
.dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: #9ca3af; }
.dot.run { background: #34d399; box-shadow: 0 0 0 3px rgba(52, 211, 153, .22); }

/* ---------- 壁纸：清晰层两张交替淡入；虚化层在卡片页和点搜索框时淡入（只动透明度和缩放） ---------- */
.wall { position: fixed; inset: 0; z-index: 0; overflow: hidden; background: #1d2433; }
.wall-zoom { position: absolute; inset: 0; transition: scale .9s var(--ease); }
.wall-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s var(--ease); }
.wall-img.is-ready { opacity: 1; }
.wall-blur { position: absolute; inset: -60px; background: center / cover no-repeat; filter: blur(26px) saturate(1.12); opacity: 0; transition: opacity .5s var(--ease); }
.wall-veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(0, 0, 0, .16), rgba(0, 0, 0, 0) 26%, rgba(0, 0, 0, 0) 70%, rgba(0, 0, 0, .3)); }
.wall-veil::after { content: ""; position: absolute; inset: 0; background: rgba(8, 12, 20, .2); opacity: 0; transition: opacity .5s var(--ease); }
.is-desk .wall-zoom, .is-search .wall-zoom { scale: 1.06; }
.is-desk .wall-blur, .is-search .wall-blur, .is-desk .wall-veil::after { opacity: 1; }
.desk-sharp.is-desk:not(.is-search) .wall-zoom { scale: 1; }
.desk-sharp.is-desk:not(.is-search) .wall-blur { opacity: 0; }

/* ---------- 时间、日期、搜索框、一言 ---------- */
.clock {
  position: fixed; z-index: 10; left: 0; right: 0; top: var(--k-clock); margin: 0;
  font: 400 var(--clock-size)/1 var(--font-clock); letter-spacing: .01em; text-align: center; font-variant-numeric: tabular-nums;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .2); pointer-events: none;
  transform-origin: 50% 0; scale: var(--k-scale);
  transition: translate var(--t-mode) var(--ease), scale var(--t-mode) var(--ease);
}
.is-home .clock { translate: 0 calc(var(--h-clock) - var(--k-clock)); scale: 1; }
.dateline {
  position: fixed; z-index: 10; left: 0; right: 0; top: var(--k-date); margin: 0;
  font-size: 13px; letter-spacing: .04em; text-align: center; white-space: pre; color: rgba(255, 255, 255, .94);
  text-shadow: 0 1px 6px rgba(0, 0, 0, .4); pointer-events: none;
  transition: translate var(--t-mode) var(--ease), opacity .3s, visibility 0s;
}
/* 默认页不显示日期时连读屏也跳过（visibility 等淡出结束再切） */
.is-home .dateline { translate: 0 calc(var(--h-date) - var(--k-date)); opacity: 0; visibility: hidden; transition: translate var(--t-mode) var(--ease), opacity .3s, visibility 0s .3s; }
.is-home.home-date .dateline { opacity: 1; visibility: visible; transition-delay: 0s; }

.search-wrap {
  position: fixed; z-index: 12; left: 50%; top: var(--k-search); width: min(580px, calc(100vw - 40px));
  translate: -50% 0; transition: translate var(--t-mode) var(--ease);
}
.is-home .search-wrap { translate: -50% calc(var(--h-search) - var(--k-search)); }
.sf {
  display: flex; align-items: center; gap: 4px; height: 46px; padding: 0 7px; border-radius: 23px;
  background: rgba(255, 255, 255, .26); box-shadow: 0 4px 24px rgba(0, 0, 0, .12);
  -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
  transition: background .25s, box-shadow .25s;
}
.sf-engine, .sf-go { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; visibility: hidden; opacity: 0; transition: opacity .2s, background .15s; }
.sf-engine:hover, .sf-go:hover { background: rgba(0, 0, 0, .06); }
.sf-go { color: var(--blue); }
.sf-go .i { width: 19px; height: 19px; stroke-width: 2; }
.sf-input {
  flex: 1; min-width: 0; height: 100%; padding: 0 6px; border: 0; outline: 0; background: none;
  color: #fff; font: 15px var(--font); text-align: center;
}
.sf-input::placeholder { color: rgba(255, 255, 255, .9); letter-spacing: .12em; }
.sf-prefix { flex: none; padding: 3px 9px; border-radius: 999px; background: #dbeafe; color: #1d4ed8; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.sf.is-active, .sf.has-value { background: rgba(255, 255, 255, .95); box-shadow: 0 10px 34px rgba(0, 0, 0, .22); }
.sf.is-active .sf-input, .sf.has-value .sf-input { color: var(--ink); text-align: left; }
.sf.is-active .sf-input::placeholder { color: #9aa0aa; letter-spacing: 0; }
.sf.is-active :is(.sf-engine, .sf-go), .sf.has-value :is(.sf-engine, .sf-go) { visibility: visible; opacity: 1; }
/* 卡片页里的搜索框：iTab 式半透明白底，常显引擎图标 */
.is-desk .sf { background: rgba(255, 255, 255, .58); }
.is-desk .sf-input { color: var(--ink); text-align: left; }
.is-desk .sf-input::placeholder { color: #5b616c; letter-spacing: 0; }
.is-desk :is(.sf-engine, .sf-go) { visibility: visible; opacity: 1; }
.eg { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; font: 700 12px/1 var(--font); color: #fff; }
.eg-bing { background: linear-gradient(135deg, #0aa5f2, #00c2a8); }
.eg-google { background: conic-gradient(from -45deg, #ea4335 0 25%, #fbbc05 0 50%, #34a853 0 75%, #4285f4 0); }
.eg-baidu { background: #2f3be4; font-size: 11px; }
.sf-hints {
  position: absolute; left: 50%; top: calc(100% + 10px); translate: -50% -4px; z-index: 2;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; width: max-content; max-width: calc(100vw - 24px);
  padding: 5px; border-radius: 12px; background: var(--menu); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .25); opacity: 0; visibility: hidden; transition: opacity .18s, translate .18s var(--ease), visibility 0s .18s;
}
.search-wrap:has(.sf.is-active) .sf-hints { opacity: 1; visibility: visible; translate: -50% 0; transition-delay: 0s; }
.sf-hint { height: 26px; padding: 0 9px; border-radius: 7px; font-size: 12.5px; color: rgba(255, 255, 255, .86); white-space: nowrap; }
.sf-hint:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.sf-hint b { margin-right: 5px; color: var(--focus); }

.quote {
  position: fixed; z-index: 10; left: 50%; bottom: 14px; display: block; max-width: min(860px, calc(100vw - 48px));
  padding: 5px 12px; border-radius: 10px; font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, .92);
  text-shadow: 0 1px 6px rgba(0, 0, 0, .55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  translate: -50% 0; transition: translate var(--t-mode) var(--ease), opacity .18s, background .15s;
}
.is-home .quote { translate: -50% -22px; }
.quote:hover { background: rgba(0, 0, 0, .2); }
.quote.is-out { opacity: 0; }
@media (hover: none), (pointer: coarse) { .quote { padding-block: 12px; } }   /* 触屏上点一言换一句，点击区不小于 40px 高 */
.open-desk { position: fixed; z-index: 15; top: 14px; right: 14px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: rgba(0, 0, 0, .28); }
.is-desk .open-desk { display: none; }
@media (hover: hover) {
  .open-desk:not(:focus-visible) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
  .open-desk:not(:focus-visible) > * { display: none; }
}

/* ---------- 侧栏（iTab 式：深色半透明，图标在上、文字在下） ---------- */
.side {
  position: fixed; z-index: 30; left: 0; top: 0; bottom: 0; width: var(--side-w);
  display: flex; flex-direction: column; padding: 14px 0 10px; color: #fff;
  background: rgba(0, 0, 0, .4); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  translate: -100% 0; opacity: 0; visibility: hidden;
  transition: translate var(--t-mode) var(--ease), opacity .3s, visibility 0s var(--t-mode);
}
.is-desk .side { translate: 0 0; opacity: 1; visibility: visible; transition-delay: 0s; }
.side-me { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-bottom: 16px; font-size: 11px; color: rgba(255, 255, 255, .82); }
.side-me .av { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(145deg, #7dd3fc, #6366f1); box-shadow: 0 0 0 2px rgba(255, 255, 255, .35); }
.side-me .av .i { width: 17px; height: 17px; }
.side-me > span:last-child { max-width: calc(var(--side-w) - 8px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.side-pages { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: none; }
.side-page {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  width: 100%; height: 54px; font-size: 11.5px; color: rgba(255, 255, 255, .82); transition: background .15s, color .15s;
}
.side-page span { max-width: calc(var(--side-w) - 6px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.side-page .i { width: 19px; height: 19px; }
.side-page:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.side-page[aria-selected="true"] { background: rgba(255, 255, 255, .2); color: #fff; }
.side-page.is-drop { background: rgba(255, 255, 255, .34); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85); }
.side-page:focus-visible, .side-btn:focus-visible, .side-me:focus-visible { outline-offset: -3px; }
.side-btn { display: grid; place-items: center; width: 40px; height: 40px; margin: 2px auto; border-radius: 10px; color: rgba(255, 255, 255, .82); transition: background .15s; }
.side-btn:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.side-btn .i { width: 19px; height: 19px; }
.side-foot { display: flex; flex-direction: column; padding-top: 6px; }

/* ---------- 卡片页：页面、网格、图标 ---------- */
.desk {
  position: fixed; z-index: 5; left: 0; right: 0; top: var(--k-grid); bottom: 44px;
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s var(--t-mode);
}
.is-desk .desk { opacity: 1; visibility: visible; transition-delay: 0s; }
.page {
  position: absolute; inset: 0; overflow-x: hidden; overflow-y: auto; scrollbar-width: none; padding-top: 4px; padding-bottom: 34px;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
}
.page::-webkit-scrollbar { display: none; }
.page.is-scrolled { -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22px, #000 calc(100% - 26px), transparent); mask-image: linear-gradient(to bottom, transparent, #000 22px, #000 calc(100% - 26px), transparent); }
.page.is-leaving { pointer-events: none; }
.grid { position: relative; margin: 0 auto; }
.it { position: absolute; left: 0; top: 0; user-select: none; -webkit-user-select: none; transition: translate .34s var(--ease); }
.it-label {
  position: absolute; left: -15px; right: -15px; top: calc(100% + 7px);
  font-size: 12px; line-height: 16px; text-align: center; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 0 8px rgba(0, 0, 0, .3); cursor: pointer;
}
.no-labels .it-label { display: none; }
.lk { display: block; width: 100%; height: 100%; border-radius: 16px; -webkit-user-drag: none; }
.lk:focus-visible { outline-offset: 3px; }
.ic {
  display: grid; place-items: center; width: 100%; height: 100%; overflow: hidden; border-radius: 16px; background: #fff;
  box-shadow: 0 0 5px rgba(0, 0, 0, .1), 0 4px 14px rgba(0, 0, 0, .14); transition: scale .2s var(--ease);
}
.ic img { width: 62%; height: 62%; object-fit: contain; -webkit-user-drag: none; }
.ic-full img { width: 100%; height: 100%; object-fit: cover; }
.ic-letter { background: linear-gradient(145deg, hsl(var(--h) 72% 60%), hsl(calc(var(--h) + 28) 74% 47%)); color: #fff; font-size: 26px; font-weight: 600; }
.ic-add { background: rgba(255, 255, 255, .24); color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ic-add .i { width: 26px; height: 26px; stroke-width: 2; }
.it-link[data-size="2x2"] .ic { border-radius: 26px; }
.it-link[data-size="2x2"] .ic-letter { font-size: 48px; }
@media (hover: hover) {
  .lk:hover .ic { scale: 1.06; }
  .it-card > .card:hover { translate: 0 -2px; box-shadow: 0 0 5px rgba(0, 0, 0, .1), 0 12px 28px rgba(0, 0, 0, .22); }
  .it:hover > .it-resize { opacity: 1; }
}
.it-resize { position: absolute; z-index: 3; right: -5px; bottom: -5px; width: 24px; height: 24px; cursor: nwse-resize; opacity: 0; transition: opacity .15s; }
.it-resize::before {
  content: ""; position: absolute; right: 7px; bottom: 7px; width: 10px; height: 10px;
  border-right: 2.5px solid #fff; border-bottom: 2.5px solid #fff; border-bottom-right-radius: 6px;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, .7));
}
.it:focus-within > .it-resize { opacity: .8; }

/* 拖动：原位置留一个虚线占位，图标跟着鼠标走 */
.it.is-ghost > :is(.card, .lk), .it.is-ghost > .it-label { opacity: 0; }
.it.is-ghost::before { content: ""; position: absolute; inset: 0; border-radius: 18px; background: rgba(255, 255, 255, .16); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6); }
.drag-float { position: fixed !important; z-index: 90; pointer-events: none; transition: scale .18s var(--ease), opacity .18s; }
.drag-float.is-lifted { scale: 1.06; }
.drag-float.is-lifted :is(.card, .ic) { box-shadow: 0 22px 46px rgba(0, 0, 0, .4); }
.drag-float.to-page { scale: .7; opacity: .85; }
.drag-float.is-landing { transition: translate .22s var(--ease), scale .22s var(--ease), opacity .22s; scale: 1; }
.drag-float.is-vanish { scale: .25; opacity: 0; }
.drag-float .it-resize { display: none; }
body.is-dragging, body.is-dragging * { cursor: grabbing !important; }
body.is-resizing, body.is-resizing * { cursor: nwse-resize !important; }
body.is-dragging .it-card > .card:hover { translate: none; }
.rs-box { position: absolute; z-index: 20; left: 0; top: 0; border-radius: 18px; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .9); pointer-events: none; }
.rs-box::after { content: attr(data-size); position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 6px; background: rgba(0, 0, 0, .65); color: #fff; font-size: 12px; }

/* ---------- 卡片：底色按类型区分，像 iTab 的小组件 ---------- */
.card {
  position: relative; display: flex; flex-direction: column; gap: 6px; width: 100%; height: 100%; overflow: hidden;
  padding: 12px 14px; border-radius: 18px; cursor: pointer;
  box-shadow: 0 0 5px rgba(0, 0, 0, .1), 0 6px 20px rgba(0, 0, 0, .14); transition: translate .2s var(--ease), box-shadow .2s;
}
.k-open { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.it-card:has(.k-open:focus-visible) > .card { outline: 2px solid var(--focus); outline-offset: 3px; }
.card a:hover { text-decoration: underline; text-underline-offset: 2px; }
.k-light { background: rgba(255, 255, 255, .95); color: var(--ink); }
.k-dark { background: rgba(24, 24, 28, .76); color: #fff; }
.k-navy { background: linear-gradient(150deg, #1c2849, #354a7f); color: #fff; }
.k-warm { background: #fbf6ec; color: #3a2f20; }
.k-ink { background: linear-gradient(150deg, #16161b, #2c2c3a); color: #fff; }
.k-gold { background: linear-gradient(150deg, #f8dc7a, #d6a144); color: #3a2a05; }
.k-term { background: #0f1828; color: #d9f2e6; }
.k-photo { padding: 0; background: #222; color: #fff; }
.k-cal { padding: 0; background: #fff; color: var(--ink); }
.kh { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 8px; min-height: 24px; }
.kh-t { display: inline-flex; align-items: center; gap: 6px; min-width: 0; font-size: 13px; font-weight: 600; white-space: nowrap; }
.kh-t .i { width: 16px; height: 16px; color: var(--blue); }
.kh-m { flex: none; font-size: 11.5px; color: var(--ink-3); white-space: nowrap; }
:is(.k-dark, .k-navy, .k-ink, .k-term) :is(.kh-m, .muted) { color: rgba(255, 255, 255, .6); }
:is(.k-dark, .k-navy, .k-ink, .k-term) .kh-t .i { color: #8fc2ff; }
.k-term .kh-t .i { color: #34d399; }
.k-bili .kh-t .i { color: #fb7299; }
.k-warm .kh-t .i { color: #b7792f; }
.k-warm .kh-m { color: #9a8467; }
.card .muted { font-size: 12.5px; }
.seg { display: inline-flex; flex: none; gap: 2px; padding: 2px; border-radius: 8px; background: rgba(255, 255, 255, .1); }
.seg-b { height: 22px; padding: 0 8px; border-radius: 6px; font-size: 12px; color: rgba(255, 255, 255, .78); white-space: nowrap; transition: background .15s, color .15s; }
.seg-b:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.seg-b[aria-selected="true"] { background: rgba(255, 255, 255, .92); color: #111; font-weight: 600; }
.seg-light { background: #f0f2f5; }
.seg-light .seg-b { color: var(--ink-2); }
.seg-light .seg-b:hover { color: var(--ink); background: rgba(0, 0, 0, .04); }
.seg-light .seg-b[aria-selected="true"] { background: #fff; color: var(--ink); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.chip { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 7px; background: #f0f2f5; font-size: 12px; color: var(--ink-2); }
.chip:hover { background: #e5e9f0; text-decoration: none !important; }

/* 列表行：新闻、关注、截稿、AI、历史 */
.rows { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.rows li { display: flex; flex: none; align-items: center; gap: 8px; height: 26px; font-size: 12.5px; }
.rt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rm { flex: none; font-size: 11.5px; color: var(--ink-3); white-space: nowrap; }
.ri { flex: none; width: 16px; text-align: right; color: var(--ink-3); font-size: 11.5px; font-variant-numeric: tabular-nums; }
:is(.k-dark, .k-navy) .rm { color: rgba(255, 255, 255, .62); }
.hs-y { flex: none; min-width: 38px; color: #a0703a; font-size: 11.5px; font-variant-numeric: tabular-nums; }
.ai-rows { gap: 5px; }
.ai-rows li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 1px 8px; height: auto; }
.ai-d { grid-column: 1 / -1; overflow: hidden; font-size: 11.5px; line-height: 1.45; color: var(--ink-3); white-space: nowrap; text-overflow: ellipsis; }
.ccf { flex: none; padding: 1px 5px; border-radius: 5px; background: rgba(255, 255, 255, .14); font-size: 10.5px; }
.dl-d { flex: none; min-width: 42px; text-align: right; font-weight: 600; color: #ffcf5c; font-variant-numeric: tabular-nums; }
.dl-d.far { color: rgba(255, 255, 255, .75); font-weight: 500; }
.dl-rows { gap: 6px; }
.dl-rows li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1px 8px; height: auto; }
.dl-rows .ccf { grid-column: 2; } .dl-rows .dl-d { grid-column: 3; }   /* 没有 CCF 等级的会议，天数也对齐在最右列 */
.dl-sub { grid-column: 1 / -1; overflow: hidden; font-size: 11.5px; line-height: 1.4; color: rgba(255, 255, 255, .62); white-space: nowrap; text-overflow: ellipsis; }

/* 热榜 */
.hot-rows { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.hot-rows li { display: flex; flex: none; align-items: center; gap: 8px; height: 25.5px; font-size: 12.5px; }
/* 两格高的卡片放 4 行，行高收 1px，最后一行离卡片底边留足 6px 以上 */
.it-card[data-size$="x2"] :is(.rows, .hot-rows) li { height: 25px; }
.rk { flex: none; width: 16px; text-align: center; font-weight: 700; font-size: 12.5px; color: rgba(255, 255, 255, .5); font-variant-numeric: tabular-nums; }
.hot-rows li:nth-child(1) .rk { color: #ff5d5d; } .hot-rows li:nth-child(2) .rk { color: #ff8a3d; } .hot-rows li:nth-child(3) .rk { color: #ffb422; }
.hot-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hot-v { flex: none; font-size: 11.5px; color: rgba(255, 255, 255, .55); font-variant-numeric: tabular-nums; }

/* 论文 */
.pp { display: flex; flex-direction: column; gap: 2px; min-height: 0; overflow: hidden; }
.pp-row { display: flex; flex-direction: column; gap: 1px; width: calc(100% + 12px); margin: 0 -6px; padding: 4px 6px; border-radius: 8px; text-align: left; transition: background .15s; }
.pp-row:hover { background: #f1f4f8; }
.pp-t { font-size: 12.5px; font-weight: 600; line-height: 1.42; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-t.two { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pp-n { font-size: 12px; line-height: 1.45; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-m { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; flex: 1; min-height: 0; }
.pp-prev { display: flex; flex-direction: column; gap: 6px; min-height: 0; overflow: hidden; padding-left: 14px; border-left: 1px solid var(--line-l); }
.pp-pt { font-size: 13.5px; font-weight: 700; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pp-pm { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-pb { font-size: 12.5px; line-height: 1.6; color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.pp-pa { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }

/* 天气 */
.k-wx { color: #fff; }
.wx-clear { background: linear-gradient(160deg, #2c7be0, #63b3f2); }
.wx-cloud { background: linear-gradient(160deg, #4f6789, #8ba3c1); }
.wx-rain { background: linear-gradient(160deg, #33466a, #5c78a6); }
.wx-snow { background: linear-gradient(160deg, #6b8fbd, #a9c3e2); }
.wx-haze { background: linear-gradient(160deg, #6a604f, #a69a80); }
.wx-night { background: linear-gradient(160deg, #18264a, #354a80); }
.wx-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; height: 100%; }
.wx-row { display: flex; justify-content: space-between; gap: 6px; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.wx-place { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.wx-temp { display: flex; align-items: center; justify-content: space-between; margin-top: 2px; }
.wx-temp b { font: 500 40px/1.05 var(--font-clock); }
.wx-ic { width: 34px; height: 34px; stroke-width: 1.5; }
.wx-aqi { margin-top: auto; font-size: 12px; white-space: nowrap; }
.wx-hl { font-size: 12px; opacity: .92; white-space: nowrap; }
.wx-split { display: grid; grid-template-columns: 122px minmax(0, 1fr); gap: 14px; height: 126px; flex: none; }
.wx-side { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding-left: 14px; border-left: 1px solid rgba(255, 255, 255, .22); }
.wx-hours { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); text-align: center; }
.wx-hours li { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11.5px; }
.wx-hours .i { width: 20px; height: 20px; }
.wx-hours b { font-size: 13px; font-weight: 600; }
.wx-soon { display: flex; align-items: center; gap: 6px; font-size: 12px; line-height: 1.4; }
.wx-soon span { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.wx-days { display: flex; flex-direction: column; margin-top: 6px; border-top: 1px solid rgba(255, 255, 255, .22); }
.wx-days li { display: grid; grid-template-columns: 36px 20px minmax(0, 1fr) auto; align-items: center; gap: 8px; height: 30px; font-size: 12.5px; }
.wx-days .i { width: 18px; height: 18px; }
.wx-dc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wx-tips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.wx-tips span { padding: 2px 8px; border-radius: 6px; background: rgba(255, 255, 255, .16); font-size: 11.5px; white-space: nowrap; }

/* 日历 */
.cal-box { display: flex; flex-direction: column; width: 100%; height: 100%; }
.cal-head { display: grid; flex: none; place-items: center; height: 34px; background: #f4524d; color: #fff; font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.cal-body { display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 1px; }
.cal-day { font: 600 50px/1.02 var(--font-clock); color: var(--ink); }
.cal-sub { font-size: 11px; color: #e09a52; }
.cal-lunar { font-size: 12.5px; color: var(--ink-2); }
.cal-split { display: grid; grid-template-columns: 150px minmax(0, 1fr); height: 100%; }
.cal-split .cal-box { border-right: 1px solid var(--line-l); }
.cal-info { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 10px 14px; min-width: 0; }
.cal-info li { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 0 8px; }
.cal-info span { font-size: 12px; color: var(--ink-3); }
.cal-info b { font-size: 15px; text-align: right; }
.cal-info small { grid-column: 1 / -1; font-size: 11px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 截稿、金价、Epic、进度、训练、壁纸 */
.dl-one, .gd-one, .ep-one { display: flex; flex-direction: column; gap: 2px; min-width: 0; height: 100%; }
.dl-k, .gd-k, .ep-k { font-size: 12px; opacity: .78; white-space: nowrap; }
.dl-name { margin-top: 2px; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dl-days { margin-top: auto; font-size: 13px; }
.dl-days b { margin-right: 4px; font: 600 40px/1 var(--font-clock); }
.dl-when { font-size: 11.5px; opacity: .78; white-space: nowrap; }
.gd-k { font-weight: 600; opacity: 1; }
.gd-v { margin-top: auto; font: 600 32px/1.1 var(--font-clock); }
.gd-u { font-size: 11.5px; opacity: .8; white-space: nowrap; }
.gd-split, .ep-split { display: grid; grid-template-columns: 122px minmax(0, 1fr); gap: 14px; height: 100%; }
.ep-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.gd-list { display: flex; flex-direction: column; justify-content: center; }
.gd-list li { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid rgba(58, 42, 5, .14); font-size: 12px; white-space: nowrap; }
.gd-list li:last-child { border-bottom: 0; }
.ep-t { font-size: 15px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ep-m { margin-top: auto; font-size: 11.5px; opacity: .75; }
.pg-bars { display: flex; flex-direction: column; justify-content: center; gap: 10px; flex: 1; }
.pg-bar { display: grid; grid-template-columns: 30px minmax(0, 1fr) 32px; align-items: center; gap: 6px; font-size: 12px; }
.pg-bar i { height: 6px; border-radius: 3px; background: linear-gradient(90deg, #4f8cff var(--p), #e7ebf1 var(--p)); }
.pg-bar b { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.pg-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; flex: 1; min-height: 0; }
.pg-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; align-content: center; }
.pg-chip { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-width: 0; padding: 7px 2px; border-radius: 10px; background: #f3f5f8; }
.pg-chip small { font-size: 10.5px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.pg-chip b { font-size: 17px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.tr li { display: flex; align-items: center; gap: 8px; height: 26px; font-size: 12.5px; }
.tr li span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgba(217, 242, 230, .75); }
.k-term .tag-sample { color: #ffd479; background: rgba(255, 196, 0, .12); }
.wp-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; }
.wp-cap { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; padding: 28px 12px 10px; background: linear-gradient(transparent, rgba(0, 0, 0, .66)); font-size: 11.5px; }
.wp-cap b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wp-cap span { opacity: .8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wp-next { position: absolute; top: 10px; right: 10px; display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 10px; border-radius: 8px; background: rgba(0, 0, 0, .42); font-size: 12px; }
.wp-next:hover { background: rgba(0, 0, 0, .6); }

/* ---------- 右键菜单、搜索引擎菜单 ---------- */
.ctx, .pop {
  position: fixed; z-index: 75; padding: 6px; border-radius: 12px; color: #fff; font-size: 13px;
  background: var(--menu); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
  box-shadow: 0 14px 44px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(255, 255, 255, .06);
  opacity: 0; scale: .97; transform-origin: top left; transition: opacity .12s, scale .12s;
}
.ctx { min-width: 176px; max-width: 290px; }
.pop { min-width: 140px; }
.ctx.is-open, .pop.is-open { opacity: 1; scale: 1; }
.ctx-item, .pop button { display: flex; align-items: center; gap: 9px; width: 100%; height: 32px; padding: 0 10px; border-radius: 8px; text-align: left; white-space: nowrap; }
.ctx-item:hover, .ctx-item:focus-visible, .pop button:hover, .pop button:focus-visible { background: rgba(255, 255, 255, .13); outline: none; }
.pop [aria-selected="true"] { background: rgba(255, 255, 255, .1); }
.ctx-item .i { width: 16px; height: 16px; opacity: .9; }
.ctx-item.danger { color: #ff9090; }
.ctx-kbd { margin-left: auto; font-size: 11.5px; opacity: .6; }
.ctx-sep { height: 1px; margin: 5px 6px; background: rgba(255, 255, 255, .12); }
.ctx-group { padding: 2px 6px 6px; }
.ctx-k { display: flex; align-items: center; gap: 9px; height: 26px; padding: 0 4px; color: rgba(255, 255, 255, .9); }
.ctx-k .i { width: 16px; height: 16px; opacity: .9; }
.ctx-chips { display: flex; flex-wrap: wrap; gap: 5px; padding: 3px 0 0 4px; }
.ctx-chip { height: 24px; padding: 0 9px; border-radius: 7px; background: rgba(255, 255, 255, .1); font-size: 12px; color: rgba(255, 255, 255, .88); white-space: nowrap; }
.ctx-chip:hover { background: rgba(255, 255, 255, .2); }
.ctx-chip:focus-visible { outline-offset: 1px; }
.ctx-chip[aria-checked="true"] { background: rgba(255, 255, 255, .92); color: #111; font-weight: 600; }
.ctx-note { padding: 4px 10px 2px; font-size: 11.5px; color: rgba(255, 255, 255, .55); }

/* ---------- 弹窗层：详情窗口、对话框、设置抽屉（浅色，像 iTab 的小组件窗口） ---------- */
.backdrop { position: fixed; inset: 0; z-index: 50; background: rgba(10, 14, 22, .38); opacity: 0; transition: opacity .2s; }
.backdrop.is-open { opacity: 1; }
.win, .dlg {
  position: fixed; z-index: 60; left: 50%; top: 50%; display: flex; flex-direction: column; overflow: hidden;
  border-radius: 18px; background: #fff; color: var(--ink); color-scheme: light; box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
  translate: -50% -48%; scale: .97; opacity: 0; transition: opacity .2s, scale .22s var(--ease), translate .22s var(--ease);
}
.win { width: min(1040px, calc(100vw - 48px)); height: min(700px, calc(100vh - 56px)); }
.dlg { width: min(640px, calc(100vw - 48px)); max-height: min(700px, calc(100vh - 56px)); }
.dlg.wide { width: min(920px, calc(100vw - 48px)); height: min(660px, calc(100vh - 56px)); }
.dlg.small { width: min(460px, calc(100vw - 48px)); }
.win.is-open, .dlg.is-open { opacity: 1; scale: 1; translate: -50% -50%; }
.drawer {
  position: fixed; z-index: 60; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; width: min(440px, 100vw);
  background: #fff; color: var(--ink); color-scheme: light; box-shadow: -20px 0 60px rgba(0, 0, 0, .25);
  translate: 100% 0; transition: translate .26s var(--ease);
}
.drawer.is-open { translate: 0 0; }
.win-head, .dlg-head { display: flex; flex: none; align-items: center; gap: 12px; padding: 14px 14px 12px 20px; border-bottom: 1px solid var(--line-l); }
.win-ic { display: grid; flex: none; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #eef3ff; color: var(--blue); }
.win-ic .i { width: 19px; height: 19px; }
.win-tt { flex: 1; min-width: 0; }
#win-title, #dlg-title, #drawer-title { font-size: 17px; }
.dlg-head h2 { flex: 1; }
.win-sub { font-size: 12.5px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.win-body, .dlg-body { flex: 1; min-height: 0; overflow: auto; padding: 18px 22px 22px; }
.win[data-type="papers"] .win-body { overflow: hidden; padding: 0; }
.icon-btn { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: var(--ink-2); }
.icon-btn:hover { background: #f1f3f6; color: var(--ink); }
:is(.win, .dlg, .drawer) :focus-visible { outline-color: var(--blue); }
:is(.win, .dlg, .drawer) a:hover { color: var(--blue); }
.btn { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border-radius: 9px; background: #f1f3f6; color: var(--ink); font-size: 13.5px; white-space: nowrap; }
.btn:hover { background: #e6e9ef; color: var(--ink) !important; }
.btn.primary { background: var(--blue); color: #fff; }
.btn.primary:hover { background: #315fcc; color: #fff !important; }
.btn.danger { color: #d93838; }
.btn.small { height: 28px; padding: 0 10px; font-size: 12.5px; }
.btn .i { width: 16px; height: 16px; }
.input { height: 36px; padding: 0 12px; border: 1px solid #d8dce4; border-radius: 9px; background: #fff; color: var(--ink); font: 14px var(--font); outline: 0; }
.input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(59, 111, 224, .18); }
.source { margin-top: 16px; font-size: 12px; line-height: 1.6; color: var(--ink-3); }
.help { margin-top: 8px; font-size: 12.5px; line-height: 1.65; color: var(--ink-3); }
.note-box { margin: 14px 0; padding: 12px 14px; border-radius: 10px; background: #f5f6f8; font-size: 13px; line-height: 1.65; color: var(--ink-2); }
.empty-state { display: grid; place-items: center; gap: 6px; padding: 40px 10px; text-align: center; color: var(--ink-3); }
.kv { font-size: 15px; }
.row-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.row-form .input { flex: 1 1 180px; }
.two-rows .input { flex: 1 1 100%; }

/* 天气详情 */
.wd-now { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 14px; color: #fff; }
.wd-big { width: 54px; height: 54px; stroke-width: 1.4; }
.wd-temp { font: 500 54px/1 var(--font-clock); }
.wd-desc { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: 13.5px; }
.wd-desc strong { font-size: 16px; }
.wd-rain { display: flex; align-items: center; gap: 8px; margin: 14px 0; font-size: 14px; }
.wd-alert { display: flex; gap: 10px; margin-bottom: 12px; padding: 12px; border-radius: 10px; background: #fff4e5; color: #8a4b00; font-size: 13.5px; }
.wd-sec h3 { margin: 18px 0 8px; font-size: 14px; }
.spark { display: block; width: 100%; height: auto; }
.spark polyline { fill: none; stroke: #3b82f6; stroke-width: 2; }
.spark circle { fill: #3b82f6; }
.spark text { font-size: 11px; fill: var(--ink-3); }
.spark text.t { fill: var(--ink); font-weight: 600; }
.wd-days li { display: grid; grid-template-columns: 48px 24px 1fr auto; align-items: center; gap: 10px; height: 40px; border-bottom: 1px solid #f0f1f4; font-size: 14px; }
.wd-tips { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.wd-tips li { padding: 10px 12px; border-radius: 10px; background: #f5f6f8; font-size: 13px; }
.wd-tips b { margin-right: 8px; }
.wd-tips small { display: block; margin-top: 4px; font-size: 12px; line-height: 1.55; color: var(--ink-3); }
/* 日历详情 */
.cd { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; }
.cd-title { margin-bottom: 10px; font-size: 16px; font-weight: 600; }
.cd-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; text-align: center; }
.cd-grid b { padding: 4px 0; font-size: 12.5px; font-weight: 500; color: var(--ink-3); }
.cd-grid span { display: grid; place-items: center; height: 44px; border-radius: 10px; font-size: 15px; }
.cd-grid .we { color: #e5484d; }
.cd-grid .today { background: #f4524d; color: #fff; font-weight: 700; }
.cd-side { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: var(--ink-2); }
.cd-day { font: 600 64px/1 var(--font-clock); color: var(--ink); }
/* 热榜详情 */
.hd-list { margin-top: 14px; columns: 2; column-gap: 32px; }
.hd-list li { display: flex; align-items: center; gap: 10px; height: 36px; border-bottom: 1px solid #f0f1f4; font-size: 14px; break-inside: avoid; }
.hd-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hd-list .rk { color: var(--ink-3); }
.hd-list .rk.top { color: #f5503d; }
.hd-list .hot-v { color: var(--ink-3); font-size: 12.5px; }
/* 论文窗口：左边列表，右边详情 */
.pw { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); height: 100%; }
.pw-list { display: flex; flex-direction: column; gap: 10px; min-height: 0; padding: 16px; border-right: 1px solid var(--line-l); }
.pw-top { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; font-size: 12.5px; }
.pw-pp { flex: 1; min-height: 0; overflow-y: auto; gap: 2px; }
.pw-pp .pp-row { width: 100%; margin: 0; padding: 9px 10px; }
.pw-pp .pp-row[aria-current="true"] { background: #eaf1ff; }
.pw-detail { min-height: 0; overflow-y: auto; padding: 20px 26px; }
.pd-title { font-size: 18px; font-weight: 700; line-height: 1.45; }
.pd-meta { margin-top: 6px; font-size: 12.5px; color: var(--ink-3); }
.pd-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.pd-section h3 { margin: 16px 0 6px; font-size: 13.5px; color: var(--ink-2); }
.pd-section p { font-size: 14px; line-height: 1.8; }
.pd-abs summary { cursor: pointer; font-size: 13.5px; color: var(--ink-2); }
.pd-abs p { margin-top: 8px; color: var(--ink-2); }
/* 其他详情 */
.nd-list { counter-reset: n; }
.nd-list li { position: relative; padding: 9px 0 9px 34px; border-bottom: 1px solid #f0f1f4; font-size: 14.5px; line-height: 1.65; }
.nd-list li::before { counter-increment: n; content: counter(n); position: absolute; left: 0; top: 11px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: #f1f3f6; color: var(--ink-2); font-size: 12px; }
.nd-tip { display: flex; gap: 8px; margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: #f5f6f8; font-size: 14px; }
.fd { margin-bottom: 16px; }
.fd-up { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 15px; }
.fd-list li, .td-list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid #f0f1f4; font-size: 14px; }
.td-list li { justify-content: flex-start; }
.dd-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 0; border-bottom: 1px solid #f0f1f4; font-size: 14px; }
.dd-list .muted { grid-column: 1 / -1; font-size: 12.5px; }
.dd-days { font-weight: 600; color: #e5484d; }
.dd-days.far { font-weight: 500; color: var(--ink-2); }
.ad-list li { padding: 12px 0; border-bottom: 1px solid #f0f1f4; }
.ad-t { font-size: 15px; font-weight: 600; }
.ad-list p { margin: 4px 0; font-size: 13.5px; line-height: 1.7; color: var(--ink-2); }
.ad-list .hs-y { margin-right: 8px; }
.gt { width: 100%; border-collapse: collapse; font-size: 14px; }
.gt th, .gt td { padding: 9px 10px; border-bottom: 1px solid #f0f1f4; text-align: left; }
.gt th { font-size: 12.5px; font-weight: 500; color: var(--ink-3); }
.pg-bars.big { gap: 14px; max-width: 540px; margin: 14px 0; }
.pg-bar.big { grid-template-columns: 44px minmax(0, 1fr) 48px; font-size: 14px; }
.pg-bar.big i { height: 10px; border-radius: 5px; }
.wd-fig { position: relative; margin-bottom: 14px; overflow: hidden; border-radius: 14px; }
.wd-fig img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.wd-fig figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; padding: 30px 16px 12px; background: linear-gradient(transparent, rgba(0, 0, 0, .6)); color: #fff; font-size: 13px; }
.thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; }
.thumb { overflow: hidden; aspect-ratio: 16 / 9; border-radius: 10px; }
.thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.thumb[aria-current="true"] { outline: 3px solid var(--blue); outline-offset: 2px; }

/* 壁纸详情窗口里的“自动更换”单选 */
.set.compact { margin: 16px 0 0; padding: 0; border: 0; }
.set.compact legend { margin-bottom: 10px; padding: 0; font-size: 15px; font-weight: 600; }
.opts { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.opt { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; }
.info-list li { padding: 9px 0; border-bottom: 1px solid #f0f1f4; font-size: 14px; line-height: 1.75; }

/* 添加对话框 */
.dlg-body > .seg { margin-bottom: 14px; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.ga { display: grid; grid-template-columns: 40px minmax(0, 1fr) 24px; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; background: #f5f6f8; text-align: left; transition: background .15s; }
.ga:hover { background: #ecf1f8; }
.ga-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: #fff; color: var(--blue); box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.ga-ic .i { width: 20px; height: 20px; }
.ga-tx b { font-size: 14px; }
.ga-tx small { display: block; font-size: 12px; line-height: 1.5; color: var(--ink-3); }
.ga-add { color: var(--blue); }
.lib-group h3 { margin: 12px 0 8px; font-size: 13px; font-weight: 500; color: var(--ink-3); }
.lib-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 6px; }
.lib-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 4px; border-radius: 12px; font-size: 12.5px; transition: background .15s; }
.lib-item:hover { background: #f2f4f7; }
.lib-item[aria-pressed="true"] { background: #eaf1ff; }
.lib-item .ic { width: 44px; height: 44px; border-radius: 12px; box-shadow: 0 1px 4px rgba(0, 0, 0, .14); }
.lib-item .ic-letter { font-size: 20px; }
.lib-ok { position: absolute; top: 6px; right: 10px; width: 16px; height: 16px; color: var(--blue); stroke-width: 2.4; }
.link-form { display: flex; flex-direction: column; gap: 12px; }
.link-form label:not(.ip) { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--ink-2); }
.lf-preview { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.lf-preview .ic { width: 48px; height: 48px; border-radius: 13px; }
.lf-preview .ic-letter { font-size: 22px; }
.icon-pick { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.icon-pick legend { margin-bottom: 6px; padding: 0; font-size: 13px; color: var(--ink-2); }
.ip { position: relative; }
.ip input { position: absolute; opacity: 0; }
.ip span:first-of-type { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #f2f4f7; color: var(--ink-2); cursor: pointer; }
.ip input:checked + span { background: var(--blue); color: #fff; }
.ip input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }

/* 设置（2026-11-14 重做）：右侧浮动的毛玻璃面板，左边按类别分组的导航，右边是分组卡片；开关、分段选择代替原生单选和复选框 */
.drawer.sw {
  top: 12px; right: 12px; bottom: 12px; flex-direction: row; width: min(880px, calc(100vw - 24px)); overflow: hidden;
  border-radius: 22px; background: rgba(243, 245, 249, .86); color: var(--ink);
  -webkit-backdrop-filter: blur(40px) saturate(180%); backdrop-filter: blur(40px) saturate(180%);
  box-shadow: 0 30px 90px rgba(6, 10, 22, .38), inset 0 0 0 1px rgba(255, 255, 255, .55);
  translate: calc(100% + 32px) 0; transition: translate .42s cubic-bezier(.22, 1, .36, 1);
}
.drawer.sw.is-open { translate: 0 0; }
.sw-nav { display: flex; flex: none; flex-direction: column; width: 228px; padding: 16px 12px; overflow-y: auto; background: rgba(255, 255, 255, .5); border-right: 1px solid rgba(15, 23, 42, .06); }
.sw-me { display: flex; align-items: center; gap: 11px; width: 100%; margin-bottom: 6px; padding: 10px; border-radius: 14px; text-align: left; background: rgba(255, 255, 255, .85); box-shadow: 0 1px 2px rgba(15, 23, 42, .06), inset 0 0 0 1px rgba(15, 23, 42, .04); transition: box-shadow .15s; }
.sw-me:hover { box-shadow: 0 4px 14px rgba(15, 23, 42, .1), inset 0 0 0 1px rgba(15, 23, 42, .05); }
.sw-me b { display: block; font-size: 14px; } .sw-me small { display: block; font-size: 12px; color: var(--ink-3); }
.sw-av { display: grid; flex: none; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; font-weight: 700; font-size: 16px; background: linear-gradient(135deg, #5b8cff, #a855f7); box-shadow: 0 4px 12px rgba(91, 140, 255, .35); }
.sw-av.off { background: linear-gradient(135deg, #9aa3b2, #6b7280); box-shadow: none; }
.sw-av.off .i { width: 18px; height: 18px; }
.sw-av.big { width: 52px; height: 52px; font-size: 22px; }
.sw-av.sm { display: inline-grid; width: 22px; height: 22px; font-size: 11px; vertical-align: -5px; box-shadow: none; }
.sw-gh { margin: 14px 10px 5px; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; color: #9aa1ad; }
.sw-tabs { display: flex; flex-direction: column; gap: 2px; }
.sw-tab { display: flex; align-items: center; gap: 10px; width: 100%; height: 38px; padding: 0 10px; border-radius: 11px; font-size: 13.5px; color: var(--ink-2); text-align: left; transition: background .15s, color .15s, box-shadow .15s; }
.sw-tab:hover { background: rgba(15, 23, 42, .045); color: var(--ink); }
.sw-tab[aria-selected="true"] { background: #fff; color: var(--ink); font-weight: 600; box-shadow: 0 1px 3px rgba(15, 23, 42, .1), 0 0 0 1px rgba(15, 23, 42, .03); }
.sw-ic { display: grid; flex: none; place-items: center; width: 26px; height: 26px; border-radius: 8px; color: #fff; background: var(--tone); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .12); }
.sw-ic .i { width: 15px; height: 15px; stroke-width: 2; }
.tone-blue { --tone: linear-gradient(135deg, #5b9bff, #2563eb); } .tone-violet { --tone: linear-gradient(135deg, #a78bfa, #7c3aed); }
.tone-teal { --tone: linear-gradient(135deg, #2dd4bf, #0d9488); } .tone-indigo { --tone: linear-gradient(135deg, #818cf8, #4f46e5); }
.tone-pink { --tone: linear-gradient(135deg, #f472b6, #db2777); } .tone-orange { --tone: linear-gradient(135deg, #fdba74, #ea580c); }
.tone-sky { --tone: linear-gradient(135deg, #7dd3fc, #0284c7); } .tone-green { --tone: linear-gradient(135deg, #86efac, #16a34a); }
.tone-red { --tone: linear-gradient(135deg, #fca5a5, #dc2626); } .tone-purple { --tone: linear-gradient(135deg, #e879f9, #9333ea); }
.tone-gray { --tone: linear-gradient(135deg, #cbd5e1, #64748b); }
.sw-main { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.sw-head { display: flex; flex: none; align-items: flex-start; gap: 12px; padding: 24px 18px 6px 30px; }
.sw-head > div { flex: 1; min-width: 0; }
#drawer-title { font-size: 23px; font-weight: 700; letter-spacing: -.01em; }
.sw-sub { margin-top: 3px; font-size: 13px; color: var(--ink-3); }
.sw-body { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 30px 34px; outline: none; scrollbar-gutter: stable; }
.sw-body.is-in { animation: sw-in .3s var(--ease); }
@keyframes sw-in { from { opacity: 0; translate: 0 8px; } }
.sg { margin-top: 18px; }
.sg-h { margin: 0 0 8px 6px; font-size: 12.5px; font-weight: 600; color: #8b93a1; }
.sg-card { overflow: hidden; border-radius: 15px; background: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 0 0 1px rgba(15, 23, 42, .05); }
.sg-foot { margin: 8px 6px 0; font-size: 12px; line-height: 1.65; color: #8b93a1; }
.sg-foot b { color: var(--ink-2); }
.sr { display: flex; align-items: center; gap: 16px; min-height: 56px; padding: 11px 16px; }
.sr + .sr, .sg-card > div + .sr, .sg-card > .sr + div { border-top: 1px solid rgba(15, 23, 42, .06); }
.sr-t { flex: 1; min-width: 0; }
.sr-t b { display: block; font-size: 14px; font-weight: 500; line-height: 1.45; }
.sr-t b .i { width: 16px; height: 16px; margin-right: 4px; color: var(--ink-3); }
.sr-t small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.55; color: var(--ink-3); }
.sr-t code { padding: 1px 5px; border-radius: 5px; background: #f1f3f6; font-size: 12px; }
.sr-c { display: flex; flex: none; align-items: center; gap: 8px; }
.sw-num { font-size: 12.5px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.sw-loading { padding: 16px; font-size: 13px; color: var(--ink-3); }
.sw-msg { padding: 0 16px 12px; font-size: 12.5px; line-height: 1.6; color: var(--ink-2); }
.sw-err { min-height: 18px; font-size: 12.5px; color: #d93838; }
/* 开关 */
.tg { position: relative; flex: none; width: 44px; height: 26px; border-radius: 13px; background: #d5d9e1; transition: background .2s; }
.tg i { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25), 0 0 0 .5px rgba(0, 0, 0, .04); transition: translate .26s cubic-bezier(.3, 1.4, .5, 1); }
.tg[aria-checked="true"] { background: linear-gradient(135deg, #4f8bff, #2f6bff); }
.tg[aria-checked="true"] i { translate: 18px 0; }
.tg:active i { width: 23px; }
.tg[aria-checked="true"]:active i { translate: 15px 0; }
/* 分段选择 */
.sseg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 12px; background: #eef0f4; }
.sseg button { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 13px; border-radius: 9px; font-size: 13px; color: var(--ink-2); white-space: nowrap; transition: background .15s, color .15s, box-shadow .15s; }
.sseg button:hover { color: var(--ink); }
.sseg button[aria-checked="true"] { background: #fff; color: var(--ink); font-weight: 600; box-shadow: 0 1px 3px rgba(15, 23, 42, .14); }
.sseg .eg { width: 18px; height: 18px; border-radius: 5px; font-size: 11px; }
/* 小标签 */
.sb { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; font-size: 11.5px; font-weight: 500; color: var(--ink-2); background: #f0f2f5; white-space: nowrap; vertical-align: 1px; }
.sb-blue { color: #1d4ed8; background: #e0ebff; } .sb-green { color: #15803d; background: #dcfce7; }
/* 表单 */
.sw .input { height: 38px; border-color: transparent; border-radius: 10px; background: #f1f3f7; transition: background .15s, border-color .15s, box-shadow .15s; }
.sw .input:hover { background: #ebeef3; }
.sw .input:focus { background: #fff; border-color: var(--blue); }
.sw .btn { height: 34px; border-radius: 10px; }
.sw .btn.small { height: 28px; border-radius: 8px; }
.sw .btn.primary { background: linear-gradient(135deg, #4f8bff, #2f6bff); box-shadow: 0 2px 8px rgba(47, 107, 255, .3); }
.sw .btn:disabled, .sw .input:disabled { opacity: .5; cursor: not-allowed; }
.sw-form { display: flex; align-items: center; gap: 8px; }
.sw-form .input { flex: 1 1 160px; min-width: 0; }
.sw-form.wrap { flex-wrap: wrap; }
.sw-form.wrap .input.grow { flex-basis: 100%; }
.sw-form.col { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px 16px 16px; }
.sw-form.col > .sr { padding: 0; min-height: 0; border: 0; }
.sw-form.col .input, .sw-f .input { flex: none; width: 100%; }   /* 竖排时 flex-basis 会变成高度，这里固定成一行高 */
.sw-f { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--ink-2); }
.icon-btn.sm { width: 30px; height: 30px; border-radius: 8px; }
.icon-btn.sm .i { width: 16px; height: 16px; }
/* 账号 */
.sw-profile { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; color: #fff;
  background: radial-gradient(120% 140% at 0% 0%, #6d8dff 0%, #5b5bd6 45%, #8b3fd1 100%); box-shadow: 0 10px 30px rgba(91, 91, 214, .32); }
.sw-profile .sr-t b { font-size: 18px; font-weight: 700; }
.sw-profile .sr-t small { color: rgba(255, 255, 255, .78); }
.sw-profile .sw-av { background: rgba(255, 255, 255, .22); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); }
.sw-profile .btn { background: rgba(255, 255, 255, .18); color: #fff; }
.sw-profile .btn:hover { background: rgba(255, 255, 255, .28); color: #fff !important; }
.sw-link { display: flex; gap: 8px; }
.sw-link .btn { flex: none; }
.sw-form .sw-link .input { flex: 1 1 auto; width: auto; min-width: 0; font: 12.5px/1 ui-monospace, "Cascadia Mono", Consolas, monospace; color: var(--ink); }
/* 天气地点 */
.sr-place .sp-ic { display: grid; flex: none; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #e8f2ff; color: #2563eb; }
.sr-place .sp-ic.muted { background: #f1f3f6; color: var(--ink-3); }
.sr-place .sp-ic .i { width: 17px; height: 17px; }
/* 默认页预览：按真实比例画出时间和搜索框的位置 */
.hp-prev { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 16px; background: #283048 center / cover no-repeat; box-shadow: 0 8px 26px rgba(15, 23, 42, .18); container-type: inline-size; }
.hp-prev::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .12), transparent 40%, rgba(0, 0, 0, .25)); }
.hp-clock, .hp-date, .hp-search, .hp-quote { position: absolute; z-index: 1; left: 50%; translate: -50% 0; color: #fff; text-shadow: 0 1px 6px rgba(0, 0, 0, .3); white-space: nowrap; }
.hp-clock { top: calc(50% - 8.5% - 2.4% - 3.8cqw); font: 400 3.8cqw/1 var(--font-clock); }
.hp-date { top: calc(50% - 8.5% - 4.3%); font-size: max(6px, .68cqw); opacity: 0; }
.hp-prev.with-date .hp-clock { top: calc(50% - 8.5% - 4.6% - 3.8cqw); }
.hp-prev.with-date .hp-date { opacity: 1; }
.hp-search { top: calc(50% - 8.5%); width: 30.2%; height: 4.3%; border-radius: 99px; background: rgba(255, 255, 255, .3); font-size: .78cqw; line-height: 1; display: grid; place-items: center; letter-spacing: .12em; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.hp-quote { bottom: 4%; width: 34%; height: 1.2%; border-radius: 99px; background: rgba(255, 255, 255, .45); }
/* 壁纸 */
.sw-hero { position: relative; overflow: hidden; border-radius: 16px; box-shadow: 0 8px 26px rgba(15, 23, 42, .18); }
.sw-hero img { display: block; width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.sw-hero figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; padding: 34px 18px 14px; color: #fff; font-size: 12.5px; background: linear-gradient(transparent, rgba(0, 0, 0, .62)); }
.sw-hero figcaption b { font-size: 15px; }
.sw-hero-btn { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 10px; color: #fff; font-size: 13px;
  background: rgba(0, 0, 0, .35); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.sw-hero-btn:hover { background: rgba(0, 0, 0, .5); }
.sw-hero-btn .i { width: 15px; height: 15px; }
.sw-thumbs { padding: 12px; }
/* 搜索前缀 */
.sw-kbds { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; padding: 14px 16px; }
.sw-kbd { font-size: 13px; color: var(--ink-2); }
.sw-kbd kbd { display: inline-grid; place-items: center; min-width: 24px; height: 24px; margin-right: 4px; padding: 0 6px; border-radius: 7px; font: 600 12.5px ui-monospace, Consolas, monospace; color: var(--ink); background: #f1f3f6; box-shadow: inset 0 -1px 0 rgba(15, 23, 42, .12); }
.sw-info { padding: 4px 16px; }
.sw-info li { font-size: 13px; }
.sw-info li:last-child { border-bottom: 0; }

/* 登录、凭邀请注册（服务端模式下没登录时） */
.is-gate :is(.clock, .dateline, .search-wrap, .quote, .open-desk, .side, .desk, .toast) { display: none !important; }
.is-gate .wall-blur { opacity: 1; }
.is-gate .wall-zoom { scale: 1.06; }
.is-gate .wall-veil::after { opacity: 1; }
.gate { position: fixed; inset: 0; z-index: 30; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: 24px; overflow-y: auto; }
.gate-top { text-align: center; text-shadow: 0 2px 18px rgba(0, 0, 0, .25); }
.gate-clock { display: block; font: 400 clamp(56px, 5vw, 84px)/1 var(--font-clock); font-variant-numeric: tabular-nums; }
.gate-date { margin-top: 8px; font-size: 13px; letter-spacing: .06em; white-space: pre; opacity: .92; }
.gate-card { width: min(380px, 100%); padding: 28px 28px 22px; border-radius: 24px; color: #fff;
  background: rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(28px) saturate(160%); backdrop-filter: blur(28px) saturate(160%);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .3), inset 0 0 0 1px rgba(255, 255, 255, .22); animation: gate-in .5s var(--ease); }
@keyframes gate-in { from { opacity: 0; translate: 0 14px; scale: .98; } }
.gate-card h1 { font-size: 22px; font-weight: 700; letter-spacing: .02em; }
.gate-sub { margin-top: 4px; font-size: 13px; line-height: 1.6; color: rgba(255, 255, 255, .78); }
.gate-sub b { color: #fff; }
.gate-form { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.gf { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: rgba(255, 255, 255, .82); }
.gi { width: 100%; height: 44px; padding: 0 14px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 13px; outline: 0; color: #fff; font: 15px var(--font);
  background: rgba(0, 0, 0, .18); transition: border-color .15s, background .15s, box-shadow .15s; }
.gi::placeholder { color: rgba(255, 255, 255, .45); }
.gi:focus { border-color: rgba(255, 255, 255, .7); background: rgba(0, 0, 0, .26); box-shadow: 0 0 0 4px rgba(255, 255, 255, .12); }
.gf-pw { position: relative; display: block; }
.gf-pw .gi { padding-right: 46px; }
.gf-eye { position: absolute; top: 4px; right: 4px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: rgba(255, 255, 255, .75); }
.gf-eye:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.gc { display: flex; align-items: center; gap: 8px; font-size: 13px; color: rgba(255, 255, 255, .85); cursor: pointer; }
.gc input { width: 16px; height: 16px; accent-color: #6d8dff; }
.gate-err { min-height: 18px; margin: -4px 0 -6px; font-size: 13px; color: #ffd0d0; }
.gate-btn { display: grid; place-items: center; height: 46px; margin-top: 4px; border-radius: 13px; color: #1b1f2a; font-size: 15px; font-weight: 600;
  background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); transition: translate .15s, box-shadow .15s, opacity .15s; }
.gate-btn:hover { translate: 0 -1px; box-shadow: 0 12px 28px rgba(0, 0, 0, .24); }
.gate-btn:disabled { opacity: .6; cursor: progress; translate: none; }
.gate-btn.ghost { margin-top: 18px; color: #fff; background: rgba(255, 255, 255, .16); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.gate-foot { margin-top: 16px; font-size: 12.5px; text-align: center; color: rgba(255, 255, 255, .7); }
.gate-foot a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.gate :focus-visible { outline-color: #fff; }

/* 天气卡片还没有数据：没设地点、正在取、取失败 */
.wx-wait { justify-content: flex-start; gap: 6px; }
.wx-msg { font-size: 12.5px; line-height: 1.5; opacity: .9; }
.wx-set { display: inline-flex; align-self: flex-start; align-items: center; gap: 5px; height: 26px; margin-top: auto; padding: 0 10px; border-radius: 8px; font-size: 12px; color: #fff; background: rgba(255, 255, 255, .2); }
.wx-set:hover { background: rgba(255, 255, 255, .3); }
.wx-set .i { width: 14px; height: 14px; }
.wx-wait.big { min-height: 160px; padding: 20px; border-radius: 14px; color: #fff; background: linear-gradient(150deg, #5b7bb8, #8aa4d6); }
.wd-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.wd-top .btn { margin-left: auto; }

/* ---------- 提示条 ---------- */
.toast {
  position: fixed; z-index: 95; left: 50%; bottom: 64px; display: flex; align-items: center; gap: 12px;
  max-width: calc(100vw - 32px); padding: 9px 10px 9px 16px; border-radius: 12px; background: rgba(20, 20, 24, .88); color: #fff; font-size: 13.5px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .3); translate: -50% 12px; opacity: 0; transition: opacity .2s, translate .2s var(--ease);
}
.toast:not(:has(button)) { padding-right: 16px; }
.toast.is-open { opacity: 1; translate: -50% 0; }
.toast-btn { height: 28px; padding: 0 10px; border-radius: 8px; background: rgba(255, 255, 255, .14); color: #8fd3ff; font-size: 13px; white-space: nowrap; }
.toast-btn:hover { background: rgba(255, 255, 255, .22); }

/* ---------- 窄屏与减少动态效果 ---------- */
@media (max-width: 720px) {
  :root { --side-w: 46px; --clock-size: clamp(56px, 15vw, 80px); }
  .side-page { height: 50px; font-size: 11px; }
  /* 窄屏的卡片页：时间、搜索框、一言让开侧栏，居中在侧栏右边的区域；名称放进 18px 的间距里 */
  .is-desk :is(.clock, .dateline) { translate: calc(var(--side-w) / 2) 0; }
  .is-desk .search-wrap { translate: calc(-50% + var(--side-w) / 2) 0; width: min(580px, calc(100vw - var(--side-w) - 28px)); }
  .is-desk .quote { translate: calc(-50% + var(--side-w) / 2) 0; max-width: calc(100vw - var(--side-w) - 24px); }
  .it-label { top: calc(100% + 2px); font-size: 11px; line-height: 14px; }
  .it-card[data-size$="x2"] .pp li:nth-child(2) .pp-n { display: none; }   /* 两格高的卡片窄屏只有 130px，第二篇论文只留标题 */
  .dl-rows { gap: 3px; }
  .dl-sub { display: none; }   /* 窄屏的 4×4 卡片只有 278px 高，截稿第二行放不下 6 条 */
  .win, .dlg, .dlg.wide { width: calc(100vw - 20px); height: calc(100vh - 40px); }
  /* 窄屏的设置：铺满屏幕，分类导航变成顶部一条横向滚动的标签 */
  .drawer.sw { top: 0; right: 0; bottom: 0; left: 0; flex-direction: column; width: 100vw; border-radius: 0; }
  .sw-nav { flex-direction: row; align-items: center; gap: 6px; width: auto; padding: 8px 10px; overflow-x: auto; overflow-y: hidden; border-right: 0; border-bottom: 1px solid rgba(15, 23, 42, .06); }
  .sw-me { flex: none; width: auto; margin: 0; padding: 5px 8px; }
  .sw-me small, .sw-gh { display: none; }
  .sw-av { width: 30px; height: 30px; font-size: 13px; }
  .sw-tabs { flex-direction: row; }
  .sw-tab { width: auto; white-space: nowrap; }
  .sw-head { padding: 14px 8px 4px 16px; }
  .sw-body { padding: 4px 14px 24px; }
  .sw-form:not(.col) { flex-wrap: wrap; }
  .sr { flex-wrap: wrap; }
  .pw, .cd { grid-template-columns: 1fr; }
  .pw { overflow-y: auto; }
  .hd-list { columns: 1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; transition-delay: 0s !important; animation-duration: 0s !important; animation-delay: 0s !important; }
}
