/* Nova's graphite shell, silver orbit and luminous violet, shared by every surface. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root:root {
  --stone:#101114; --slab:#18191e; --slab-2:#202127; --rule:#303139;
  --ink:#f0eff5; --muted:#a5a3b2; --faint:#858291;
  --verde:#c7b9f3; --verde-soft:#2c263b; --on-verde:#201a30;
  --ochre:#e5bd8b; --ochre-soft:#342b22; --rosso:#f1a18f; --rosso-soft:#382725;
  --display:'Manrope',system-ui,sans-serif; --text:'DM Sans',system-ui,sans-serif;
  --focus:0 0 0 3px #b6a0ec45; --shadow:0 18px 60px #00000024;
  /* Motion: arrivals ease out hard, on-screen moves ease in-out, sheets use the iOS drawer curve. */
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1); --ease-drawer:cubic-bezier(.32,.72,0,1);
  color-scheme:dark;
}
:root[data-theme="light"] {
  --stone:#f4f3f7; --slab:#fff; --slab-2:#edebf2; --rule:#dbd8e4;
  --ink:#25232e; --muted:#696375; --faint:#766e83;
  --verde:#695198; --verde-soft:#eae3f7; --on-verde:#fff;
  --ochre:#886326; --ochre-soft:#f4ead8; --rosso:#a23e32; --rosso-soft:#f9e8e3;
  --shadow:0 18px 60px #36304409; color-scheme:light;
}
body { font-family:var(--text); background:var(--stone); color:var(--ink); }
/* Quiet, themed scrollbars instead of the platform's grey slabs. */
html { scrollbar-color:var(--rule) transparent; }
button,input,select,textarea { font-family:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button,a { transition:background .18s ease,border-color .18s ease,color .18s ease; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid var(--verde); outline-offset:3px;
}
::selection { background:var(--verde); color:var(--on-verde); }
input::placeholder,textarea::placeholder { color:var(--faint); }
.nova-symbol { display:inline-block; width:38px; height:38px; background:url('./nova-mark.svg') center/contain no-repeat; flex-shrink:0; }
.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:600; color:var(--muted); }
.nova-stage { position:relative; width:240px; height:240px; flex-shrink:0; isolation:isolate; }
.nova-stage::before { content:''; position:absolute; inset:12%; border-radius:50%; background:radial-gradient(ellipse,#a58dce1f,transparent 68%); pointer-events:none; }
.nova-stage > [data-nova-character] { width:100%; height:100%; position:relative; }
[data-nova-status] { display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; line-height:1.5; }
[data-nova-status]::before { content:''; width:5px; height:5px; background:var(--verde); border-radius:50%; box-shadow:0 0 0 4px var(--verde-soft); flex-shrink:0; }
[data-nova-status][data-state="error"]::before { background:var(--rosso); }
[data-nova-status][data-state="sleeping"]::before { background:var(--faint); box-shadow:none; }
.nova-character-host .fallback { font-size:12px; padding:12px; color:var(--muted); }
.nova-character-host .fallback::before { content:''; width:64px; height:64px; background:url('./nova-mark.svg') center/contain no-repeat; }
.nova-character-host .fallback span,.nova-character-host .fallback small { display:none; }
[hidden] { display:none!important; }
/* Reduced motion means no movement, not no feedback: fades and colour changes stay, transforms snap. */
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition-property:opacity,color,background-color,border-color!important; scroll-behavior:auto!important; } }
/* Shared readable conversation blocks, on web and desktop. */
.code-block { margin: 1rem 0; border: 1px solid var(--rule, #596475); border-radius: 8px; overflow: hidden; }
.code-toolbar { display:flex; justify-content:space-between; align-items:center; padding:8px 12px; gap:16px; }
.code-toolbar button { color:inherit; background:transparent; border:1px solid currentColor; border-radius:4px; padding:4px 8px; cursor:pointer; }
.code-block pre { margin:0; padding:16px; overflow-x:auto; white-space:pre; font-size:14px; line-height:1.6; }
.table-scroll { max-width:100%; overflow-x:auto; margin:1rem 0; }
.table-scroll table { border-collapse:collapse; min-width:100%; }
.table-scroll th, .table-scroll td { padding:8px 12px; text-align:left; border:1px solid var(--rule, #596475); }
.link-domain { font-size:.85em; overflow-wrap:anywhere; }
.automation-tool { display: block; padding: 6px 0; }
#automation-add > label, #connector-add > label { display: block; margin-bottom: 16px; }
#automation-add .inline, #connector-add .inline { margin-bottom: 16px; gap: 16px; flex-wrap: wrap; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
