/* AURA Spatial OS: zones around the AURA core. Motion only moves transform
   and opacity; depth comes from opacity, scale and position, never 3D. */
.aura-os{
  /* Semantic names over the 360 tokens: lime = AURA, orange = action, cream = calm. */
  --os-signal:var(--aura-core);--os-live:var(--aura-action);--os-cream:var(--ink);--os-ink:var(--ink);--os-muted:var(--muted);
  --os-alert:var(--danger);--os-line:var(--line);--os-line-strong:var(--line-strong);--os-wash:var(--line-soft);
  /* Motion tokens */
  --os-micro:150ms;--os-normal:230ms;--os-spatial:380ms;
  --os-ease:cubic-bezier(.2,.7,.2,1);--os-ease-in:cubic-bezier(.5,0,.75,0);
  --os-shift:6px;--os-rise:8px;--os-far:.72;--os-far-scale:.985;
  display:grid;gap:18px 24px;min-width:0;color:var(--os-ink);
  grid-template-columns:minmax(0,1fr);grid-template-areas:"bar" "core" "next" "ops";
}
.aura-os{position:relative;isolation:isolate}
.aura-os>*{min-width:0;position:relative;z-index:1}
.aura-os>.aura-os-links{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}
.aura-os-links path{fill:none;stroke:var(--os-line-strong);stroke-width:1;animation:aura-os-draw var(--os-spatial) var(--os-ease) backwards}
/* Connections are calm cream; only an active one carries muted lime, and
   while AURA joins context it brightens briefly. Never a neon wiring plan. */
.aura-os-links path.is-strong{stroke:color-mix(in srgb,var(--lime) 30%,var(--line-strong))}
.aura-os[data-presence=thinking] .aura-os-links path.is-strong{stroke:color-mix(in srgb,var(--lime) 62%,transparent)}
@keyframes aura-os-draw{from{opacity:0}to{opacity:1}}
/* Fixed rows: server facts arriving later change words, never the height,
   so nothing below the bar jumps (no layout shift after load). */
.aura-os-bar{grid-area:bar;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"focus tools" "steps presence" "alert alert";
  align-items:end;gap:8px 22px;padding:2px 2px 14px;border-bottom:1px solid var(--os-line)}
.aura-os-focus{grid-area:focus;min-width:0}
.aura-os-eyebrow{margin:0 0 6px;font:600 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--os-muted)}
.aura-os-eyebrow.is-signal{color:var(--os-signal)}
.aura-os-title{margin:0;font:600 clamp(22px,2.1vw,32px)/1.12 var(--body);letter-spacing:-.03em;color:var(--os-ink);text-wrap:balance;overflow-wrap:anywhere}
.aura-os-meta{margin:4px 0 0;font:400 13px/1.45 var(--body);color:var(--os-muted);overflow-wrap:anywhere}
.aura-os-steps{grid-area:steps;min-height:19px;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none;font:500 13px/1.4 var(--body);color:var(--os-muted)}
.aura-os-steps li{display:flex;align-items:center;gap:7px}
.aura-os-steps li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--os-muted);opacity:.5}
.aura-os-steps li.is-ok::before{background:var(--os-signal);opacity:1}
/* Loading and thinking are told by colour and word, not by blinking: an
   endless animation here repainted the whole spatial layer every frame. */
.aura-os-steps li.is-loading::before{background:var(--os-live);opacity:1}
.aura-os-steps li.is-unchecked{color:var(--muted-2)}
.aura-os-steps li.is-unchecked::before{border-radius:1px;height:2px;width:8px;opacity:1}
.aura-os-presence{grid-area:presence;justify-self:end;display:flex;align-items:center;gap:8px;margin:0;font:500 13px/1.4 var(--body);color:var(--os-cream)}
/* AURA's presence is lime in every state; only its intensity changes.
   Orange and red belong to the action or the warning, never to AURA. */
.aura-os-dot{width:8px;height:8px;border-radius:50%;background:var(--os-muted);flex:none;transition:background-color var(--os-normal) var(--os-ease)}
.aura-os-presence .aura-os-dot{background:color-mix(in srgb,var(--lime) 40%,var(--bg))}
.aura-os[data-presence=listening] .aura-os-presence .aura-os-dot,.aura-os[data-presence=approval] .aura-os-presence .aura-os-dot,.aura-os[data-presence=alert] .aura-os-presence .aura-os-dot{background:var(--os-signal)}
.aura-os[data-presence=waiting] .aura-os-presence .aura-os-dot{background:color-mix(in srgb,var(--lime) 55%,var(--bg))}
.aura-os[data-presence=thinking] .aura-os-presence .aura-os-dot{background:var(--os-signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--lime) 20%,transparent)}
.aura-os[data-presence=acting] .aura-os-presence .aura-os-dot,.aura-os[data-presence=handoff] .aura-os-presence .aura-os-dot{background:var(--os-signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 45%,transparent)}
.aura-os[data-presence=monitoring] .aura-os-presence .aura-os-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--os-signal)}
.aura-os-alert{grid-area:alert;margin:0;padding:8px 12px;border:1px solid color-mix(in srgb,var(--danger) 50%,transparent);border-radius:10px;font:600 14px/1.35 var(--body);color:var(--os-alert)}
.aura-os-tools{grid-area:tools;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.aura-os-btn{min-height:44px;padding:0 14px;border:1px solid var(--os-line-strong);border-radius:10px;background:transparent;color:var(--os-ink);
  font:500 14px/1 var(--body);cursor:pointer;transition:background-color var(--os-micro) var(--os-ease),border-color var(--os-micro) var(--os-ease)}
.aura-os-btn:hover{background:var(--os-wash);border-color:var(--os-cream)}
.aura-os-btn.is-primary{background:var(--os-signal);border-color:var(--os-signal);color:var(--bg-card);font-weight:600}
.aura-os-btn.is-primary:hover{background:var(--lime-deep)}
.aura-os-btn:disabled{opacity:.6;cursor:progress}
.aura-os :is(.aura-os-btn,.aura-os-hit,.aura-os-more):focus-visible{outline:2px solid var(--os-signal);outline-offset:2px}

.aura-os-core{grid-area:core}
.aura-os-next{grid-area:next;display:grid;gap:10px}
.aura-os-field{display:flex;flex-direction:column;gap:22px;align-content:start}
.aura-os-field.is-context{grid-area:ctx}
.aura-os-field.is-ops{grid-area:ops}
.aura-os-group{display:flex;flex-direction:column;gap:2px;min-width:0}
.aura-os-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.aura-os-item{border-top:1px solid var(--os-line);transition:opacity var(--os-spatial) var(--os-ease),translate var(--os-spatial) var(--os-ease),scale var(--os-spatial) var(--os-ease);
  animation:aura-os-in var(--os-normal) var(--os-ease) backwards}
/* Only the first rows enter with motion; the rest simply appear. Many
   simultaneous transitions next to the living orb cost frames (measured). */
.aura-os-item:nth-child(2){animation-delay:30ms}.aura-os-item:nth-child(3){animation-delay:60ms}
.aura-os-item:nth-child(4){animation-delay:90ms}.aura-os-item:nth-child(n+5){animation:none}
.aura-os-hit{width:100%;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"rel status" "label status" "meta status";
  align-items:center;column-gap:12px;padding:10px 4px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit;
  transition:background-color var(--os-micro) var(--os-ease)}
.aura-os-hit:hover{background:var(--os-wash)}
.aura-os-rel{grid-area:rel;font:600 12px/1.3 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--os-muted)}
.aura-os-label{grid-area:label;font:500 15px/1.35 var(--body);color:var(--os-ink);overflow-wrap:anywhere}
.aura-os-hit .aura-os-meta{grid-area:meta;margin:2px 0 0}
.aura-os-status{grid-area:status;justify-self:end;display:flex;align-items:center;gap:6px;font:500 12px/1 var(--body);color:var(--os-muted);white-space:nowrap}
.aura-os-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.aura-os-status:is(.is-neu,.is-aktiv,.is-heute,.is-gewonnen){color:var(--os-signal)}
.aura-os-status.is-wartet{color:var(--os-cream)}
.aura-os-status.is-ueberfaellig{color:var(--os-live)}
.aura-os-open{grid-area:status;justify-self:end;color:var(--os-muted);font-size:14px}
.aura-os-hit:has(.aura-os-status) .aura-os-open{display:none}
.aura-os-item.is-urgent .aura-os-label{font-weight:600}
/* Distance: unrelated objects step back; related ones come forward. */
.aura-os-item.is-far{opacity:var(--os-far);scale:var(--os-far-scale)}
.aura-os-field.is-context .aura-os-item.is-far{translate:calc(var(--os-shift) * -1) 0}
.aura-os-field.is-ops .aura-os-item.is-far{translate:var(--os-shift) 0}
.aura-os-item.is-far:focus-within,.aura-os-item.is-far:hover{opacity:1}
/* Thinking: the objects AURA is joining lean towards the core. */
.aura-os[data-presence=thinking] .aura-os-field.is-context .aura-os-item[data-link]{translate:var(--os-shift) 0}
.aura-os[data-presence=thinking] .aura-os-field.is-ops .aura-os-item[data-link]{translate:calc(var(--os-shift) * -1) 0}
.aura-os[data-ambient=true] .aura-os-field{opacity:.88}
.aura-os-more{align-self:flex-start;min-height:44px;margin-top:4px;padding:0 4px;border:0;background:transparent;color:var(--os-cream);font:500 13px/1 var(--body);
  text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--os-line-strong);cursor:pointer}
.aura-os-note{margin:0;font:400 14px/1.5 var(--body);color:var(--os-muted)}

/* Approval: a deliberate decision with what, why, change, risk and target. */
.aura-os-approval{display:grid;gap:10px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--orange) 55%,transparent);border-radius:14px;background:color-mix(in srgb,var(--orange) 5%,var(--bg-card));animation:aura-os-in var(--os-spatial) var(--os-ease) backwards}
.aura-os-approval .aura-os-eyebrow.is-signal{color:var(--orange)}
.aura-os-approval .aura-os-btn.is-primary{background:var(--orange);border-color:var(--orange);color:var(--bg)}
.aura-os-approval .aura-os-btn.is-primary:hover{background:color-mix(in srgb,var(--orange) 85%,var(--ink))}
.aura-os-approval h3{margin:0;font:600 18px/1.3 var(--body);color:var(--os-ink)}
.aura-os-approval dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0;font:400 14px/1.45 var(--body)}
.aura-os-approval dt{color:var(--os-muted)}
.aura-os-approval dd{margin:0;color:var(--os-ink);overflow-wrap:anywhere}
.aura-os-decide{display:flex;flex-wrap:wrap;gap:8px}

.aura-os-sys{display:flex;align-items:center;gap:8px;margin:6px 0 0;font:500 14px/1.4 var(--body);color:var(--os-cream)}
.aura-os-systems.is-ok .aura-os-dot{background:var(--os-signal)}
.aura-os-systems.is-attention .aura-os-dot{background:var(--os-live)}
.aura-os-systems .aura-os-item{display:grid;padding:8px 4px}
.aura-os-systems .aura-os-item.is-urgent .aura-os-label{color:var(--os-alert)}
.aura-os-handoff{display:grid;grid-template-columns:auto minmax(28px,1fr) auto;grid-template-areas:"from track to" "meta meta meta";align-items:center;gap:4px 10px;
  padding:10px 4px;border-top:1px solid var(--os-line);font:500 14px/1.3 var(--body)}
.aura-os-handoff .aura-os-meta{grid-area:meta;margin:0}
.aura-os-handoff-track{position:relative;height:1px;background:var(--os-line-strong);overflow:hidden}
.aura-os-handoff-track i{position:absolute;inset:-2px auto -2px 0;width:24%;background:var(--os-live);will-change:transform;animation:aura-os-carry 1.4s var(--os-ease) infinite}

@keyframes aura-os-in{from{opacity:0;transform:translateY(var(--os-rise))}to{opacity:1;transform:none}}
@keyframes aura-os-carry{from{transform:translateX(-100%)}to{transform:translateX(420%)}}

/* AURA takes the whole width on large screens; other views keep theirs. */
@media (min-width:1920px){.content.content-aura{max-width:none}}

/* ── Viewport adapter ─────────────────────────────────────────────── */
/* Tablet landscape and MacBook: two zones, AURA plus one quiet side field. */
.aura-os:is([data-tier=desktop],[data-tier=tablet][data-orient=landscape]){
  grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:"bar bar" "core ops"}
/* 21:9 and large 16:9: three fields; the side fields breathe. */
.aura-os[data-tier=wide]{grid-template-columns:300px minmax(0,1fr) 320px;grid-template-areas:"bar bar bar" "ctx core ops";gap:22px 40px}
/* 32:9: the core keeps a readable width, the side fields use the space. */
.aura-os[data-tier=ultra]{grid-template-columns:minmax(320px,1fr) minmax(0,1240px) minmax(320px,1fr);grid-template-areas:"bar bar bar" "ctx core ops";gap:24px 56px}
.aura-os[data-tier=ultra]{max-width:3200px;margin-inline:auto}
.aura-os[data-tier=ultra] .aura-os-field{max-width:880px;width:100%}
.aura-os[data-tier=ultra] .aura-os-field.is-context .aura-os-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));column-gap:28px}
.aura-os[data-tier=ultra] .aura-os-field.is-context{justify-self:end}
.aura-os[data-tier=ultra] .aura-os-field.is-ops{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px 32px}
.aura-os[data-tier=ultra] .aura-os-field.is-ops>.aura-os-approval{grid-column:1/-1}
/* Phone and tablet portrait: one focus, one action, one answer. */
.aura-os:is([data-tier=mobile],[data-tier=tablet][data-orient=portrait]) .aura-os-bar{padding-bottom:10px;gap:8px 14px;grid-template-columns:minmax(0,1fr);
  grid-template-areas:"focus" "steps" "presence" "tools" "alert"}
.aura-os:is([data-tier=mobile],[data-tier=tablet][data-orient=portrait]) :is(.aura-os-presence,.aura-os-tools){justify-self:start;justify-content:flex-start}
.aura-os[data-tier=mobile] .aura-os-steps{display:none}
.aura-os[data-tier=mobile] .aura-os-tools .aura-os-btn{padding:0 12px}
.aura-os.is-full{padding:28px 32px;background:var(--bg);overflow:auto}

/* The console must not be its own scroll box here: then the sticky composer
   stays at the bottom of the screen (voice first, input always in reach). */
.aura-os .aura-console.vo-drawer{overflow:visible}
/* Same for the AURA home frame: clip looks identical to hidden but is not a
   scroll container, so sticky keeps working against the page. */
.aura-home.marc-home{overflow:clip}
/* The AURA home frame is a flex row; the spatial layer takes all of it. */
.aura-home .marc-home-flaeche>.aura-os{flex:1 1 auto;min-width:0}
/* Listening shows in the sphere itself (it reacts to the measured level);
   no equalizer bars in the spatial room. */
.aura-os .vo-signal-bars{display:none}

/* Cinematic presentation keeps the room, not the operating chrome. */
.aura-cinematic .aura-os :is(.aura-os-bar,.aura-os-field,.aura-os-next){display:none!important}
.aura-cinematic .aura-os{grid-template-columns:minmax(0,1fr);grid-template-areas:"core"}

@media (prefers-reduced-motion:reduce){
  .aura-os *{animation:none!important}
  .aura-os-item,.aura-os-item.is-far,.aura-os[data-presence=thinking] .aura-os-item{translate:none!important;scale:none!important;transition:opacity 120ms linear}
  .aura-os-handoff-track i{width:100%;transform:none}
}

/* AURA plan approval inside the console: every waiting step is listed. */
.vo-entwurf-schritte{margin:6px 0 10px;padding-left:18px;display:grid;gap:4px;font:400 14px/1.45 var(--body);color:var(--ink)}

/* ── Spatial mode: AURA as the centre of a room, not a console with panels ── */
.aura-os[data-mode=spatial]{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"bar" "core"!important}
.aura-os[data-tier=ultra][data-mode=spatial]{max-width:none}
.aura-os-core{position:relative}
.aura-os[data-mode=spatial] .aura-console.aura-living-stage.vo-drawer>.vo-presence{min-height:clamp(480px,56vh,780px)!important}
.aura-os[data-mode=spatial] .aura-console.aura-living-stage.vo-drawer .vo-presence-title{display:none}
.aura-os[data-mode=spatial] .aura-living-stage .aura-face,
.aura-os[data-mode=spatial] .aura-living-stage.aura-has-result .aura-face{left:50%;top:45%;width:min(380px,44vh,34%);height:min(380px,44vh,34%);max-width:none;transform:translate(-50%,-50%)!important}
/* Everything happens in the room: no stage, panel or draft card beside it. */
body:not(.aura-cinematic) .aura-os[data-mode=spatial] .aura-console .aura-result-stage{display:none!important}
body:has(.aura-os[data-mode=spatial]) .mv-draft{display:none}
/* Voice state is told by the bar and the composer; the room stays free. */
.aura-os[data-mode=spatial] .aura-console.aura-living-stage.vo-drawer .vo-presence-copy{display:none}
.aura-os-decided{margin:4px 0 0}
.aura-sx-say{position:absolute;z-index:4;transform:translateX(-50%);width:min(560px,80%);margin:0;text-align:center;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
  font:400 clamp(17px,1.5vw,22px)/1.45 var(--body);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;pointer-events:none;
  animation:aura-os-in var(--os-spatial) var(--os-ease) 160ms backwards}

/* The room layer sits exactly over the presence area of the console. */
.aura-sx{position:absolute;z-index:3;pointer-events:none;--px:0px;--py:0px;contain:layout style}
.aura-sx-lines{position:absolute;inset:0;overflow:visible;pointer-events:none}
.aura-sx-lines path{fill:none;stroke:var(--line-strong);stroke-width:1;animation:aura-sx-draw 420ms var(--os-ease) 160ms backwards}
.aura-sx-lines path.is-focus,.aura-sx-lines path.is-source{stroke:color-mix(in srgb,var(--lime) 45%,transparent)}
.aura-sx-lines path.is-action{stroke:color-mix(in srgb,var(--orange) 50%,transparent)}
.aura-sx-lines path.is-handoff{stroke:color-mix(in srgb,var(--lime) 35%,var(--line-strong))}
.aura-sx[data-presence=thinking] .aura-sx-lines path.is-relation{stroke:color-mix(in srgb,var(--lime) 40%,transparent)}
@keyframes aura-sx-draw{from{opacity:0}to{opacity:1}}

/* Floating units: label first, light surface, no card frame. */
.aura-sx-unit{position:absolute;left:0;top:0;transform-origin:50% 50%;pointer-events:auto;translate:calc(var(--px) * var(--d,1)) calc(var(--py) * var(--d,1));
  transition:translate 260ms var(--os-ease)}
.aura-sx-hit{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"rel status" "label label" "meta meta";gap:2px 10px;width:100%;min-height:56px;
  padding:9px 12px 10px;border:0;border-radius:var(--r-control);background:var(--bg-2);
  color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.aura-sx-hit:hover{background:var(--bg-elev)}
.aura-sx-hit:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.aura-sx-rel{grid-area:rel;font:500 13px/1.3 var(--body);color:var(--muted)}
.aura-sx-label{grid-area:label;font:500 15px/1.3 var(--body);color:var(--ink);overflow-wrap:anywhere}
.aura-sx-meta{grid-area:meta;font:400 13px/1.4 var(--body);color:var(--muted);overflow-wrap:anywhere}
.aura-sx-status{grid-area:status;display:flex;align-items:center;gap:6px;font:500 12px/1 var(--body);color:var(--muted);white-space:nowrap}
.aura-sx-status:is(.is-neu,.is-aktiv,.is-heute,.is-gewonnen,.is-bestaetigt){color:var(--lime)}
.aura-sx-status.is-ueberfaellig{color:var(--orange)}
/* Roles: the anchor is the focus, primaries are near and clear. */
/* The focus is a calm full ring on a flat tone. */
.aura-sx-unit.is-anchor .aura-sx-hit{box-shadow:inset 0 0 0 1px var(--line-lime);background:var(--bg-elev)}
.aura-sx-unit.is-anchor .aura-sx-label{font-size:18px;font-weight:600}
.aura-sx-unit.is-type-cluster .aura-sx-hit{box-shadow:none;outline:1px dashed var(--line-strong);outline-offset:-1px}
.aura-sx-unit.is-expanded{z-index:50}
.aura-sx-unit.is-expanded .aura-sx-hit{background:var(--bg-elev);border-radius:var(--r-control) var(--r-control) 0 0}
.aura-sx-actions{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 12px;background:var(--bg-elev);border-radius:0 0 var(--r-control) var(--r-control)}
/* Receding objects fade as a whole: their small print keeps full ink. */
.aura-sx-unit.is-peripheral :is(.aura-sx-rel,.aura-sx-status,.aura-sx-meta){color:var(--ink)}
.aura-sx-unit.is-view{padding:20px 24px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-control)}
.aura-sx-unit.is-view .vw-befund{font-size:clamp(2.25rem,8cqi,3.5rem)}
.aura-sx-unit.is-view .vw-beleg{display:none}
.aura-sx-unit.is-view .vw-aktion .vw-btn{width:auto}
.aura-sx-unit.is-approval .aura-os-approval{animation:none}
.aura-sx-unit.is-leaving{pointer-events:none}
.aura-sx-more{position:absolute;right:12px;bottom:10px;margin:0;font:500 12px/1.3 var(--body);color:var(--muted);pointer-events:none}
/* A handoff: one activity dot travels from the giving to the taking agent. */
.aura-sx-carry{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px color-mix(in srgb,var(--lime) 22%,transparent);
  pointer-events:none;will-change:transform;animation:aura-sx-carry 1600ms var(--os-ease) infinite}
@keyframes aura-sx-carry{from{transform:translate(var(--fx),var(--fy));opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translate(var(--tx),var(--ty));opacity:0}}

@media (prefers-reduced-motion:reduce){
  .aura-sx-unit{translate:none!important;transition:none}
  .aura-sx-lines path{animation:none}
  .aura-sx-carry{animation:none;display:none}
}
.aura-cinematic .aura-sx{display:none!important}

/* ── Room things: one design language for every kind ── */
/* Values (weather, key figures) read as numbers first. */
.aura-sx-unit.is-value .aura-sx-label{font:600 22px/1.15 var(--body);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.aura-sx-unit.is-anchor.is-type-weather .aura-sx-label{font-size:20px;font-variant-numeric:tabular-nums}
.aura-sx-detail{padding:8px 12px 0;background:var(--bg-elev);display:grid;gap:8px}
.aura-sx-detail+.aura-sx-actions,.aura-sx-detail .aura-sx-actions{padding:0 0 12px}
.aura-sx-detail:last-child{padding-bottom:12px;border-radius:0 0 12px 12px}
.aura-sx-source{margin:0;font:400 12px/1.4 var(--body);color:var(--muted)}
.aura-sx-hours{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0;padding:0;list-style:none}
.aura-sx-hours li{display:grid;justify-items:center;gap:2px;font:400 12px/1.2 var(--body);color:var(--muted)}
.aura-sx-hours b{font:600 15px/1.2 var(--body);color:var(--ink);font-variant-numeric:tabular-nums}
.aura-sx-numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:0}
.aura-sx-numbers dt{font:600 12px/1.3 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.aura-sx-numbers dd{margin:0;font:600 17px/1.2 var(--body);color:var(--ink);font-variant-numeric:tabular-nums}
.aura-sx-field{display:grid;gap:4px;font:600 12px/1.3 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.aura-sx-field textarea{width:100%;box-sizing:border-box;resize:vertical;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg);
  color:var(--ink);font:400 14px/1.5 var(--body);letter-spacing:0;text-transform:none}
.aura-sx-field textarea:focus-visible{outline:2px solid var(--lime);outline-offset:1px}
.aura-sx-unit.is-type-draft .aura-sx-status{color:var(--orange)}
.aura-sx-actions a.aura-os-btn{text-decoration:none}
/* Posts: the real preview, portrait for reels, landscape otherwise. */
.aura-sx-unit:is(.is-type-social_post,.is-type-website,.is-type-image,.is-type-map,.is-type-video) .aura-sx-hit{grid-template-areas:"thumb thumb" "rel status" "label label" "meta meta"}
.aura-sx-thumb{grid-area:thumb;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-bottom:6px;background:var(--bg)}
.aura-sx-thumb{max-height:96px}
.aura-sx-unit.is-type-social_post .aura-sx-hit:has(.is-portrait){grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"thumb rel status" "thumb label label" "thumb meta meta"}
.aura-sx-thumb.is-portrait{width:64px;height:114px;max-height:none;aspect-ratio:auto;margin:0;align-self:start}
/* Timer: lime while it runs, orange in the last minute, a clear signal at zero. */
.aura-sx-unit.is-type-timer .aura-sx-hit{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"ring rel status" "ring label label" "ring left left" "meta meta meta"}
.aura-sx-timer{grid-area:ring;position:relative;width:40px;height:40px;align-self:center}
.aura-sx-timer svg{display:block;width:40px;height:40px}
.aura-sx-timer circle{fill:none;stroke:var(--line-strong);stroke-width:1.5}
.aura-sx-sweep{position:absolute;inset:0;animation-name:aura-sx-sweep;animation-timing-function:linear;animation-fill-mode:both}
.aura-sx-sweep::before{content:"";position:absolute;left:50%;top:1px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--lime)}
.aura-sx-sweep.is-held{animation-play-state:paused}
@keyframes aura-sx-sweep{from{transform:rotate(0)}to{transform:rotate(1turn)}}
.aura-sx-left{grid-area:left;font:600 20px/1.1 var(--body);font-variant-numeric:tabular-nums;color:var(--ink)}
.aura-sx-status:is(.is-laeuft,.is-live,.is-geplant){color:var(--lime)}
.aura-sx-status:is(.is-gleich,.is-abgelaufen,.is-entwurf){color:var(--orange)}
.aura-sx-unit[data-status=gleich] .aura-sx-sweep::before,.aura-sx-unit.is-alarm .aura-sx-sweep::before{background:var(--orange)}
.aura-sx-unit.is-alarm .aura-sx-hit{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--orange) 70%,transparent)}
.aura-sx-unit.is-alarm::after{content:"";position:absolute;inset:-6px;border-radius:16px;box-shadow:0 0 0 1px var(--orange);pointer-events:none;animation:aura-sx-alarm 1600ms var(--os-ease) infinite}
@keyframes aura-sx-alarm{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.06)}}
/* Weather keeps its own, very quiet motion; no weather-app colours. */
.aura-sx-sky{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:12px;pointer-events:none;opacity:.42}
.aura-sx-unit.is-type-weather .aura-sx-hit{position:relative;z-index:1;background:linear-gradient(90deg,color-mix(in srgb,var(--bg-elev) 70%,transparent),transparent)}
.aura-sx-sky::before{content:"";position:absolute;inset:-24px 0 0;will-change:transform}
[data-kind=rain] .aura-sx-sky::before,[data-kind=storm] .aura-sx-sky::before{background:radial-gradient(1px 5px at 50% 50%,color-mix(in srgb,var(--ink) 55%,transparent),transparent) 0 0/22px 24px;animation:aura-sx-fall 1200ms linear infinite}
[data-kind=snow] .aura-sx-sky::before{background:radial-gradient(1.5px 1.5px at 50% 50%,var(--ink),transparent) 0 0/26px 24px;animation:aura-sx-fall 4800ms linear infinite}
[data-kind=wind] .aura-sx-sky::before{inset:0 -60px 0 -60px;background:radial-gradient(10px 1px at 50% 50%,color-mix(in srgb,var(--ink) 45%,transparent),transparent) 0 0/60px 16px;animation:aura-sx-drift 2600ms linear infinite}
[data-kind=sun] .aura-sx-sky::before{inset:0;background:radial-gradient(60% 90% at 88% 20%,color-mix(in srgb,var(--lime) 22%,transparent),transparent 70%);animation:aura-sx-light 7s ease-in-out infinite alternate}
[data-kind=cloud] .aura-sx-sky::before{inset:0 -40px;background:radial-gradient(40% 60% at 30% 40%,color-mix(in srgb,var(--ink) 10%,transparent),transparent 70%);animation:aura-sx-depth 22s ease-in-out infinite alternate}
@keyframes aura-sx-fall{from{transform:translateY(0)}to{transform:translateY(24px)}}
@keyframes aura-sx-drift{from{transform:translateX(0)}to{transform:translateX(60px)}}
@keyframes aura-sx-light{from{opacity:.5}to{opacity:1}}
@keyframes aura-sx-depth{from{transform:translateX(0) scale(1)}to{transform:translateX(30px) scale(1.04)}}
@media (prefers-reduced-motion:reduce){
  .aura-sx-sky::before,.aura-sx-unit.is-alarm::after{animation:none}
  .aura-sx-sweep{animation:none;display:none}
}

/* ── Public research in the room: entities, pictures, maps, videos ── */
/* Web data is marked quietly; Kevin's own records carry no mark. */
.aura-sx-unit.is-web .aura-sx-rel{color:color-mix(in srgb,var(--ink) 62%,transparent)}
.aura-sx-unit.is-web .aura-sx-rel::before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border:1px solid currentColor;border-radius:50%;vertical-align:1px}
.aura-sx-media{grid-area:thumb;width:100%;aspect-ratio:4/3;max-height:128px;object-fit:cover;border-radius:8px;margin-bottom:6px;background:var(--bg)}
.aura-sx-map{grid-area:thumb;position:relative;display:block;width:100%;aspect-ratio:1;max-height:150px;overflow:hidden;border-radius:8px;margin-bottom:6px;background:var(--bg)}
.aura-sx-map img{width:100%;height:100%;object-fit:cover;filter:grayscale(.85) contrast(1.05) brightness(.8)}
.aura-sx-pin{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px color-mix(in srgb,var(--lime) 30%,transparent)}
.aura-sx-poster{grid-area:thumb;position:relative;display:grid;place-items:center;width:100%;aspect-ratio:16/9;max-height:120px;overflow:hidden;border-radius:8px;margin-bottom:6px;background:var(--bg)}
.aura-sx-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.aura-sx-poster b{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--bg) 70%,transparent);color:var(--ink);font-size:13px}
.aura-sx-text{margin:0;font:400 14px/1.5 var(--body);color:var(--ink)}
.aura-sx-player{width:100%;aspect-ratio:16/9;border:0;border-radius:8px;background:var(--bg)}
.aura-sx-unit.is-type-conflict .aura-sx-hit{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--orange) 60%,transparent)}
.aura-sx-unit.is-type-conflict .aura-sx-status{color:var(--orange)}
.aura-sx-unit.is-type-search .aura-sx-label{animation:aura-sx-seek 1400ms ease-in-out infinite alternate}
@keyframes aura-sx-seek{from{opacity:.55}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.aura-sx-unit.is-type-search .aura-sx-label{animation:none}}
