
/* ============================================================
 * DIY 调色台 (0901 小满) — 样式追加段
 * 全部 diy- 前缀,不碰既有规则;颜色尽量跟 var(--ref-*/--text) 走
 * ============================================================ */
:root{ --diy-wall:none; --diy-wall-dim:0.18; --diy-wall-blur:0px }

/* ── 自定义聊天壁纸:接管四处壁纸入口 ── */
:root.diy-wall-on .wall{
  background-image:var(--diy-wall)!important;
  filter:blur(var(--diy-wall-blur));
  transform:translateZ(0) scale(1.05);
  -webkit-transform:translateZ(0) scale(1.05);
}
:root.diy-wall-on .wall::after{ background:rgba(8,10,14,var(--diy-wall-dim))!important }
:root.diy-wall-on .profile-page,
:root.diy-wall-on .menu-page,
:root.diy-wall-on .login{ background-image:var(--diy-wall)!important }
:root.diy-wall-on .profile-page::before,
:root.diy-wall-on .menu-page::before{ background:rgba(8,10,14,var(--diy-wall-dim))!important }

/* ── 设置卡入口按钮 ── */
.diy-entry{
  display:flex; align-items:center; justify-content:center; gap:6px;
  width:100%; margin-top:10px; padding:10px 12px;
  border:1px solid var(--hairline, rgba(120,142,165,.24)); border-radius:12px;
  background:var(--card-bg, rgba(244,248,250,.42)); color:var(--text, #253447);
  font:600 14px/1 var(--font-cn, inherit); cursor:pointer;
  transition:transform 150ms var(--ease-soft, ease);
}
.diy-entry:active{ transform:scale(.98) }

/* ── 编辑器:全屏抽屉 ── */
.diy-editor{
  position:fixed; inset:0; z-index:99990;
  display:flex; flex-direction:column;
  background:var(--bg, #F7FAFC);
  color:var(--text, #253447);
  font:15px/1.5 var(--font-cn, system-ui, sans-serif);
  overscroll-behavior:contain;
}
.diy-editor.hidden{ display:none }
.diy-head{
  display:flex; align-items:center; justify-content:space-between; flex:none;
  padding:calc(14px + env(safe-area-inset-top)) 16px 10px; border-bottom:1px solid var(--hairline, rgba(120,142,165,.24));
  background:var(--header-bg, inherit);
}
.diy-head strong{ font:italic 20px/1 Georgia, var(--font-en, serif); color:var(--text) }
.diy-close{
  width:34px; height:34px; border:0; border-radius:50%;
  background:var(--card-bg, rgba(140,160,176,.12)); color:var(--text);
  font-size:20px; line-height:1; cursor:pointer;
}
.diy-editor-scroll{ overflow:auto; -webkit-overflow-scrolling:touch; padding:4px 14px calc(30px + env(safe-area-inset-bottom)) }

/* ── DIY 开关行 ── */
.diy-switch-row{ display:flex; align-items:center; gap:10px; margin:14px 0 2px }
.diy-switch-btn{
  position:relative; width:52px; height:30px; border:0; border-radius:15px; padding:0;
  background:var(--seg-track, rgba(140,160,176,.25)); cursor:pointer; flex:none;
  transition:background 200ms;
}
.diy-switch-btn::after{
  content:""; position:absolute; top:3px; left:3px; width:24px; height:24px;
  border-radius:50%; background:var(--seg-thumb, #fff);
  box-shadow:0 2px 8px rgba(40,60,78,.18);
  transition:left 200ms var(--ease-soft, ease);
}
.diy-switch-btn.on{ background:var(--ref-accent, var(--accent, #4C6378)) }
.diy-switch-btn.on::after{ left:25px }
.diy-switch-row small{ color:var(--text-soft, #5E7080); font-size:12px }

/* ── 方案栏 ── */
.diy-scheme-bar{ margin-top:10px }
.diy-name-row{ display:flex; gap:8px }
.diy-name-in{
  flex:1; min-width:0; padding:9px 12px;
  border:1px solid var(--field-line, rgba(151,169,181,.18)); border-radius:12px;
  background:var(--field-bg, rgba(247,250,252,.92)); color:var(--text); font-size:14px;
}
.diy-name-in::placeholder{ color:var(--text-faint, #8A99A8) }
.diy-mini{
  padding:8px 12px; border:1px solid var(--field-line, rgba(151,169,181,.18));
  border-radius:10px; background:var(--card-bg, rgba(140,160,176,.08));
  color:var(--text); font-size:13px; cursor:pointer; white-space:nowrap;
}
.diy-mini.primary{ background:var(--ref-accent, var(--accent, #4C6378)); color:var(--ref-on-plum, #fff); border-color:transparent }
.diy-scheme-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.diy-scheme-chip{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 6px 4px 10px; border-radius:14px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(140,160,176,.08));
}
.diy-scheme-chip.current{ border-color:var(--ref-accent, var(--accent, #4C6378)); box-shadow:0 0 0 1px var(--ref-accent, var(--accent, #4C6378)) }
.diy-scheme-name{ border:0; background:transparent; color:var(--text); font-size:13px; cursor:pointer; padding:0 }
.diy-scheme-del{ border:0; background:transparent; color:var(--text-faint, #8A99A8); font-size:15px; cursor:pointer; padding:0 2px }
.diy-act-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px }

/* ── 聊天背景区 ── */
.diy-wall-sec{
  margin-top:14px; padding:12px; border-radius:16px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(140,160,176,.06));
}
.diy-wall-sec .diy-group-cap{ margin:0 0 10px }

/* ── 仿真聊天预览 ── */
.diy-mock-sec{ margin-top:14px }
.diy-mock-sec .diy-group-cap{ margin:0 0 8px }
.diy-mock{
  border-radius:18px; overflow:hidden;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  min-height:240px;
  display:flex; flex-direction:column;
  background-image:linear-gradient(168deg, var(--ref-bg-1, #f2e8d5), var(--ref-bg-2, #e8ddc4) 58%, var(--ref-bg-3, #f2e8d5));
  box-shadow:var(--soft-shadow, 0 14px 34px rgba(86,104,118,.08));
}
.diy-mock-bar{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:14px 16px 6px;
}
.diy-mock-name{ font:italic 500 20px/1 var(--editorial-serif, Georgia, serif); cursor:pointer }
.diy-mock-time{ font-size:11px; cursor:pointer }
.diy-mock-body{
  flex:1; display:flex; flex-direction:column; gap:8px;
  padding:10px 14px 14px; cursor:pointer;
}
.diy-mock-bubble{
  max-width:82%; padding:9px 13px; font-size:13.5px; line-height:1.55;
  border-radius:16px; cursor:pointer;
  box-shadow:0 4px 14px rgba(var(--ref-shadow, 99,93,53), .10);
}
.diy-mock-bubble.ai{ align-self:flex-start; border-bottom-left-radius:5px }
.diy-mock-bubble.hu{ align-self:flex-end; border-bottom-right-radius:5px }
.diy-mock-inktip{ align-self:center; font-size:11px; opacity:.75; cursor:pointer; margin-top:2px }
.diy-mock-comp{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px calc(12px + env(safe-area-inset-bottom));
}
.diy-mock-field{
  flex:1; padding:9px 14px; border-radius:14px; font-size:12.5px;
  background:var(--ref-chip, #fff); color:var(--ref-ink, #4e4827); cursor:pointer;
  box-shadow:0 2px 8px rgba(var(--ref-shadow, 99,93,53), .08);
}
.diy-mock-send{
  width:40px; height:40px; flex:none; border-radius:50%;
  display:grid; place-items:center; font-size:16px; cursor:pointer;
  background:var(--ref-accent, #96884a); color:var(--accent-fg, #fff);
  box-shadow:0 6px 16px rgba(var(--ref-shadow, 99,93,53), .18);
}
.diy-mock-hint{ font-size:11px; color:var(--text-faint, #8A99A8); text-align:center; margin-top:6px }

/* 主槽网格微调:一行 4 格,稍大 */
.diy-grid.masters{ grid-template-columns:repeat(4, 1fr) }
.diy-slot.master .diy-swatch{ width:44px; height:44px; border-radius:13px }
.diy-slot.master span{ font-size:11.5px }

/* ── 高级折叠 ── */
.diy-adv-toggle{
  width:100%; margin-top:16px; padding:11px 12px;
  border:1px dashed var(--field-line, rgba(151,169,181,.25)); border-radius:12px;
  background:transparent; color:var(--text-soft, #5E7080);
  font-size:12.5px; cursor:pointer;
}
.diy-advanced{ margin-top:10px }
.diy-advanced.hidden{ display:none }
.diy-wall-row{ display:flex; align-items:center; gap:12px }
.diy-wall-thumb{
  width:64px; height:64px; flex:none; border-radius:12px;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  background-color:var(--ref-bg-2, #ddd); background-size:cover; background-position:center;
}
.diy-wall-thumb.empty{
  background-image:linear-gradient(45deg, rgba(128,128,128,.15) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.15) 75%);
  background-size:10px 10px;
}
.diy-wall-btns{ display:flex; flex-wrap:wrap; gap:8px }
.diy-range-row{ display:flex; align-items:center; gap:10px; margin-top:12px }
.diy-range-label{ font-size:12px; color:var(--text-soft, #5E7080); flex:none; width:44px }
.diy-range{ flex:1; min-width:0; accent-color:var(--ref-accent, var(--accent, #4C6378)) }
.diy-range-val{ font-size:11px; color:var(--text-faint, #8A99A8); flex:none; width:38px; text-align:right }

/* ── 色槽 ── */
.diy-group-cap{ margin:16px 0 8px; font-size:12px; letter-spacing:.08em; color:var(--text-faint, #8A99A8) }
.diy-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:10px }
@media (min-width:560px){ .diy-grid{ grid-template-columns:repeat(6, 1fr) } }
.diy-slot{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:8px 4px; border:1px solid var(--field-line, rgba(151,169,181,.18));
  border-radius:14px; background:var(--card-bg, rgba(140,160,176,.06)); cursor:pointer;
}
.diy-slot .diy-swatch{
  width:38px; height:38px; border-radius:11px; display:block;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  background-color:transparent;
  background-image:
    linear-gradient(45deg, rgba(128,128,128,.18) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.18) 75%),
    linear-gradient(45deg, rgba(128,128,128,.18) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.18) 75%);
  background-size:10px 10px; background-position:0 0, 5px 5px;
}
.diy-slot .diy-swatch.empty{ background-image:none; border-style:dashed }
.diy-slot span{ font-size:11px; color:var(--text-soft, #5E7080); line-height:1.2; text-align:center }
.diy-slot.filled{ border-color:var(--ref-accent, var(--accent, #4C6378)) }
.diy-slot.low-c span::after{ content:" ⚠"; color:#c0392b }
.diy-slot.flash{ animation:diyFlash .42s var(--ease-soft, ease) }
@keyframes diyFlash{ 0%{ transform:scale(1) } 40%{ transform:scale(1.08) } 100%{ transform:scale(1) } }

/* ── 调色盘 ── */
.diy-palette{
  margin-top:14px; padding:12px; border-radius:16px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(244,248,250,.6));
}
.diy-palette.hidden{ display:none }
.diy-palette-cap{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px }
.diy-palette-cap b{ font-size:14px }
.diy-pip-row{ display:flex; gap:8px; margin-bottom:10px }
.diy-pal-grid{ display:grid; grid-template-columns:repeat(8, 1fr); gap:8px }
@media (max-width:420px){ .diy-pal-grid{ grid-template-columns:repeat(6, 1fr) } }
.diy-pal-c{
  aspect-ratio:1; border-radius:9px; border:1px solid rgba(120,142,165,.28);
  cursor:pointer; padding:0; min-width:0;
}
.diy-pal-c:active{ transform:scale(.92) }
.diy-custom-row{ display:flex; gap:8px; margin-top:10px }
.diy-hex-in{
  flex:1; min-width:0; padding:8px 12px; border-radius:10px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--field-bg, rgba(247,250,252,.92)); color:var(--text);
  font:13px/1.2 ui-monospace, monospace;
}
.diy-contrast{ margin-top:8px; font-size:12px; color:var(--text-soft, #5E7080) }
.diy-contrast.bad{ color:#c0392b }

/* ── 自动取色 ── */
.diy-auto-row{ display:flex; gap:10px; margin-top:8px }
.diy-auto-c{ width:44px; height:44px; border-radius:12px; border:1px solid rgba(120,142,165,.3); cursor:pointer; padding:0 }
.diy-auto-c:active{ transform:scale(.92) }

/* ── 吸管 ── */
.diy-picker-mask{
  position:fixed; inset:0; z-index:99995;
  background:rgba(15,18,24,.92);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));
}
.diy-picker-hint{ color:#eee; font-size:13px; text-align:center }
.diy-picker-imgwrap{ position:relative; max-width:94vw; max-height:74vh; }
.diy-picker-img{
  display:block; max-width:94vw; max-height:74vh; border-radius:8px;
  touch-action:none; user-select:none; -webkit-user-drag:none;
}
.diy-magnifier{
  position:absolute; width:92px; height:92px; margin:-46px 0 0 -46px;
  border:3px solid #fff; border-radius:50%; overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,.5); pointer-events:none;
  transform:translateY(-120%);
}
.diy-magnifier canvas{ width:100%; height:100%; display:block; image-rendering:pixelated }
.diy-mag-val{
  position:absolute; left:50%; bottom:-30px; transform:translateX(-50%);
  background:rgba(0,0,0,.7); color:#fff; padding:2px 8px; border-radius:8px;
  font:12px/1.6 ui-monospace, monospace; white-space:nowrap;
}

/* ── 聊天预览(settings 卡里) ── */
.diy-preview{
  display:flex; flex-direction:column; gap:6px; margin-top:12px; padding:12px;
  border-radius:14px; border:1px dashed var(--field-line, rgba(151,169,181,.25));
  background:linear-gradient(168deg, var(--ref-bg-1, #eee), var(--ref-bg-2, #ddd) 58%, var(--ref-bg-3, #eee));
}
.diy-pv-ai, .diy-pv-human{
  max-width:86%; padding:8px 12px; font-size:13px; line-height:1.5;
  border-radius:16px; color:var(--ref-ink, var(--text, #253447));
}
.diy-pv-ai{ align-self:flex-start; background:var(--ref-bubble-ai, #ECEEF3) }
.diy-pv-human{ align-self:flex-end; background:var(--ref-bubble-human, #DFE5EE) }

/* ── toast ── */
.diy-toast{
  position:fixed; left:50%; bottom:calc(84px + env(safe-area-inset-bottom));
  transform:translate(-50%, 16px);
  background:rgba(28,32,40,.92); color:#fff;
  padding:9px 16px; border-radius:20px; font-size:13px;
  opacity:0; pointer-events:none; z-index:99999;
  transition:opacity 220ms, transform 220ms var(--ease-soft, ease);
  max-width:80vw; text-align:center;
}
.diy-toast.show{ opacity:1; transform:translate(-50%, 0) }

/* ── 0902 effort float ── */

/* ============================================================
 * DIY 调色台 (0901 小满) — 样式追加段
 * 全部 diy- 前缀,不碰既有规则;颜色尽量跟 var(--ref-*/--text) 走
 * ============================================================ */
:root{ --diy-wall:none; --diy-wall-dim:0.18; --diy-wall-blur:0px }

/* ── 自定义聊天壁纸:接管四处壁纸入口 ── */
:root.diy-wall-on .wall{
  background-image:var(--diy-wall)!important;
  filter:blur(var(--diy-wall-blur));
  transform:translateZ(0) scale(1.05);
  -webkit-transform:translateZ(0) scale(1.05);
}
:root.diy-wall-on .wall::after{ background:rgba(8,10,14,var(--diy-wall-dim))!important }
:root.diy-wall-on .profile-page,
:root.diy-wall-on .menu-page,
:root.diy-wall-on .login{ background-image:var(--diy-wall)!important }
:root.diy-wall-on .profile-page::before,
:root.diy-wall-on .menu-page::before{ background:rgba(8,10,14,var(--diy-wall-dim))!important }

/* ── 设置卡入口按钮 ── */
.diy-entry{
  display:flex; align-items:center; justify-content:center; gap:6px;
  width:100%; margin-top:10px; padding:10px 12px;
  border:1px solid var(--hairline, rgba(120,142,165,.24)); border-radius:12px;
  background:var(--card-bg, rgba(244,248,250,.42)); color:var(--text, #253447);
  font:600 14px/1 var(--font-cn, inherit); cursor:pointer;
  transition:transform 150ms var(--ease-soft, ease);
}
.diy-entry:active{ transform:scale(.98) }

/* ── 编辑器:全屏抽屉 ── */
.diy-editor{
  position:fixed; inset:0; z-index:99990;
  display:flex; flex-direction:column;
  background:var(--bg, #F7FAFC);
  color:var(--text, #253447);
  font:15px/1.5 var(--font-cn, system-ui, sans-serif);
  overscroll-behavior:contain;
}
.diy-editor.hidden{ display:none }
.diy-head{
  display:flex; align-items:center; justify-content:space-between; flex:none;
  padding:calc(14px + env(safe-area-inset-top)) 16px 10px; border-bottom:1px solid var(--hairline, rgba(120,142,165,.24));
  background:var(--header-bg, inherit);
}
.diy-head strong{ font:italic 20px/1 Georgia, var(--font-en, serif); color:var(--text) }
.diy-close{
  width:34px; height:34px; border:0; border-radius:50%;
  background:var(--card-bg, rgba(140,160,176,.12)); color:var(--text);
  font-size:20px; line-height:1; cursor:pointer;
}
.diy-editor-scroll{ overflow:auto; -webkit-overflow-scrolling:touch; padding:4px 14px calc(30px + env(safe-area-inset-bottom)) }

/* ── DIY 开关行 ── */
.diy-switch-row{ display:flex; align-items:center; gap:10px; margin:14px 0 2px }
.diy-switch-btn{
  position:relative; width:52px; height:30px; border:0; border-radius:15px; padding:0;
  background:var(--seg-track, rgba(140,160,176,.25)); cursor:pointer; flex:none;
  transition:background 200ms;
}
.diy-switch-btn::after{
  content:""; position:absolute; top:3px; left:3px; width:24px; height:24px;
  border-radius:50%; background:var(--seg-thumb, #fff);
  box-shadow:0 2px 8px rgba(40,60,78,.18);
  transition:left 200ms var(--ease-soft, ease);
}
.diy-switch-btn.on{ background:var(--ref-accent, var(--accent, #4C6378)) }
.diy-switch-btn.on::after{ left:25px }
.diy-switch-row small{ color:var(--text-soft, #5E7080); font-size:12px }

/* ── 方案栏 ── */
.diy-scheme-bar{ margin-top:10px }
.diy-name-row{ display:flex; gap:8px }
.diy-name-in{
  flex:1; min-width:0; padding:9px 12px;
  border:1px solid var(--field-line, rgba(151,169,181,.18)); border-radius:12px;
  background:var(--field-bg, rgba(247,250,252,.92)); color:var(--text); font-size:14px;
}
.diy-name-in::placeholder{ color:var(--text-faint, #8A99A8) }
.diy-mini{
  padding:8px 12px; border:1px solid var(--field-line, rgba(151,169,181,.18));
  border-radius:10px; background:var(--card-bg, rgba(140,160,176,.08));
  color:var(--text); font-size:13px; cursor:pointer; white-space:nowrap;
}
.diy-mini.primary{ background:var(--ref-accent, var(--accent, #4C6378)); color:var(--ref-on-plum, #fff); border-color:transparent }
.diy-scheme-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.diy-scheme-chip{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 6px 4px 10px; border-radius:14px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(140,160,176,.08));
}
.diy-scheme-chip.current{ border-color:var(--ref-accent, var(--accent, #4C6378)); box-shadow:0 0 0 1px var(--ref-accent, var(--accent, #4C6378)) }
.diy-scheme-name{ border:0; background:transparent; color:var(--text); font-size:13px; cursor:pointer; padding:0 }
.diy-scheme-del{ border:0; background:transparent; color:var(--text-faint, #8A99A8); font-size:15px; cursor:pointer; padding:0 2px }
.diy-act-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px }

/* ── 聊天背景区 ── */
.diy-wall-sec{
  margin-top:14px; padding:12px; border-radius:16px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(140,160,176,.06));
}
.diy-wall-sec .diy-group-cap{ margin:0 0 10px }

/* ── 仿真聊天预览 ── */
.diy-mock-sec{ margin-top:14px }
.diy-mock-sec .diy-group-cap{ margin:0 0 8px }
.diy-mock{
  border-radius:18px; overflow:hidden;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  min-height:240px;
  display:flex; flex-direction:column;
  background-image:linear-gradient(168deg, var(--ref-bg-1, #f2e8d5), var(--ref-bg-2, #e8ddc4) 58%, var(--ref-bg-3, #f2e8d5));
  box-shadow:var(--soft-shadow, 0 14px 34px rgba(86,104,118,.08));
}
.diy-mock-bar{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:14px 16px 6px;
}
.diy-mock-name{ font:italic 500 20px/1 var(--editorial-serif, Georgia, serif); cursor:pointer }
.diy-mock-time{ font-size:11px; cursor:pointer }
.diy-mock-body{
  flex:1; display:flex; flex-direction:column; gap:8px;
  padding:10px 14px 14px; cursor:pointer;
}
.diy-mock-bubble{
  max-width:82%; padding:9px 13px; font-size:13.5px; line-height:1.55;
  border-radius:16px; cursor:pointer;
  box-shadow:0 4px 14px rgba(var(--ref-shadow, 99,93,53), .10);
}
.diy-mock-bubble.ai{ align-self:flex-start; border-bottom-left-radius:5px }
.diy-mock-bubble.hu{ align-self:flex-end; border-bottom-right-radius:5px }
.diy-mock-inktip{ align-self:center; font-size:11px; opacity:.75; cursor:pointer; margin-top:2px }
.diy-mock-comp{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px calc(12px + env(safe-area-inset-bottom));
}
.diy-mock-field{
  flex:1; padding:9px 14px; border-radius:14px; font-size:12.5px;
  background:var(--ref-chip, #fff); color:var(--ref-ink, #4e4827); cursor:pointer;
  box-shadow:0 2px 8px rgba(var(--ref-shadow, 99,93,53), .08);
}
.diy-mock-send{
  width:40px; height:40px; flex:none; border-radius:50%;
  display:grid; place-items:center; font-size:16px; cursor:pointer;
  background:var(--ref-accent, #96884a); color:var(--accent-fg, #fff);
  box-shadow:0 6px 16px rgba(var(--ref-shadow, 99,93,53), .18);
}
.diy-mock-hint{ font-size:11px; color:var(--text-faint, #8A99A8); text-align:center; margin-top:6px }

/* 主槽网格微调:一行 4 格,稍大 */
.diy-grid.masters{ grid-template-columns:repeat(4, 1fr) }
.diy-slot.master .diy-swatch{ width:44px; height:44px; border-radius:13px }
.diy-slot.master span{ font-size:11.5px }

/* ── 高级折叠 ── */
.diy-adv-toggle{
  width:100%; margin-top:16px; padding:11px 12px;
  border:1px dashed var(--field-line, rgba(151,169,181,.25)); border-radius:12px;
  background:transparent; color:var(--text-soft, #5E7080);
  font-size:12.5px; cursor:pointer;
}
.diy-advanced{ margin-top:10px }
.diy-advanced.hidden{ display:none }
.diy-wall-row{ display:flex; align-items:center; gap:12px }
.diy-wall-thumb{
  width:64px; height:64px; flex:none; border-radius:12px;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  background-color:var(--ref-bg-2, #ddd); background-size:cover; background-position:center;
}
.diy-wall-thumb.empty{
  background-image:linear-gradient(45deg, rgba(128,128,128,.15) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.15) 75%);
  background-size:10px 10px;
}
.diy-wall-btns{ display:flex; flex-wrap:wrap; gap:8px }
.diy-range-row{ display:flex; align-items:center; gap:10px; margin-top:12px }
.diy-range-label{ font-size:12px; color:var(--text-soft, #5E7080); flex:none; width:44px }
.diy-range{ flex:1; min-width:0; accent-color:var(--ref-accent, var(--accent, #4C6378)) }
.diy-range-val{ font-size:11px; color:var(--text-faint, #8A99A8); flex:none; width:38px; text-align:right }

/* ── 色槽 ── */
.diy-group-cap{ margin:16px 0 8px; font-size:12px; letter-spacing:.08em; color:var(--text-faint, #8A99A8) }
.diy-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:10px }
@media (min-width:560px){ .diy-grid{ grid-template-columns:repeat(6, 1fr) } }
.diy-slot{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:8px 4px; border:1px solid var(--field-line, rgba(151,169,181,.18));
  border-radius:14px; background:var(--card-bg, rgba(140,160,176,.06)); cursor:pointer;
}
.diy-slot .diy-swatch{
  width:38px; height:38px; border-radius:11px; display:block;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  background-color:transparent;
  background-image:
    linear-gradient(45deg, rgba(128,128,128,.18) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.18) 75%),
    linear-gradient(45deg, rgba(128,128,128,.18) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.18) 75%);
  background-size:10px 10px; background-position:0 0, 5px 5px;
}
.diy-slot .diy-swatch.empty{ background-image:none; border-style:dashed }
.diy-slot span{ font-size:11px; color:var(--text-soft, #5E7080); line-height:1.2; text-align:center }
.diy-slot.filled{ border-color:var(--ref-accent, var(--accent, #4C6378)) }
.diy-slot.low-c span::after{ content:" ⚠"; color:#c0392b }
.diy-slot.flash{ animation:diyFlash .42s var(--ease-soft, ease) }
@keyframes diyFlash{ 0%{ transform:scale(1) } 40%{ transform:scale(1.08) } 100%{ transform:scale(1) } }

/* ── 调色盘 ── */
.diy-palette{
  margin-top:14px; padding:12px; border-radius:16px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(244,248,250,.6));
}
.diy-palette.hidden{ display:none }
.diy-palette-cap{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px }
.diy-palette-cap b{ font-size:14px }
.diy-pip-row{ display:flex; gap:8px; margin-bottom:10px }
.diy-pal-grid{ display:grid; grid-template-columns:repeat(8, 1fr); gap:8px }
@media (max-width:420px){ .diy-pal-grid{ grid-template-columns:repeat(6, 1fr) } }
.diy-pal-c{
  aspect-ratio:1; border-radius:9px; border:1px solid rgba(120,142,165,.28);
  cursor:pointer; padding:0; min-width:0;
}
.diy-pal-c:active{ transform:scale(.92) }
.diy-custom-row{ display:flex; gap:8px; margin-top:10px }
.diy-hex-in{
  flex:1; min-width:0; padding:8px 12px; border-radius:10px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--field-bg, rgba(247,250,252,.92)); color:var(--text);
  font:13px/1.2 ui-monospace, monospace;
}
.diy-contrast{ margin-top:8px; font-size:12px; color:var(--text-soft, #5E7080) }
.diy-contrast.bad{ color:#c0392b }

/* ── 自动取色 ── */
.diy-auto-row{ display:flex; gap:10px; margin-top:8px }
.diy-auto-c{ width:44px; height:44px; border-radius:12px; border:1px solid rgba(120,142,165,.3); cursor:pointer; padding:0 }
.diy-auto-c:active{ transform:scale(.92) }

/* ── 吸管 ── */
.diy-picker-mask{
  position:fixed; inset:0; z-index:99995;
  background:rgba(15,18,24,.92);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));
}
.diy-picker-hint{ color:#eee; font-size:13px; text-align:center }
.diy-picker-imgwrap{ position:relative; max-width:94vw; max-height:74vh; }
.diy-picker-img{
  display:block; max-width:94vw; max-height:74vh; border-radius:8px;
  touch-action:none; user-select:none; -webkit-user-drag:none;
}
.diy-magnifier{
  position:absolute; width:92px; height:92px; margin:-46px 0 0 -46px;
  border:3px solid #fff; border-radius:50%; overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,.5); pointer-events:none;
  transform:translateY(-120%);
}
.diy-magnifier canvas{ width:100%; height:100%; display:block; image-rendering:pixelated }
.diy-mag-val{
  position:absolute; left:50%; bottom:-30px; transform:translateX(-50%);
  background:rgba(0,0,0,.7); color:#fff; padding:2px 8px; border-radius:8px;
  font:12px/1.6 ui-monospace, monospace; white-space:nowrap;
}

/* ── 聊天预览(settings 卡里) ── */
.diy-preview{
  display:flex; flex-direction:column; gap:6px; margin-top:12px; padding:12px;
  border-radius:14px; border:1px dashed var(--field-line, rgba(151,169,181,.25));
  background:linear-gradient(168deg, var(--ref-bg-1, #eee), var(--ref-bg-2, #ddd) 58%, var(--ref-bg-3, #eee));
}
.diy-pv-ai, .diy-pv-human{
  max-width:86%; padding:8px 12px; font-size:13px; line-height:1.5;
  border-radius:16px; color:var(--ref-ink, var(--text, #253447));
}
.diy-pv-ai{ align-self:flex-start; background:var(--ref-bubble-ai, #ECEEF3) }
.diy-pv-human{ align-self:flex-end; background:var(--ref-bubble-human, #DFE5EE) }

/* ── toast ── */
.diy-toast{
  position:fixed; left:50%; bottom:calc(84px + env(safe-area-inset-bottom));
  transform:translate(-50%, 16px);
  background:rgba(28,32,40,.92); color:#fff;
  padding:9px 16px; border-radius:20px; font-size:13px;
  opacity:0; pointer-events:none; z-index:99999;
  transition:opacity 220ms, transform 220ms var(--ease-soft, ease);
  max-width:80vw; text-align:center;
}
.diy-toast.show{ opacity:1; transform:translate(-50%, 0) }

/* ── 0902 思维档位浮按钮 ── */

/* ============================================================
 * DIY 调色台 (0901 小满) — 样式追加段
 * 全部 diy- 前缀,不碰既有规则;颜色尽量跟 var(--ref-*/--text) 走
 * ============================================================ */
:root{ --diy-wall:none; --diy-wall-dim:0.18; --diy-wall-blur:0px }

/* ── 自定义聊天壁纸:接管四处壁纸入口 ── */
:root.diy-wall-on .wall{
  background-image:var(--diy-wall)!important;
  filter:blur(var(--diy-wall-blur));
  transform:translateZ(0) scale(1.05);
  -webkit-transform:translateZ(0) scale(1.05);
}
:root.diy-wall-on .wall::after{ background:rgba(8,10,14,var(--diy-wall-dim))!important }
:root.diy-wall-on .profile-page,
:root.diy-wall-on .menu-page,
:root.diy-wall-on .login{ background-image:var(--diy-wall)!important }
:root.diy-wall-on .profile-page::before,
:root.diy-wall-on .menu-page::before{ background:rgba(8,10,14,var(--diy-wall-dim))!important }

/* ── 设置卡入口按钮 ── */
.diy-entry{
  display:flex; align-items:center; justify-content:center; gap:6px;
  width:100%; margin-top:10px; padding:10px 12px;
  border:1px solid var(--hairline, rgba(120,142,165,.24)); border-radius:12px;
  background:var(--card-bg, rgba(244,248,250,.42)); color:var(--text, #253447);
  font:600 14px/1 var(--font-cn, inherit); cursor:pointer;
  transition:transform 150ms var(--ease-soft, ease);
}
.diy-entry:active{ transform:scale(.98) }

/* ── 编辑器:全屏抽屉 ── */
.diy-editor{
  position:fixed; inset:0; z-index:99990;
  display:flex; flex-direction:column;
  background:var(--bg, #F7FAFC);
  color:var(--text, #253447);
  font:15px/1.5 var(--font-cn, system-ui, sans-serif);
  overscroll-behavior:contain;
}
.diy-editor.hidden{ display:none }
.diy-head{
  display:flex; align-items:center; justify-content:space-between; flex:none;
  padding:calc(14px + env(safe-area-inset-top)) 16px 10px; border-bottom:1px solid var(--hairline, rgba(120,142,165,.24));
  background:var(--header-bg, inherit);
}
.diy-head strong{ font:italic 20px/1 Georgia, var(--font-en, serif); color:var(--text) }
.diy-close{
  width:34px; height:34px; border:0; border-radius:50%;
  background:var(--card-bg, rgba(140,160,176,.12)); color:var(--text);
  font-size:20px; line-height:1; cursor:pointer;
}
.diy-editor-scroll{ overflow:auto; -webkit-overflow-scrolling:touch; padding:4px 14px calc(30px + env(safe-area-inset-bottom)) }

/* ── DIY 开关行 ── */
.diy-switch-row{ display:flex; align-items:center; gap:10px; margin:14px 0 2px }
.diy-switch-btn{
  position:relative; width:52px; height:30px; border:0; border-radius:15px; padding:0;
  background:var(--seg-track, rgba(140,160,176,.25)); cursor:pointer; flex:none;
  transition:background 200ms;
}
.diy-switch-btn::after{
  content:""; position:absolute; top:3px; left:3px; width:24px; height:24px;
  border-radius:50%; background:var(--seg-thumb, #fff);
  box-shadow:0 2px 8px rgba(40,60,78,.18);
  transition:left 200ms var(--ease-soft, ease);
}
.diy-switch-btn.on{ background:var(--ref-accent, var(--accent, #4C6378)) }
.diy-switch-btn.on::after{ left:25px }
.diy-switch-row small{ color:var(--text-soft, #5E7080); font-size:12px }

/* ── 方案栏 ── */
.diy-scheme-bar{ margin-top:10px }
.diy-name-row{ display:flex; gap:8px }
.diy-name-in{
  flex:1; min-width:0; padding:9px 12px;
  border:1px solid var(--field-line, rgba(151,169,181,.18)); border-radius:12px;
  background:var(--field-bg, rgba(247,250,252,.92)); color:var(--text); font-size:14px;
}
.diy-name-in::placeholder{ color:var(--text-faint, #8A99A8) }
.diy-mini{
  padding:8px 12px; border:1px solid var(--field-line, rgba(151,169,181,.18));
  border-radius:10px; background:var(--card-bg, rgba(140,160,176,.08));
  color:var(--text); font-size:13px; cursor:pointer; white-space:nowrap;
}
.diy-mini.primary{ background:var(--ref-accent, var(--accent, #4C6378)); color:var(--ref-on-plum, #fff); border-color:transparent }
.diy-scheme-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px }
.diy-scheme-chip{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 6px 4px 10px; border-radius:14px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(140,160,176,.08));
}
.diy-scheme-chip.current{ border-color:var(--ref-accent, var(--accent, #4C6378)); box-shadow:0 0 0 1px var(--ref-accent, var(--accent, #4C6378)) }
.diy-scheme-name{ border:0; background:transparent; color:var(--text); font-size:13px; cursor:pointer; padding:0 }
.diy-scheme-del{ border:0; background:transparent; color:var(--text-faint, #8A99A8); font-size:15px; cursor:pointer; padding:0 2px }
.diy-act-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px }

/* ── 聊天背景区 ── */
.diy-wall-sec{
  margin-top:14px; padding:12px; border-radius:16px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(140,160,176,.06));
}
.diy-wall-sec .diy-group-cap{ margin:0 0 10px }

/* ── 仿真聊天预览 ── */
.diy-mock-sec{ margin-top:14px }
.diy-mock-sec .diy-group-cap{ margin:0 0 8px }
.diy-mock{
  border-radius:18px; overflow:hidden;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  min-height:240px;
  display:flex; flex-direction:column;
  background-image:linear-gradient(168deg, var(--ref-bg-1, #f2e8d5), var(--ref-bg-2, #e8ddc4) 58%, var(--ref-bg-3, #f2e8d5));
  box-shadow:var(--soft-shadow, 0 14px 34px rgba(86,104,118,.08));
}
.diy-mock-bar{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:14px 16px 6px;
}
.diy-mock-name{ font:italic 500 20px/1 var(--editorial-serif, Georgia, serif); cursor:pointer }
.diy-mock-time{ font-size:11px; cursor:pointer }
.diy-mock-body{
  flex:1; display:flex; flex-direction:column; gap:8px;
  padding:10px 14px 14px; cursor:pointer;
}
.diy-mock-bubble{
  max-width:82%; padding:9px 13px; font-size:13.5px; line-height:1.55;
  border-radius:16px; cursor:pointer;
  box-shadow:0 4px 14px rgba(var(--ref-shadow, 99,93,53), .10);
}
.diy-mock-bubble.ai{ align-self:flex-start; border-bottom-left-radius:5px }
.diy-mock-bubble.hu{ align-self:flex-end; border-bottom-right-radius:5px }
.diy-mock-inktip{ align-self:center; font-size:11px; opacity:.75; cursor:pointer; margin-top:2px }
.diy-mock-comp{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px calc(12px + env(safe-area-inset-bottom));
}
.diy-mock-field{
  flex:1; padding:9px 14px; border-radius:14px; font-size:12.5px;
  background:var(--ref-chip, #fff); color:var(--ref-ink, #4e4827); cursor:pointer;
  box-shadow:0 2px 8px rgba(var(--ref-shadow, 99,93,53), .08);
}
.diy-mock-send{
  width:40px; height:40px; flex:none; border-radius:50%;
  display:grid; place-items:center; font-size:16px; cursor:pointer;
  background:var(--ref-accent, #96884a); color:var(--accent-fg, #fff);
  box-shadow:0 6px 16px rgba(var(--ref-shadow, 99,93,53), .18);
}
.diy-mock-hint{ font-size:11px; color:var(--text-faint, #8A99A8); text-align:center; margin-top:6px }

/* 主槽网格微调:一行 4 格,稍大 */
.diy-grid.masters{ grid-template-columns:repeat(4, 1fr) }
.diy-slot.master .diy-swatch{ width:44px; height:44px; border-radius:13px }
.diy-slot.master span{ font-size:11.5px }

/* ── 高级折叠 ── */
.diy-adv-toggle{
  width:100%; margin-top:16px; padding:11px 12px;
  border:1px dashed var(--field-line, rgba(151,169,181,.25)); border-radius:12px;
  background:transparent; color:var(--text-soft, #5E7080);
  font-size:12.5px; cursor:pointer;
}
.diy-advanced{ margin-top:10px }
.diy-advanced.hidden{ display:none }
.diy-wall-row{ display:flex; align-items:center; gap:12px }
.diy-wall-thumb{
  width:64px; height:64px; flex:none; border-radius:12px;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  background-color:var(--ref-bg-2, #ddd); background-size:cover; background-position:center;
}
.diy-wall-thumb.empty{
  background-image:linear-gradient(45deg, rgba(128,128,128,.15) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.15) 75%);
  background-size:10px 10px;
}
.diy-wall-btns{ display:flex; flex-wrap:wrap; gap:8px }
.diy-range-row{ display:flex; align-items:center; gap:10px; margin-top:12px }
.diy-range-label{ font-size:12px; color:var(--text-soft, #5E7080); flex:none; width:44px }
.diy-range{ flex:1; min-width:0; accent-color:var(--ref-accent, var(--accent, #4C6378)) }
.diy-range-val{ font-size:11px; color:var(--text-faint, #8A99A8); flex:none; width:38px; text-align:right }

/* ── 色槽 ── */
.diy-group-cap{ margin:16px 0 8px; font-size:12px; letter-spacing:.08em; color:var(--text-faint, #8A99A8) }
.diy-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:10px }
@media (min-width:560px){ .diy-grid{ grid-template-columns:repeat(6, 1fr) } }
.diy-slot{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:8px 4px; border:1px solid var(--field-line, rgba(151,169,181,.18));
  border-radius:14px; background:var(--card-bg, rgba(140,160,176,.06)); cursor:pointer;
}
.diy-slot .diy-swatch{
  width:38px; height:38px; border-radius:11px; display:block;
  border:1px solid var(--field-line, rgba(120,142,165,.35));
  background-color:transparent;
  background-image:
    linear-gradient(45deg, rgba(128,128,128,.18) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.18) 75%),
    linear-gradient(45deg, rgba(128,128,128,.18) 25%, transparent 25%, transparent 75%, rgba(128,128,128,.18) 75%);
  background-size:10px 10px; background-position:0 0, 5px 5px;
}
.diy-slot .diy-swatch.empty{ background-image:none; border-style:dashed }
.diy-slot span{ font-size:11px; color:var(--text-soft, #5E7080); line-height:1.2; text-align:center }
.diy-slot.filled{ border-color:var(--ref-accent, var(--accent, #4C6378)) }
.diy-slot.low-c span::after{ content:" ⚠"; color:#c0392b }
.diy-slot.flash{ animation:diyFlash .42s var(--ease-soft, ease) }
@keyframes diyFlash{ 0%{ transform:scale(1) } 40%{ transform:scale(1.08) } 100%{ transform:scale(1) } }

/* ── 调色盘 ── */
.diy-palette{
  margin-top:14px; padding:12px; border-radius:16px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--card-bg, rgba(244,248,250,.6));
}
.diy-palette.hidden{ display:none }
.diy-palette-cap{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px }
.diy-palette-cap b{ font-size:14px }
.diy-pip-row{ display:flex; gap:8px; margin-bottom:10px }
.diy-pal-grid{ display:grid; grid-template-columns:repeat(8, 1fr); gap:8px }
@media (max-width:420px){ .diy-pal-grid{ grid-template-columns:repeat(6, 1fr) } }
.diy-pal-c{
  aspect-ratio:1; border-radius:9px; border:1px solid rgba(120,142,165,.28);
  cursor:pointer; padding:0; min-width:0;
}
.diy-pal-c:active{ transform:scale(.92) }
.diy-custom-row{ display:flex; gap:8px; margin-top:10px }
.diy-hex-in{
  flex:1; min-width:0; padding:8px 12px; border-radius:10px;
  border:1px solid var(--field-line, rgba(151,169,181,.18));
  background:var(--field-bg, rgba(247,250,252,.92)); color:var(--text);
  font:13px/1.2 ui-monospace, monospace;
}
.diy-contrast{ margin-top:8px; font-size:12px; color:var(--text-soft, #5E7080) }
.diy-contrast.bad{ color:#c0392b }

/* ── 自动取色 ── */
.diy-auto-row{ display:flex; gap:10px; margin-top:8px }
.diy-auto-c{ width:44px; height:44px; border-radius:12px; border:1px solid rgba(120,142,165,.3); cursor:pointer; padding:0 }
.diy-auto-c:active{ transform:scale(.92) }

/* ── 吸管 ── */
.diy-picker-mask{
  position:fixed; inset:0; z-index:99995;
  background:rgba(15,18,24,.92);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));
}
.diy-picker-hint{ color:#eee; font-size:13px; text-align:center }
.diy-picker-imgwrap{ position:relative; max-width:94vw; max-height:74vh; }
.diy-picker-img{
  display:block; max-width:94vw; max-height:74vh; border-radius:8px;
  touch-action:none; user-select:none; -webkit-user-drag:none;
}
.diy-magnifier{
  position:absolute; width:92px; height:92px; margin:-46px 0 0 -46px;
  border:3px solid #fff; border-radius:50%; overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,.5); pointer-events:none;
  transform:translateY(-120%);
}
.diy-magnifier canvas{ width:100%; height:100%; display:block; image-rendering:pixelated }
.diy-mag-val{
  position:absolute; left:50%; bottom:-30px; transform:translateX(-50%);
  background:rgba(0,0,0,.7); color:#fff; padding:2px 8px; border-radius:8px;
  font:12px/1.6 ui-monospace, monospace; white-space:nowrap;
}

/* ── 聊天预览(settings 卡里) ── */
.diy-preview{
  display:flex; flex-direction:column; gap:6px; margin-top:12px; padding:12px;
  border-radius:14px; border:1px dashed var(--field-line, rgba(151,169,181,.25));
  background:linear-gradient(168deg, var(--ref-bg-1, #eee), var(--ref-bg-2, #ddd) 58%, var(--ref-bg-3, #eee));
}
.diy-pv-ai, .diy-pv-human{
  max-width:86%; padding:8px 12px; font-size:13px; line-height:1.5;
  border-radius:16px; color:var(--ref-ink, var(--text, #253447));
}
.diy-pv-ai{ align-self:flex-start; background:var(--ref-bubble-ai, #ECEEF3) }
.diy-pv-human{ align-self:flex-end; background:var(--ref-bubble-human, #DFE5EE) }

/* ── toast ── */
.diy-toast{
  position:fixed; left:50%; bottom:calc(84px + env(safe-area-inset-bottom));
  transform:translate(-50%, 16px);
  background:rgba(28,32,40,.92); color:#fff;
  padding:9px 16px; border-radius:20px; font-size:13px;
  opacity:0; pointer-events:none; z-index:99999;
  transition:opacity 220ms, transform 220ms var(--ease-soft, ease);
  max-width:80vw; text-align:center;
}
.diy-toast.show{ opacity:1; transform:translate(-50%, 0) }

/* ── 0902 思维档位浮按钮 ── */


/* Shared whole-theme color bindings, generated from the hash-locked app.css. */
html.ds-on.ui-booting{background:var(--ds-bg)!important}
:root.ds-on{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important}
:root.ds-on[data-theme="harbor"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important}
:root.ds-on .peerpill .name{text-shadow:0 1px 18px color-mix(in srgb,var(--ds-line) 30%,transparent)!important}
:root.ds-on .app[data-conn="reconnecting"] .peerpill .status{color:var(--ds-soft)!important}
:root.ds-on .peerpill .status.typing{color:var(--ds-soft)!important;text-shadow:0 0 16px color-mix(in srgb,var(--ds-line) 24%,transparent)!important}
:root.ds-on .session-pop{box-shadow:0 18px 50px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on .term-user{color:var(--ds-ink)!important}
:root.ds-on .term-assistant{color:var(--ds-ink)!important}
:root.ds-on .term-tool{color:var(--ds-ink)!important;border-left:2px solid color-mix(in srgb,var(--ds-line) 45%,transparent)!important}
:root.ds-on .term-muted{color:color-mix(in srgb,var(--ds-soft) 48%,transparent)!important}
:root.ds-on .term-cmd{color:var(--ds-ink)!important}
:root.ds-on .term-err{color:var(--ds-ink)!important}
:root.ds-on .row.ai::before{box-shadow:0 12px 24px color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on .row.ai .bubble{box-shadow:0 10px 28px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .row.human .bubble{box-shadow:0 10px 28px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .att-img-link{background:color-mix(in srgb,var(--ds-card) 10%,transparent)!important}
:root.ds-on .att-file{background:color-mix(in srgb,var(--ds-card) 12%,transparent)!important}
:root.ds-on .att-file-ic{background:color-mix(in srgb,var(--ds-card) 20%,transparent)!important}
:root.ds-on .att-img-dead::after{background:color-mix(in srgb,var(--ds-card) 14%,transparent)!important}
:root.ds-on .bubble .txt code{background:color-mix(in srgb,var(--ds-card) 14%,transparent)!important}
:root.ds-on .usage-line{background:color-mix(in srgb,var(--ds-card) 7%,transparent)!important}
:root.ds-on .think-copy code{background:color-mix(in srgb,var(--ds-card) 10%,transparent)!important}
:root.ds-on .act-detail{background:color-mix(in srgb,var(--ds-card) 8%,transparent)!important}
:root.ds-on .floatbtn.send{color:var(--ds-on)!important;box-shadow:0 16px 32px color-mix(in srgb,var(--ds-line) 22%,transparent)!important}
:root.ds-on .floatbtn.send:hover{color:var(--ds-ink)!important}
:root.ds-on .newmsg-pill{background:color-mix(in srgb,var(--ds-card) 52%,transparent)!important;color:var(--ds-ink)!important;box-shadow:0 8px 24px color-mix(in srgb,var(--ds-line) 26%,transparent)!important}
:root.ds-on .login .orb{box-shadow:0 20px 42px color-mix(in srgb,var(--ds-line) 20%,transparent)!important}
:root.ds-on .location-state.online::before{background:var(--ds-card)!important;box-shadow:0 0 6px color-mix(in srgb,var(--ds-line) 60%,transparent)!important}
:root.ds-on .location-state.stale::before{background:var(--ds-card)!important}
:root.ds-on .context-slider::-webkit-slider-thumb{box-shadow:0 3px 10px color-mix(in srgb,var(--ds-line) 26%,transparent)!important}
:root.ds-on .context-slider::-moz-range-thumb{box-shadow:0 3px 10px color-mix(in srgb,var(--ds-line) 26%,transparent)!important}
:root.ds-on .settings-sub{color:var(--text-soft, color-mix(in srgb,var(--ds-soft) 55%,transparent))!important}
:root.ds-on .toast{background:color-mix(in srgb,var(--ds-card) 92%,transparent)!important;color:var(--ds-ink)!important;box-shadow:0 14px 34px color-mix(in srgb,var(--ds-line) 28%,transparent)!important}
:root.ds-on .menu-title{text-shadow:0 2px 26px color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on .call-scrim{background:linear-gradient(180deg, color-mix(in srgb,var(--ds-card) 55%,transparent) 0%, color-mix(in srgb,var(--ds-card) 25%,transparent) 40%, color-mix(in srgb,var(--ds-card) 45%,transparent) 100%)!important}
:root.ds-on .call-ctrl-btn > svg{box-shadow:0 8px 22px color-mix(in srgb,var(--ds-line) 10%,transparent), inset 0 1px 0 var(--call-glass-hi)!important}
:root.ds-on .incoming-call-btn{color:var(--ds-ink)!important}
:root.ds-on .incoming-call-btn.accept{background:var(--ds-card)!important;box-shadow:0 10px 26px color-mix(in srgb,var(--ds-line) 34%,transparent)!important}
:root.ds-on .msg-menu-scrim{background:color-mix(in srgb,var(--ds-card) 42%,transparent)!important}
:root.ds-on .msg-menu .msg-menu-clone{box-shadow:0 0 0 7px color-mix(in srgb,var(--ref-plum,var(--accent)) 20%,transparent),0 24px 56px color-mix(in srgb,var(--ds-line) 38%,transparent) !important}
:root.ds-on .row.recovered-focus .bubble{box-shadow:0 0 0 9px color-mix(in srgb,var(--ref-plum,var(--accent)) 20%,transparent),0 16px 38px color-mix(in srgb,var(--ds-line) 24%,transparent) !important}
:root.ds-on .reaction{box-shadow:0 4px 12px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on{--paper:var(--ds-card)!important;--paper-2:var(--ds-bg)!important;--ink:var(--ds-ink)!important;--muted:var(--ds-soft)!important;--brand:var(--ds-accent)!important;--brand-deep:var(--ds-accent)!important;--warm:var(--ds-accent)!important;--butter:var(--ds-card)!important;--glass:var(--ds-card)!important;--glass-strong:var(--ds-card)!important;--glass-line:var(--ds-line)!important}
:root.ds-on body{background:linear-gradient(145deg,var(--ds-bg) 0%,var(--ds-bg) 48%,var(--ds-bg) 100%)!important}
:root.ds-on body::before{background:radial-gradient(circle at 12% 16%,color-mix(in srgb,var(--ds-bg) 20%,transparent),transparent 30%),
radial-gradient(circle at 88% 18%,color-mix(in srgb,var(--ds-bg) 20%,transparent),transparent 28%),
radial-gradient(circle at 75% 82%,color-mix(in srgb,var(--ds-bg) 10%,transparent),transparent 28%)!important}
:root.ds-on .bubble{border:1px solid color-mix(in srgb,var(--ds-line) 74%,transparent)!important;box-shadow:0 9px 28px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .row.ai .bubble{background:color-mix(in srgb,var(--ds-card) 68%,transparent)!important}
:root.ds-on .row.me .bubble{background:color-mix(in srgb,var(--ds-card) 9%,transparent)!important}
:root.ds-on .menu-page,:root.ds-on .profile-page,:root.ds-on .memory-page{background:linear-gradient(155deg,var(--ds-bg) 0%,var(--ds-bg) 58%,var(--ds-bg) 100%)!important}
:root.ds-on .menu-foot{color:color-mix(in srgb,var(--ds-ink) 45%,transparent)!important}
:root.ds-on .login{background:linear-gradient(150deg,var(--ds-card),var(--ds-card) 62%,var(--ds-card))!important}
:root.ds-on .login input{background:color-mix(in srgb,var(--ds-card) 72%,transparent)!important;border:1px solid color-mix(in srgb,var(--ds-line) 22%,transparent)!important}
:root.ds-on .login button{color:var(--ds-ink)!important}
:root.ds-on #apiForm:not([hidden]){background:color-mix(in srgb,var(--ds-card) 96%,transparent)!important;border:1px solid var(--ds-line)!important;box-shadow:0 30px 90px color-mix(in srgb,var(--ds-line) 26%,transparent)!important}
:root.ds-on .usage-line{background:color-mix(in srgb,var(--ds-card) 45%,transparent)!important}
:root.ds-on .api-modal-backdrop{background:color-mix(in srgb,var(--ds-card) 24%,transparent)!important}
:root.ds-on .profile-panel .api-input{background:color-mix(in srgb,var(--paper) 82%,var(--ds-card))!important}
:root.ds-on body>#apiForm:not([hidden]){box-shadow:0 30px 100px color-mix(in srgb,var(--ds-line) 28%,transparent)!important}
:root.ds-on body>#apiForm .api-input{background:color-mix(in srgb,var(--paper) 82%,var(--ds-card))!important}
:root.ds-on body>#apiForm .api-model-menu{box-shadow:0 16px 40px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on body>#apiForm .api-mini-btn.primary{color:var(--ds-on)!important}
:root.ds-on .cache-lamp .dot{background:var(--ds-accent)!important}
:root.ds-on .cache-lamp[data-state="hot"] .dot{background:var(--ds-accent)!important}
:root.ds-on .cache-lamp[data-state="warm"] .dot{background:var(--ds-accent)!important;box-shadow:0 0 6px 1.5px color-mix(in srgb,var(--ds-line) 50%,transparent)!important}
:root.ds-on .cache-lamp[data-state="cold"] .dot{background:var(--ds-accent)!important;box-shadow:0 0 5px 1px color-mix(in srgb,var(--ds-line) 45%,transparent)!important}
:root.ds-on .cache-lamp .lamp-pop{border:1px solid color-mix(in srgb,var(--brand,var(--ds-line)) 18%,transparent)!important;background:color-mix(in srgb,var(--glass-strong,var(--ds-card)) 94%,transparent)!important;box-shadow:0 10px 28px color-mix(in srgb,var(--brand-deep,var(--ds-line)) 14%,transparent)!important;color:var(--ink,var(--ds-ink))!important}
:root.ds-on .cache-lamp .lamp-pop b{color:var(--brand-deep,var(--ds-ink))!important}
:root.ds-on[data-sms] .profile-panel,:root.ds-on[data-sms] .profile-page,:root.ds-on[data-sms] .settings-detail-overlay{--akbg:var(--ds-bg)!important;--aksurface:var(--ds-card)!important;--akpaper:var(--ds-card)!important;--akink:var(--ds-ink)!important;--akink2:var(--ds-soft)!important;--akmute:var(--ds-soft)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--ak-accent:var(--ds-accent)!important;--akrose:var(--ds-accent)!important;--ink:var(--ds-ink)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--muted:var(--ds-soft)!important;--paper:var(--ds-card)!important;--paper-2:var(--ds-bg)!important;--brand:var(--ds-accent)!important;--brand-deep:var(--ds-accent)!important;--accent:var(--ds-accent)!important;--warm:var(--ds-accent)!important;--glass:var(--ds-card)!important;--glass-strong:var(--ds-card)!important;--glass-line:var(--ds-line)!important;--card-bg:var(--ds-card)!important;--field-bg:var(--ds-card)!important}
:root.ds-on[data-sms] .profile-panel #profileNameInput,:root.ds-on[data-sms] .profile-panel #profileHandleInput{background:var(--ds-card)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) .context-slider::-webkit-slider-thumb{box-shadow:0 2px 8px color-mix(in srgb,var(--ds-line) 30%,transparent)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) .context-slider::-moz-range-thumb{box-shadow:0 2px 8px color-mix(in srgb,var(--ds-line) 30%,transparent)!important}
:root.ds-on[data-sms] .settings-detail-overlay{background:color-mix(in srgb,var(--ds-card) 34%,transparent)!important}
:root.ds-on[data-sms] .settings-detail-dialog{box-shadow:0 26px 70px color-mix(in srgb,var(--ds-line) 38%,transparent)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) :is(.api-input,.prompt-editor,.xp-name,#kelivoLimit){background:var(--ds-card)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) .api-row{background:var(--ds-card)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) .xp-row{background:var(--ds-card)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) .xp-switch{background:color-mix(in srgb,var(--ds-card) 22%,transparent)!important}
:root.ds-on[data-sms] :is(.profile-page,.settings-detail-overlay) .history-transfer-card{background:var(--ds-card)!important}
:root.ds-on[data-sms] .toast{background:var(--ds-card)!important;color:var(--ds-ink)!important;box-shadow:0 14px 34px color-mix(in srgb,var(--ds-line) 32%,transparent)!important}
:root.ds-on #apiCard .api-row{border:1px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on #apiCard .api-row.active{border-color:var(--ds-line)!important;background:color-mix(in srgb,var(--ds-accent) 14%,transparent)!important}
:root.ds-on #apiCard .api-row .dot{border:2px solid color-mix(in srgb,var(--ds-line) 40%,transparent)!important}
:root.ds-on #apiCard .api-row.active .dot{border-color:var(--ds-line)!important;background:var(--ds-accent)!important}
:root.ds-on #apiCard .api-add-btn{border:1px dashed color-mix(in srgb,var(--ds-line) 25%,transparent)!important}
:root.ds-on #apiCard .api-input{border:1px solid color-mix(in srgb,var(--ds-line) 16%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 22%,transparent)!important}
:root.ds-on #apiCard .api-role-field .api-input{border-color:var(--field-line,color-mix(in srgb,var(--ds-line) 16%,transparent))!important;background:var(--field-bg,color-mix(in srgb,var(--ds-card) 22%,transparent))!important}
:root.ds-on #apiCard .api-mini-btn{border:1px solid color-mix(in srgb,var(--ds-line) 20%,transparent)!important}
:root.ds-on #apiCard .api-mini-btn.primary{background:var(--ds-accent)!important;color:var(--ds-on)!important}
:root.ds-on .api-form .api-pricing-box{border:1px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on #systemPromptCard .api-mini-btn.primary{color:var(--ds-on)!important}
:root.ds-on #extraPromptsCard .xp-switch::after{background:var(--ds-card)!important;box-shadow:0 1px 3px color-mix(in srgb,var(--ds-line) 25%,transparent)!important}
:root.ds-on #extraPromptsCard .api-mini-btn.primary{color:var(--ds-on)!important}
:root.ds-on #historyCard #kelivoLimit{background:color-mix(in srgb,var(--paper) 82%,var(--ds-card))!important}
:root.ds-on #historyCard .summary-api-form .api-input{background:color-mix(in srgb,var(--paper) 82%,var(--ds-card))!important}
:root.ds-on[data-sms] .menu-page{background:var(--ds-bg)!important}
:root.ds-on .ak-home{--akbg:var(--ds-bg)!important;--aksurface:var(--ds-card)!important;--akink:var(--ds-ink)!important;--akink2:var(--ds-soft)!important;--akmute:var(--ds-soft)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--ak-accent:var(--ds-accent)!important;--akrose:var(--ds-accent)!important}
:root.ds-on[data-theme="rouge"] .menu-panel .ak-home{--ak-accent:var(--ds-accent)!important}
:root.ds-on .ak-mood{background:radial-gradient(circle, var(--ak-accent) 0 26%, color-mix(in srgb,var(--ds-card) 30%,transparent) 32% 52%, color-mix(in srgb,var(--ds-card) 14%,transparent) 58% 76%, transparent 80%)!important}
:root.ds-on .ak-nav{background:color-mix(in srgb,var(--ds-card) 94%,transparent)!important}
:root.ds-on .ak-node-ic{background:color-mix(in srgb,var(--ds-card) 72%,transparent)!important}
:root.ds-on .ak-node--hot .ak-node-ic{border-color:color-mix(in srgb,var(--ds-line) 50%,transparent)!important}
:root.ds-on .memory-page{background:var(--ref-paper,var(--ds-bg))!important}
:root.ds-on .memory-back{color:var(--ref-plum,var(--ds-ink))!important}
:root.ds-on .memory-h1{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .memory-tabs{background:var(--ref-glass,color-mix(in srgb,var(--ds-card) 66%,transparent))!important;border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 88%,transparent))!important}
:root.ds-on .memory-tabs button{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .memory-tabs button.active{background:color-mix(in srgb,var(--ds-accent) 16%,transparent)!important;color:var(--ref-ink,var(--ds-on))!important}
:root.ds-on .mem-statusline{color:var(--ref-mauve,var(--ds-soft))!important}
:root.ds-on .mem-dot{background:var(--ds-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-line) 22%,transparent)!important}
:root.ds-on .mem-dot.offline{background:var(--ds-accent)!important}
:root.ds-on .mem-search{background:var(--ref-chip,var(--ds-card))!important;border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 88%,transparent))!important;box-shadow:0 6px 18px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .mem-search svg{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-search input{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .mem-search input::placeholder{color:var(--ref-placeholder,var(--ds-ink))!important}
:root.ds-on .mem-crab svg{color:var(--ds-ink)!important}
:root.ds-on .mem-chip{background:var(--ref-glass,color-mix(in srgb,var(--ds-card) 66%,transparent))!important;color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-chip.active{background:color-mix(in srgb,var(--ds-accent) 14%,transparent)!important;border-color:color-mix(in srgb,var(--ds-line) 55%,transparent)!important;color:var(--ref-ink,var(--ds-on))!important}
:root.ds-on .mem-card{background:var(--ref-glass-strong,color-mix(in srgb,var(--ds-card) 92%,transparent))!important;box-shadow:0 8px 22px color-mix(in srgb,var(--ds-line) 9%,transparent)!important}
:root.ds-on .mem-card-type{color:var(--ds-ink)!important}
:root.ds-on .mem-card-time{color:var(--ref-mauve,var(--ds-soft))!important}
:root.ds-on .mem-card-title{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .mem-card-preview{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .mem-dots{color:var(--ds-ink)!important}
:root.ds-on .mem-score-badge{color:var(--ds-ink)!important}
:root.ds-on .mem-tag{border:1px solid color-mix(in srgb,var(--ds-line) 16%,transparent)!important;color:var(--ref-mauve,var(--ds-ink))!important;background:var(--ref-chip,var(--ds-card))!important}
:root.ds-on .mem-badge{background:color-mix(in srgb,var(--ds-card) 7%,transparent)!important;color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-empty,:root.ds-on .mem-loading,:root.ds-on .mem-offline{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-offline button{border:1px solid color-mix(in srgb,var(--ds-line) 50%,transparent)!important;color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .lab-params label{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .lab-params input{border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 88%,transparent))!important;background:var(--ref-chip,var(--ds-card))!important;color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .lab-run{background:color-mix(in srgb,var(--ds-card) 16%,transparent)!important;color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .lab-summary{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .lab-bar-row{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .lab-track{background:color-mix(in srgb,var(--ds-card) 10%,transparent)!important}
:root.ds-on .lab-fill{background:var(--ds-accent)!important}
:root.ds-on .lab-final b{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .lab-pass{background:color-mix(in srgb,var(--ds-card) 20%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on .mem-sheet-backdrop{background:color-mix(in srgb,var(--ds-card) 28%,transparent)!important}
:root.ds-on .mem-sheet{background:var(--ref-sheet,var(--ds-card))!important;box-shadow:0 -12px 40px color-mix(in srgb,var(--ds-line) 22%,transparent)!important}
:root.ds-on .mem-sheet-handle::before{background:color-mix(in srgb,var(--ds-card) 22%,transparent)!important}
:root.ds-on .mem-sheet-title{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .mem-sheet-meta{color:var(--ref-mauve,var(--ds-soft))!important}
:root.ds-on .mem-sheet-content{color:var(--ref-ink,var(--ds-ink))!important;border-top:1px solid color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .mem-sheet-why{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-info{border-top:1px solid color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .mem-info>div>span:first-child{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-info>div>span:last-child{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .mem-rest-btn{border:1px solid color-mix(in srgb,var(--ds-line) 20%,transparent)!important;background:var(--ref-chip,var(--ds-card))!important;color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .mem-sheet-id{color:var(--ref-placeholder,var(--ds-ink))!important}
:root.ds-on[data-sms] .memory-panel{--akbg:var(--ds-bg)!important;--aksurface:var(--ds-card)!important;--akink:var(--ds-ink)!important;--akink2:var(--ds-soft)!important;--akmute:var(--ds-soft)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--ak-accent:var(--ds-accent)!important;--akrose:var(--ds-accent)!important}
:root.ds-on[data-sms][data-theme="rouge"] .memory-panel{--ak-accent:var(--ds-accent)!important}
:root.ds-on[data-sms] .memory-panel .mem-sheet{box-shadow:0 -18px 48px color-mix(in srgb,var(--ds-line) 25%,transparent)!important}
:root.ds-on .sable-memory-actions button[data-action="forget"]{color:var(--ds-ink)!important}
:root.ds-on #installBanner{background:var(--card, var(--ds-card))!important;border:1px solid var(--hairline, color-mix(in srgb,var(--ds-line) 8%,transparent))!important;box-shadow:0 10px 30px color-mix(in srgb,var(--ds-line) 35%,transparent)!important;color:var(--text, var(--ds-ink))!important}
:root.ds-on #installBanner .ib-btn{background:var(--accent, var(--ds-card))!important;color:var(--ds-ink)!important}
:root.ds-on #installBanner .ib-x{color:var(--text-soft, color-mix(in srgb,var(--ds-ink) 55%,transparent))!important}
:root.ds-on{--paper:var(--ds-card)!important;--paper-2:var(--ds-bg)!important;--ink:var(--ds-ink)!important;--muted:var(--ds-soft)!important;--brand:var(--ds-accent)!important;--brand-deep:var(--ds-accent)!important;--warm:var(--ds-accent)!important;--butter:var(--ds-card)!important;--glass:var(--ds-card)!important;--glass-strong:var(--ds-card)!important;--glass-line:var(--ds-line)!important;--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--accent:var(--ds-accent)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on .composer .field{background:color-mix(in srgb,var(--ds-card) 55%,transparent)!important}
:root.ds-on .login .orb{border:2px solid color-mix(in srgb,var(--glass-line) 86%,var(--ds-line))!important}
:root.ds-on .checklist-scrim{background:color-mix(in srgb,var(--ds-card) 22%,transparent)!important}
:root.ds-on .checklist-sheet{background:var(--ds-card)!important;color:var(--ds-ink)!important;box-shadow:0 -18px 58px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on .checklist-handle{background:color-mix(in srgb,var(--ds-card) 24%,transparent)!important}
:root.ds-on .checklist-brand{color:color-mix(in srgb,var(--ds-ink) 58%,transparent)!important}
:root.ds-on .checklist-date{color:color-mix(in srgb,var(--ds-ink) 58%,transparent)!important}
:root.ds-on .checklist-rule{color:color-mix(in srgb,var(--ds-ink) 28%,transparent)!important}
:root.ds-on .checklist-meta.faded{color:color-mix(in srgb,var(--ds-soft) 55%,transparent)!important}
:root.ds-on .checklist-section{color:color-mix(in srgb,var(--ds-ink) 58%,transparent)!important}
:root.ds-on .checklist-item{border-bottom:1px dashed color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on .checklist-trigger{border:1px solid color-mix(in srgb,var(--ds-line) 28%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on .checklist-item .checklist-body{color:var(--ds-ink)!important}
:root.ds-on .checklist-item.done .checklist-body{color:color-mix(in srgb,var(--ds-ink) 36%,transparent)!important}
:root.ds-on .checklist-bang{color:var(--ds-ink)!important}
:root.ds-on .checklist-by{color:var(--ds-ink)!important}
:root.ds-on .checklist-delete{color:color-mix(in srgb,var(--ds-ink) 34%,transparent)!important}
:root.ds-on .checklist-new input,:root.ds-on .checklist-alarm input{border:1px dashed color-mix(in srgb,var(--ds-line) 20%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 72%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on .checklist-new button,:root.ds-on .checklist-alarm button{border:1px solid color-mix(in srgb,var(--ds-line) 30%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 16%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on .checklist-progress small{color:color-mix(in srgb,var(--ds-soft) 58%,transparent)!important}
:root.ds-on .checklist-stamp{border:2px solid var(--ds-line)!important;color:var(--ds-ink)!important}
:root.ds-on .checklist-foot{color:color-mix(in srgb,var(--ds-ink) 58%,transparent)!important}
:root.ds-on .backbtn,:root.ds-on .topbtn{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on #mindQuietToggle{box-shadow:0 3px 9px color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on .bubble{box-shadow:0 6px 18px color-mix(in srgb,var(--ds-line) 7%,transparent)!important}
:root.ds-on .row.ai::before,:root.ds-on .row.human::after{box-shadow:0 4px 12px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on .msg-act.arm{color:var(--ds-ink)!important}
:root.ds-on .message-editor-scrim{background:color-mix(in srgb,var(--ds-card) 28%,transparent)!important}
:root.ds-on .message-editor-sheet{border:1px solid color-mix(in srgb,var(--ds-line) 12%,transparent)!important;box-shadow:0 -18px 54px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on .message-editor-handle{background:color-mix(in srgb,var(--ds-card) 22%,transparent)!important}
:root.ds-on .message-editor-input{border:1px solid color-mix(in srgb,var(--ds-line) 16%,transparent)!important;background:var(--ref-chip,color-mix(in srgb,var(--ds-card) 50%,transparent))!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ds-line) 34%,transparent)!important}
:root.ds-on .message-editor-input:focus{border-color:color-mix(in srgb,var(--ds-line) 48%,transparent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .message-editor-actions button{border:1px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on .checklist-scrim{background:color-mix(in srgb,var(--ds-card) 20%,transparent)!important}
:root.ds-on .checklist-sheet{box-shadow:0 -18px 58px color-mix(in srgb,var(--ds-line) 20%,transparent)!important}
:root.ds-on .checklist-handle{background:color-mix(in srgb,var(--ds-card) 24%,transparent)!important}
:root.ds-on .checklist-rule{color:color-mix(in srgb,var(--ds-ink) 24%,transparent)!important}
:root.ds-on .checklist-item{border-bottom-color:color-mix(in srgb,var(--ds-line) 15%,transparent)!important}
:root.ds-on .checklist-item.done .checklist-body{color:color-mix(in srgb,var(--ds-ink) 35%,transparent)!important}
:root.ds-on .checklist-trigger{border-color:color-mix(in srgb,var(--ds-line) 34%,transparent)!important}
:root.ds-on .checklist-delete{color:color-mix(in srgb,var(--ds-ink) 35%,transparent)!important}
:root.ds-on .checklist-new input,:root.ds-on .checklist-alarm input{border-color:color-mix(in srgb,var(--ds-line) 22%,transparent)!important}
:root.ds-on .checklist-new button,:root.ds-on .checklist-alarm button{border-color:color-mix(in srgb,var(--ds-line) 32%,transparent)!important}
:root.ds-on .composer .field{box-shadow:0 10px 26px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .send{box-shadow:0 8px 20px color-mix(in srgb,var(--ds-line) 15%,transparent)!important}
:root.ds-on .composer-add-btn{box-shadow:0 5px 14px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .composer-model-btn{box-shadow:0 5px 14px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .drift-layer span{color:var(--warm,var(--ds-ink))!important}
:root.ds-on .mm-top{background:linear-gradient(180deg,var(--ref-bg-1),color-mix(in srgb,var(--ds-card) 0%,transparent))!important}
:root.ds-on .mm-back{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .seg-tab.is-on{box-shadow:0 3px 10px color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on .mm-card{border-bottom:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .mm-liked{border-top:1px dashed color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on .mm-comments{border-left:2px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important}
:root.ds-on .mm-att button{background:color-mix(in srgb,var(--ds-card) 50%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on .mm-inputline{box-shadow:0 6px 18px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .mm-send{color:var(--ds-on)!important;box-shadow:0 5px 14px color-mix(in srgb,var(--ds-line) 28%,transparent)!important}
:root.ds-on[data-sms] .moments-panel{--akbg:var(--ds-bg)!important;--aksurface:var(--ds-card)!important;--akink:var(--ds-ink)!important;--akink2:var(--ds-soft)!important;--akmute:var(--ds-soft)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--ak-accent:var(--ds-accent)!important;--akrose:var(--ds-accent)!important}
:root.ds-on[data-sms][data-theme="rouge"] .moments-panel{--ak-accent:var(--ds-accent)!important}
:root.ds-on .jn-back,:root.ds-on .jn-nav,:root.ds-on .jn-add{box-shadow:0 5px 14px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .jn-add{color:var(--ds-ink)!important;box-shadow:0 6px 15px color-mix(in srgb,var(--ds-line) 26%,transparent)!important}
:root.ds-on .jn-hour{border-top:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .jn-ev{box-shadow:0 3px 10px color-mix(in srgb,var(--ds-line) 9%,transparent)!important}
:root.ds-on .jn-ev-range{color:color-mix(in srgb,var(--ds-ink) 62%,transparent)!important}
:root.ds-on .jn-ev.compact .jn-ev-range{color:color-mix(in srgb,var(--ds-ink) 60%,transparent)!important}
:root.ds-on{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-sms] .journal-panel{--akbg:var(--ds-bg)!important;--aksurface:var(--ds-card)!important;--akink:var(--ds-ink)!important;--akink2:var(--ds-soft)!important;--akmute:var(--ds-soft)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--ak-accent:var(--ds-accent)!important;--akrose:var(--ds-accent)!important}
:root.ds-on[data-sms][data-theme="rouge"] .journal-panel{--ak-accent:var(--ds-accent)!important}
:root.ds-on[data-sms] .journal-panel{background:color-mix(in srgb,var(--ds-bg) 50%,transparent)!important}
:root.ds-on[data-sms] .journal-panel .jn-page{box-shadow:0 24px 60px color-mix(in srgb,var(--ds-line) 30%,transparent)!important}
:root.ds-on[data-sms] .akaf.show{background:color-mix(in srgb,var(--ds-card) 35%,transparent)!important}
:root.ds-on[data-sms] .akaf-card{box-shadow:0 18px 48px color-mix(in srgb,var(--ds-line) 35%,transparent)!important}
:root.ds-on .hl-top{background:linear-gradient(180deg,var(--ref-bg-1),color-mix(in srgb,var(--ds-card) 0%,transparent))!important}
:root.ds-on .hl-back,:root.ds-on .hl-refresh{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .hl-banner{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .hl-card{box-shadow:0 10px 26px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .hl-stagebar{background:color-mix(in srgb,var(--ds-card) 8%,transparent)!important}
:root.ds-on .hl-nap{box-shadow:0 4px 10px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .hl-whisper{border-top:1px dashed color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on .hl-tile{box-shadow:0 8px 20px color-mix(in srgb,var(--ds-line) 9%,transparent)!important}
:root.ds-on .hl-stress{border-top:1px dashed color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on .hl-bar{background:color-mix(in srgb,var(--ds-card) 14%,transparent)!important}
:root.ds-on .hl-btn{box-shadow:0 4px 12px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on[data-sms] .health-panel{--akbg:var(--ds-bg)!important;--aksurface:var(--ds-card)!important;--akink:var(--ds-ink)!important;--akink2:var(--ds-soft)!important;--akmute:var(--ds-soft)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--ak-accent:var(--ds-accent)!important;--akrose:var(--ds-accent)!important}
:root.ds-on[data-sms][data-theme="rouge"] .health-panel{--ak-accent:var(--ds-accent)!important}
:root.ds-on[data-sms] .health-panel .hl-sg-light{background:color-mix(in srgb,var(--ds-card) 18%,transparent)!important}
:root.ds-on[data-sms] .health-panel .hl-bar{background:color-mix(in srgb,var(--ds-card) 12%,transparent)!important}
:root.ds-on .fp-top{background:linear-gradient(180deg,var(--ref-bg-1),color-mix(in srgb,var(--ds-card) 0%,transparent))!important}
:root.ds-on .fp-back{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .fp-card{box-shadow:0 8px 22px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .cr-top{background:linear-gradient(180deg,var(--ref-bg-1),color-mix(in srgb,var(--ds-card) 0%,transparent))!important}
:root.ds-on .cr-back{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .cr-end{box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .cr-orb{box-shadow:0 0 22px color-mix(in srgb,var(--ds-line) 35%,transparent),inset 0 0 8px color-mix(in srgb,var(--ds-line) 25%,transparent)!important}
:root.ds-on .cr-field{box-shadow:0 8px 22px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .cr-send{box-shadow:0 8px 20px color-mix(in srgb,var(--ds-line) 35%,transparent)!important}
:root.ds-on .menu-page,:root.ds-on .profile-page,:root.ds-on .memory-page,:root.ds-on .login,:root.ds-on #apiForm{--brand:var(--ds-accent)!important;--brand-deep:var(--ds-accent)!important;--warm:var(--ds-accent)!important;--ink:var(--ds-ink)!important;--muted:var(--ds-soft)!important;--paper:var(--ds-card)!important;--paper-2:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--accent:var(--ds-accent)!important;--glass:var(--ds-card)!important;--glass-strong:var(--ds-card)!important;--glass-line:var(--ds-line)!important}
:root.ds-on .menu-foot{color:color-mix(in srgb,var(--ds-ink) 45%,transparent)!important}
:root.ds-on .login input{border:1px solid color-mix(in srgb,var(--ds-line) 20%,transparent)!important}
:root.ds-on .api-modal-backdrop{background:color-mix(in srgb,var(--ds-card) 24%,transparent)!important}
:root.ds-on[data-theme="mirror"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-theme="cocoa"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-theme="sakura"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-theme="cocoa"]{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-theme="sakura"]{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-theme="cocoa"] .jn-ev-range,:root.ds-on[data-theme="cocoa"] .jn-ev.compact .jn-ev-range{color:color-mix(in srgb,var(--ds-ink) 55%,transparent)!important}
:root.ds-on[data-theme="cocoa"] .jn-hour{border-top-color:color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on[data-theme="cocoa"] ::selection{background:color-mix(in srgb,var(--ds-card) 35%,transparent)!important}
:root.ds-on[data-theme="sakura"] ::selection{background:color-mix(in srgb,var(--ds-card) 28%,transparent)!important}
:root.ds-on[data-theme="dusk"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-theme="berry"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-theme="ink"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-theme="dusk"]{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-theme="berry"]{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-theme="ink"]{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-theme="berry"] .jn-ev-range,:root.ds-on[data-theme="berry"] .jn-ev.compact .jn-ev-range,:root.ds-on[data-theme="ink"] .jn-ev-range,:root.ds-on[data-theme="ink"] .jn-ev.compact .jn-ev-range{color:color-mix(in srgb,var(--ds-ink) 55%,transparent)!important}
:root.ds-on[data-theme="berry"] .jn-hour,:root.ds-on[data-theme="ink"] .jn-hour{border-top-color:color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on[data-theme="dusk"] ::selection{background:color-mix(in srgb,var(--ds-card) 25%,transparent)!important}
:root.ds-on[data-theme="berry"] ::selection{background:color-mix(in srgb,var(--ds-card) 35%,transparent)!important}
:root.ds-on[data-theme="ink"] ::selection{background:color-mix(in srgb,var(--ds-card) 35%,transparent)!important}
:root.ds-on[data-theme="noir"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important}
:root.ds-on[data-sms] .bubble{box-shadow:0 4px 14px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on[data-theme="noir"]{--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on[data-theme="rouge"]{--bg:var(--ds-bg)!important;--header-bg:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;--card-bg:var(--ds-card)!important;--accent:var(--ds-accent)!important;--accent-fg:var(--ds-on)!important;--warm:var(--ds-accent)!important;--calendar-empty:var(--ds-bg)!important;--calendar-low:var(--ds-card)!important;--calendar-high:var(--ds-accent)!important;--calendar-selected:var(--ds-accent)!important;--calendar-text:var(--ds-ink)!important;--jn-c0:var(--ds-card)!important;--jn-c1:var(--ds-card)!important;--jn-c2:var(--ds-card)!important;--jn-c3:var(--ds-card)!important;--jn-c4:var(--ds-card)!important;--jn-c5:var(--ds-card)!important;--jn-c6:var(--ds-card)!important;--jn-c7:var(--ds-card)!important}
:root.ds-on .crh-card{background:color-mix(in srgb,var(--ref-paper,var(--ds-card)) 74%,transparent)!important;box-shadow:0 10px 26px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on:is([data-theme="cocoa"],[data-theme="berry"],[data-theme="ink"]) .settings-detail-dialog{box-shadow:0 28px 90px color-mix(in srgb,var(--ds-line) 58%,transparent)!important}
:root.ds-on:is([data-theme="cocoa"],[data-theme="berry"],[data-theme="ink"]) .model-pop{box-shadow:0 18px 44px color-mix(in srgb,var(--ds-line) 62%,transparent)!important}
:root.ds-on :where(.settings-hub-row,.fp-card,.mem-card,.jn-ev,.moment-card,.health-card):hover{border-color:color-mix(in srgb,var(--ref-accent,var(--ds-line)) 22%,var(--ref-glass-line,transparent))!important}
:root.ds-on .together-panel{background:radial-gradient(circle at 14% 2%,var(--ref-glow-1,color-mix(in srgb,var(--ds-bg) 14%,transparent)),transparent 38%),
      radial-gradient(circle at 90% 94%,var(--ref-glow-3,color-mix(in srgb,var(--ds-bg) 18%,transparent)),transparent 32%),
      var(--ref-paper,var(--ds-bg))!important}
:root.ds-on .together-back{background:var(--ref-chip,var(--ds-card))!important;box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .together-presence{border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 86%,transparent))!important;background:var(--ref-glass,color-mix(in srgb,var(--ds-card) 66%,transparent))!important;box-shadow:0 10px 26px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .together-live-dot{background:var(--status-dot,var(--ds-accent))!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--status-dot,var(--ds-line)) 16%,transparent)!important}
:root.ds-on .together-tabs{border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 86%,transparent))!important;background:var(--ref-glass,color-mix(in srgb,var(--ds-card) 60%,transparent))!important}
:root.ds-on .together-tab.active{background:var(--ref-chip,var(--ds-accent))!important;box-shadow:0 5px 14px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .together-card{border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 88%,transparent))!important;background:var(--ref-glass-strong,color-mix(in srgb,var(--ds-card) 90%,transparent))!important;box-shadow:0 14px 34px color-mix(in srgb,var(--ds-line) 9%,transparent)!important}
:root.ds-on .together-empty-mark{color:var(--ref-accent,var(--ds-ink))!important;background:color-mix(in srgb,var(--ds-card) 11%,transparent)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--ds-line) 14%,transparent),0 0 0 9px color-mix(in srgb,var(--ds-line) 5%,transparent)!important}
:root.ds-on .together-btn{border:1px solid color-mix(in srgb,var(--ds-line) 20%,transparent)!important;background:color-mix(in srgb,var(--ref-chip,var(--ds-card)) 55%,transparent)!important}
:root.ds-on .together-btn.primary{background:var(--ref-accent,var(--ds-accent))!important;color:var(--ds-on)!important;box-shadow:0 8px 20px color-mix(in srgb,var(--ds-line) 26%,transparent)!important}
:root.ds-on .together-url input,:root.ds-on .together-paste textarea{border:1px solid color-mix(in srgb,var(--ds-line) 16%,transparent)!important;background:var(--ref-chip,var(--ds-card))!important}
:root.ds-on .together-url input::placeholder,:root.ds-on .together-paste textarea::placeholder{color:var(--ref-placeholder,var(--ds-ink))!important}
:root.ds-on .together-url input:focus,:root.ds-on .together-paste textarea:focus{border-color:color-mix(in srgb,var(--ds-line) 42%,transparent)!important}
:root.ds-on .together-now audio{accent-color:var(--ref-accent,var(--ds-accent))!important}
:root.ds-on .together-reader-head{border-bottom:1px solid color-mix(in srgb,var(--ds-line) 11%,transparent)!important}
:root.ds-on .together-tool{background:var(--ref-chip,var(--ds-card))!important;box-shadow:0 4px 11px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on .together-reader-stage{background:color-mix(in srgb,var(--ref-chip,var(--ds-card)) 32%,transparent)!important}
:root.ds-on .together-reader-foot{border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 86%,transparent))!important;background:var(--ref-glass-strong,color-mix(in srgb,var(--ds-card) 90%,transparent))!important;box-shadow:0 8px 22px color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .together-progress{background:color-mix(in srgb,var(--ds-accent) 16%,transparent)!important}
:root.ds-on .together-progress i{background:var(--ref-accent,var(--ds-card))!important}
:root.ds-on .composer.attachments-open .composer-add-btn{background:color-mix(in srgb,var(--ds-card) 14%,transparent)!important;color:var(--ref-accent,var(--ds-ink))!important}
:root.ds-on .composer.attachments-open .attachment-drawer{border-top-color:color-mix(in srgb,var(--ds-line) 13%,transparent)!important}
:root.ds-on .attachment-choice{border:1px solid var(--ref-glass-line,color-mix(in srgb,var(--ds-line) 86%,transparent))!important;background:var(--ref-glass,color-mix(in srgb,var(--ds-card) 66%,transparent))!important;box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .attachment-choice-icon{color:var(--ref-accent,var(--ds-ink))!important;background:color-mix(in srgb,var(--ds-card) 11%,transparent)!important}
:root.ds-on .attachment-choice:active{box-shadow:0 3px 9px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .attachment-choice:focus-visible{outline:2px solid color-mix(in srgb,var(--ref-plum,var(--ds-line)) 45%,transparent)!important}
:root.ds-on #appearanceCard .theme-family small{color:var(--text-faint,var(--ds-soft))!important}
:root.ds-on .model-pop{background:var(--glass-strong,color-mix(in srgb,var(--ds-card) 95%,transparent))!important;border:1px solid var(--card-line,color-mix(in srgb,var(--ds-line) 8%,transparent))!important;box-shadow:0 18px 44px var(--surface-shadow,color-mix(in srgb,var(--ds-line) 16%,transparent))!important}
:root.ds-on .model-pop-row:active{background:var(--row-press,color-mix(in srgb,var(--ds-accent) 6%,transparent))!important}
:root.ds-on .model-pop-row.active{background:var(--seg-track,color-mix(in srgb,var(--ds-accent) 5%,transparent))!important}
:root.ds-on .model-pop-row .mp-dot{border:1.5px solid var(--text-faint,var(--ds-line))!important}
:root.ds-on .model-pop-row.active .mp-dot{background:var(--accent,var(--ds-accent))!important;border-color:var(--accent,var(--ds-line))!important}
:root.ds-on .model-pop-row .mp-model{color:var(--text-faint,var(--ds-ink))!important}
:root.ds-on .model-pop-manage{color:var(--text-soft,var(--ds-ink))!important}
:root.ds-on[data-sms] .peer-duo i{box-shadow:0 2px 8px color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on[data-sms] .noir-ctx-track{background:color-mix(in srgb,var(--ds-card) 12%,transparent)!important}
:root.ds-on[data-sms] .think-block{border:1px dashed color-mix(in srgb,var(--ds-line) 32%,transparent)!important}
:root.ds-on[data-sms] .think-block.open{border:1px dashed color-mix(in srgb,var(--ds-line) 32%,transparent)!important}
:root.ds-on[data-sms] .act-block{border:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important;border-left:3px solid color-mix(in srgb,var(--ds-line) 50%,transparent)!important;box-shadow:0 2px 10px color-mix(in srgb,var(--ds-line) 5%,transparent)!important}
:root.ds-on[data-sms] .act-detail{border:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on[data-sms] .model-pop{border:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important;box-shadow:0 18px 44px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on[data-sms] .composer .field:focus-within{border-color:color-mix(in srgb,var(--ds-line) 34%,transparent)!important;box-shadow:0 4px 14px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on:not([data-sms]) .composer .field{box-shadow:0 7px 18px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on:not([data-sms]) .send{box-shadow:0 6px 14px color-mix(in srgb,var(--ds-line) 11%,transparent)!important}
:root.ds-on[data-sms] .composer .field:focus-within{box-shadow:0 3px 10px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] #app{--composer-bg:var(--ds-bg)!important;--field-bg:var(--ds-card)!important;background:var(--ds-bg)!important}
:root.ds-on[data-theme="noir"][data-sms] .topbar{background:var(--ds-bg)!important}
:root.ds-on[data-theme="noir"][data-sms] .backbtn::before{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .peer-duo i{border-color:var(--ds-line)!important;box-shadow:0 2px 7px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .peerpill .name{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .peerpill .status{color:var(--ds-soft)!important}
:root.ds-on[data-theme="noir"][data-sms] #checklistBtn{border:1px solid color-mix(in srgb,var(--ds-line) 16%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 82%,transparent)!important;color:var(--ds-ink)!important;box-shadow:0 5px 15px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .noir-ctxbar{background:var(--ds-card)!important}
:root.ds-on[data-theme="noir"][data-sms] .noir-ctx-track{background:color-mix(in srgb,var(--ds-card) 11%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .noir-ctx-fill{background:var(--ds-accent)!important}
:root.ds-on[data-theme="noir"][data-sms] .row.ai .bubble{background:var(--ds-card)!important}
:root.ds-on[data-theme="noir"][data-sms] .row.human .bubble{background:var(--ds-card)!important}
:root.ds-on[data-theme="noir"][data-sms] .row.ai.tail .bubble.bubble-tail:not(.att-only)::after{background:var(--ds-card)!important}
:root.ds-on[data-theme="noir"][data-sms] .row.human.tail .bubble.bubble-tail:not(.att-only)::after{background:var(--ds-card)!important}
:root.ds-on[data-theme="noir"][data-sms] .act-block{border-top:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .think-block:not(.open){border-top:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer{border:1px solid color-mix(in srgb,var(--ds-line) 82%,transparent)!important;background:color-mix(in srgb,var(--ds-bg) 56%,transparent)!important;box-shadow:0 10px 28px color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer .field{background:color-mix(in srgb,var(--ds-card) 72%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer-add-btn{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer-model-btn{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .floatbtn.send{background:var(--ds-accent)!important;color:var(--ds-on)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer .field{background:color-mix(in srgb,var(--ds-card) 90%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer textarea::placeholder{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer-add-btn{border:1px solid color-mix(in srgb,var(--ds-line) 18%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 55%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .floatbtn.send{background:var(--ds-accent)!important;box-shadow:0 4px 14px color-mix(in srgb,var(--ds-line) 24%,transparent)!important}
:root.ds-on .together-panel{--listen-blue:var(--ds-accent)!important;--listen-line:var(--ds-line)!important}
:root.ds-on .together-back:hover,:root.ds-on .together-back:focus-visible{background:color-mix(in srgb,var(--ref-chip,var(--ds-card)) 42%,transparent)!important}
:root.ds-on .together-card{background:color-mix(in srgb,var(--ref-glass-strong,color-mix(in srgb,var(--ds-card) 90%,transparent)) 78%,transparent)!important;box-shadow:0 9px 24px color-mix(in srgb,var(--ds-line) 6%,transparent)!important}
:root.ds-on .together-queue-side>span,:root.ds-on .together-queue-current>span{background:color-mix(in srgb,var(--ref-chip,var(--ds-card)) 42%,transparent)!important}
:root.ds-on .together-queue-current>span{background:linear-gradient(145deg,color-mix(in srgb,var(--listen-blue) 11%,var(--ref-chip,var(--ds-card))),color-mix(in srgb,var(--listen-blue) 3%,transparent))!important;box-shadow:0 9px 18px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .together-empty-mark{background:linear-gradient(145deg,color-mix(in srgb,var(--listen-blue) 10%,var(--ref-chip,var(--ds-card))),color-mix(in srgb,var(--listen-blue) 3%,transparent))!important}
:root.ds-on .together-btn.primary{color:var(--ds-on)!important}
:root.ds-on .together-transport .together-play{color:var(--ds-ink)!important}
:root.ds-on .together-pair-card{background:color-mix(in srgb,var(--ref-glass,color-mix(in srgb,var(--ds-card) 66%,transparent)) 60%,transparent)!important}
:root.ds-on .together-person>span{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .vesper-opening{color:var(--ds-ink)!important;background:var(--ds-card)!important}
:root.ds-on .vesper-question{color:var(--ds-ink)!important}
:root.ds-on .vesper-instruction{color:var(--ds-ink)!important}
:root.ds-on .vesper-signature-ink,:root.ds-on .vesper-signature-eraser,:root.ds-on .vesper-signature-line,:root.ds-on .vesper-signature-stem{stroke:var(--ds-accent-ink)!important}
:root.ds-on .vesper-signature-heart{fill:var(--ds-accent-ink)!important}
:root.ds-on .vesper-opening-footer{color:var(--ds-ink)!important}
:root.ds-on .sable-mail-panel{background:var(--ref-paper,var(--ds-bg))!important;color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on .sable-mail-top{border-bottom:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 10%,transparent)!important}
:root.ds-on .sable-mail-title span{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-mail-card{border:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 10%,transparent)!important;background:color-mix(in srgb,var(--ref-chip,var(--ds-card)) 80%,transparent)!important;box-shadow:0 8px 24px color-mix(in srgb,var(--ds-line) 6%,transparent)!important}
:root.ds-on .sable-mail-status i{background:var(--ds-card)!important}
:root.ds-on .sable-mail-status.ready i{background:var(--ds-card)!important}
:root.ds-on .sable-mail-status small{color:var(--ref-mauve,var(--ds-soft))!important}
:root.ds-on .sable-mail-empty{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-mail-item,:root.ds-on .sable-draft-item{border:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 9%,transparent)!important}
:root.ds-on .sable-mail-item span,:root.ds-on .sable-draft-item small{color:var(--ref-mauve,var(--ds-soft))!important}
:root.ds-on .sable-mail-item small,:root.ds-on .sable-draft-item span{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-preview dt{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-preview-body{background:color-mix(in srgb,var(--ds-card) 45%,transparent)!important}
:root.ds-on .sable-safety{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-draft-actions button{border:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 14%,transparent)!important}
:root.ds-on .sable-draft-actions .approve{background:var(--ref-ink,var(--ds-card))!important;color:var(--ds-ink)!important}
:root.ds-on .sable-draft-actions .send-approved{background:var(--ds-accent)!important;color:var(--ds-on)!important}
:root.ds-on .sable-drift-card h2 small{color:var(--ref-mauve,var(--ds-soft))!important}
:root.ds-on .sable-drift-intro{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-drift-form label{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on .sable-drift-form input[type=email]{border:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 14%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 45%,transparent)!important}
:root.ds-on .sable-drift-actions button{border:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 14%,transparent)!important}
:root.ds-on .sable-drift-actions .primary{background:var(--ref-ink,var(--ds-accent))!important;color:var(--ds-on)!important}
:root.ds-on .sable-drift-actions .cast{background:var(--ds-card)!important;color:var(--ds-ink)!important}
:root.ds-on .sable-drift-state{border-top:1px solid color-mix(in srgb,var(--ref-ink,var(--ds-line)) 10%,transparent)!important}
:root.ds-on .sable-drift-meta span{background:color-mix(in srgb,var(--ref-mauve,var(--ds-card)) 11%,transparent)!important}
:root.ds-on .sable-drift-prompt{background:color-mix(in srgb,var(--ds-card) 45%,transparent)!important}
:root.ds-on .sable-drift-note{color:var(--ref-mauve,var(--ds-ink))!important}
:root.ds-on[data-theme="noir"][data-sms] .reasoning-effort-select{background:color-mix(in srgb,var(--ds-card) 62%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on:not([data-sms]) .settings-detail-dialog{--brand:var(--ds-accent)!important;--brand-deep:var(--ds-accent)!important;--warm:var(--ds-accent)!important;--ink:var(--ds-ink)!important;--muted:var(--ds-soft)!important;--paper:var(--ds-card)!important;--paper-2:var(--ds-bg)!important;--text:var(--ds-ink)!important;--text-soft:var(--ds-soft)!important;--text-faint:var(--ds-soft)!important;--accent:var(--ds-accent)!important;--glass:var(--ds-card)!important;--glass-strong:var(--ds-card)!important;--glass-line:var(--ds-line)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer-add-btn{border:1px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 66%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .composer-model-btn{border:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 52%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .reasoning-effort-select{border:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 52%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] .vesper-download-note{background:color-mix(in srgb,var(--ds-card) 4%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .model-pop{background:var(--ds-card)!important;border:1px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important;box-shadow:0 18px 46px color-mix(in srgb,var(--ds-line) 24%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] .model-pop-row{background:var(--ds-card)!important}
:root.ds-on[data-theme="noir"][data-sms] .model-pop-row.active{background:var(--ds-accent)!important}
:root.ds-on[data-theme="noir"][data-sms] .model-pop-manage{border-top:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important;box-shadow:0 -8px 12px var(--ds-line)!important}
:root.ds-on .moments-panel .mm-inputline:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--ref-accent) 10%,transparent),0 6px 18px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on .reasoning-effort-pop{box-shadow:0 18px 48px color-mix(in srgb,var(--ds-line) 24%,transparent)!important}
:root.ds-on[data-sms] .reasoning-effort-pop{background:var(--ds-card)!important;border-color:color-mix(in srgb,var(--ds-line) 18%,transparent)!important;box-shadow:0 20px 54px color-mix(in srgb,var(--ds-line) 30%,transparent)!important}
:root.ds-on[data-sms] .reasoning-effort-option{color:var(--ds-ink)!important}
:root.ds-on[data-sms] .reasoning-effort-option+.reasoning-effort-option{border-top:1px solid color-mix(in srgb,var(--ds-line) 10%,transparent)!important}
:root.ds-on[data-sms] .reasoning-effort-option.active{background:var(--ds-accent)!important}
:root.ds-on[data-sms] .reasoning-effort-option.active::after{border-color:var(--ds-line)!important}
:root.ds-on:not([data-sms]) :is(.settings-detail-dialog,.model-pop,.mem-sheet,.akaf-card){box-shadow:0 24px 68px color-mix(in srgb,var(--ds-line) 24%,transparent)!important}
:root.ds-on[data-sms] :is(.settings-detail-dialog,.model-pop,.mem-sheet,.akaf-card){background:var(--ds-card)!important;border:1px solid color-mix(in srgb,var(--ds-line) 18%,transparent)!important;box-shadow:0 24px 60px color-mix(in srgb,var(--ds-line) 30%,transparent)!important}
:root.ds-on[data-sms] body>#apiForm:not([hidden]){background:var(--ds-bg)!important;border:1px solid color-mix(in srgb,var(--ds-line) 18%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] #app .composer{--composer-control-line:var(--ds-line)!important;--composer-control-ink:var(--ds-soft)!important}
:root.ds-on[data-theme="noir"][data-sms] #app .composer .field{background:color-mix(in srgb,var(--ds-card) 62%,transparent)!important;box-shadow:0 3px 10px color-mix(in srgb,var(--ds-line) 5%,transparent),inset 0 1px 1px color-mix(in srgb,var(--ds-line) 90%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] #app .composer.typing-focus .field{border-color:color-mix(in srgb,var(--ds-line) 15%,transparent)!important}
:root.ds-on[data-theme="noir"][data-sms] #app .composer textarea{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] #app .composer textarea::placeholder{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"][data-sms] #app .composer-model-row :is(#clipBtn,#composerModelBtn,#effortBtn0902){background:color-mix(in srgb,var(--ds-card) 88%,transparent)!important;box-shadow:0 3px 8px color-mix(in srgb,var(--ds-line) 7%,transparent),0 1px 2px color-mix(in srgb,var(--ds-line) 4%,transparent),inset 0 1px 0 color-mix(in srgb,var(--ds-line) 95%,transparent)!important}
:root.ds-on .composer-attachment-chip{border:1px solid color-mix(in srgb,var(--ds-line) 14%,transparent)!important;background:var(--ref-glass,color-mix(in srgb,var(--ds-card) 72%,transparent))!important;box-shadow:0 5px 13px color-mix(in srgb,var(--ds-line) 7%,transparent)!important}
:root.ds-on .composer-file-glyph{color:var(--ref-accent,var(--ds-ink))!important}
:root.ds-on .composer-attachment-chip button{background:color-mix(in srgb,var(--ds-card) 8%,transparent)!important}
:root.ds-on[data-theme="noir"] .ak-today[data-ak="health"]:active{background:color-mix(in srgb,var(--ds-accent) 5%,transparent)!important}
:root.ds-on .sable-pocket-btn{border:1px solid color-mix(in srgb,var(--ds-line) 12%,transparent)!important;background:color-mix(in srgb,var(--ds-card) 52%,transparent)!important;box-shadow:0 6px 16px color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .sable-pocket-btn[aria-expanded="true"]{background:color-mix(in srgb,var(--ds-card) 14%,transparent)!important;color:var(--ref-accent,var(--ds-ink))!important}
:root.ds-on .sable-pocket-menu{border:1px solid color-mix(in srgb,var(--ds-line) 12%,transparent)!important;background:color-mix(in srgb,var(--surface,var(--ds-card)) 92%,transparent)!important;box-shadow:0 18px 42px color-mix(in srgb,var(--ds-line) 18%,transparent)!important}
:root.ds-on .sable-pocket-menu>button{border-top:1px solid color-mix(in srgb,var(--ds-line) 8%,transparent)!important}
:root.ds-on .sable-pocket-menu>button:active{background:color-mix(in srgb,var(--ds-accent) 8%,transparent)!important}
:root.ds-on[data-theme="noir"] .sable-pocket-btn{background:color-mix(in srgb,var(--ds-card) 76%,transparent)!important;border-color:color-mix(in srgb,var(--ds-line) 12%,transparent)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"] .sable-pocket-menu{background:color-mix(in srgb,var(--ds-card) 97%,transparent)!important;border-color:color-mix(in srgb,var(--ds-line) 12%,transparent)!important;box-shadow:0 16px 38px color-mix(in srgb,var(--ds-line) 16%,transparent)!important}
:root.ds-on[data-theme="noir"] .together-panel{--listen-blue:var(--ds-accent)!important;--listen-line:var(--ds-line)!important;background:var(--akbg,var(--ds-bg))!important;color:var(--akink,var(--ds-ink))!important}
:root.ds-on[data-theme="noir"] .together-card{background:color-mix(in srgb,var(--ds-card) 28%,transparent)!important}
:root.ds-on[data-theme="noir"] .together-url input,:root.ds-on[data-theme="noir"] .together-paste textarea{background:color-mix(in srgb,var(--ds-card) 20%,transparent)!important}
:root.ds-on[data-theme="noir"] .together-reader-stage{background:color-mix(in srgb,var(--ds-card) 18%,transparent)!important}
:root.ds-on[data-theme="noir"] .together-panel{--together-muted:var(--ds-soft)!important;--together-faint:var(--ds-line)!important}
:root.ds-on[data-theme="noir"] .together-url input,:root.ds-on[data-theme="noir"] .together-paste textarea{background:color-mix(in srgb,var(--ds-card) 22%,transparent)!important}
:root.ds-on[data-theme="noir"] .together-btn.primary{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"] .together-album-art{background:linear-gradient(145deg,color-mix(in srgb,var(--ak-accent) 9%,var(--ds-card)),color-mix(in srgb,var(--ak-accent) 2%,var(--akbg)))!important;box-shadow:0 10px 24px color-mix(in srgb,var(--ds-line) 9%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel{--akbg:var(--ds-bg)!important;--akink:var(--ds-ink)!important;--ak-accent:var(--ds-accent)!important;--akline:var(--ds-line)!important;--akline2:var(--ds-line)!important;--listen-blue:var(--ds-accent)!important;--together-muted:var(--ds-soft)!important;--together-faint:var(--ds-line)!important;background:var(--ds-card)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-album-art{background-color:var(--ds-card)!important;box-shadow:0 0 0 9px var(--ds-line),0 0 0 10px color-mix(in srgb,var(--ds-line) 8%,transparent),0 0 0 22px var(--ds-line),0 0 0 23px color-mix(in srgb,var(--ds-line) 5%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-album-art::before{border-color:color-mix(in srgb,var(--ds-line) 25%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-track-meta{color:var(--ds-soft)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-transport .together-play{color:var(--ds-ink)!important;box-shadow:0 0 0 6px color-mix(in srgb,var(--ds-line) 7%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-note{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-person>span{border:1px solid color-mix(in srgb,var(--ds-line) 35%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-btn.primary{color:var(--ds-on)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-btn.primary:disabled{background:color-mix(in srgb,var(--ds-accent) 6%,transparent)!important;color:var(--ds-on)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-empty{background:color-mix(in srgb,var(--ds-card) 35%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-album-art{box-shadow:7px 12px 23px color-mix(in srgb,var(--ds-line) 15%,transparent),0 0 0 5px var(--ds-line),0 0 0 6px color-mix(in srgb,var(--ds-line) 13%,transparent)!important;background-image:linear-gradient(140deg,var(--ds-card),var(--ds-card))!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-album-art::before{border-color:color-mix(in srgb,var(--ds-line) 35%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel .together-transport .together-play{box-shadow:0 5px 12px color-mix(in srgb,var(--ds-line) 20%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel #togetherMusicChat{box-shadow:0 4px 10px color-mix(in srgb,var(--ds-line) 12%,transparent)!important}
:root.ds-on[data-theme="noir"] #togetherPanel #togetherMusicChat:disabled{color:var(--ds-ink)!important;background:var(--ds-card)!important;border-color:var(--ds-line)!important}
:root.ds-on #togetherChatPlayer{border:1px solid color-mix(in srgb,var(--ds-line) 18%,transparent)!important;background:var(--ref-paper,var(--ds-card))!important;color:var(--ref-ink,var(--ds-ink))!important;box-shadow:0 4px 13px color-mix(in srgb,var(--ds-line) 7%,transparent)!important}
:root.ds-on #togetherChatPlayer .tcm-toggle{color:var(--ds-ink)!important}
:root.ds-on #togetherChatPlayer .tcm-accept{color:var(--ds-ink)!important}
:root.ds-on[data-theme="noir"] #togetherChatPlayer{background:var(--ds-card)!important;color:var(--ds-ink)!important;border-color:color-mix(in srgb,var(--ds-line) 15%,transparent)!important}
:root.ds-on #togetherPanel .together-heading strong,:root.ds-on #momentsPanel .mm-page-title{color:var(--ref-ink,var(--ds-ink))!important}
:root.ds-on #momentsPanel .mm-back,:root.ds-on #togetherPanel .together-back{color:var(--ref-plum,var(--ds-ink))!important}
:root.ds-on[data-sms] #momentsPanel .mm-back,:root.ds-on[data-sms] #togetherPanel .together-back{border:1px solid var(--akline,color-mix(in srgb,var(--ds-line) 16%,transparent))!important;color:var(--akink,var(--ds-ink))!important}
:root.ds-on[data-sms] #momentsPanel .mm-page-title,:root.ds-on[data-sms] #togetherPanel .together-heading strong{color:var(--akink,var(--ds-ink))!important}
/* DIY Studio 2: editor chrome is deliberately independent of draft colors. */
.ds-editor,.ds-picker{font:14px/1.5 system-ui,"Noto Sans SC",sans-serif!important;color:#302f2d!important;background:#f7f5f1!important;box-sizing:border-box;color-scheme:light}
.ds-editor *,.ds-picker *{box-sizing:border-box}
.ds-editor{position:fixed;inset:0;z-index:100100;display:flex;flex-direction:column;isolation:isolate}
.ds-editor button,.ds-editor input,.ds-editor select{font:inherit;color:#302f2d;background:#fffdf9;border:1px solid #ddd8cf;border-radius:12px;min-height:42px;padding:8px 12px;max-width:100%}
.ds-editor button{cursor:pointer}.ds-editor button:disabled{opacity:.4;cursor:default}
.ds-editor button[aria-pressed="true"]{outline:2px solid #826d58;outline-offset:2px}
.ds-editor button:focus-visible,.ds-editor input:focus-visible,.ds-editor summary:focus-visible{outline:3px solid #916842;outline-offset:3px}
.ds-head{display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 20px 10px;border-bottom:1px solid #e6e1d8;flex:none}.ds-head>div{font-size:19px;letter-spacing:.06em}
.ds-content{overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:14px 18px 24px;display:grid;grid-template-columns:minmax(260px,390px) minmax(280px,480px);justify-content:center;align-items:start;gap:24px}
.ds-preview-section{position:sticky;top:0}.ds-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ds-hint{font-size:12px;color:#716b62;line-height:1.6;margin:8px 0}
.ds-frame-wrap{margin-top:12px;border:1px solid #d5cec3;border-radius:22px;overflow:hidden;background:#eee9e0;box-shadow:0 12px 30px #4b382516}
.ds-frame{display:block;width:100%;height:440px;border:0}.ds-panel{min-width:0}.ds-panel h3{font-size:13px;font-weight:600;margin:20px 0 10px}
.ds-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:3px 3px 20px}.ds-editor .ds-slot{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px;padding:8px 2px;border:0;background:transparent;line-height:1.5;white-space:nowrap}.ds-slot i{width:37px;height:37px;border-radius:50%;border:1px solid #0002;display:block}
.ds-palette{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.ds-editor .ds-swatch{width:40px;height:40px;min-height:40px;border-radius:50%;padding:0;border:1px solid #0003}
.ds-custom{display:flex;align-items:center;gap:10px;color:#716b62;font-size:12px;margin-bottom:18px}.ds-editor input[type="color"]{padding:3px;width:42px;min-height:36px;height:36px;cursor:pointer}
.ds-reference{display:block;width:100%;max-height:120px;object-fit:contain;background:#eeeae4;border-radius:10px;margin-top:10px;cursor:crosshair}.ds-editor [hidden]{display:none!important}
.ds-editor .ds-small{font-size:12px;padding:6px 9px;min-height:36px}.ds-editor .ds-ink{min-width:64px}.ds-details{border-top:1px solid #e2ddd4;margin-top:18px;padding-top:12px}.ds-details summary{cursor:pointer;padding:5px 0 10px}.ds-details>button{margin:4px}.ds-range{display:flex;align-items:center;gap:12px;color:#716b62;font-size:12px;margin:8px 0}.ds-range input{min-width:0;flex:1;accent-color:#8a745e}.ds-scheme{display:flex;gap:8px;margin:8px 0}.ds-scheme-open{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left}
.ds-footer{flex:none;border-top:1px solid #e2ddd4;background:#fffdf9;padding:10px 18px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:8px;align-items:center}.ds-footer>input{width:100%;min-width:0}.ds-status{grid-column:1/-1;margin:0;font-size:12px;color:#716b62;min-height:18px}.ds-editor .ds-primary{background:#6c5847;color:#fff;border-color:#6c5847}
.ds-entry{width:100%;border:1px solid var(--hairline,#ddd);border-radius:12px;background:var(--card-bg,#fff);color:var(--text,#333);padding:12px;margin-top:12px;font:inherit;cursor:pointer}
.ds-picker{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));gap:12px}.ds-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ds-pick-viewport{position:relative;flex:1;min-height:100px;overflow:hidden;border-radius:16px;background:repeating-conic-gradient(#e5e0d8 0 25%,#f2eee8 0 50%) 0/20px 20px}.ds-pick-viewport>canvas:first-child{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.ds-loupe{position:absolute;top:10px;right:10px;width:100px;height:100px;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 15px #0003;pointer-events:none}.ds-picker output{padding:6px;flex:1}.ds-picker input[type="range"]{flex:1;min-width:100px;accent-color:#8a745e}
@media(max-width:720px){.ds-content{display:block;padding:12px}.ds-preview-section{position:relative;margin-bottom:20px}.ds-frame{height:330px}.ds-frame-wrap{max-width:430px;margin:10px auto 0}.ds-footer{grid-template-columns:1fr;padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.ds-footer .ds-row{flex-wrap:nowrap;justify-content:space-between}.ds-footer button{font-size:12px;padding:8px 9px}.ds-head{padding-left:14px;padding-right:14px}.ds-status{font-size:11px}.ds-picker{padding-left:12px;padding-right:12px}}
@media(max-width:720px) and (min-height:650px){.ds-content{display:flex;flex-direction:column;overflow:hidden;gap:12px}.ds-preview-section{flex:none;width:100%;margin:0}.ds-preview-section>.ds-row button{min-height:32px;padding:4px 12px}.ds-preview-section>.ds-row .ds-hint{font-size:11px;margin:0}.ds-frame{height:230px}.ds-frame-wrap{margin:6px auto 0;border-radius:16px}.ds-panel{flex:1;min-height:0;width:100%;overflow:auto;padding:4px 3px 18px;overscroll-behavior:contain}.ds-slots{margin-bottom:12px}.ds-slot i{width:32px;height:32px}}
/* Region bindings override local AK variables in both layouts without changing geometry. */
.ds-editor,.ds-picker{background:var(--studio-bg,#f7f5f1)!important;color:var(--studio-ink,#302f2d)!important;font-family:"Noto Serif SC","Songti SC",Georgia,serif!important}
.ds-editor button,.ds-editor input,.ds-editor select{background:var(--studio-card,#fffdf9);color:var(--studio-card-ink,#302f2d);border-color:color-mix(in srgb,var(--studio-ink,#302f2d) 22%,transparent)}
.ds-footer{background:var(--studio-card,#fffdf9)}.ds-hint,.ds-custom,.ds-range,.ds-status{color:var(--studio-ink,#716b62)}.ds-footer .ds-status{color:var(--studio-card-ink,#716b62)}
.ds-editor .ds-primary{background:var(--studio-accent,#6c5847);color:var(--studio-on,#fff);border-color:var(--studio-accent,#6c5847)}
.ds-editor[data-layout="flower"] .ds-head{font-style:italic}.ds-editor[data-layout="flower"] .ds-frame-wrap{box-shadow:0 8px 24px #5b40651a}
.ds-editor[data-layout="noir"] button,.ds-editor[data-layout="noir"] input,.ds-editor[data-layout="noir"] select{border-radius:5px}.ds-editor[data-layout="noir"] .ds-frame-wrap{border-radius:10px;box-shadow:none}.ds-editor[data-layout="noir"] .ds-head{letter-spacing:.08em}.ds-editor[data-layout="noir"] .ds-slot i{border-radius:7px}
:root.ds-on[data-theme] :is(.menu-page,.profile-page){background-image:none!important;background-color:var(--ds-bg)!important}
:root.ds-on :is(.ak-home,.ak-me,.menu-panel,.profile-page,.memory-panel,.moments-panel,.journal-panel,.health-panel){--akbg:var(--ds-bg);--aksurface:var(--ds-card);--akpaper:var(--ds-card);--akink:var(--ds-ink);--akink2:var(--ds-soft);--akmute:var(--ds-soft);--akline:var(--ds-line);--akline2:var(--ds-line);--ak-accent:var(--ds-accent);--akrose:var(--ds-accent)}
:root.ds-on[data-theme] #app{background:var(--ds-bg)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme] #app :is(.topbar,.composer,.noir-ctxbar){background:var(--ds-bg)!important;color:var(--ds-ink)!important}
:root.ds-on[data-theme] #app .scroll{background:transparent!important}
:root.ds-on[data-theme] #app :is(.peerpill .name,.header-actions button,.composer-add-btn,.composer-model-btn){color:var(--ds-accent-ink)!important}
:root.ds-on[data-theme] #app :is(.peerpill .status,.noir-ctxbar,.date-sep,.time){color:var(--ds-soft)!important}
:root.ds-on[data-theme] #app .composer .field{background:var(--ds-card)!important;border-color:var(--ds-line)!important}
:root.ds-on[data-theme] #app .composer textarea{background:transparent!important;color:var(--ds-ink)!important;-webkit-text-fill-color:var(--ds-ink)!important}
:root.ds-on[data-theme] #app .composer textarea::placeholder{color:var(--ds-soft)!important;-webkit-text-fill-color:var(--ds-soft)!important}
:root.ds-on[data-theme] #app :is(.floatbtn.send,.noir-ctx-fill){background:var(--ds-accent)!important;color:var(--ds-on)!important;border-color:var(--ds-accent)!important}
:root.ds-on[data-theme] #app .row.ai .bubble,:root.ds-on[data-theme] #app .row.ai .bubble.bubble-tail::after{background:var(--ds-ai)!important;color:var(--ds-ai-ink)!important}
:root.ds-on[data-theme] #app .row.human .bubble,:root.ds-on[data-theme] #app .row.human .bubble.bubble-tail::after{background:var(--ds-human)!important;color:var(--ds-human-ink)!important}
:root.ds-on[data-theme] #app .row.ai .bubble :is(.txt,.meta-in){color:var(--ds-ai-ink)!important;-webkit-text-fill-color:var(--ds-ai-ink)!important}
:root.ds-on[data-theme] #app .row.human .bubble :is(.txt,.meta-in){color:var(--ds-human-ink)!important;-webkit-text-fill-color:var(--ds-human-ink)!important}
:root.ds-on[data-theme] #app .row .bubble{border-color:var(--ds-line)!important}
/* Wallpaper belongs to the chat scroll only. Menus, login, and profile stay independent. */
:root.ds-on.ds-wall[data-theme] #app .scroll{isolation:isolate;position:relative;background:var(--ds-wall-color)!important}
:root.ds-on.ds-wall[data-theme] #app .scroll::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(0,0,0,var(--ds-wall-dim)),rgba(0,0,0,var(--ds-wall-dim))),var(--ds-wall-image);background-position:center,var(--ds-wall-position);background-size:cover;filter:blur(var(--ds-wall-blur));pointer-events:none;z-index:-1}

/* DIY contrast repair: preserve five chosen fills, derive ink per surface. */
:root.ds-on[data-theme] :is(.settings-card,.settings-hub-row,.fp-card,.mem-card,.jn-ev,.health-card,.menu-item,.ak-card,.model-pop,.settings-detail-dialog,.mem-sheet,.akaf-card,.api-model-menu,.composer .field,.composer-model-btn,.reasoning-effort-select,.journal-entry,.memory-card,.moment-card,.together-card,#togetherPanel){
  --ds-ink:var(--ds-card-ink)!important;--ds-soft:var(--ds-card-soft)!important;--ds-line:var(--ds-card-line)!important;--ds-accent-ink:var(--ds-card-accent-ink)!important;
  --text:var(--ds-card-ink)!important;--text-soft:var(--ds-card-soft)!important;--text-faint:var(--ds-card-soft)!important;--muted:var(--ds-card-soft)!important;
  --akink:var(--ds-card-ink)!important;--akink2:var(--ds-card-soft)!important;--akmute:var(--ds-card-soft)!important;--ref-ink:var(--ds-card-ink)!important;--ref-mauve:var(--ds-card-soft)!important;
  color:var(--ds-card-ink)!important;
}
:root.ds-on[data-theme] #app :is(.peerpill .name,.header-actions button,.composer-add-btn){color:var(--ds-accent-ink)!important}
:root.ds-on[data-theme] #app :is(.composer-model-btn,.reasoning-effort-select){background:var(--ds-card)!important;color:var(--ds-card-ink)!important;border-color:var(--ds-card-line)!important}
:root.ds-on[data-theme][data-sms] #app .composer .field{background:var(--ds-card)!important;border-color:var(--ds-card-line)!important}
:root.ds-on[data-theme] #app .composer textarea{color:var(--ds-card-ink)!important;-webkit-text-fill-color:var(--ds-card-ink)!important}
:root.ds-on[data-theme] #app .composer textarea::placeholder{color:var(--ds-card-soft)!important;-webkit-text-fill-color:var(--ds-card-soft)!important;opacity:1!important}
:root.ds-on[data-theme] #app .floatbtn.send{background:var(--ds-accent)!important;color:var(--ds-on)!important;-webkit-text-fill-color:var(--ds-on)!important}
:root.ds-on[data-theme] #app .floatbtn.send svg{color:inherit!important;stroke:currentColor!important}
:root.ds-on[data-theme][data-sms] #app .floatbtn.send::before{background:var(--ds-on)!important;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 18V6M7.8 10.2 12 6l4.2 4.2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 18V6M7.8 10.2 12 6l4.2 4.2'/%3E%3C/svg%3E") center/contain no-repeat}
:root.ds-on[data-theme][data-sms] .model-pop{background:var(--ds-card)!important;border-color:var(--ds-card-line)!important;box-shadow:0 12px 32px var(--ds-shadow)!important}
:root.ds-on[data-theme][data-sms] .model-pop-row{background:transparent!important;color:var(--ds-card-ink)!important}
:root.ds-on[data-theme][data-sms] .model-pop-row .mp-model{color:var(--ds-card-soft)!important;opacity:1!important}
:root.ds-on[data-theme][data-sms] .model-pop-row.active{background:var(--ds-accent)!important;color:var(--ds-on)!important}
:root.ds-on[data-theme][data-sms] .model-pop-row.active :is(.mp-name,.mp-model){color:var(--ds-on)!important;opacity:1!important}
:root.ds-on[data-theme][data-sms] .model-pop-row.active .mp-dot{background:var(--ds-on)!important;border-color:var(--ds-on)!important}
:root.ds-on[data-theme][data-sms] .model-pop-manage{background:var(--ds-card)!important;color:var(--ds-card-ink)!important;border-color:var(--ds-card-line)!important;box-shadow:none!important}
:root.ds-on[data-theme] #app .row.ai .bubble :is(.time,.meta-in,.txt){color:var(--ds-ai-ink)!important;-webkit-text-fill-color:var(--ds-ai-ink)!important}
:root.ds-on[data-theme] #app .row.human .bubble :is(.time,.meta-in,.txt){color:var(--ds-human-ink)!important;-webkit-text-fill-color:var(--ds-human-ink)!important}
.ds-editor .ds-footer input::placeholder{color:var(--studio-card-ink)!important;opacity:1}
.ds-editor .ds-footer .ds-status{color:var(--studio-card-ink)!important}
.ds-editor .ds-slot{color:var(--studio-ink)!important}
