/* Una: 雾 (brume) and 夜 (nuit), built on the 雪野 B layout.
   Active only when <html data-theme="snow" data-una="brume|nuit">; the original
   snow theme and every other theme are untouched. Approved sample: una-sample.html. */

@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('../assets/una/cormorant-garamond-latin-400-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap;
  src: url('../assets/una/cormorant-garamond-latin-500-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Story mode is not used (SiSi, 2026-10-23): hide its entrances in every theme. */
#storyEntryBtn, #snowStoryBtn { display: none !important; }
/* 珍珠 / 海港 and 听歌 are retired too (SiSi, 2026-10-23); only their entrances go. */
#themeSeg button[data-val="light"], #themeSeg button[data-val="harbor"], #musicBtn { display: none !important; }

/* ---------- tokens ---------- */
:root[data-theme="snow"][data-una] {
  --wall-default: var(--una-wall); --menu-wall-default: var(--una-wall);
  --una-serif-cn: "Noto Serif SC", "Songti SC", "STSong", serif;
  --una-serif-lat: "Cormorant Garamond", "Cormorant", Garamond, serif;
  --una-script: "Pinyon Script", "Snell Roundhand", cursive;
  --una-tick: 1.5px;
}
:root[data-theme="snow"][data-una="brume"] {
  color-scheme: light;
  --una-bg: #F0F0EE; --una-paper: rgba(250, 250, 248, 0.86); --una-text: #27303B; --una-sub: #858B93;
  --una-faint: #B4B8BD; --una-line: #D9DAD8; --una-accent: #4B5B6E; --una-wall: var(--una-wall-brume, url('../assets/una/mist-brume.webp'));
  --bg: #F0F0EE; --header-bg: transparent; --text: #27303B; --text-soft: #5E6670; --text-faint: #858B93;
  --accent: #4B5B6E; --accent-fg: #FFFFFF; --send-bg: transparent; --tick: #9AA1A9;
  --bubble-ai-bg: transparent; --bubble-ai-fg: #27303B; --bubble-human-bg: transparent; --bubble-human-fg: #27303B;
  --hairline: rgba(39, 48, 59, 0.14); --card-bg: rgba(250, 250, 248, 0.96); --card-line: #D9DAD8;
  --seg-track: rgba(39, 48, 59, 0.06); --seg-thumb: #FAFAF8; --row-press: rgba(39, 48, 59, 0.06);
  --slider-track: #D9DAD8; --slider-thumb: #4B5B6E; --info-ring: #B4B8BD;
  --think-label: #5E6670; --think-body: #5E6670; --think-flourish: #9AA1A9;
  --composer-bg: transparent; --field-bg: transparent; --field-line: #D9DAD8; --scrim: none;
}
:root[data-theme="snow"][data-una="nuit"] {
  color-scheme: dark;
  --una-bg: #0F1216; --una-paper: rgba(22, 26, 32, 0.9); --una-text: #D8DCE1; --una-sub: #7D848D;
  --una-faint: #4A5059; --una-line: #262B33; --una-accent: #9AAABB; --una-wall: var(--una-wall-nuit, url('../assets/una/mist-nuit.webp'));
  --bg: #0F1216; --header-bg: transparent; --text: #D8DCE1; --text-soft: #A9AFB7; --text-faint: #7D848D;
  --accent: #9AAABB; --accent-fg: #0F1216; --send-bg: transparent; --tick: #59606A;
  --bubble-ai-bg: transparent; --bubble-ai-fg: #D8DCE1; --bubble-human-bg: transparent; --bubble-human-fg: #D8DCE1;
  --hairline: rgba(216, 220, 225, 0.12); --card-bg: rgba(22, 26, 32, 0.97); --card-line: #262B33;
  --seg-track: rgba(216, 220, 225, 0.06); --seg-thumb: #1C2128; --row-press: rgba(216, 220, 225, 0.06);
  --slider-track: #262B33; --slider-thumb: #9AAABB; --info-ring: #4A5059;
  --think-label: #A9AFB7; --think-body: #A9AFB7; --think-flourish: #59606A;
  --composer-bg: transparent; --field-bg: transparent; --field-line: #262B33; --scrim: none;
}
html[data-theme="snow"][data-una="brume"] { background-color: #F0F0EE; }
html[data-theme="snow"][data-una="nuit"] { background-color: #0F1216; }

/* ---------- page + wall ---------- */
:root[data-theme="snow"][data-una] .wall {
  background-image: var(--una-wall) !important; background-size: cover !important; background-position: center !important;
  filter: none !important; opacity: 1 !important;
}
:root[data-theme="snow"][data-una] .wall::before, :root[data-theme="snow"][data-una] .wall::after { display: none !important; }
:root[data-theme="snow"][data-una] .app { font-family: var(--una-serif-cn); color: var(--una-text); }

/* ---------- header ---------- */
:root[data-theme="snow"][data-una] .topbar {
  background: transparent !important; border-bottom: 1px solid var(--una-line); box-shadow: none !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important; align-items: flex-end;
}
:root[data-theme="snow"][data-una] .topbar::before, :root[data-theme="snow"][data-una] .topbar::after { display: none !important; }
:root[data-theme="snow"][data-una] .backbtn { color: var(--una-sub); }
:root[data-theme="snow"][data-una] .backbtn::after { display: none !important; }
:root[data-theme="snow"][data-una] .snow-header-avatar { display: none !important; }
:root[data-theme="snow"][data-una] .peerpill { display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-width: 0; }
:root[data-theme="snow"][data-una] .una-mark { display: block; font-family: var(--una-script); font-size: 22px; line-height: 1.1; color: var(--una-accent); }
:root:not([data-una]) .una-mark { display: none; }
:root[data-theme="snow"][data-una] .peerpill .name {
  font-family: var(--una-serif-cn); font-weight: 500; font-size: 24px; line-height: 1.35; letter-spacing: 0.06em;
  color: var(--una-text); text-shadow: none;
}
:root[data-theme="snow"][data-una] .peerpill .status { font-family: var(--una-serif-cn); font-size: 13px; color: var(--una-sub); text-shadow: none; }
:root[data-theme="snow"][data-una] .peerpill .status::before {
  content: "tranquille · "; font-family: var(--una-serif-lat); font-style: italic; font-size: 14px;
}
:root[data-theme="snow"][data-una] #moreBtn { color: var(--una-text); background: none !important; border: 0 !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] #moreBtn .snow-header-art { display: none !important; }
:root[data-theme="snow"][data-una] #moreBtn svg { display: block !important; width: 22px; height: 22px; transform: rotate(90deg); }

/* ---------- letters (no bubbles) ---------- */
:root[data-theme="snow"][data-una] .message-avatar { display: none !important; }
/* no avatar, so no avatar gutter: 晏 sits on the same edge as SiSi */
:root[data-theme="snow"][data-una] .row.ai { padding-left: 0 !important; }
:root[data-theme="snow"][data-una] .row { padding-top: 28px; }
:root[data-theme="snow"][data-una] .row.grouped { padding-top: 10px; }
:root[data-theme="snow"][data-una] .row.human::before, :root[data-theme="snow"][data-una] .row.human::after,
:root[data-theme="snow"][data-una] .row.ai .txt::before, :root[data-theme="snow"][data-una] .bubble::after { display: none !important; content: none !important; }
:root[data-theme="snow"][data-una] .bubble {
  max-width: min(86%, 560px); padding: 0; border: 0 !important; border-radius: 0 !important;
  background: none !important; background-image: none !important; box-shadow: none !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important; isolation: auto;
  font-family: var(--una-serif-cn); font-size: 16px; line-height: 1.75; color: var(--una-text);
}
:root[data-theme="snow"][data-una] .bubble .txt { font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; text-shadow: none; }
:root[data-theme="snow"][data-una] .bubble .una-act { font-style: italic; color: var(--una-sub); }
/* names: a 1.5px slate tick beside each speaker */
:root[data-theme="snow"][data-una] .bubble::before { display: none !important; content: none !important; }
:root[data-theme="snow"][data-una] .row.ai:not(.grouped) .bubble::before {
  display: block !important; content: var(--una-ai-name, "晏") !important; position: static !important;
  width: auto !important; height: auto !important; background: none !important; transform: none !important; opacity: 1 !important;
  font-family: var(--una-serif-cn); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; line-height: 1;
  color: var(--una-text); border-left: var(--una-tick) solid var(--una-accent); padding: 0 0 0 8px; margin: 0 0 10px;
}
:root[data-theme="snow"][data-una] .row.human:not(.grouped) .bubble::before {
  display: block !important; content: var(--una-her-name, "SiSi") !important; position: static !important;
  width: auto !important; height: auto !important; background: none !important; transform: none !important; opacity: 1 !important;
  font-family: var(--una-serif-cn); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; line-height: 1;
  color: var(--una-text); text-align: right; border-right: var(--una-tick) solid var(--una-accent); padding: 0 8px 0 0; margin: 0 0 10px;
}
:root[data-theme="snow"][data-una] .row.human .bubble { text-align: right; }
:root[data-theme="snow"][data-una] .row.human .txt { text-align: right; }
/* 信笺: everyone on the left, her letters marked by a hairline */
:root[data-theme="snow"][data-una][data-una-layout="letter"] .row.human { justify-content: flex-start; }
:root[data-theme="snow"][data-una][data-una-layout="letter"] .row.human .bubble,
:root[data-theme="snow"][data-una][data-una-layout="letter"] .row.human .txt { text-align: left; }
:root[data-theme="snow"][data-una][data-una-layout="letter"] .row.human .bubble { border-left: 1px solid var(--una-accent) !important; padding-left: 14px; }
:root[data-theme="snow"][data-una][data-una-layout="letter"] .row.human:not(.grouped) .bubble::before {
  text-align: left; border-right: 0; padding: 0;
}
/* time + small controls */
:root[data-theme="snow"][data-una] .bubble .meta {
  position: static !important; display: flex; gap: 6px; align-items: center; margin: 6px 0 0 !important; padding: 0 !important; width: auto !important;
  font-family: var(--una-serif-lat); font-style: italic; font-size: 13px; color: var(--una-faint);
}
:root[data-theme="snow"][data-una] .row.human .bubble .meta { justify-content: flex-end !important; }
:root[data-theme="snow"][data-una] .row.ai .bubble .meta { justify-content: flex-start !important; }
:root[data-theme="snow"][data-una] .row:not(.tail) .bubble .meta { display: none; }
:root[data-theme="snow"][data-una] .bubble .meta .tick { color: var(--una-faint); font-style: normal; font-size: 11px; }
:root[data-theme="snow"][data-una] .message-tts {
  position: static !important; flex: 0 0 auto !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important;
  padding: 6px 6px 6px 0 !important; margin: -6px 0 !important; border-radius: 0 !important; opacity: 1 !important;
  background: none !important; border: 0 !important; box-shadow: none !important; color: var(--una-faint);
  font-size: 11px; line-height: 1; transform: none !important;
}
:root[data-theme="snow"][data-una] .message-tts::after { display: none !important; }
:root[data-theme="snow"][data-una] .message-tts.is-playing { color: var(--una-accent); }
:root[data-theme="snow"][data-una] .message-cost { position: static !important; display: inline-block; margin-top: 2px; font-family: var(--una-serif-lat); font-style: italic; font-size: 12px; color: var(--una-faint); text-shadow: none; background: none !important; }
:root[data-theme="snow"][data-una] .message-cost.una-empty { display: none !important; }
:root[data-theme="snow"][data-una] .enter-human .bubble, :root[data-theme="snow"][data-una] .enter-ai .bubble { animation: none !important; }
:root[data-theme="snow"][data-una] .row.think, :root[data-theme="snow"][data-una] .row.act { font-family: var(--una-serif-cn); }
:root[data-theme="snow"][data-una] .row.think *, :root[data-theme="snow"][data-una] .row.act * { box-shadow: none !important; text-shadow: none !important; }

/* ---------- composer ---------- */
:root[data-theme="snow"][data-una] .composer { background: transparent !important; border: 0 !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] .composer .field {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--una-line) !important;
  border-radius: 0 !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  align-items: center;
}
:root[data-theme="snow"][data-una] .composer .field:focus-within { border-bottom-color: var(--una-accent) !important; }
:root[data-theme="snow"][data-una] .composer .field::before {
  content: "écrire"; order: 1; flex: none; font-family: var(--una-serif-lat); font-style: italic; font-size: 14px;
  color: var(--una-faint); margin-right: 6px;
}
:root[data-theme="snow"][data-una] #clipBtn { order: 0; }
:root[data-theme="snow"][data-una] #input { order: 2; font-family: var(--una-serif-cn); font-size: 16px; color: var(--una-text); background: transparent !important; }
:root[data-theme="snow"][data-una] #micBtn { order: 3; }
:root[data-theme="snow"][data-una] #emojiBtn { order: 4; }
:root[data-theme="snow"][data-una] #input::placeholder { color: var(--una-sub); }
:root[data-theme="snow"][data-una] .composer .field .floatbtn, :root[data-theme="snow"][data-una] #emojiBtn, :root[data-theme="snow"][data-una] #micBtn { color: var(--una-sub) !important; background: none !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] #sendBtn {
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--una-line) !important; background: transparent !important;
  color: var(--una-accent); box-shadow: none !important; display: grid; place-items: center;
}
:root[data-theme="snow"][data-una] #sendBtn .snow-butterfly { display: none !important; }
:root[data-theme="snow"][data-una] #sendBtn > svg:not(.composer-stop-icon) { display: block !important; width: 20px; height: 20px; stroke-width: 1.4; }

/* ---------- nav: 守夜 / 窗口 / 更多, up in the header (una.js moves it there) ---------- */
:root[data-theme="snow"][data-una] .topbar .snow-nav {
  display: flex !important; width: auto; margin-left: auto; padding: 0 0 6px; gap: 18px; justify-content: flex-end; align-items: flex-end;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
}
:root[data-theme="snow"][data-una] .topbar .snow-nav > button { width: auto !important; height: auto !important; min-width: 0; padding: 0 !important; }
:root[data-theme="snow"][data-una] #moreBtn { display: none !important; }
:root[data-theme="snow"][data-una] .topbar .header-actions:empty { display: none; }
:root:not([data-una]) .una-only { display: none !important; }
:root[data-theme="snow"][data-una] .snow-tools .una-only { display: flex; }
:root[data-theme="snow"][data-una] .snow-tools small { order: 9; }
:root[data-theme="snow"][data-una] .snow-nav > button { color: var(--una-sub); background: none !important; box-shadow: none !important; flex-direction: column; gap: 0; }
:root[data-theme="snow"][data-una] .snow-nav > button > svg,
:root[data-theme="snow"][data-una] .snow-nav .snow-guard-moon { display: none !important; }
:root[data-theme="snow"][data-una] .snow-nav .snow-label, :root[data-theme="snow"][data-una] #snowMoreBtn > span {
  font-family: var(--una-serif-cn); font-size: 13px; line-height: 1.5; color: inherit; text-shadow: none; position: static; transform: none;
}
:root[data-theme="snow"][data-una] .snow-nav > button::after {
  display: block !important; position: static !important; width: auto !important; height: auto !important; background: none !important;
  font-family: var(--una-serif-lat); font-size: 8px; letter-spacing: 0.26em; text-transform: uppercase; color: var(--una-faint); line-height: 1.4;
}
:root[data-theme="snow"][data-una] #keepaliveBtn::after { content: "veille"; box-shadow: none !important; border-radius: 0 !important; }
:root[data-theme="snow"][data-una] #sessionBtn::after { content: "fenêtres"; }
:root[data-theme="snow"][data-una] #musicBtn::after { content: "écoute"; }
:root[data-theme="snow"][data-una] #snowMoreBtn::after { content: "plus"; }
:root[data-theme="snow"][data-una] #keepaliveBtn[data-state="on"] { color: var(--una-text); }
:root[data-theme="snow"][data-una] #keepaliveBtn[data-state="on"] .snow-label::before {
  content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--una-accent);
  margin-right: 5px; vertical-align: middle;
}
:root[data-theme="snow"][data-una] .snow-tools { background: var(--una-bg) !important; border: 1px solid var(--una-line) !important; box-shadow: none !important; color: var(--una-text); }

/* ---------- settings card (only shown with Una) ---------- */
:root:not([data-una]) .una-settings { display: none !important; }
.una-settings .una-opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.una-settings .una-again { margin-top: 12px; background: none; border: 0; padding: 0; color: var(--accent); font: inherit; font-size: 13px;
  text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; cursor: pointer; }
.una-settings .settings-label i { font-family: "Cormorant Garamond", Garamond, serif; font-style: italic; font-weight: 400; margin-left: 6px; opacity: .7; }

/* ---------- splash: tonight's moon ---------- */
.una-splash {
  position: fixed; inset: 0; z-index: 2147483000; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; text-align: center; cursor: pointer; background: var(--una-bg, #F0F0EE) var(--una-wall) center / cover no-repeat;
  color: var(--una-text, #27303B); font-family: "Noto Serif SC", "Songti SC", serif;
  padding: env(safe-area-inset-top, 0px) max(16px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(16px, env(safe-area-inset-left, 0px));
  transition: opacity 600ms ease-in-out;
}
.una-splash.gone { opacity: 0; pointer-events: none; }
.una-splash .s-mark { font-family: "Pinyon Script", cursive; font-size: 34px; line-height: 1.1; color: var(--una-accent, #4B5B6E); }
.una-splash .s-head { display: flex; gap: 16px; align-items: baseline; justify-content: center; }
.una-splash .s-caps { font-family: "Cormorant Garamond", Garamond, serif; text-transform: uppercase; letter-spacing: 0.28em; font-size: 12px; }
.una-splash .s-lat { font-family: "Cormorant Garamond", Garamond, serif; font-style: italic; font-size: 14px; color: var(--una-sub, #858B93); letter-spacing: 0.06em; }
.una-splash .s-moonbox { position: relative; width: min(240px, 66vw); aspect-ratio: 1; max-width: 100%; margin: 16px auto 8px; }
.una-splash .s-ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.una-splash canvas.s-moon { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.una-splash .s-phase { font-size: 22px; font-weight: 500; letter-spacing: 0.08em; margin: 0 0 6px; }
.una-splash .s-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: min(320px, 100%); margin: 0; text-align: left; }
.una-splash .s-facts div { border-top: 1px solid var(--una-line, #D9DAD8); padding-top: 4px; }
.una-splash .s-facts dt { font-family: "Cormorant Garamond", Garamond, serif; font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--una-sub, #858B93); }
.una-splash .s-facts dd { margin: 0; font-size: 15px; font-variant-numeric: tabular-nums; }
.una-splash .s-num { font-family: "Cormorant Garamond", Garamond, serif; font-size: 20px; }
.una-splash .s-tap { margin: 24px 0 0; font-size: 13px; color: var(--una-sub, #858B93); }
@media (prefers-reduced-motion: reduce) { .una-splash { transition: none; } }

/* ---------- key screen (登录) ---------- */
:root[data-theme="snow"][data-una] .login { gap: 14px; background-color: var(--una-bg); background-image: var(--una-wall); }
:root[data-theme="snow"][data-una] .login .orb { display: none; }
:root[data-theme="snow"][data-una] .login h1 {
  font-family: var(--una-serif-cn); font-weight: 500; font-size: 26px; letter-spacing: 0.08em; color: var(--una-text);
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
:root[data-theme="snow"][data-una] .login h1::before { content: "Una"; font-family: var(--una-script); font-weight: 400; font-size: 40px; letter-spacing: 0; line-height: 1.1; color: var(--una-accent); }
:root[data-theme="snow"][data-una] .login .sub { margin: 0 0 18px; font-family: var(--una-serif-cn); font-size: 14px; color: var(--una-sub); }
:root[data-theme="snow"][data-una] .login form { max-width: 280px; gap: 18px; }
:root[data-theme="snow"][data-una] .login input {
  padding: 8px 2px; border: 0; border-bottom: 1px solid var(--una-line); border-radius: 0; background: transparent; box-shadow: none;
  font-family: var(--una-serif-cn); font-size: 16px; color: var(--una-text); text-align: center; letter-spacing: 0.1em;
}
:root[data-theme="snow"][data-una] .login input::placeholder { color: var(--una-faint); letter-spacing: 0.04em; }
:root[data-theme="snow"][data-una] .login input:focus { border-bottom-color: var(--una-accent); }
:root[data-theme="snow"][data-una] .login button {
  padding: 10px; border: 1px solid var(--una-line); border-radius: 999px; background: transparent; color: var(--una-accent);
  font-family: var(--una-serif-cn); font-weight: 400; font-size: 15px; letter-spacing: 0.3em;
}
:root[data-theme="snow"][data-una] .login .err { font-family: var(--una-serif-cn); }
:root[data-theme="snow"][data-una] .auth-boot { background: var(--una-bg); color: var(--una-sub); }

/* ---------- 播放语音: a drawn line icon (the ▶ glyph turns into a blue emoji on iPhone) ---------- */
:root[data-theme="snow"][data-una] .message-tts { font-size: 0 !important; color: var(--una-faint); }
:root[data-theme="snow"][data-una] .message-tts::before {
  display: block !important; content: "" !important; position: static !important; inset: auto !important; transform: none !important; margin: 0 !important;
  width: 13px !important; height: 13px !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; opacity: 1 !important; background: currentColor !important;
  -webkit-mask: var(--una-play) center / contain no-repeat; mask: var(--una-play) center / contain no-repeat;
}
:root[data-theme="snow"][data-una] .message-tts.is-playing::before { -webkit-mask-image: var(--una-pause); mask-image: var(--una-pause); }
:root[data-theme="snow"][data-una] .message-tts.is-loading::before { -webkit-mask-image: var(--una-wait); mask-image: var(--una-wait); }
:root[data-theme="snow"][data-una] {
  --una-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 3.2v9.6L12.6 8z' fill='none' stroke='black' stroke-width='1.1' stroke-linejoin='round'/%3E%3C/svg%3E");
  --una-pause: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 3.5v9M10.5 3.5v9' stroke='black' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");
  --una-wait: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='3.5' cy='8' r='1'/%3E%3Ccircle cx='8' cy='8' r='1'/%3E%3Ccircle cx='12.5' cy='8' r='1'/%3E%3C/svg%3E");
}

/* ---------- main menu on 雾: Snow's night menu, re-inked for paper ---------- */
:root[data-theme="snow"][data-una="brume"] .menu-page::before { display: none !important; }
:root[data-theme="snow"][data-una="brume"] .menu-page,
:root[data-theme="snow"][data-una="brume"] .menu-page * { text-shadow: none !important; }
:root[data-theme="snow"][data-una="brume"] .menu-page .dual-mark { filter: invert(1) grayscale(1); mix-blend-mode: multiply; }
:root[data-theme="snow"][data-una="brume"] .companion-names,
:root[data-theme="snow"][data-una="brume"] .menu-name { color: var(--una-text) !important; }
:root[data-theme="snow"][data-una="brume"] .menu-days,
:root[data-theme="snow"][data-una="brume"] .menu-sub,
:root[data-theme="snow"][data-una="brume"] .menu-foot,
:root[data-theme="snow"][data-una="brume"] .menu-since { color: var(--una-sub) !important; }
:root[data-theme="snow"][data-una="brume"] .menu-en { color: var(--una-sub) !important; font-style: italic; }
:root[data-theme="snow"][data-una="brume"] .menu-ic,
:root[data-theme="snow"][data-una="brume"] .menu-chev { color: var(--una-accent) !important; opacity: 0.8; }
:root[data-theme="snow"][data-una="brume"] .menu-item { border-color: var(--una-line) !important; background: transparent !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una="brume"] .menu-list { border-color: var(--una-line) !important; }
:root[data-theme="snow"][data-una="brume"] .menu-item:active { background: rgba(39, 48, 59, 0.05) !important; }

/* ---------- 选择文字 (long press): a solid page, not see-through ---------- */
:root[data-theme="snow"][data-una] .message-text-page {
  background-color: var(--una-bg) !important; background-image: var(--una-wall) !important; background-size: cover !important;
  color: var(--una-text) !important; font-family: var(--una-serif-cn);
}
:root[data-theme="snow"][data-una] .message-text-page::backdrop { background: var(--una-bg); }
:root[data-theme="snow"][data-una] .message-text-page h2 { font-weight: 500; letter-spacing: 0.08em; }
:root[data-theme="snow"][data-una] .message-text-page header button {
  background: transparent !important; border: 1px solid var(--una-line) !important; border-radius: 999px !important;
  padding: 6px 16px !important; min-height: 36px; color: var(--una-accent) !important; font-family: var(--una-serif-cn);
}
:root[data-theme="snow"][data-una] #messageTextContents { line-height: 1.8; font-size: 16px; }

/* ---------- bottom: the last line clears the composer, and letters fade into mist as they slide under it ---------- */
:root[data-theme="snow"][data-una] .scroll { padding-bottom: calc(67px + 40px) !important; scroll-padding-bottom: 40px; }
:root[data-theme="snow"][data-una] footer.composer { background: var(--una-bg) !important; }
:root[data-theme="snow"][data-una] footer.composer::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 44px; pointer-events: none;
  background: linear-gradient(to bottom, transparent, var(--una-bg));
}

/* ---------- 夜: body text a little dimmer, like moonlight on the page ---------- */
:root[data-theme="snow"][data-una="nuit"] .bubble { color: #C9D0D8; }

/* ---------- 窗口 panel ---------- */
:root[data-theme="snow"][data-una] .session-pop {
  background-color: var(--una-bg) !important; background-image: var(--una-wall) !important; background-size: cover !important;
  border: 1px solid var(--una-line) !important; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18) !important; color: var(--una-text) !important;
  font-family: var(--una-serif-cn);
}
:root[data-theme="snow"][data-una] .session-pop::backdrop { background: rgba(0, 0, 0, 0.18); }
:root[data-theme="snow"][data-una] .session-pop *:not(svg):not(path):not(circle) { text-shadow: none !important; }
:root[data-theme="snow"][data-una] .session-title { font-family: var(--una-serif-cn); font-weight: 500; letter-spacing: 0.08em; color: var(--una-text) !important; }
:root[data-theme="snow"][data-una] .session-close, :root[data-theme="snow"][data-una] .session-back { color: var(--una-sub) !important; background: none !important; }
:root[data-theme="snow"][data-una] .session-search { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--una-line) !important; border-radius: 0 !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] .session-search input { color: var(--una-text) !important; font-family: var(--una-serif-cn); background: transparent !important; }
:root[data-theme="snow"][data-una] .session-search input::placeholder { color: var(--una-faint); }
:root[data-theme="snow"][data-una] .session-search button { color: var(--una-sub) !important; }
:root[data-theme="snow"][data-una] .session-list * { color: inherit; }
:root[data-theme="snow"][data-una] .session-list { color: var(--una-text); }
:root[data-theme="snow"][data-una] .session-item { background: transparent !important; border-color: var(--una-line) !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] .session-item.active, :root[data-theme="snow"][data-una] .session-item[aria-current="true"],
:root[data-theme="snow"][data-una] .session-item.current { background: rgba(127, 136, 148, 0.10) !important; }
:root[data-theme="snow"][data-una] .session-pop h3, :root[data-theme="snow"][data-una] .session-group-title { color: var(--una-sub) !important; font-family: var(--una-serif-cn); }
:root[data-theme="snow"][data-una] .session-new {
  background: transparent !important; border: 1px solid var(--una-line) !important; border-radius: 999px !important; box-shadow: none !important;
  color: var(--una-accent) !important; font-family: var(--una-serif-cn); font-weight: 400 !important; letter-spacing: 0.1em;
}
:root[data-theme="snow"][data-una] .session-shadow-close, :root[data-theme="snow"][data-una] .session-shadow-close strong { background: transparent !important; color: var(--una-sub) !important; font-family: var(--una-serif-cn); font-weight: 400 !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] .session-all, :root[data-theme="snow"][data-una] .session-settings summary { color: var(--una-sub) !important; background: none !important; font-family: var(--una-serif-cn); }
:root[data-theme="snow"][data-una] .session-meta { color: var(--una-sub) !important; }
:root[data-theme="snow"][data-una] .session-current { color: var(--una-accent) !important; background: none !important; font-style: normal; }
:root[data-theme="snow"][data-una] .session-side time, :root[data-theme="snow"][data-una] .session-more { color: var(--una-faint) !important; background: none !important; }
:root[data-theme="snow"][data-una] .session-row-menu { background: var(--una-bg) !important; border: 1px solid var(--una-line) !important; box-shadow: none !important; }
:root[data-theme="snow"][data-una] .session-row-menu button { color: var(--una-text) !important; background: none !important; }

/* ---------- several images: a fanned deck (una.js wraps them), 展开 lays them out ---------- */
:root:not([data-una]) .una-deck-toggle { display: none; }
:root[data-theme="snow"][data-una] .una-deckwrap { display: flex; align-items: center; gap: 50px; }
:root[data-theme="snow"][data-una] .row.human .una-deckwrap { flex-direction: row-reverse; }
:root[data-theme="snow"][data-una] .una-deck { position: relative; width: min(46vw, 180px); aspect-ratio: var(--deck-ratio, 1.04); max-height: 240px; flex: none; }
:root[data-theme="snow"][data-una] .una-deck .att-img-link {
  position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important;
  aspect-ratio: auto !important; margin: 0 !important; border-radius: 10px; transform-origin: 50% 92%;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16); transition: transform .35s ease, filter .35s ease, opacity .35s ease;
}
:root[data-theme="snow"][data-una] .una-deck .att-img { border-radius: 10px; -webkit-user-drag: none; }
:root[data-theme="snow"][data-una] .una-deck { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
:root[data-theme="snow"][data-una] .una-deck .att-img-link:nth-child(1) { z-index: 3; }
:root[data-theme="snow"][data-una] .una-deck .att-img-link:nth-child(2) { z-index: 2; transform: translateX(14px) rotate(5deg); filter: brightness(0.72); pointer-events: none; }
:root[data-theme="snow"][data-una] .una-deck .att-img-link:nth-child(3) { z-index: 1; transform: translateX(26px) rotate(10deg); filter: brightness(0.5); pointer-events: none; }
:root[data-theme="snow"][data-una] .una-deck .att-img-link:nth-child(n+4) { opacity: 0; pointer-events: none; }
:root[data-theme="snow"][data-una] .row.human .una-deck .att-img-link:nth-child(2) { transform: translateX(-14px) rotate(-5deg); }
:root[data-theme="snow"][data-una] .row.human .una-deck .att-img-link:nth-child(3) { transform: translateX(-26px) rotate(-10deg); }
:root[data-theme="snow"][data-una] .una-deck-toggle {
  flex: none; padding: 6px 14px; border: 1px solid var(--una-line); border-radius: 999px; background: transparent;
  font-family: var(--una-serif-cn); font-size: 13px; letter-spacing: 0.06em; color: var(--una-sub); cursor: pointer;
}
:root[data-theme="snow"][data-una] .una-deck-toggle b { font-family: var(--una-serif-lat); font-weight: 500; font-size: 15px; margin-left: 2px; color: var(--una-text); }
/* opened: back to one under another */
:root[data-theme="snow"][data-una] .una-deckwrap.open { flex-direction: column; align-items: flex-start; gap: 10px; }
:root[data-theme="snow"][data-una] .row.human .una-deckwrap.open { flex-direction: column; align-items: flex-end; }
:root[data-theme="snow"][data-una] .una-deckwrap.open .una-deck { width: auto; aspect-ratio: auto; max-height: none; display: flex; flex-direction: column; gap: 8px; }
:root[data-theme="snow"][data-una] .row.human .una-deckwrap.open .una-deck { align-items: flex-end; }
:root[data-theme="snow"][data-una] .una-deckwrap.open .att-img-link {
  position: static !important; width: min(64vw, 260px) !important; height: auto !important; aspect-ratio: var(--att-ratio, 1.04) !important; max-height: 340px !important;
  transform: none !important; filter: none !important; opacity: 1 !important; pointer-events: auto !important;
}

/* ---------- long-press menu ---------- */
:root[data-theme="snow"][data-una] .msg-menu-actions {
  background: var(--una-bg) !important; color: var(--una-text) !important; border: 1px solid var(--una-line) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16) !important; font-family: var(--una-serif-cn);
}
:root[data-theme="snow"][data-una] .msg-act { color: var(--una-text) !important; font-family: var(--una-serif-cn); letter-spacing: 0.04em; }
:root[data-theme="snow"][data-una] .msg-act svg { color: var(--una-sub); }
:root[data-theme="snow"][data-una] .msg-act[data-act="technical"] { color: var(--una-sub) !important; }
:root[data-theme="snow"][data-una] .msg-act.danger { color: #B4544A !important; }
:root[data-theme="snow"][data-una] .msg-act:hover, :root[data-theme="snow"][data-una] .msg-act:active { background: rgba(127, 136, 148, 0.12) !important; }
:root[data-theme="snow"][data-una] .msg-menu-scrim { background: rgba(15, 18, 22, 0.18); }
:root[data-theme="snow"][data-una] .msg-menu-clone {
  background: var(--una-bg) !important; color: var(--una-text) !important; border-radius: 12px !important; padding: 12px 14px !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16) !important;
}

/* ---------- full-screen panels on 雾: drop the night darkening layer ---------- */
:root[data-theme="snow"][data-una="brume"] :is(.safety-page, .character-page, .memory-observatory-page, .observatory-page)::before { display: none !important; }
:root[data-theme="snow"][data-una] :is(.safety-page, .character-page) * { text-shadow: none !important; }
:root[data-theme="snow"][data-una] .search-submit {
  white-space: nowrap; min-width: 56px; background: transparent !important; border: 1px solid var(--una-line) !important; color: var(--una-accent) !important;
  box-shadow: none !important; border-radius: 999px !important; font-family: var(--una-serif-cn);
}

/* ---------- 信笺: letters run the full width (no empty column on the right); her indent stays ---------- */
:root[data-theme="snow"][data-una][data-una-layout="letter"] .row { padding-right: 0 !important; }
:root[data-theme="snow"][data-una][data-una-layout="letter"] .bubble { max-width: 100% !important; width: 100%; box-sizing: border-box; }
