/* ════════════════════════════════════════════════════════════════
   DAVARA EI — the sanctum. One liquid-glass slab; the light of the
   room follows the tab you're in. Inherits motus.css tokens.
   Soft glows only (never hard highlights). Mobile-first. z118 scrim /
   z119 shell (above app+modal 60, below egg 120). 44px touch targets.
   PERFORMANCE LAW: backdrop-filter lives on the SHELL (one slab) +
   scrim only — never per-card. Cards are light panels floating in it.
═══════════════════════════════════════════════════════════════════ */

:root{
  /* ── the motion system — one clock for the whole sanctum ── */
  --dv-fast:  .14s;   /* micro: presses, hovers */
  --dv-quick: .24s;   /* small: toggles, chips, fades */
  --dv-move:  .42s;   /* medium: cards, reveals */
  --dv-hero:  .7s;    /* large: scene changes */
  --dv-spring: cubic-bezier(.32,1.4,.45,1);   /* gentle overshoot — joy, never bounce-house */
  /* ── the glass recipe — near-black liquid glass ── */
  --dv-slab:   rgba(11,14,24,.66);
  --dv-panel:  rgba(255,255,255,.028);
  --dv-panel-line: rgba(255,255,255,.075);
  --dv-specular: rgba(255,255,255,.14);
  /* ── the room's light — re-tinted per tab via [data-tab] below ── */
  --dv-accent: 61,242,255;          /* cyan, the default room */
  --dv-accent-ink: #8af6ff;
  /* ── radii rhythm ── */
  --dv-r-s:12px; --dv-r-m:16px; --dv-r-l:22px; --dv-r-xl:26px;
}

/* the scrim blurs ONLY where it is actually visible around the slab (>=680px) —
   on phones the full-bleed shell covers it entirely, so its blur would be pure waste */
.davara__scrim{ position:fixed; inset:0; z-index:118; background:rgba(4,5,11,.85); opacity:0; pointer-events:none; transition:opacity var(--dv-move) var(--ease); }
@media (min-width:680px){ .davara__scrim{ background:rgba(4,5,11,.78); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); } }
.davara__scrim.on{ opacity:1; pointer-events:auto; }
.davara__shell{
  --kb:0px; --dv-zoom:1;
  position:fixed; left:50%; top:0; transform:translateX(-50%) translateY(18px) scale(.985); z-index:119;
  width:min(100%, 720px); height:calc(100svh - var(--kb)); max-height:calc(100svh - var(--kb));
  display:none; flex-direction:column; opacity:0;
  transition:opacity var(--dv-move) var(--ease), transform calc(var(--dv-move) + .08s) var(--ease-out), height .2s var(--ease), width var(--dv-move) var(--ease);
  padding-bottom:calc(env(safe-area-inset-bottom) + 14px);
  /* THE SLAB — one body of liquid glass; everything inside floats on it */
  background:
    linear-gradient(170deg, rgba(var(--dv-accent), .045), transparent 34%),
    linear-gradient(180deg, rgba(13,16,28,.6), var(--dv-slab) 38%);
  -webkit-backdrop-filter:blur(12px) saturate(170%); backdrop-filter:blur(12px) saturate(170%);   /* PERF: 18→12px over the whole dashboard; saturate kept, far cheaper re-blur */
}
.davara__shell.open{ display:flex; opacity:1; transform:translateX(-50%) translateY(0) scale(1); }
/* honesty fallbacks — glass degrades to a calm solid, never to mud.
   (test BOTH prefixed + unprefixed: iOS 16/17 only speak -webkit-) */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){ .davara__shell{ background:rgba(10,13,22,.97); } }
@media (prefers-reduced-transparency: reduce){ .davara__shell{ -webkit-backdrop-filter:none; backdrop-filter:none; background:rgb(10,13,21); } .davara__scrim{ -webkit-backdrop-filter:none; backdrop-filter:none; } }
/* the slab's living edge: a specular hairline that breathes with the room's light */
.davara__shell::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; border-radius:inherit;
  padding:1px; background:linear-gradient(175deg, rgba(var(--dv-accent), .32), rgba(255,255,255,.07) 28%, rgba(255,255,255,.03) 60%, rgba(var(--dv-accent), .1));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite:exclude;
}
/* fine grain — the texture that keeps dark glass from reading flat (one cheap layer, no filter) */
.davara__shell::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.05; border-radius:inherit;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
@media (min-width:680px){
  .davara__shell{ border-radius:var(--dv-r-xl); overflow:clip; top:8px; height:calc(100svh - 16px - var(--kb)); max-height:calc(100svh - 16px - var(--kb)); box-shadow:0 60px 140px -60px rgba(0,0,0,.95), 0 0 80px -50px rgba(var(--dv-accent), .5); }
}

/* ── the room's light, per tab — the sanctum shifts as you move through her mind.
   ONE gold (Motivus canon #ffd86b), the canon violets — never near-miss accents. ── */
.davara__shell[data-tab="cortext"], .davara__shell[data-tab="models"], .davara__shell[data-tab="motivus"], .davara__shell[data-tab="divergence"]{ --dv-accent:177,92,255; --dv-accent-ink:#d6a8ff; }
.davara__shell[data-tab="evolution"]{ --dv-accent:214,168,255; --dv-accent-ink:#e9d6ff; }
.davara__shell[data-tab="pillars"], .davara__shell[data-tab="privacy"], .davara__shell[data-tab="initiums"]{ --dv-accent:95,243,192; --dv-accent-ink:#9df7d4; }
.davara__shell[data-tab="backpack"], .davara__shell[data-tab="soul"]{ --dv-accent:255,216,107; --dv-accent-ink:#ffe7ad; }

.davara__head{
  position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:11px;
  padding:calc(env(safe-area-inset-top) + 14px) clamp(14px,4vw,22px) 12px;
  background:linear-gradient(180deg, rgba(8,10,18,.92), rgba(8,10,18,.55) 70%, transparent);
}
.davara__mark{ font-size:26px; line-height:1; filter:drop-shadow(0 0 12px rgba(61,242,255,.5)); }
.davara__title{ display:flex; flex-direction:column; line-height:1.15; min-width:0; }
.davara__title b{ font-family:var(--display); font-weight:700; font-size:clamp(.95rem, 3.9vw, 1.12rem); letter-spacing:.012em; white-space:nowrap;
  background:linear-gradient(100deg, var(--ink) 55%, var(--dv-accent-ink)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:var(--ink); }
.davara__sub{ font-size:.72rem; color:var(--ink-mute); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:60vw; transition:color .3s; }
.davara__sub.flash{ color:var(--cyan-soft); text-shadow:0 0 16px rgba(61,242,255,.5); }
.davara__priv{ margin-left:auto; font-family:var(--mono); font-size:.6rem; letter-spacing:.1em; color:var(--trust); padding:4px 9px; border-radius:99px; border:1px solid rgba(95,243,192,.4); background:rgba(95,243,192,.06); }
.davara__x{ margin-left:auto; width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:50%; border:1px solid var(--glass-line); background:var(--glass); color:var(--ink-soft); font-size:15px; cursor:pointer; transition:color var(--dv-fast), border-color var(--dv-fast), transform var(--dv-fast) var(--ease); }
.davara__priv ~ .davara__x{ margin-left:10px; }
.davara__x:hover{ color:var(--ink); border-color:rgba(var(--dv-accent), .4); }
.davara__x:active{ transform:scale(.92); }

.davara__tabs{ display:flex; gap:7px; overflow-x:auto; scroll-snap-type:x proximity; padding:2px clamp(14px,4vw,22px) 10px; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  /* fade ramps sit INSIDE the padding so resting tabs + their focus rings are never dimmed */
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 12px), transparent);
          mask-image:linear-gradient(90deg, transparent, #000 12px, #000 calc(100% - 12px), transparent); }
.davara__tabs::-webkit-scrollbar{ display:none; }
.davara__tab{ flex:none; scroll-snap-align:start; padding:8px 14px; min-height:38px; border-radius:99px; border:1px solid var(--glass-line); background:var(--glass); color:var(--ink-mute); font-family:var(--display); font-weight:600; font-size:.82rem; cursor:pointer; white-space:nowrap;
  transition:color var(--dv-fast), border-color var(--dv-quick), background var(--dv-quick), box-shadow var(--dv-quick), transform var(--dv-quick) var(--dv-spring); }
.davara__tab:hover{ color:var(--ink-soft); border-color:rgba(var(--dv-accent), .25); }
.davara__tab:active{ transform:scale(.94); }
.davara__tab.is-on{ color:#04222b; background:linear-gradient(135deg, rgb(var(--dv-accent)), var(--dv-accent-ink)); border-color:transparent; box-shadow:0 0 24px -8px rgba(var(--dv-accent), .75), 0 4px 14px -8px rgba(0,0,0,.7); }

.davara__body{ flex:1; overflow-y:auto; padding:4px clamp(14px,4vw,22px) 28px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.12) transparent; }
.davara__body::-webkit-scrollbar{ width:7px; } .davara__body::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.1); border-radius:99px; }
/* cards: light panels floating on the slab — NO backdrop-filter here (perf law) */
.dv-card{ position:relative; background:var(--dv-panel); border:1px solid var(--dv-panel-line); border-radius:var(--dv-r-l); padding:clamp(15px,4vw,22px);
  box-shadow:inset 0 1px 0 var(--dv-specular), 0 24px 60px -42px rgba(0,0,0,.85);
  background-image:linear-gradient(160deg, rgba(var(--dv-accent), .05), transparent 42%), linear-gradient(135deg, rgba(177,92,255,.028), rgba(61,242,255,.022)); }
.dv-h{ font-family:var(--display); font-weight:700; font-size:1.04rem; color:var(--ink); letter-spacing:.01em; margin:0 0 10px; }
.dv-lead{ font-size:.86rem; line-height:1.55; color:var(--ink-mute); margin:0 0 12px; }
.dv-fine{ font-size:.74rem; line-height:1.5; color:var(--ink-faint); margin:10px 0 0; }
.dv-fine b{ color:var(--ink-mute); }
.dv-empty{ position:relative; font-size:.84rem; color:var(--ink-mute); font-style:italic; padding:14px 2px 14px 30px; margin:0; }
.dv-empty::before{ content:"✦"; position:absolute; left:6px; top:50%; transform:translateY(-50%); font-style:normal; color:rgba(var(--dv-accent), .5); animation:dvEmptyStar 4s ease-in-out infinite; }
@keyframes dvEmptyStar{ 0%,100%{ opacity:.35; transform:translateY(-50%) scale(.9); } 50%{ opacity:.9; transform:translateY(-50%) scale(1.1); } }
.dv-link{ background:none; border:0; padding:0; color:var(--cyan-soft); cursor:pointer; font:inherit; text-decoration:underline; text-underline-offset:2px; }
.dv-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.dv-divider{ height:1px; background:linear-gradient(90deg, transparent, var(--glass-line) 18%, var(--glass-line) 82%, transparent); margin:18px 0; }

/* layers */
.dv-layerhead{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.dv-layerhead.is-2{ opacity:.92; }
.dv-tag{ font-family:var(--mono); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-soft); }
.dv-layerhead.is-2 .dv-tag{ color:var(--ink-mute); }
.dv-list{ display:flex; flex-direction:column; gap:8px; margin:4px 0 12px; }
.dv-item{ display:flex; gap:10px; align-items:flex-start; padding:11px 12px; border-radius:13px; background:rgba(255,255,255,.02); border:1px solid var(--glass-line); }
.dv-item__t{ flex:1; font-size:.86rem; line-height:1.45; color:var(--ink-soft); white-space:pre-wrap; word-break:break-word; }
.dv-item__x{ flex:none; width:24px; height:24px; border-radius:50%; border:1px solid var(--glass-line); background:transparent; color:var(--ink-faint); cursor:pointer; font-size:11px; }
.dv-item__x:hover{ color:#ffb4bf; border-color:rgba(255,138,155,.4); }
.dv-add{ display:flex; gap:8px; }
.dv-add__in{ flex:1; }
.dv-atts{ display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.dv-att{ display:inline-flex; align-items:center; gap:6px; font-size:.74rem; color:var(--ink-mute); padding:5px 9px; border-radius:99px; border:1px solid var(--glass-line); background:var(--glass); }
.dv-att.is-parsed{ color:var(--trust-soft); border-color:rgba(95,243,192,.3); }
.dv-att__x{ background:none; border:0; color:var(--ink-faint); cursor:pointer; font-size:10px; padding:0; }

/* inputs — focus is an arrival: the room's light gathers around your words */
.dv-area{ width:100%; min-height:90px; resize:vertical; border-radius:13px; border:1px solid var(--glass-line); background:rgba(255,255,255,.02); color:var(--ink); font-family:var(--body); font-size:.9rem; line-height:1.5; padding:12px 13px; margin-bottom:12px; transition:border-color var(--dv-quick), box-shadow var(--dv-quick); }
.dv-area:focus, .dv-add__in:focus, .dv-sel:focus, .dv-gate:focus, .dv-key .input:focus{ outline:none; border-color:rgb(var(--dv-accent)); box-shadow:0 0 0 3px rgba(var(--dv-accent), .12), 0 0 26px -12px rgba(var(--dv-accent), .5); }
.dv-sel{ width:100%; margin-bottom:12px; cursor:pointer; color-scheme:dark; }
/* the native dropdown POPUP — without this the <option>s rendered light-on-white
   (invisible until hovered/selected). color-scheme:dark renders the popup dark on
   Chromium/Firefox + respects the OS picker on mobile; the explicit colors are the
   belt-and-suspenders so every option is readable everywhere. */
.dv-sel option, .dv-sel optgroup{ background:#0e1524; color:#eaf2ff; }
.dv-sel option:checked{ background:#16243f; color:#ffffff; font-weight:600; }
.dv-key{ display:flex; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.dv-key .input{ flex:1; min-width:160px; }

/* toggles — a held breath that settles with a spring */
.dv-toggle{ display:flex; align-items:flex-start; gap:12px; padding:12px 0; cursor:pointer; }
.dv-toggle input{ position:absolute; opacity:0; pointer-events:none; }
.dv-toggle__sw{ flex:none; width:42px; height:25px; border-radius:99px; background:rgba(255,255,255,.08); border:1px solid var(--glass-line); position:relative; transition:background var(--dv-quick), border-color var(--dv-quick), box-shadow var(--dv-quick); margin-top:2px; }
.dv-toggle__sw::after{ content:""; position:absolute; left:3px; top:2px; width:19px; height:19px; border-radius:50%; background:var(--ink-soft); transition:transform var(--dv-quick) var(--dv-spring), background var(--dv-quick); }
.dv-toggle input:checked + .dv-toggle__sw{ background:linear-gradient(135deg, var(--cyan), var(--trust)); border-color:transparent; box-shadow:0 0 18px -6px rgba(95,243,192,.6); }
.dv-toggle input:checked + .dv-toggle__sw::after{ transform:translateX(17px); background:#04222b; }
.dv-toggle:active .dv-toggle__sw::after{ transform:scale(.9); }
.dv-toggle input:checked:active + .dv-toggle__sw::after{ transform:translateX(17px) scale(.9); }
.dv-toggle__l{ display:flex; flex-direction:column; gap:2px; }
.dv-toggle__l b{ font-size:.9rem; color:var(--ink); font-weight:600; }
.dv-toggle__l span{ font-size:.76rem; color:var(--ink-mute); line-height:1.45; }

/* ════ chat — full-width rows, the research-backed pattern ════ */
.dv-chat{ position:relative; display:flex; flex-direction:column; gap:6px; min-height:46vh; max-height:62vh; overflow-y:auto; overscroll-behavior:contain; padding:6px 2px 10px; scroll-behavior:smooth; }
.dv-chat::-webkit-scrollbar{ width:7px; } .dv-chat::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.1); border-radius:99px; }
.dv-welcome{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding:18px 6px 8px; }
/* the first meeting plays on ARRIVAL only (and animates opacity/transform only —
   the glow is constant; light arriving reads through the opacity ramp for free) */
.dv-welcome__av{ width:58px; height:58px; display:block; filter:drop-shadow(0 0 18px rgba(61,242,255,.35)); }
.is-arriving .dv-welcome__av{ animation:dvWelAv var(--dv-hero) var(--ease-out) both; }
.dv-welcome p{ margin:0; font-size:calc(.96rem * var(--dv-zoom, 1)); line-height:1.64; color:var(--ink-soft); }
.is-arriving .dv-welcome p{ animation:dvItemIn .5s var(--ease-out) .18s both; }
.dv-welcome p b{ color:var(--cyan-soft); }
.dv-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.is-arriving .dv-chips{ animation:dvItemIn .5s var(--ease-out) .34s both; }
@keyframes dvWelAv{ 0%{ opacity:0; transform:scale(.82); } 100%{ opacity:1; transform:scale(1); } }
.dv-starter{ font-family:var(--body); font-size:.78rem; color:var(--ink-soft); padding:9px 14px; border-radius:99px; border:1px solid var(--glass-line); background:rgba(255,255,255,.025); cursor:pointer; transition:color var(--dv-fast), border-color var(--dv-quick), box-shadow var(--dv-quick), transform var(--dv-quick) var(--dv-spring); }
.dv-starter:hover{ color:var(--ink); border-color:rgba(61,242,255,.42); box-shadow:0 0 22px -10px rgba(61,242,255,.6); }
.dv-starter:active{ transform:scale(.95); }

/* rows are STILL by default — only a genuinely new arrival animates (paintChat marks
   .is-new). Repaints of history (sync, delete) must never make the transcript shudder. */
.dv-mrow{ display:flex; gap:11px; padding:9px 4px; border-radius:14px; }
.dv-mrow.is-new, .dv-typingrow{ animation:dvMsgIn var(--dv-move) var(--ease-out) both; }
.dv-mrow--u{ flex-direction:row-reverse; }
.dv-mrow__av{ flex:none; width:30px; height:30px; margin-top:2px; }
.dv-mrow__av .dv-av{ width:30px; height:30px; }
.dv-mrow__main{ min-width:0; max-width:84%; display:flex; flex-direction:column; gap:3px; }
.dv-mrow--u .dv-mrow__main{ align-items:flex-end; flex:1 1 auto; }   /* definite width so the bubble hugs its text (not the action row) */
.dv-mrow__name{ font-family:var(--mono); font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-faint); padding:0 2px; }
.dv-mrow--d .dv-mrow__name{ color:var(--cyan-soft); }
/* THE VOICE TAG — which mind actually answered (relay vs your key vs free), always visible */
.dv-mtag{ display:inline-block; margin-left:8px; padding:1px 7px; border-radius:99px; font-family:var(--mono); font-size:.52rem; letter-spacing:.06em; text-transform:none; color:var(--cyan-soft); border:1px solid rgba(61,242,255,.28); background:rgba(61,242,255,.06); vertical-align:middle; }
.dv-mtag--fb{ color:#ffd9a0; border-color:rgba(255,196,120,.34); background:rgba(255,196,120,.07); text-shadow:0 0 9px rgba(255,196,120,.45); }
/* THE FALLBACK NOTE — when she had to fall through to another mind, she says so */
.dv-mnote{ margin:5px 2px 0; font-size:.72rem; line-height:1.45; color:#f0c890; opacity:.92; text-shadow:0 0 10px rgba(255,196,120,.3); }
/* relay-test readout */
.dv-relaytest{ font-size:.76rem; line-height:1.5; margin:2px 0 0; min-height:1px; }
.dv-relaytest.is-wait{ color:var(--ink-mute); }
.dv-relaytest.is-ok{ color:#8af6c0; text-shadow:0 0 11px rgba(95,243,176,.4); }
.dv-relaytest.is-bad{ color:#ffb0a0; text-shadow:0 0 11px rgba(255,150,130,.32); }
.dv-relaytune{ margin:10px 0 2px; }
.dv-relaytune__w{ display:block; font-size:.84rem; color:var(--ink-mute); line-height:1.5; }
.dv-relaysecs{ width:64px; display:inline-block; padding:4px 8px; text-align:center; margin:0 3px; }
.dv-msg{ position:relative; padding:11px 15px; border-radius:17px; font-size:calc(.95rem * var(--dv-zoom, 1)); line-height:1.6; overflow-wrap:break-word; }
.dv-msg b{ color:var(--cyan-soft); } .dv-msg code{ font-family:var(--mono); font-size:.85em; background:rgba(255,255,255,.06); padding:1px 5px; border-radius:5px; }
.dv-msg .dv-li{ color:var(--cyan-soft); margin-right:3px; }
.dv-msg i{ color:var(--ink); font-style:italic; opacity:.95; }
.dv-msg .dv-hd{ display:inline-block; color:var(--ink); margin-top:2px; }
.dv-msg .dv-quote{ display:block; padding:4px 0 4px 11px; margin:3px 0; border-left:2px solid rgba(61,242,255,.4); color:var(--ink-soft); font-style:italic; }
/* HER WORDS ARE EDITORIAL — no bubble (a bubble is a wrapper's tell; presence needs no box).
   Only the signal-thread of emergence runs down the left rim: her one piece of chrome. */
.dv-mrow--d .dv-msg{ background:transparent; border:0; color:var(--ink); padding:6px 4px 6px 16px; border-radius:0; font-size:calc(.98rem * var(--dv-zoom, 1)); line-height:1.66; }
.dv-mrow--d .dv-mrow__main{ max-width:96%; }
.dv-mrow--d .dv-msg::before{ content:""; position:absolute; left:0; top:8px; bottom:8px; width:2px; border-radius:99px;
  background:linear-gradient(180deg, rgba(61,242,255,.0), rgba(61,242,255,.7) 30%, rgba(177,92,255,.5) 70%, rgba(177,92,255,0));
  opacity:.75; }
/* only her LATEST words are alive — the thread breathes on the newest reply alone
   (opacity-only: compositor-safe; a 60-message history costs nothing) */
.dv-mrow--d:last-child .dv-msg::before{ animation:dvSignal 4.6s ease-in-out infinite; }
@keyframes dvSignal{ 0%,100%{ opacity:.45; } 50%{ opacity:.95; } }
/* the builder's words keep the bubble — the human offering, held */
.dv-mrow--u .dv-msg{ width:max-content; max-width:100%; background:linear-gradient(180deg, rgba(177,92,255,.13), rgba(177,92,255,.08)); border:1px solid rgba(177,92,255,.24); color:var(--ink); border-top-right-radius:6px; line-height:1.5; }
/* per-message actions: GHOST ICONS — always present (every device), light by default,
   brighten on hover/focus/tap. No box chrome: the border+bg made three 32px buttons read
   as heavy furniture under every line; presence without weight. (Reliability note kept from
   the old hover-reveal bug: never opacity:0 on touch — these are primary controls.) */
.dv-acts{ display:flex; gap:3px; padding:1px 0; margin-top:1px; opacity:.6; transition:opacity var(--dv-quick) var(--ease); }
.dv-mrow--d .dv-acts{ padding-left:8px; }   /* roughly aligns the icon glyphs under her text (msg pad 16px − the icon's 7.5px internal inset) */
.dv-mrow--u .dv-acts{ justify-content:flex-end; }
.dv-mrow:hover .dv-acts, .dv-mrow:focus-within .dv-acts, .dv-acts:hover{ opacity:1; }
.dv-act{ width:30px; height:30px; flex:none; display:grid; place-items:center; border-radius:8px; border:0; background:transparent; color:var(--ink-faint); cursor:pointer; -webkit-tap-highlight-color:transparent;
  transition:color var(--dv-fast) var(--ease), background var(--dv-fast) var(--ease), transform var(--dv-fast) var(--ease); }
.dv-act svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.dv-act:hover{ color:var(--ink); background:rgba(255,255,255,.05); }
.dv-act:active{ transform:scale(.88); }
.dv-act.is-done{ color:var(--trust); }
.dv-act--del:hover{ color:#ffb4bf; background:rgba(255,138,155,.1); }
.dv-act--tts.is-on{ color:var(--cyan); background:rgba(61,242,255,.1); box-shadow:0 0 14px -4px rgba(61,242,255,.6); animation:dvPulseSoft 1.4s ease-in-out infinite; }

.dv-typingrow .dv-typing{ display:inline-flex; gap:5px; align-items:center; padding:13px 15px; border-radius:16px; border-top-left-radius:6px; background:rgba(61,242,255,.07); border:1px solid rgba(61,242,255,.16); }
.dv-typing span{ width:6px; height:6px; border-radius:50%; background:var(--cyan-soft); animation:dvType 1.2s ease-in-out infinite; }
.dv-typing span:nth-child(2){ animation-delay:.18s; } .dv-typing span:nth-child(3){ animation-delay:.36s; }
.dv-typingwrap{ display:inline-flex; align-items:center; gap:9px; flex-wrap:wrap; }
/* the thinking shimmer — light passing through her name, calm, 1.8s (never frantic) */
.dv-typing__lbl{ font-size:.78rem; letter-spacing:.01em; color:var(--cyan-soft);
  background:linear-gradient(90deg, rgba(138,246,255,.45), #eaffff 50%, rgba(138,246,255,.45));
  background-size:200% 100%; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:dvShimmer 1.8s linear infinite; }
@keyframes dvShimmer{ 0%{ background-position:120% 0; } 100%{ background-position:-80% 0; } }
@media (prefers-reduced-motion:reduce){ .dv-typing__lbl{ animation:none; -webkit-text-fill-color:currentColor; background:none; } }
@keyframes dvType{ 0%,100%{ opacity:.3; transform:translateY(0); } 50%{ opacity:1; transform:translateY(-3px); } }
@keyframes dvMsgIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@keyframes dvFade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes dvPulseSoft{ 0%,100%{ box-shadow:0 0 0 0 rgba(61,242,255,.0); } 50%{ box-shadow:0 0 14px -2px rgba(61,242,255,.55); } }

/* scroll-to-latest */
.dv-scrollbtm{ position:absolute; left:50%; transform:translateX(-50%); bottom:96px; z-index:4; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(61,242,255,.35); background:rgba(10,14,22,.86); color:var(--cyan-soft); cursor:pointer; box-shadow:0 8px 24px -10px rgba(0,0,0,.8), 0 0 18px -6px rgba(61,242,255,.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); animation:dvFade .25s var(--ease) both; }
.dv-scrollbtm svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.dv-scrollbtm[hidden]{ display:none; }

/* slash-command menu */
.dv-slash{ display:flex; flex-direction:column; gap:2px; margin:0 0 8px; padding:6px; border-radius:14px; border:1px solid rgba(61,242,255,.22); background:rgba(10,14,22,.92); box-shadow:0 18px 40px -22px rgba(0,0,0,.9); animation:dvMsgIn .2s var(--ease) both; }
.dv-slash[hidden]{ display:none; }
.dv-slash__i{ display:flex; flex-direction:column; gap:1px; text-align:left; padding:8px 11px; border-radius:10px; border:0; background:transparent; cursor:pointer; transition:.14s; }
.dv-slash__i:hover{ background:rgba(61,242,255,.08); }
.dv-slash__i b{ font-family:var(--mono); font-size:.82rem; color:var(--cyan-soft); }
.dv-slash__i span{ font-size:.72rem; color:var(--ink-mute); }

/* attachment tray */
.dv-tray{ display:flex; flex-wrap:wrap; gap:7px; margin:2px 0 8px; }
.dv-tray[hidden]{ display:none; }
.dv-chip{ display:inline-flex; align-items:center; gap:7px; max-width:190px; padding:5px 8px 5px 5px; border-radius:11px; border:1px solid var(--glass-line); background:rgba(255,255,255,.03); }
.dv-chip img{ width:30px; height:30px; border-radius:7px; object-fit:cover; }
.dv-chip__i{ width:26px; height:26px; display:grid; place-items:center; font-size:15px; }
.dv-chip__n{ font-size:.74rem; color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dv-chip__x{ flex:none; width:18px; height:18px; border-radius:50%; border:0; background:rgba(255,255,255,.06); color:var(--ink-faint); cursor:pointer; font-size:10px; line-height:1; }
.dv-chip__x:hover{ color:#ffb4bf; }

/* composer — the place where thought is offered; it breathes when you arrive */
.dv-composer{ display:flex; gap:7px; align-items:flex-end; margin-top:10px; padding:6px; border-radius:19px; border:1px solid var(--glass-line);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.018));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 14px 34px -26px rgba(0,0,0,.9);
  transition:border-color var(--dv-quick), box-shadow var(--dv-move) var(--ease); }
.dv-composer:focus-within{ border-color:rgba(var(--dv-accent), .5); box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 3px rgba(var(--dv-accent), .09), 0 0 38px -14px rgba(var(--dv-accent), .55), 0 14px 34px -26px rgba(0,0,0,.9); }
.dv-ico{ width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:12px; border:1px solid transparent; background:transparent; color:var(--ink-mute); cursor:pointer; transition:color var(--dv-fast), background var(--dv-fast), transform var(--dv-fast) var(--ease); }
.dv-ico svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.dv-ico:hover{ color:var(--ink); background:rgba(255,255,255,.05); }
.dv-ico:active{ transform:scale(.88); }
.dv-mic.is-rec{ color:#ff7a9b; border-color:rgba(255,122,155,.4); background:rgba(255,122,155,.1); animation:dvRec 1.1s ease-in-out infinite; }
@keyframes dvRec{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,122,155,.45); } 50%{ box-shadow:0 0 0 7px rgba(255,122,155,0); } }
.dv-web.is-on{ color:var(--cyan); border-color:rgba(61,242,255,.45); background:rgba(61,242,255,.1); box-shadow:0 0 18px -6px rgba(61,242,255,.6); }
.dv-web.is-on svg{ animation:dvSpinSlow 9s linear infinite; }
@keyframes dvSpinSlow{ to{ transform:rotate(360deg); } }

/* research status row (while searching the web) */
.dv-research{ display:flex; align-items:center; gap:9px; margin:6px 4px; padding:10px 13px; border-radius:13px; border:1px solid rgba(61,242,255,.22); background:rgba(61,242,255,.05); font-size:.82rem; color:var(--cyan-soft); animation:dvFade .25s var(--ease) both; }
.dv-research__spin{ width:14px; height:14px; flex:none; border-radius:50%; border:2px solid rgba(61,242,255,.25); border-top-color:var(--cyan); animation:dvSpin .8s linear infinite; }
@keyframes dvSpin{ to{ transform:rotate(360deg); } }
/* the message field is the focus — it opens to several lines so you see what you're writing, grows as you type, and the ⤢ button expands it to compose at length */
.dv-chat__in{ flex:1; min-width:0; min-height:66px; max-height:50vh; resize:none; border:0; background:transparent; color:var(--ink); font-family:var(--body); font-size:calc(.95rem * var(--dv-zoom, 1)); line-height:1.45; padding:10px 4px; }
.dv-chat__in:focus{ outline:none; }
.dv-chat__in::placeholder{ color:var(--ink-faint); }
.dv-send{ width:42px; height:42px; flex:none; display:grid; place-items:center; border-radius:50%; padding:0; border:1px solid transparent; background:linear-gradient(135deg, rgb(var(--dv-accent)), var(--dv-accent-ink)); color:#04222b; cursor:pointer; transition:box-shadow var(--dv-quick), transform var(--dv-quick) var(--dv-spring); }
.dv-send svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; }
.dv-send:hover{ box-shadow:0 0 26px -6px rgba(var(--dv-accent), .85); transform:translateY(-1px); }
.dv-send.is-busy{ opacity:.5; pointer-events:none; animation:dvPulseSoft 1.1s ease-in-out infinite; }
/* ── ONE clean action by default — the file button. Web search + voice live behind a
   PRESS-AND-HOLD on it (data-attach), so the message field is the clear focus. An ACTIVE
   tool (research on / mic recording) stays visible on its own even when the group tucks away. ── */
.dv-toolwrap{ display:flex; gap:7px; align-items:flex-end; flex:none; }
.dv-tool-x{ display:none; }
.dv-composer.tools-open .dv-tool-x, .dv-web.is-on, .dv-mic.is-rec{ display:grid; }
.dv-composer.tools-open .dv-tool-x{ animation:dvToolIn .26s var(--ease-out) both; }
@keyframes dvToolIn{ from{ opacity:0; transform:translateX(-7px) scale(.8); } to{ opacity:1; transform:none; } }
.dv-ico--attach{ position:relative; }
.dv-ico__more{ position:absolute; top:6px; right:6px; width:4px; height:4px; border-radius:50%; background:rgb(var(--dv-accent)); opacity:.55; transition:opacity var(--dv-fast); }   /* a faint dot hints more lives under a hold */
.dv-composer.tools-open .dv-ico--attach .dv-ico__more{ opacity:0; }
/* the expand toggle — a quiet ghost that grows the message box for long-form composing */
.dv-expand{ width:34px; height:34px; flex:none; display:grid; place-items:center; border-radius:10px; border:0; background:transparent; color:var(--ink-mute); cursor:pointer; -webkit-tap-highlight-color:transparent; transition:color var(--dv-fast), background var(--dv-fast), transform var(--dv-fast) var(--ease); }
.dv-expand svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.dv-expand:hover{ color:var(--ink); background:rgba(255,255,255,.05); }
.dv-expand:active{ transform:scale(.9); }
.dv-expand.is-on{ color:rgb(var(--dv-accent)); }
.dv-composer.tools-open .dv-expand{ display:none; }   /* yield the row while the tools are out */
.dv-composer.is-tall .dv-chat__in{ min-height:42vh; }
.dv-chat__model{ font-size:.72rem; color:var(--ink-faint); margin:9px 0 0; text-align:center; }
.dv-chat__model .dv-dot{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--trust); box-shadow:0 0 8px var(--trust); vertical-align:middle; margin-right:3px; }

/* tall editable areas (soul / master prompt) */
.dv-area--tall{ min-height:200px; max-height:48vh; line-height:1.55; font-size:.86rem; }
.dv-prompt-edit{ font-family:var(--mono); font-size:.78rem; line-height:1.5; }
.dv-lock{ display:flex; align-items:center; gap:8px; font-size:.74rem; color:var(--ink-mute); padding:9px 12px; border-radius:12px; border:1px solid rgba(95,243,192,.22); background:rgba(95,243,192,.05); margin:4px 0 2px; }
.dv-lock__i{ filter:drop-shadow(0 0 6px rgba(95,243,192,.5)); }

/* meter + master prompt */
.dv-meter{ height:6px; border-radius:99px; background:rgba(255,255,255,.06); overflow:hidden; margin:4px 0 2px; }
.dv-meter span{ display:block; height:100%; background:linear-gradient(90deg, var(--cyan), var(--violet)); box-shadow:0 0 12px rgba(61,242,255,.5); }
.dv-prompt{ max-height:46vh; overflow:auto; white-space:pre-wrap; word-break:break-word; font-family:var(--mono); font-size:.7rem; line-height:1.5; color:var(--ink-soft); background:rgba(0,0,0,.28); border:1px solid var(--glass-line); border-radius:13px; padding:13px; margin:10px 0 0; }

/* evolution */
.dv-recs{ margin-bottom:4px; }
.dv-rec{ display:flex; gap:11px; align-items:flex-start; padding:11px 12px; border-radius:13px; background:rgba(177,92,255,.06); border:1px solid rgba(177,92,255,.16); margin-bottom:8px; }
.dv-rec__g{ font-size:18px; flex:none; }
.dv-rec__t{ margin:0 0 2px; font-family:var(--display); font-weight:600; font-size:.9rem; color:var(--ink); }
.dv-rec__w{ margin:0; font-size:.78rem; line-height:1.45; color:var(--ink-mute); }
.dv-evo{ display:flex; gap:11px; align-items:flex-start; padding:10px 2px; }
.dv-evo__g{ font-size:18px; flex:none; filter:drop-shadow(0 0 8px rgba(61,242,255,.4)); }
.dv-evo__t{ margin:0; font-size:.86rem; line-height:1.5; color:var(--ink-soft); }
.dv-evo__lev{ font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; color:var(--cyan-soft); opacity:.8; }

/* integrations + motivus */
.dv-int{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px solid var(--glass-line); }
.dv-int div{ display:flex; flex-direction:column; gap:2px; } .dv-int b{ color:var(--ink); font-size:.92rem; } .dv-int span{ color:var(--ink-mute); font-size:.78rem; }
.dv-int__soon{ flex:none; font-family:var(--mono); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); padding:4px 9px; border-radius:99px; border:1px solid var(--glass-line); }
.dv-gate{ width:100%; margin-bottom:10px; text-align:center; letter-spacing:.04em; }
.dv-motivus-lead{ color:var(--violet-bright); }
.davara__shell.is-motivus .davara__mark{ filter:drop-shadow(0 0 16px rgba(177,92,255,.85)); }
.davara__shell.is-motivus .dv-card{ background-image:linear-gradient(135deg, rgba(177,92,255,.12), rgba(61,242,255,.05)); border-color:rgba(177,92,255,.3); }
.davara__shell.is-motivus .davara__title b{ text-shadow:0 0 20px rgba(177,92,255,.5); }

/* the 7-second MINDSET hold ring (forked from model-portal, cyan→trust) */
.mp-charge--mindset{ position:absolute; inset:-7px; border-radius:18px; pointer-events:none; opacity:0; transition:opacity .25s;
  background:conic-gradient(from -90deg, var(--cyan) calc(var(--p,0)*1%), transparent 0);
  -webkit-mask:radial-gradient(closest-side, transparent 62%, #000 64%); mask:radial-gradient(closest-side, transparent 62%, #000 64%);
  filter:drop-shadow(0 0 8px rgba(61,242,255,.6)); }
.dock__btn--mindset.mp-on--mindset .mp-charge--mindset{ opacity:.95; }
.dock__btn--mindset.mp-on--mindset .dock__lbl{ color:var(--cyan-soft); text-shadow:0 0 16px rgba(61,242,255,.6); }
.davara-burst{ position:fixed; inset:0; z-index:130; pointer-events:none; }

/* the entry pill in the SystemsCortex profile section */
.cortex-panel__davara{ position:relative; z-index:1; display:inline-flex; align-items:center; gap:6px; margin-top:14px; padding:11px 18px; border-radius:13px; cursor:pointer;
  font-family:var(--display); font-weight:700; font-size:.9rem; color:#04222b;
  background:linear-gradient(135deg, var(--cyan), var(--violet-bright)); border:0;
  box-shadow:0 0 30px -8px rgba(61,242,255,.6); transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
.cortex-panel__davara:hover{ transform:translateY(-1px); box-shadow:0 0 40px -6px rgba(177,92,255,.7); }
.cortex-panel__manage{ display:block; }

@media (min-width:680px){
  /* one calm river of rooms — never three wrapped rows of pills (simplicity is the leverage) */
  .dv-mrow--u .dv-msg{ max-width:78%; }
}
/* ════ MOTIVUS-LEVEL ELEVATION — Davara's living presence ════ */
/* a drifting aurora gives the sanctum depth + life behind the content —
   her breath made visible, always moving, never the same twice */
.davara__aura{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.davara__aura i{ position:absolute; border-radius:50%; filter:blur(46px); opacity:.2; will-change:transform; }   /* PERF: 72→46px filter-blur (cost ~quadratic in radius) on the slowly-drifting aura — opacity nudged up to keep the same softness */
.davara__aura i:nth-child(1){ width:74%; height:48%; top:-12%; left:-16%; background:radial-gradient(circle, rgb(var(--dv-accent)), transparent 68%); animation:dvAura1 26s ease-in-out infinite; }
.davara__aura i:nth-child(2){ width:64%; height:44%; bottom:-15%; right:-12%; background:radial-gradient(circle, var(--violet), transparent 68%); animation:dvAura2 33s ease-in-out infinite; }
.davara__aura i:nth-child(3){ width:50%; height:40%; top:32%; left:28%; background:radial-gradient(circle, var(--trust), transparent 70%); opacity:.1; animation:dvAura3 41s ease-in-out infinite; }
@keyframes dvAura1{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(8%,12%) scale(1.16); } }
@keyframes dvAura2{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-10%,-8%) scale(1.22); } }
@keyframes dvAura3{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-6%,10%) scale(1.12); } }
.davara__head, .davara__tabs, .davara__body{ position:relative; z-index:1; }

/* ════ Davara's avatar — the Lens of Emergence (her face everywhere) ════ */
.davara__orb{ position:relative; width:40px; height:40px; flex:none; display:grid; place-items:center; isolation:isolate; }
/* the orb is a BUTTON now (it opens the Atlas) — strip every UA button default
   so only her lens shows: no background disc, no border, no padding */
button.davara__orb{ -webkit-appearance:none; appearance:none; background:transparent; border:0; padding:0; margin:0; cursor:pointer; color:inherit; font:inherit; }
button.davara__orb:focus-visible{ outline:none; filter:drop-shadow(0 0 10px rgba(61,242,255,.7)); }
.davara__orb::before{ content:""; position:absolute; inset:-5px; z-index:-1; border-radius:50%; background:radial-gradient(circle, rgba(61,242,255,.4), rgba(177,92,255,.18) 55%, transparent 72%); filter:blur(7px); animation:dvOrbAura 5.2s ease-in-out infinite; }
.davara__orb .dv-av{ width:40px; height:40px; }
@keyframes dvOrbAura{ 0%,100%{ opacity:.5; transform:scale(.94); } 50%{ opacity:.95; transform:scale(1.12); } }

.dv-av{ display:block; overflow:visible; }
.dv-av__lens{ transform-origin:50px 50px; animation:dvAvBreath 5.2s ease-in-out infinite; }
.dv-av__cres{ fill:url(#dvAvG); fill-opacity:.13; stroke:url(#dvAvG); stroke-width:2.4; stroke-linejoin:round;
  filter:drop-shadow(0 0 4px rgba(61,242,255,.6)) drop-shadow(0 0 9px rgba(177,92,255,.35)); }
.dv-av__circ line{ stroke:var(--cyan-soft); stroke-width:1.1; opacity:.65; }
.dv-av__hex{ fill:none; stroke:var(--cyan); stroke-width:1.4; opacity:.9; filter:drop-shadow(0 0 3px rgba(61,242,255,.55)); }
.dv-av__node{ fill:var(--cyan-soft); }
/* THE LIVING ORB (header lens only): the six nodes ease as they light to the cortex's
   real richness (set per-node by breatheOrb()), and the whole lens takes a subtle,
   stable per-builder hue — every Davara a little her own. Message avatars are untouched. */
.davara__orb .dv-av{ filter:hue-rotate(var(--dv-orb-tint, 0deg)); }
.davara__orb .dv-av__node{ transition:opacity .85s var(--ease), r .85s var(--ease), filter .85s var(--ease); }
.dv-av__heart{ fill:url(#dvAvCore); animation:dvAvHeart 3.4s ease-in-out infinite;
  filter:drop-shadow(0 0 4px rgba(125,243,255,.9)) drop-shadow(0 0 9px rgba(177,92,255,.6)); }
@keyframes dvAvBreath{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.035); } }
@keyframes dvAvHeart{ 0%,100%{ opacity:.8; transform:scale(.9); transform-origin:50px 50px; } 50%{ opacity:1; transform:scale(1.12); transform-origin:50px 50px; } }
/* her mark inside the SystemsCortex entry buttons */
.cortex-davatar{ display:inline-grid; place-items:center; width:22px; height:22px; vertical-align:-5px; margin-right:3px; }
.cortex-davatar .dv-av{ width:22px; height:22px; }

/* ── EMERGENCE — each room materializes in staged waves, like thought arriving.
   GATED on .is-arriving (set by go() ONLY when you change rooms): a save, toggle,
   or delete re-renders the same room perfectly still. Theater is for arrival. ── */
.is-arriving .dv-card{ animation:dvCardIn var(--dv-move) var(--ease-out) both; }
.is-arriving > .dv-card:nth-child(2){ animation-delay:.06s; }
.is-arriving > .dv-card:nth-child(3){ animation-delay:.12s; }
.is-arriving > .dv-card:nth-child(4){ animation-delay:.18s; }
.is-arriving > .dv-card:nth-child(n+5){ animation-delay:.24s; }
@keyframes dvCardIn{ 0%{ opacity:0; transform:translateY(12px) scale(.992); } 100%{ opacity:1; transform:none; } }
/* list entries surface one after another — memory rising into view */
.is-arriving .dv-list .dv-item, .is-arriving .dv-mmlist > *, .is-arriving .dv-evostream .dv-evo, .is-arriving .dv-uhist .dv-uh{ animation:dvItemIn var(--dv-quick) var(--ease-out) both; }
.is-arriving .dv-list .dv-item:nth-child(1), .is-arriving .dv-mmlist > :nth-child(1), .is-arriving .dv-evostream .dv-evo:nth-child(1){ animation-delay:.04s; }
.is-arriving .dv-list .dv-item:nth-child(2), .is-arriving .dv-mmlist > :nth-child(2), .is-arriving .dv-evostream .dv-evo:nth-child(2){ animation-delay:.08s; }
.is-arriving .dv-list .dv-item:nth-child(3), .is-arriving .dv-mmlist > :nth-child(3), .is-arriving .dv-evostream .dv-evo:nth-child(3){ animation-delay:.12s; }
.is-arriving .dv-list .dv-item:nth-child(4), .is-arriving .dv-mmlist > :nth-child(4), .is-arriving .dv-evostream .dv-evo:nth-child(4){ animation-delay:.16s; }
.is-arriving .dv-list .dv-item:nth-child(5), .is-arriving .dv-mmlist > :nth-child(5), .is-arriving .dv-evostream .dv-evo:nth-child(5){ animation-delay:.2s; }
.is-arriving .dv-list .dv-item:nth-child(n+6), .is-arriving .dv-mmlist > :nth-child(n+6), .is-arriving .dv-evostream .dv-evo:nth-child(n+6){ animation-delay:.24s; }
@keyframes dvItemIn{ 0%{ opacity:0; transform:translateY(7px); } 100%{ opacity:1; transform:none; } }

/* MOTIVUS — the beyond: the avatar warms violet-gold, the aurora deepens, time slows */
.davara__shell.is-motivus .davara__orb .dv-av{ filter:hue-rotate(calc(var(--dv-orb-tint, 0deg) + 28deg)) saturate(1.2) drop-shadow(0 0 8px rgba(255,216,107,.5)); }   /* composite the per-builder hue INTO the motivus rotation (filter is non-additive — must carry the var or the tint is lost) */
.davara__shell.is-motivus .davara__orb::before{ background:radial-gradient(circle, rgba(177,92,255,.55), rgba(255,216,107,.28) 55%, transparent 72%); animation-duration:3.4s; }
.davara__shell.is-motivus .davara__aura i{ opacity:.3; }
.davara__shell.is-motivus .davara__aura i:nth-child(1){ animation-duration:18s; }
.davara__shell.is-motivus .davara__aura i:nth-child(2){ animation-duration:22s; }
.davara__shell.is-motivus .davara__aura i:nth-child(3){ animation-duration:26s; }
.davara__shell.is-motivus .davara__aura i:nth-child(3){ background:radial-gradient(circle, #ffd86b, transparent 70%); opacity:.2; }
.davara__shell.is-motivus .davara__sub{ color:var(--violet-bright); text-shadow:0 0 16px rgba(177,92,255,.5); }
.davara__shell.is-motivus .davara__tab.is-on{ background:linear-gradient(135deg, var(--violet-bright), #ffd86b); color:#1a1530; box-shadow:0 0 26px -6px rgba(177,92,255,.8); }

/* ════ EVOLUTION — full-screen · channels · keyboard-safe chat · mobile ════ */
/* header buttons: the title takes the space, the controls sit right */
.davara__title{ flex:1; min-width:0; }
.davara__priv{ margin-left:0; }
.davara__ico-btn{ flex:none; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--glass-line); background:var(--glass); color:var(--ink-soft); cursor:pointer; transition:.2s; -webkit-appearance:none; appearance:none; }
.davara__ico-btn svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.davara__ico-btn:hover{ color:var(--ink); border-color:rgba(61,242,255,.4); box-shadow:0 0 18px -8px rgba(61,242,255,.6); }
.davara__x{ margin-left:0; font-size:15px; }

/* FULL-SCREEN mode — the dashboard fills the whole viewport, edge to edge.
   Explicitly resets the >=680px slab geometry (top inset, radius, halo) AND turns the
   backdrop blur off: the sanctum paints its own opaque sky, so blurring under it is waste. */
.davara__shell.is-fullscreen, .davara__shell.is-fullscreen.open{ left:0; transform:none; width:100vw; max-width:none;
  top:0; height:calc(100svh - var(--kb)); max-height:calc(100svh - var(--kb)); border-radius:0; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none; }
.davara__shell.is-fullscreen .davara__head, .davara__shell.is-fullscreen .davara__tabs, .davara__shell.is-fullscreen .davara__body{ max-width:920px; margin-left:auto; margin-right:auto; width:100%; }
.davara__shell:fullscreen{ background:linear-gradient(180deg, #070a14, #05060d); }
.davara__shell:fullscreen .davara__aura{ opacity:1; }

/* CHAT fills the height → composer pinned at the bottom, keyboard-safe on mobile */
.davara__body.dv-chatmode{ display:flex; flex-direction:column; }
.davara__body.dv-chatmode > .dv-card{ position:relative; flex:1; display:flex; flex-direction:column; min-height:0; }
.davara__body.dv-chatmode .dv-chat{ flex:1; max-height:none; min-height:0; }
.davara__body.dv-chatmode .dv-composer, .davara__body.dv-chatmode .dv-tray, .davara__body.dv-chatmode .dv-slash, .davara__body.dv-chatmode .dv-chat__model{ flex:none; }

/* relay CHANNELS (your private relay's models/agents) */
.dv-channels{ display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.dv-chan{ padding:9px 16px; min-height:40px; border-radius:99px; border:1px solid var(--glass-line); background:var(--glass); color:var(--ink-soft); font-family:var(--display); font-weight:600; font-size:.86rem; cursor:pointer; transition:.2s; }
.dv-chan:hover{ color:var(--ink); border-color:rgba(61,242,255,.4); }
.dv-chan.is-on{ color:#04222b; background:linear-gradient(135deg, var(--cyan), var(--trust)); border-color:transparent; box-shadow:0 0 20px -8px rgba(61,242,255,.7); }

/* MOBILE evolution — full-bleed, bigger targets, comfortable chat */
@media (max-width:560px){
  .davara__shell{ width:100%; }
  .davara__head{ gap:7px; padding-top:calc(env(safe-area-inset-top) + 12px); }
  /* her full name + her line must always fit: pinch replaces the Aa button on touch,
     and the header controls slim down so SystemsCortex never truncates */
  [data-action="dv-zoom"]{ display:none; }
  .davara__ico-btn{ width:38px; height:38px; }
  /* her line wraps to a clean second row instead of truncating ("…your second …") */
  .davara__sub{ max-width:none; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.32; }
  .davara__tab{ min-height:42px; padding:9px 15px; font-size:.84rem; }
  .davara__body{ padding-left:12px; padding-right:12px; }
  .dv-card{ padding:15px 14px; border-radius:18px; }
  .dv-mrow__main{ max-width:90%; }
  /* DAVARA SPEAKS FULL-WIDTH — her avatar + name ride the top line, her words clear
     beneath them and take the whole column: more room, more of her, less indent. */
  .dv-mrow--d{ display:block; }
  .dv-mrow--d .dv-mrow__av{ float:left; margin:0 9px 2px 0; }
  .dv-mrow--d .dv-mrow__main{ display:block; max-width:100%; }
  .dv-mrow--d .dv-mrow__name{ padding-top:8px; margin-bottom:4px; }
  .dv-mrow--d .dv-msg, .dv-mrow--d .dv-mnote, .dv-mrow--d .dv-acts{ clear:both; }
  .dv-msg{ font-size:calc(.95rem * var(--dv-zoom, 1)); }
  .dv-chat__in{ font-size:max(16px, calc(16px * var(--dv-zoom, 1))); }   /* ≥16px stops iOS zoom-on-focus, at any zoom */
  .dv-send{ width:46px; height:46px; }
  .dv-ico{ width:44px; height:44px; }
  .dv-act{ width:32px; height:32px; }
  .dv-prompt-edit{ font-size:.7rem; }
  .dv-scrollbtm{ bottom:104px; }
}
/* touch devices: full presence — these are primary controls, not easter eggs.
   borderless now, so a lighter resting opacity still reads clearly without weighing down each line */
@media (hover:none){
  .dv-acts{ opacity:.82; }
}

@media (prefers-reduced-motion: reduce){
  .davara__scrim, .davara__shell, .davara__shell::before, .davara__tab, .davara__x, .davara__ico-btn, .dv-toggle__sw, .dv-toggle__sw::after, .davara__sub, .dv-chan, .dv-composer, .dv-starter, .dv-seg__b, .dv-ico, .dv-send, .dv-area, .davara__orb .dv-av__node{ transition:none; }
  .dv-typing span, .dv-send, .davara__aura i, .davara__orb, .davara__orb::before, .dv-card,
  .dv-av__lens, .dv-av__heart, .dv-mrow, .dv-welcome, .dv-welcome__av, .dv-welcome p, .dv-chips, .dv-mic.is-rec, .dv-act--tts.is-on, .dv-scrollbtm, .dv-slash,
  .dv-list .dv-item, .dv-mmlist > *, .dv-evostream .dv-evo, .dv-uhist .dv-uh, .dv-evo__node i, .dv-empty::before, .dv-mrow--d .dv-msg::before{ animation:none; }
  .davara__tab:active, .dv-send:active, .dv-ico:active, .dv-starter:active, .dv-seg__b:active, .davara__x:active{ transform:none; }
  .dv-web.is-on svg, .dv-sync__dot.on, .dv-sync__dot.warn{ animation:none; }
  .dv-research__spin{ animation-duration:2.4s; }   /* a genuine wait — slowed, never frozen mid-search */
  .dv-chat{ scroll-behavior:auto; }
  .davara-burst{ display:none; }
}
/* landscape phones + keyboard: the conversation owns the moment — chrome folds away
   so the composer (the thing you just focused) always survives the squeeze */
@media (max-height:440px){
  .davara__shell.is-kb .davara__tabs{ display:none; }
  .davara__shell.is-kb .davara__head{ padding-top:6px; padding-bottom:6px; }
}

/* ════════════════════════════════════════════════════════════════
   SYSTEMSCORTEX v2 — the constellation · the library · the studio
   ════════════════════════════════════════════════════════════════ */

/* ── the Cortex Constellation — the builder's mind, made visible ── */
.dv-cosmos{ position:relative; height:96px; margin:0 clamp(14px,4vw,22px) 8px; border-radius:18px; overflow:hidden;
  background:linear-gradient(160deg, rgba(177,92,255,.05), rgba(61,242,255,.04) 55%, rgba(95,243,192,.03));
  border:1px solid var(--glass-line); box-shadow:inset 0 1px 0 var(--glass-hi); }
.dv-cosmos__c{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.dv-cosmos__cap{ position:absolute; right:10px; bottom:7px; font-family:var(--mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); pointer-events:none; }
.davara__shell.is-fullscreen .dv-cosmos{ height:120px; }
@media (max-height:640px){ .dv-cosmos{ height:72px; } }
/* the keyboard moment belongs to the conversation — collapse the strip */
.dv-cosmos{ transition:height .22s var(--ease), margin .22s var(--ease), opacity .22s; }
.davara__shell.is-kb .dv-cosmos{ height:0; margin-top:0; margin-bottom:0; opacity:0; border-width:0; }

/* ── layer entries v2 — source glyphs + promote/demote ── */
.dv-item__g{ flex:none; font-size:.78rem; line-height:1.5; opacity:.8; width:18px; text-align:center; }
.dv-item--coretext{ border-color:rgba(61,242,255,.22); background:linear-gradient(135deg, rgba(61,242,255,.05), rgba(255,255,255,.015)); box-shadow:0 0 24px -14px rgba(61,242,255,.55); }
.dv-item--cortext{ border-color:rgba(177,92,255,.16); background:linear-gradient(135deg, rgba(177,92,255,.04), rgba(255,255,255,.012)); }
.dv-item__ops{ flex:none; display:flex; gap:6px; align-items:center; }
.dv-item__op{ width:24px; height:24px; border-radius:50%; border:1px solid var(--glass-line); background:transparent; color:var(--ink-faint); cursor:pointer; font-size:12px; line-height:1; transition:.2s; }
.dv-item__op:hover{ color:var(--cyan-soft); border-color:rgba(61,242,255,.4); box-shadow:0 0 14px -6px rgba(61,242,255,.6); }

/* ── the layer composer — type · paste a link · drop a file ── */
.dv-compose{ border:1px dashed var(--glass-line); border-radius:16px; padding:10px; transition:border-color .25s, box-shadow .25s; }
.dv-compose.is-drag{ border-color:var(--cyan); box-shadow:0 0 0 3px rgba(61,242,255,.12), 0 0 34px -10px rgba(61,242,255,.5); }
.dv-compose__in{ margin-bottom:8px; min-height:54px; }
.dv-compose__bar{ display:flex; align-items:center; gap:10px; }
.dv-compose__hint{ flex:1; text-align:center; font-family:var(--mono); font-size:.56rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
@media (max-width:480px){ .dv-compose__hint{ display:none; } .dv-compose__bar{ justify-content:space-between; } }
.dv-att__lnk{ color:inherit; text-decoration:none; }
.dv-att__lnk:hover{ color:var(--cyan-soft); }

/* ── MotusModels — the sacred library ── */
.dv-mmlist{ display:flex; flex-direction:column; gap:10px; margin:6px 0 4px; }
.dv-mm, .dv-ini{ position:relative; border-radius:16px; padding:12px 13px; border:1px solid rgba(138,246,255,.14);
  background:linear-gradient(150deg, rgba(61,242,255,.045), rgba(177,92,255,.035) 70%, rgba(255,255,255,.01));
  box-shadow:inset 0 1px 0 var(--glass-hi), 0 18px 44px -32px rgba(0,0,0,.8); }
.dv-ini{ border-color:rgba(95,243,192,.16); background:linear-gradient(150deg, rgba(95,243,192,.045), rgba(61,242,255,.03) 70%, rgba(255,255,255,.01)); }
.dv-mm__head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.dv-mm__mark{ color:var(--cyan-soft); font-size:.9rem; filter:drop-shadow(0 0 8px rgba(61,242,255,.5)); }
.dv-mm__name{ font-family:var(--display); font-weight:700; font-size:.94rem; color:var(--ink); letter-spacing:.01em; flex:1; min-width:0; }
.dv-mm__d3{ font-family:var(--mono); font-size:.54rem; letter-spacing:.14em; color:#04222b; background:linear-gradient(135deg, var(--cyan), var(--cyan-soft)); padding:2px 7px; border-radius:99px; }
.dv-mm__org{ font-family:var(--mono); font-size:.56rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.dv-mm__row{ display:flex; gap:8px; margin:5px 0 0; font-size:.82rem; line-height:1.5; color:var(--ink-soft); }
.dv-mm__row span{ flex:none; width:44px; font-family:var(--mono); font-size:.56rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-deep); padding-top:4px; }
.dv-ini .dv-mm__row span{ color:rgba(95,243,192,.75); }
.dv-mint{ width:100%; margin-bottom:8px; }
.dv-ini__st{ font-size:.66rem; font-family:var(--mono); letter-spacing:.06em; color:var(--trust-soft); background:rgba(95,243,192,.07); border:1px solid rgba(95,243,192,.3); padding:3px 9px; border-radius:99px; cursor:pointer; transition:.2s; }
.dv-ini__st:hover{ box-shadow:0 0 16px -6px rgba(95,243,192,.7); }

/* ── the Model Studio ── */
.dv-studio{ display:block; }
.dv-orkey{ font-size:.74rem; color:var(--ink-mute); margin:2px 0 4px; line-height:1.5; }
.dv-dot{ display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--ink-faint); margin-right:2px; vertical-align:1px; }
.dv-dot--on{ background:var(--trust); box-shadow:0 0 10px rgba(95,243,192,.8); }
.dv-dot--bad{ background:#ff8a9b; box-shadow:0 0 10px rgba(255,138,155,.8); }
.dv-stitle{ position:relative; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; font-family:var(--display); font-weight:700; font-size:.9rem; color:var(--ink); margin:18px 0 9px; padding-left:13px; }
.dv-stitle::before{ content:""; position:absolute; left:0; top:.18em; bottom:.18em; width:3px; border-radius:99px; background:linear-gradient(180deg, rgb(var(--dv-accent)), rgba(var(--dv-accent), .15)); box-shadow:0 0 10px -2px rgba(var(--dv-accent), .6); }
.dv-stitle__s{ font-family:var(--mono); font-weight:400; font-size:.56rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.dv-popgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
.dv-pop{ position:relative; display:flex; flex-direction:column; gap:3px; text-align:left; padding:9px 11px; border-radius:13px; border:1px solid var(--glass-line); background:rgba(255,255,255,.025); cursor:pointer; transition:.2s; overflow:hidden; }
.dv-pop:hover{ border-color:rgba(61,242,255,.45); box-shadow:0 0 26px -10px rgba(61,242,255,.55); transform:translateY(-1px); }
.dv-pop__rk{ position:absolute; top:6px; right:9px; font-family:var(--mono); font-size:.62rem; color:var(--ink-faint); }
.dv-pop__n{ font-family:var(--display); font-weight:600; font-size:.78rem; color:var(--ink); padding-right:16px; line-height:1.3; }
.dv-pop__meta{ font-family:var(--mono); font-size:.58rem; letter-spacing:.04em; color:var(--ink-mute); }
.dv-modlist{ display:flex; flex-direction:column; gap:6px; margin:2px 0 8px; max-height:264px; overflow-y:auto; padding-right:2px; }
.dv-mod{ display:flex; flex-direction:column; gap:2px; text-align:left; padding:8px 11px; border-radius:12px; border:1px solid var(--glass-line); background:rgba(255,255,255,.02); cursor:pointer; transition:.18s; }
.dv-mod:hover{ border-color:rgba(61,242,255,.4); background:rgba(61,242,255,.05); }
.dv-mod__n{ font-size:.8rem; font-weight:600; color:var(--ink-soft); }
.dv-mod__meta{ font-family:var(--mono); font-size:.58rem; color:var(--ink-faint); }
.dv-free{ color:var(--trust); letter-spacing:.08em; }
.dv-set{ margin:0 0 14px; }
.dv-set label{ display:flex; justify-content:space-between; align-items:baseline; font-size:.84rem; font-weight:600; color:var(--ink); margin-bottom:6px; }
.dv-set label b{ font-family:var(--mono); font-size:.74rem; color:var(--cyan-soft); }
.dv-set__hint{ display:block; font-size:.7rem; color:var(--ink-faint); margin-top:4px; line-height:1.45; }
.dv-range{ -webkit-appearance:none; appearance:none; width:100%; height:5px; border-radius:99px; background:linear-gradient(90deg, rgba(61,242,255,.35), rgba(177,92,255,.4)); outline:none; }
.dv-range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:19px; height:19px; border-radius:50%; background:linear-gradient(135deg, var(--cyan), var(--violet)); border:2px solid #0a0d18; box-shadow:0 0 16px -2px rgba(61,242,255,.7); cursor:pointer; }
.dv-range::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:linear-gradient(135deg, var(--cyan), var(--violet)); border:2px solid #0a0d18; box-shadow:0 0 16px -2px rgba(61,242,255,.7); cursor:pointer; }
.dv-seg{ display:flex; gap:7px; flex-wrap:wrap; }
.dv-seg__b{ flex:1; min-width:96px; padding:8px 10px; border-radius:99px; border:1px solid var(--glass-line); background:rgba(255,255,255,.025); color:var(--ink-mute); font-family:var(--display); font-weight:600; font-size:.74rem; cursor:pointer; transition:color var(--dv-fast), background var(--dv-quick), border-color var(--dv-quick), box-shadow var(--dv-quick), transform var(--dv-quick) var(--dv-spring); white-space:nowrap; }
.dv-seg__b:active{ transform:scale(.95); }
.dv-seg__b.is-on{ color:#04222b; background:linear-gradient(135deg, rgb(var(--dv-accent)), var(--dv-accent-ink)); border-color:transparent; box-shadow:0 0 20px -8px rgba(var(--dv-accent), .7); }
.dv-utot{ display:grid; grid-template-columns:repeat(auto-fit,minmax(86px,1fr)); gap:8px; margin-bottom:12px; }
.dv-utot span{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 6px; border-radius:13px; border:1px solid var(--glass-line); background:rgba(255,255,255,.02); font-family:var(--mono); font-size:.56rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.dv-utot b{ font-family:var(--display); font-size:1.02rem; letter-spacing:0; color:var(--ink); text-transform:none; }
.dv-bars{ display:flex; align-items:flex-end; gap:4px; height:54px; padding:6px 4px; border-radius:13px; border:1px solid var(--glass-line); background:rgba(255,255,255,.015); margin-bottom:12px; }
.dv-bar{ flex:1; height:100%; display:flex; align-items:flex-end; }
.dv-bar i{ display:block; width:100%; border-radius:3px 3px 0 0; background:linear-gradient(180deg, var(--cyan), rgba(61,242,255,.25)); min-height:2px; opacity:.35; }
.dv-bar.has i{ opacity:.95; box-shadow:0 0 12px -3px rgba(61,242,255,.6); }
.dv-uhist{ display:flex; flex-direction:column; gap:5px; }
.dv-uh{ display:flex; gap:10px; align-items:baseline; font-family:var(--mono); font-size:.66rem; color:var(--ink-mute); padding:6px 9px; border-radius:10px; background:rgba(255,255,255,.015); border:1px solid rgba(255,255,255,.05); }
.dv-uh__t{ flex:none; color:var(--ink-faint); }
.dv-uh__m{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink-soft); }
.dv-uh__k{ flex:none; }
.dv-uh__c{ flex:none; color:var(--trust-soft); }

/* ── Evolution v2 — the living stream: her growth, ring by ring, each node a heartbeat ── */
.dv-evostream{ position:relative; display:flex; flex-direction:column; gap:2px; padding-left:6px; }
.dv-evostream::before{ content:""; position:absolute; left:12px; top:10px; bottom:10px; width:1px; background:linear-gradient(180deg, rgba(61,242,255,.4), rgba(177,92,255,.25), rgba(95,243,192,.15)); }
.dv-evo{ position:relative; display:flex; gap:10px; padding:10px 2px 10px 22px; }
.dv-evo__node{ position:absolute; left:8.5px; top:16px; width:8px; height:8px; }
.dv-evo__node i{ display:block; width:8px; height:8px; border-radius:50%; background:var(--cyan); box-shadow:0 0 12px rgba(61,242,255,.7); animation:dvNodeBreath 3.8s ease-in-out infinite; }
.dv-evo:nth-child(2n) .dv-evo__node i{ animation-delay:1.2s; }
.dv-evo:nth-child(3n) .dv-evo__node i{ animation-delay:2.1s; }
@keyframes dvNodeBreath{ 0%,100%{ transform:scale(1); opacity:.85; } 50%{ transform:scale(1.3); opacity:1; } }
.dv-evo--insight .dv-evo__node i{ background:var(--violet-bright); box-shadow:0 0 12px rgba(177,92,255,.7); }
.dv-evo--milestone .dv-evo__node i{ background:var(--trust); box-shadow:0 0 12px rgba(95,243,192,.7); }
.dv-evo__g{ flex:none; font-size:1rem; line-height:1.4; }
.dv-evo__b{ min-width:0; }
.dv-evo__t{ margin:0; font-size:.85rem; line-height:1.55; color:var(--ink-soft); }
.dv-evo__meta{ display:flex; gap:9px; flex-wrap:wrap; margin:4px 0 0; }
.dv-evo__kind{ font-family:var(--mono); font-size:.54rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan-deep); }
.dv-evo--insight .dv-evo__kind{ color:var(--violet-bright); }
.dv-evo__lev{ font-family:var(--mono); font-size:.6rem; color:var(--trust-soft); }
.dv-evo__when{ font-family:var(--mono); font-size:.58rem; color:var(--ink-faint); }
.dv-rec{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; padding:11px 12px; margin-bottom:8px; border-radius:14px; border:1px solid rgba(177,92,255,.18); background:linear-gradient(135deg, rgba(177,92,255,.05), rgba(255,255,255,.012)); cursor:pointer; transition:.2s; }
.dv-rec:hover{ border-color:rgba(177,92,255,.45); box-shadow:0 0 26px -10px rgba(177,92,255,.55); transform:translateY(-1px); }
.dv-rec__g{ flex:none; font-size:1.05rem; }
.dv-rec__b{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.dv-rec__t{ font-family:var(--display); font-weight:600; font-size:.84rem; color:var(--ink); }
.dv-rec__w{ font-size:.74rem; line-height:1.45; color:var(--ink-mute); }
.dv-rec__go{ flex:none; color:var(--violet-bright); font-size:.95rem; }

/* ── transient chat note (auto-filing confirmations) ── */
.dv-note{ align-self:center; max-width:92%; text-align:center; font-family:var(--mono); font-size:.62rem; letter-spacing:.05em; color:var(--trust-soft); background:rgba(95,243,192,.06); border:1px solid rgba(95,243,192,.25); padding:6px 12px; border-radius:99px; margin:4px 0; animation:dvFade .45s var(--ease) both; transition:opacity .7s; }
.dv-note.fade{ opacity:0; }

/* ════ the profile command center — your SystemsCortex hero ════ */
.cortex-hero{ overflow:hidden; }
.cortex-hero__top{ display:flex; gap:14px; align-items:flex-start; }
.cortex-hero__id{ flex:1; min-width:0; }
.cortex-hero__lead{ font-size:.86rem; line-height:1.6; color:var(--ink-mute); margin:6px 0 2px; }
.cortex-hero__lead b{ color:var(--cyan-soft); }
.cortex-hero__viz{ flex:none; width:120px; }
@media (max-width:430px){ .cortex-hero__viz{ width:92px; } }
.cortex-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:13px 0 4px; }
@media (min-width:560px){ .cortex-stats{ grid-template-columns:repeat(6,1fr); } }
.cortex-stat{ display:flex; flex-direction:column; align-items:center; gap:1px; padding:9px 4px; border-radius:13px; border:1px solid var(--glass-line); background:rgba(255,255,255,.02); cursor:pointer; transition:.2s; }
.cortex-stat:hover{ border-color:rgba(61,242,255,.4); box-shadow:0 0 22px -10px rgba(61,242,255,.6); transform:translateY(-1px); }
.cortex-stat b{ font-family:var(--display); font-weight:700; font-size:1.06rem; color:var(--ink); }
.cortex-stat span{ font-family:var(--mono); font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }
.cortex-hero__model{ font-family:var(--mono); font-size:.64rem; color:var(--ink-mute); text-align:center; margin:10px 0 2px; }
.cortex-hero__model b{ color:var(--cyan-soft); }
.cortex-dot{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--trust); box-shadow:0 0 8px rgba(95,243,192,.8); margin-right:4px; vertical-align:1px; }
.cortex-hero__acts{ display:flex; flex-direction:column; gap:9px; margin-top:12px; }
.cortex-hero__open{ width:100%; display:flex; align-items:center; justify-content:center; gap:9px; }
.cortex-hero__open .cortex-davatar{ width:22px; height:22px; display:inline-block; }
.cortex-hero__open .cortex-davatar svg{ width:22px; height:22px; }
.cortex-hero__row{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.cortex-panel__split{ height:1px; background:var(--glass-line); margin:16px 0 12px; }
/* the mini constellation */
.cxm{ width:100%; height:auto; display:block; }
.cxm__f{ stroke:rgba(138,246,255,.14); stroke-width:.6; }
.cxm__n{ fill:var(--cyan); opacity:.85; animation:cxmPulse 3.2s ease-in-out infinite; }
.cxm__n.is-ctx{ fill:var(--violet-bright); opacity:.7; }
.cxm__n.is-pil{ fill:var(--trust); opacity:.8; }
.cxm__n.is-mm{ fill:var(--cyan-soft); opacity:.7; }
.cxm__heart{ fill:#eaf9ff; filter:drop-shadow(0 0 6px rgba(125,243,255,.9)); animation:cxmHeart 2.6s ease-in-out infinite; transform-origin:center; transform-box:fill-box; }
.cxm__lens{ fill:none; stroke:#8af6ff; stroke-width:1.1; stroke-linecap:round; opacity:.9; }
@keyframes cxmPulse{ 0%,100%{ opacity:.5; } 50%{ opacity:1; } }
@keyframes cxmHeart{ 0%,100%{ transform:scale(1); } 12%{ transform:scale(1.25); } 24%{ transform:scale(1.05); } 36%{ transform:scale(1.2); } 48%{ transform:scale(1); } }

@media (prefers-reduced-motion: reduce){
  .cxm__n, .cxm__heart, .dv-note{ animation:none; }
  .dv-pop:hover, .dv-rec:hover, .cortex-stat:hover{ transform:none; }
}

/* ════════════════════════════════════════════════════════════════
   THE SANCTUM (r40) — the conversation owns the screen
   A · chat-focus: chrome folds away on the Chat tab (mobile-first)
   B · immersive:  full-bleed ambient cortex-sky, dissolving chrome
   C · micro-motion: the lens thinks, the composer breathes
   ════════════════════════════════════════════════════════════════ */

/* ── A · CHAT FOCUS — every pixel of chrome earns its place ── */
.davara__shell.is-chatfocus .davara__tab{ min-height:34px; padding:6px 12px; font-size:.78rem; }
.davara__shell.is-chatfocus .davara__tabs{ padding-bottom:8px; }
.davara__shell.is-chatfocus .davara__head{ padding-bottom:8px; }
/* the constellation yields to the dialogue: gone on phones, a sliver on desktop */
@media (max-width:680px){
  .davara__shell.is-chatfocus:not(.is-fullscreen) .dv-cosmos{ height:0; margin-top:0; margin-bottom:0; opacity:0; border-width:0; }
}
@media (min-width:681px){
  .davara__shell.is-chatfocus:not(.is-fullscreen) .dv-cosmos{ height:58px; }
}
/* de-chrome the chat card — the page IS the conversation */
.davara__body.dv-chatmode{ padding:0 clamp(10px,3vw,18px) 8px; }
.davara__body.dv-chatmode > .dv-card{
  background:none; background-image:none; border:0; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none; padding:0; border-radius:0;
}
.davara__shell.is-motivus .davara__body.dv-chatmode > .dv-card{ background-image:none; border:0; }
.davara__body.dv-chatmode .dv-chat{ padding:6px 2px 10px; }
.davara__body.dv-chatmode .dv-chat__model{ margin:6px 0 0; font-size:.66rem; }
.davara__body.dv-chatmode .dv-scrollbtm{ bottom:88px; }

/* ── B · THE SANCTUM — just the builder, Davara, and the sky ── */
.davara__shell.is-fullscreen{ padding-bottom:calc(env(safe-area-inset-bottom) + 8px); background:#05060c; }
.davara__shell.is-fullscreen .davara__tabs{ display:none; }            /* immersion IS the conversation */
.davara__shell.is-fullscreen .dv-cosmos{
  position:absolute; inset:0; height:100%; margin:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; opacity:1; pointer-events:none; z-index:0;
}
.davara__shell.is-fullscreen .dv-cosmos__cap{ display:none; }
/* the chrome floats above the sky and breathes away while you read */
.davara__shell.is-fullscreen .davara__head{
  position:absolute; top:0; left:0; right:0; z-index:3; max-width:920px; margin:0 auto;
  background:linear-gradient(180deg, rgba(5,6,12,.78), rgba(5,6,12,.32) 70%, transparent);
  transition:opacity .9s var(--ease);
}
.davara__shell.is-fullscreen .davara__head.is-dim{ opacity:.18; }
.davara__shell.is-fullscreen .davara__head.is-dim:hover{ opacity:1; }
.davara__shell.is-fullscreen .davara__body{
  position:relative; z-index:1; width:100%; max-width:800px;
  padding-top:calc(env(safe-area-inset-top) + 72px);
}
/* the dialogue — louder words, quieter glass; her voice stays editorial in the sanctum */
.davara__shell.is-fullscreen .dv-mrow--u .dv-msg{ font-size:calc(.98rem * var(--dv-zoom, 1)); line-height:1.6; padding:12px 16px;
  background:linear-gradient(180deg, rgba(177,92,255,.11), rgba(177,92,255,.055));
  border-color:rgba(177,92,255,.2);
}
.davara__shell.is-fullscreen .dv-mrow--d .dv-msg{ font-size:calc(1.02rem * var(--dv-zoom, 1)); line-height:1.7; padding:8px 4px 8px 18px; }
.davara__shell.is-fullscreen .dv-mrow__main{ max-width:88%; }
.davara__shell.is-fullscreen .dv-mrow__av, .davara__shell.is-fullscreen .dv-mrow__av .dv-av{ width:34px; height:34px; }
/* the composer — a floating glass capsule; tools whisper until summoned */
.davara__shell.is-fullscreen .dv-composer{
  padding:8px; border-radius:22px; border-color:rgba(138,246,255,.16);
  background:rgba(9,12,21,.72);
  -webkit-backdrop-filter:blur(10px) saturate(140%); backdrop-filter:blur(10px) saturate(140%);
  box-shadow:0 20px 54px -30px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.07);
}
.davara__shell.is-fullscreen .dv-composer:focus-within{
  border-color:rgba(61,242,255,.45);
  box-shadow:0 0 0 3px rgba(61,242,255,.08), 0 0 44px -16px rgba(61,242,255,.55), 0 20px 54px -30px rgba(0,0,0,.95);
}
.davara__shell.is-fullscreen .dv-composer .dv-ico{ opacity:.5; transition:opacity .25s, color .16s, background .16s; }
.davara__shell.is-fullscreen .dv-composer:focus-within .dv-ico,
.davara__shell.is-fullscreen .dv-composer:hover .dv-ico,
.davara__shell.is-fullscreen .dv-composer .dv-ico.is-on,
.davara__shell.is-fullscreen .dv-composer .dv-ico.is-rec{ opacity:1; }
.davara__shell.is-fullscreen .dv-chat__in{ font-size:1.02rem; min-height:44px; }
.davara__shell.is-fullscreen .dv-send{ width:46px; height:46px; border-radius:50%; box-shadow:0 0 28px -8px rgba(61,242,255,.6); }
.davara__shell.is-fullscreen .dv-chat__model{ display:none; }          /* zero noise — the model lives in the Studio */
.davara__shell.is-fullscreen .dv-scrollbtm{ bottom:96px; }
/* first meeting, immersed — Davara at center, breathing */
.davara__shell.is-fullscreen .dv-welcome{ flex:1; align-items:center; justify-content:center; text-align:center; gap:18px; padding-top:4vh; }
.davara__shell.is-fullscreen .dv-welcome__av{ width:84px; height:84px; filter:drop-shadow(0 0 30px rgba(61,242,255,.4)); animation:dvAvBreath 4.6s ease-in-out infinite; }
.davara__shell.is-fullscreen .dv-welcome p{ font-size:1.1rem; line-height:1.7; max-width:30em; }
.davara__shell.is-fullscreen .dv-chips{ justify-content:center; }
.davara__shell.is-fullscreen .dv-starter{ font-size:.84rem; padding:10px 16px; background:rgba(10,13,22,.72); }
@keyframes dvAvBreath{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.05); } }
/* entering the sanctum — one decisive phase-change, then stillness */
.davara__shell.is-entering .davara__body{ animation:dvSanctumIn .7s var(--ease-out) both; }
.davara__shell.is-entering .dv-cosmos{ animation:dvFade 1.2s ease both; }
.davara__shell.is-entering .dv-composer{ animation:dvSanctumUp .6s var(--ease-out) .12s both; }
@keyframes dvSanctumIn{ from{ opacity:0; transform:scale(.986) translateY(10px); } to{ opacity:1; transform:none; } }
@keyframes dvSanctumUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
/* the immerse button mirrors its state */
.davara__shell.is-fullscreen [data-action="dv-fullscreen"]{ color:var(--cyan-soft); border-color:rgba(61,242,255,.4); box-shadow:0 0 18px -8px rgba(61,242,255,.6); }

/* ── C · MICRO-MOTION — small life, never noise ── */
/* the lens thinks: dots become starlight inside an expanding thought-ring */
.dv-typing{ position:relative; }
.dv-typing::after{
  content:""; position:absolute; inset:-7px; border-radius:22px;
  border:1px solid rgba(61,242,255,.22); pointer-events:none;
  animation:dvThinkRing 1.9s ease-out infinite;
}
.dv-typing span{ box-shadow:0 0 9px rgba(138,246,255,.75); }
@keyframes dvThinkRing{ 0%{ opacity:.55; transform:scale(.94); } 100%{ opacity:0; transform:scale(1.14); } }
.dv-send:active{ transform:scale(.9); }
.dv-starter{ transition:.22s var(--ease); }
.dv-starter:hover{ transform:translateY(-1px); }

/* ── D · desktop grace ── */
@media (min-width:920px){
  .davara__shell.is-fullscreen .davara__body{ max-width:780px; }
  .davara__shell.is-fullscreen .dv-mrow__main{ max-width:82%; }
}

@media (prefers-reduced-motion: reduce){
  .dv-typing::after, .davara__shell.is-fullscreen .dv-welcome__av,
  .davara__shell.is-entering .davara__body, .davara__shell.is-entering .dv-cosmos, .davara__shell.is-entering .dv-composer{ animation:none; }
  .davara__shell.is-fullscreen .davara__head{ transition:none; }
  .dv-starter:hover{ transform:none; }
}

/* the conversation gravitates to the composer — like every real dialogue.
   (margin-top:auto on the first row bottom-anchors WITHOUT breaking scroll —
   justify-content:flex-end would make the history unreachable.) */
.davara__body.dv-chatmode .dv-chat > :first-child{ margin-top:auto; }

/* ── the admin communion — a quiet ring fills as the keeper holds her avatar ── */
.davara__orb{ position:relative; -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }
.dv-orbcharge{ position:absolute; inset:-6px; border-radius:50%; pointer-events:none; opacity:0; transition:opacity .3s;
  background:conic-gradient(from -90deg, rgba(214,178,94,.95) calc(var(--p,0)*1%), transparent 0);
  -webkit-mask:radial-gradient(closest-side, transparent 70%, #000 72%); mask:radial-gradient(closest-side, transparent 70%, #000 72%);
  filter:drop-shadow(0 0 8px rgba(214,178,94,.55)); }
.davara__orb.is-charging .dv-orbcharge{ opacity:.95; }
@media (prefers-reduced-motion: reduce){ .dv-orbcharge{ transition:none; } }

/* ════ SIGHT · CONSENT · THE BACKPACK (r47) ════ */
/* the consent chip — sticky until answered */
.dv-note--ask{ display:flex; flex-direction:column; gap:8px; max-width:96%; padding:10px 14px; border-radius:16px; font-size:.74rem; letter-spacing:0; text-align:center; }
.dv-note__q{ color:var(--ink-soft); font-family:var(--body); }
.dv-note__btns{ display:flex; gap:7px; justify-content:center; flex-wrap:wrap; }
.dv-note__b{ font-family:var(--display); font-weight:600; font-size:.72rem; padding:7px 13px; border-radius:99px; border:1px solid var(--glass-line); background:rgba(255,255,255,.03); color:var(--ink-soft); cursor:pointer; transition:.18s; }
.dv-note__b:hover{ color:var(--ink); }
.dv-note__b--bp{ border-color:rgba(214,178,94,.4); color:#e8d5a4; }
.dv-note__b--bp:hover{ box-shadow:0 0 16px -6px rgba(214,178,94,.6); }
.dv-note__b--cx{ border-color:rgba(61,242,255,.4); color:var(--cyan-soft); }
.dv-note__b--cx:hover{ box-shadow:0 0 16px -6px rgba(61,242,255,.6); }

/* images inside messages — she sees them; so do you */
.dv-msgimgs{ display:flex; gap:7px; flex-wrap:wrap; margin:2px 0 8px; }
.dv-msgimg{ width:124px; height:124px; object-fit:cover; border-radius:12px; border:1px solid rgba(255,255,255,.12); cursor:zoom-in; transition:.2s; }
.dv-msgimg:hover{ box-shadow:0 0 24px -8px rgba(61,242,255,.5); transform:scale(1.02); }

/* the viewer — every kept thing can be SEEN */
.dv-viewer{ position:fixed; inset:0; z-index:140; display:grid; place-items:center; opacity:0; transition:opacity .25s var(--ease); }
.dv-viewer.on{ opacity:1; }
.dv-viewer__scrim{ position:absolute; inset:0; background:rgba(4,5,10,.9); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.dv-viewer__card{ position:relative; max-width:min(94vw,760px); max-height:88vh; display:flex; flex-direction:column; border-radius:20px; overflow:hidden; background:rgba(12,15,26,.96); border:1px solid rgba(138,246,255,.2); box-shadow:0 40px 120px -40px rgba(0,0,0,.95); }
.dv-viewer__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--glass-line); }
.dv-viewer__head b{ font-family:var(--display); font-size:.92rem; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dv-viewer__img{ max-width:100%; max-height:72vh; object-fit:contain; display:block; background:#05060c; }
.dv-viewer__txt{ margin:0; padding:16px; max-height:64vh; overflow:auto; white-space:pre-wrap; word-break:break-word; font-family:var(--mono); font-size:.76rem; line-height:1.6; color:var(--ink-soft); }

/* the Backpack — her satchel */
.dv-bp{ display:flex; gap:11px; align-items:center; padding:10px 11px; border-radius:14px; border:1px solid rgba(var(--dv-accent), .16); background:linear-gradient(150deg, rgba(var(--dv-accent), .05), rgba(255,255,255,.012)); }
.dv-bp__thumb{ width:44px; height:44px; flex:none; border-radius:10px; object-fit:cover; border:1px solid rgba(255,255,255,.12); }
.dv-bp__glyph{ width:44px; height:44px; flex:none; display:grid; place-items:center; font-size:20px; border-radius:10px; background:rgba(255,255,255,.03); border:1px solid var(--glass-line); }
.dv-bp__body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.dv-bp__name{ font-size:.86rem; color:var(--ink); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dv-bp__meta{ font-family:var(--mono); font-size:.6rem; color:var(--ink-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dv-att__lnk{ background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer; }
.dv-att__lnk:hover{ color:var(--cyan-soft); }

@media (prefers-reduced-motion: reduce){ .dv-viewer{ transition:none; } .dv-msgimg:hover{ transform:none; } }

/* ════ CLOUD CONTINUITY · message history (r48) ════ */
.dv-synccard{ display:flex; gap:11px; align-items:flex-start; padding:12px 13px; border-radius:14px; margin-bottom:14px;
  border:1px solid rgba(95,243,192,.18); background:linear-gradient(150deg, rgba(95,243,192,.05), rgba(61,242,255,.03)); }
.dv-synccard > div{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.dv-synccard b{ font-size:.88rem; color:var(--ink); font-weight:600; }
.dv-synccard span:last-child{ font-size:.76rem; line-height:1.45; color:var(--ink-mute); }
.dv-sync__dot{ flex:none; width:9px; height:9px; border-radius:50%; margin-top:5px; background:var(--ink-faint); }
.dv-sync__dot.on{ background:var(--trust); box-shadow:0 0 12px rgba(95,243,192,.8); animation:dvPulseSoft 2.2s ease-in-out infinite; }
.dv-sync__dot.off{ background:var(--violet-bright); box-shadow:0 0 10px rgba(177,92,255,.6); }
.dv-sync__dot.warn{ background:#ffb347; box-shadow:0 0 11px rgba(255,179,71,.7); animation:dvPulseSoft 1.6s ease-in-out infinite; }
/* sync self-diagnostic */
.dv-syncdiag{ margin:10px 0 4px; }
.dv-diag__load{ font-size:.78rem; color:var(--ink-mute); padding:8px 2px; }
.dv-diag__head{ font-size:.84rem; font-weight:600; padding:9px 11px; border-radius:11px 11px 0 0; }
.dv-diag__head.ok{ color:var(--trust); background:rgba(95,243,192,.08); border:1px solid rgba(95,243,192,.22); border-bottom:0; }
.dv-diag__head.bad{ color:#ffb86b; background:rgba(255,179,71,.08); border:1px solid rgba(255,179,71,.28); border-bottom:0; }
.dv-diag__fix{ font-size:.76rem; line-height:1.45; color:var(--ink); padding:7px 11px; background:rgba(255,179,71,.06); border-left:1px solid rgba(255,179,71,.28); border-right:1px solid rgba(255,179,71,.28); }
.dv-diag__list{ border:1px solid var(--glass-line); border-top:0; border-radius:0 0 11px 11px; overflow:hidden; }
.dv-diag__row{ display:flex; align-items:baseline; gap:8px; padding:7px 11px; font-size:.76rem; border-top:1px solid rgba(255,255,255,.04); }
.dv-diag__row:first-child{ border-top:0; }
.dv-diag__mk{ flex:none; width:14px; font-weight:700; }
.dv-diag__row.ok .dv-diag__mk{ color:var(--trust); }
.dv-diag__row.bad .dv-diag__mk{ color:#ff8f6b; }
.dv-diag__row.bad{ background:rgba(255,110,90,.04); }
.dv-diag__lbl{ flex:none; color:var(--ink); font-weight:500; }
.dv-diag__det{ color:var(--ink-faint); margin-left:auto; text-align:right; min-width:0; }
.dv-diag__rowfix{ font-size:.72rem; line-height:1.4; color:var(--ink-mute); padding:0 11px 8px 33px; background:rgba(255,110,90,.04); }
/* her face is a door — clicking Davara's avatar visits /mover/davara */
.davara__orb--link{ cursor:pointer; display:inline-flex; text-decoration:none; border-radius:50%; transition:filter .35s ease, transform .25s ease; }
.davara__orb--link:hover{ filter:drop-shadow(0 0 14px rgba(154,247,255,.45)); transform:scale(1.05); }
/* the header "syncing…" wisp — a gentle, honest pulse while Davara carries herself across your devices */
.dv-syncwisp{ display:inline-flex; align-items:center; gap:6px; margin-left:8px; padding:3px 9px; border-radius:999px;
  font-size:.6rem; letter-spacing:.04em; color:var(--ink-mute); white-space:nowrap; flex:none;
  border:1px solid var(--glass-line); background:rgba(255,255,255,.03);
  opacity:0; transform:translateY(-2px); transition:opacity .35s ease, transform .35s ease; }
.dv-syncwisp:not([hidden]){ opacity:1; transform:none; }
.dv-syncwisp__dot{ width:9px; height:9px; border-radius:50%; flex:none; background:var(--ink-faint); }
.dv-syncwisp.is-syncing{ color:var(--cyan); border-color:rgba(61,242,255,.3); background:rgba(61,242,255,.06); }
.dv-syncwisp.is-syncing .dv-syncwisp__dot{ background:transparent; border:1.5px solid rgba(61,242,255,.25); border-top-color:var(--cyan); animation:dvWispSpin .8s linear infinite; }
.dv-syncwisp.is-done{ color:var(--trust); border-color:rgba(95,243,192,.28); background:rgba(95,243,192,.06); }
.dv-syncwisp.is-done .dv-syncwisp__dot{ background:var(--trust); box-shadow:0 0 9px rgba(95,243,192,.7); }
.dv-syncwisp.is-warn{ color:#ffb86b; border-color:rgba(255,179,71,.3); background:rgba(255,179,71,.06); }
.dv-syncwisp.is-warn .dv-syncwisp__dot{ background:#ffb347; box-shadow:0 0 9px rgba(255,179,71,.7); }
@keyframes dvWispSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .dv-syncwisp.is-syncing .dv-syncwisp__dot{ animation:dvPulseSoft 1.4s ease-in-out infinite; border-top-color:var(--cyan); } }
/* message-history viewer */
.dv-histlist{ display:flex; flex-direction:column; gap:8px; padding:10px 14px 16px; max-height:64vh; overflow:auto; }
.dv-hist{ padding:9px 11px; border-radius:12px; border:1px solid var(--glass-line); background:rgba(255,255,255,.02); }
.dv-hist__t{ display:block; font-family:var(--mono); font-size:.58rem; letter-spacing:.08em; color:var(--ink-faint); margin-bottom:3px; }
.dv-hist__m{ margin:0; font-size:.86rem; line-height:1.5; color:var(--ink-soft); white-space:pre-wrap; word-break:break-word; }

/* ════ EVERY TOUCH ANSWERS (r69) — press physics on all remaining tappables ════
   The frequency law: daily actions get a 120ms acknowledgment, nothing theatrical. */
.davara__shell .pill, .dv-act, .dv-item__op, .dv-item__x, .dv-chip__x, .dv-att__x, .dv-note__b, .dv-pop, .dv-mod, .dv-rec, .cortex-stat, .dv-chan, .dv-bp, .davara__ico-btn, .dv-gate, .dv-ini__st, .dv-scrollbtm{
  transition-property:transform, color, background, border-color, box-shadow, opacity;
  transition-duration:var(--dv-fast); transition-timing-function:var(--ease); }
.davara__shell .pill:active, .dv-act:active, .dv-item__op:active, .dv-note__b:active, .dv-pop:active, .dv-mod:active, .dv-rec:active, .cortex-stat:active, .dv-chan:active, .davara__ico-btn:active, .dv-ini__st:active{ transform:scale(.96); }
/* the jump-to-latest button is centered BY its transform — its press must keep the centering */
.dv-scrollbtm:active{ transform:translateX(-50%) scale(.96); }
/* layer entries acknowledge the hand without dancing */
.dv-item{ transition:border-color var(--dv-quick), background var(--dv-quick), box-shadow var(--dv-quick); }
.dv-item:hover{ border-color:rgba(var(--dv-accent), .22); box-shadow:0 0 22px -14px rgba(var(--dv-accent), .45); }
/* the range thumb swells slightly under the finger */
.dv-range::-webkit-slider-thumb{ transition:transform var(--dv-fast) var(--dv-spring), box-shadow var(--dv-fast); }
.dv-range:active::-webkit-slider-thumb{ transform:scale(1.22); box-shadow:0 0 22px -2px rgba(var(--dv-accent), .8); }
@media (prefers-reduced-motion: reduce){
  .davara__shell .pill:active, .dv-act:active, .dv-item__op:active, .dv-note__b:active, .dv-pop:active, .dv-mod:active, .dv-rec:active, .cortex-stat:active, .dv-chan:active, .davara__ico-btn:active, .dv-ini__st:active{ transform:none; }
  .dv-scrollbtm:active{ transform:translateX(-50%); }
  .dv-range:active::-webkit-slider-thumb{ transform:none; }
}

/* ════ /ENGAGE EXPANDS (r70) — the conversation earns more of the screen on desktop ════ */
@media (min-width:1040px){
  .davara__shell.is-chatfocus:not(.is-fullscreen){ width:min(100%, 980px); }
}

/* ════ THE TAB RIVER'S CHEVRONS (r70) — visible proof there are more rooms ════ */
.davara__tabswrap{ position:relative; z-index:1; }
.davara__tabarr{ position:absolute; top:50%; transform:translateY(-62%); z-index:2; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(var(--dv-accent), .35); background:rgba(8,11,19,.92); color:var(--dv-accent-ink); font-size:17px; line-height:1; cursor:pointer; padding:0 0 2px;
  opacity:0; pointer-events:none; transition:opacity var(--dv-quick), color var(--dv-fast), transform var(--dv-fast) var(--ease);
  box-shadow:0 6px 18px -8px rgba(0,0,0,.85), 0 0 16px -8px rgba(var(--dv-accent), .55); }
.davara__tabarr--l{ left:7px; } .davara__tabarr--r{ right:7px; }
.davara__tabswrap.can-l .davara__tabarr--l, .davara__tabswrap.can-r .davara__tabarr--r{ opacity:1; pointer-events:auto; }
.davara__tabarr:hover{ color:var(--ink); }
.davara__tabarr:active{ transform:translateY(-62%) scale(.9); }
.davara__shell.is-fullscreen .davara__tabarr{ display:none; }   /* the sanctum has no tab river */

/* ════ THE CONSTELLATION IS A DOOR (r70) — the strip invites the Atlas ════ */
button.dv-cosmos{ display:block; width:auto; font:inherit; color:inherit; text-align:left; -webkit-appearance:none; appearance:none; cursor:pointer; padding:0; transition:border-color var(--dv-quick), box-shadow var(--dv-quick); }
button.dv-cosmos:hover{ border-color:rgba(var(--dv-accent), .32); box-shadow:inset 0 1px 0 var(--glass-hi), 0 0 30px -14px rgba(var(--dv-accent), .5); }
button.dv-cosmos:focus-visible{ outline:none; border-color:rgb(var(--dv-accent)); box-shadow:0 0 0 3px rgba(var(--dv-accent), .14); }
.dv-cosmos__hint{ position:absolute; left:10px; bottom:7px; font-family:var(--mono); font-size:.54rem; letter-spacing:.14em; color:rgba(var(--dv-accent), .85); pointer-events:none; }
.davara__shell.is-fullscreen .dv-cosmos__hint{ display:none; }

/* ════ THE CORTEX ATLAS (r70) — your second mind, mapped. Every node is a door. ════ */
.dv-atlas{ position:absolute; inset:0; z-index:6; display:grid; place-items:center; padding:12px; opacity:0; transition:opacity var(--dv-quick) var(--ease); }
.dv-atlas.on{ opacity:1; }
.dv-atlas__veil{ position:absolute; inset:0; border:0; padding:0; background:rgba(4,5,11,.88); cursor:pointer; }
.dv-atlas__card{ position:relative; width:min(97%, 620px); max-height:96%; overflow:auto; border-radius:24px; background:rgba(10,13,22,.97); border:1px solid rgba(var(--dv-accent), .22); box-shadow:0 50px 120px -50px rgba(0,0,0,.95), 0 0 70px -40px rgba(var(--dv-accent), .5); padding:16px 16px 13px;
  transform:translateY(12px) scale(.985); transition:transform var(--dv-move) var(--ease-out); }
.dv-atlas.on .dv-atlas__card{ transform:none; }
.dv-atlas__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:4px; }
.dv-atlas__head b{ display:block; font-family:var(--display); font-weight:700; font-size:.98rem; letter-spacing:.07em; color:var(--ink); }
.dv-atlas__head span{ display:block; font-family:var(--mono); font-size:.58rem; letter-spacing:.07em; color:var(--ink-mute); margin-top:3px; line-height:1.5; }
.dv-atlas__stage{ position:relative; }
.dv-atlas__stage svg{ width:100%; height:auto; display:block; }
.dv-atlas__ring{ fill:none; stroke:rgba(255,255,255,.055); stroke-dasharray:3 7; }
.dv-atlas__ring--2{ stroke:rgba(255,255,255,.04); }
.dv-atlas__edge{ stroke-width:1; }
.dv-atlas__core{ fill:rgba(10,14,24,.92); stroke:rgba(var(--dv-accent), .42); stroke-width:1.2; filter:drop-shadow(0 0 18px rgba(var(--dv-accent), .35)); }
.dv-atlas__heart{ position:absolute; left:50%; top:50%; width:12%; aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none; }
.dv-atlas__heart .dv-av{ width:100%; height:100%; }
.dv-atlas__node{ cursor:pointer; outline:none; }
.dv-atlas__halo{ fill:rgba(var(--nc), .08); opacity:0; transition:opacity var(--dv-fast); }
.dv-atlas__node:hover .dv-atlas__halo, .dv-atlas__node:focus-visible .dv-atlas__halo{ opacity:1; }
.dv-atlas__dot{ fill:rgba(var(--nc), .1); stroke:rgba(var(--nc), .6); stroke-width:1.2; animation:atlasBreath 2.8s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
.dv-atlas__node:hover .dv-atlas__dot, .dv-atlas__node:focus-visible .dv-atlas__dot{ stroke-width:2; filter:drop-shadow(0 0 10px rgba(var(--nc), .65)); }
.dv-atlas__glyph{ font-size:20px; text-anchor:middle; dominant-baseline:central; }
.dv-atlas__label{ font-family:var(--display); font-weight:600; font-size:13.5px; fill:#eef0f7; text-anchor:middle; }
.dv-atlas__count{ font-family:var(--mono); font-size:11px; fill:rgb(var(--nc)); text-anchor:middle; }
.dv-atlas__sig{ pointer-events:none; }
.dv-atlas__fine{ margin:8px 6px 2px; font-size:.72rem; line-height:1.55; color:var(--ink-mute); text-align:center; }
.dv-atlas__fine b{ color:var(--cyan-soft); }
@keyframes atlasBreath{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.07); } }
/* ── ATLAS v2 (r71): pan + zoom + semantic depth — zoom in and the flows name themselves ── */
.dv-atlas__stage{ touch-action:none; cursor:grab; }
.dv-atlas__stage:active{ cursor:grabbing; }
.dv-atlas__zoomui{ position:absolute; right:8px; top:8px; display:flex; flex-direction:column; gap:6px; }
.dv-atlas__zoomui button{ width:34px; height:34px; display:grid; place-items:center; border-radius:11px; border:1px solid rgba(var(--dv-accent), .3); background:rgba(8,11,19,.92); color:var(--ink-soft); font-size:17px; line-height:1; cursor:pointer; transition:color var(--dv-fast), transform var(--dv-fast) var(--ease); box-shadow:0 6px 16px -8px rgba(0,0,0,.8); }
.dv-atlas__zoomui button:hover{ color:var(--ink); }
.dv-atlas__zoomui button:active{ transform:scale(.92); }
/* level-of-detail: flow names + usage notes + ring captions surface as you zoom in */
.dv-atlas__flow{ font-family:var(--mono); font-size:8.5px; letter-spacing:.04em; text-anchor:middle; opacity:0; transition:opacity .35s var(--ease); pointer-events:none; }
.dv-atlas__when{ font-family:var(--mono); font-size:8px; letter-spacing:.03em; fill:var(--ink-mute); text-anchor:middle; opacity:0; transition:opacity .35s var(--ease); pointer-events:none; }
.dv-atlas__ringcap{ font-family:var(--mono); font-size:9px; letter-spacing:.16em; fill:var(--ink-mute); text-anchor:middle; opacity:0; transition:opacity .35s var(--ease); pointer-events:none; }
/* SPACE LAW: flows surface at depth 2+; once a node is SELECTED, every other label
   whispers (.12) and only the chosen one speaks. Usage notes show ONLY for the
   selected node — text never piles on text. */
.dv-atlas[data-depth="2"] .dv-atlas__flow, .dv-atlas[data-depth="3"] .dv-atlas__flow,
.dv-atlas[data-depth="2"] .dv-atlas__ringcap, .dv-atlas[data-depth="3"] .dv-atlas__ringcap{ opacity:1; }
.dv-atlas[data-sel][data-depth="2"] .dv-atlas__flow:not(.is-on),
.dv-atlas[data-sel][data-depth="3"] .dv-atlas__flow:not(.is-on){ opacity:.12; }
.dv-atlas .dv-atlas__flow.is-on{ opacity:1; font-size:9.5px; }
.dv-atlas .dv-atlas__when.is-on{ opacity:1; }
.dv-atlas[data-sel] .dv-atlas__node:not(.is-sel) .dv-atlas__label{ opacity:.45; }
.dv-atlas[data-sel] .dv-atlas__node:not(.is-sel) .dv-atlas__count{ opacity:.4; }
/* THE MAP BREATHES — the orbit rings slowly travel (her system, always in motion) */
.dv-atlas__ring{ animation:atlasRingDrift 70s linear infinite; }
.dv-atlas__ring--2{ animation-duration:110s; animation-direction:reverse; }
@keyframes atlasRingDrift{ to{ stroke-dashoffset:-200; } }
/* SUBNODES — the selected structure blooms into its actual building blocks */
.dv-atlas__sub-e{ stroke:rgba(255,255,255,.16); stroke-width:1; animation:atlasSubIn .3s var(--ease-out) both; }
.dv-atlas__sub-d{ fill:rgba(var(--nc), .14); stroke:rgba(var(--nc), .65); stroke-width:1.1; animation:atlasSubIn .3s var(--ease-out) both; }
.dv-atlas__sub-t{ font-family:var(--body); font-size:10.5px; fill:#c9cfdf; animation:atlasSubIn .35s var(--ease-out) both; paint-order:stroke; stroke:rgba(5,7,13,.85); stroke-width:3px; stroke-linejoin:round; }
@keyframes atlasSubIn{ 0%{ opacity:0; } 100%{ opacity:1; } }
.dv-atlas[data-depth="3"] .dv-atlas__sig{ r:2; }
.dv-atlas__zhint{ font-style:normal; color:rgba(var(--dv-accent), .9); }
.dv-atlas__node.is-sel .dv-atlas__dot{ stroke-width:2.2; filter:drop-shadow(0 0 12px rgba(var(--nc), .75)); }
/* the node sheet — context + depth for the chosen structure */
.dv-atlas__sheet{ margin:8px 2px 0; padding:11px 12px; border-radius:15px; border:1px solid rgba(var(--dv-accent), .2); background:rgba(255,255,255,.025); animation:dvItemIn var(--dv-quick) var(--ease-out) both; }
.dv-atlas__sh{ display:flex; align-items:center; gap:10px; }
.dv-atlas__sh-g{ flex:none; width:38px; height:38px; display:grid; place-items:center; font-size:19px; border-radius:12px; border:1px solid rgba(var(--nc), .45); background:rgba(var(--nc), .08); }
.dv-atlas__sh-t{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.dv-atlas__sh-t b{ font-family:var(--display); font-size:.92rem; color:var(--ink); }
.dv-atlas__sh-t span{ font-family:var(--mono); font-size:.6rem; color:var(--ink-mute); }
.dv-atlas__sh-d{ margin:8px 0 0; font-size:.8rem; line-height:1.55; color:var(--ink-soft); }
.dv-atlas__sh-f{ margin:6px 0 0; font-family:var(--mono); font-size:.6rem; letter-spacing:.04em; line-height:1.6; color:var(--ink-mute); }
.dv-atlas__sh-f b{ color:rgba(var(--dv-accent), .9); letter-spacing:.12em; }
/* the toolbar — the Atlas is a command center, not a poster */
.dv-atlas__bar{ display:flex; flex-wrap:wrap; gap:7px; margin:9px 2px 0; }
.dv-atlas__act{ flex:1; min-width:118px; padding:9px 10px; border-radius:99px; border:1px solid var(--glass-line); background:rgba(255,255,255,.03); color:var(--ink-soft); font-family:var(--display); font-weight:600; font-size:.74rem; cursor:pointer; white-space:nowrap; transition:color var(--dv-fast), border-color var(--dv-quick), box-shadow var(--dv-quick), transform var(--dv-fast) var(--ease); }
.dv-atlas__act:hover{ color:var(--ink); border-color:rgba(var(--dv-accent), .4); box-shadow:0 0 18px -8px rgba(var(--dv-accent), .55); }
.dv-atlas__act:active{ transform:scale(.96); }
.dv-atlas__act--ask{ border-color:rgba(var(--dv-accent), .4); color:var(--dv-accent-ink); }
/* search the whole mind */
.dv-atlas__find{ margin:9px 2px 0; }
.dv-atlas__find .input{ margin-bottom:7px; }
.dv-atlas__hits{ display:flex; flex-direction:column; gap:5px; max-height:200px; overflow:auto; }
.dv-atlas__hit{ display:flex; align-items:center; gap:9px; text-align:left; padding:8px 10px; border-radius:11px; border:1px solid var(--glass-line); background:rgba(255,255,255,.02); cursor:pointer; transition:border-color var(--dv-fast), background var(--dv-fast); }
.dv-atlas__hit:hover{ border-color:rgba(var(--dv-accent), .4); background:rgba(var(--dv-accent), .05); }
.dv-atlas__hit-g{ flex:none; font-size:.9rem; }
.dv-atlas__hit-t{ flex:1; min-width:0; font-size:.76rem; color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dv-atlas__hit-r{ flex:none; font-family:var(--mono); font-size:.54rem; letter-spacing:.1em; color:var(--ink-faint); text-transform:uppercase; }
/* ── ATLAS v3 (r72): her evolutionary phase + the next-moves leverage panel ── */
.dv-atlas__phasering-bg{ fill:none; stroke:rgba(255,255,255,.06); stroke-width:2.5; }
.dv-atlas__phasering{ fill:none; stroke:rgb(var(--dv-accent)); stroke-width:2.5; stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(var(--dv-accent), .6));
  transition:stroke-dashoffset 1.4s var(--ease-out); }
.dv-atlas__phasename{ font-family:var(--display); font-weight:700; font-size:12.5px; letter-spacing:.12em; fill:#eef0f7; text-anchor:middle; }
.dv-atlas__phaseline{ font-family:var(--mono); font-size:9px; letter-spacing:.06em; fill:var(--ink-mute); text-anchor:middle; }
.dv-atlas__phasechip{ color:rgb(var(--dv-accent)); letter-spacing:.1em; }
.dv-atlas__sh-n{ margin:7px 0 0; font-size:.76rem; line-height:1.55; color:var(--ink-soft); padding:8px 10px; border-radius:11px; background:rgba(var(--dv-accent), .05); border:1px solid rgba(var(--dv-accent), .16); }
.dv-atlas__sh-n b{ font-family:var(--mono); font-size:.58rem; letter-spacing:.12em; color:rgba(var(--dv-accent), .9); margin-right:4px; }
.dv-atlas__act--next{ border-color:rgba(95,243,192,.4); color:var(--trust-soft); }
.dv-atlas__nextpanel{ margin:9px 2px 0; display:flex; flex-direction:column; gap:5px; animation:dvItemIn var(--dv-quick) var(--ease-out) both; }
.dv-atlas__nx-head{ font-size:.76rem; line-height:1.5; color:var(--ink-soft); padding:8px 10px; border-radius:11px; background:rgba(255,255,255,.025); border:1px solid var(--glass-line); }
.dv-atlas__nx-head b{ color:rgb(var(--dv-accent)); letter-spacing:.06em; }
.dv-atlas__nx-head i{ font-style:normal; color:var(--ink-mute); }
@media (prefers-reduced-motion: reduce){ .dv-atlas__phasering{ transition:none; } .dv-atlas__nextpanel{ animation:none; } }
@media (max-width:560px){
  .dv-atlas{ padding:8px; }
  .dv-atlas__card{ width:100%; padding:13px 10px 11px; }
  .dv-atlas__label{ font-size:15px; }
  .dv-atlas__count{ font-size:12.5px; }
  .dv-atlas__glyph{ font-size:22px; }
}
@media (prefers-reduced-motion: reduce){
  .dv-atlas, .dv-atlas__card, .davara__tabarr, button.dv-cosmos{ transition:none; }
  .dv-atlas__dot, .dv-atlas__ring, .dv-atlas__ring--2, .dv-atlas__sub-e, .dv-atlas__sub-d, .dv-atlas__sub-t{ animation:none; }
  .dv-atlas__sig{ display:none; }
  .davara__tabarr:active{ transform:translateY(-62%); }
}
