/* VENDORED COPY of Halite css/halite.css. Do not edit; run scripts/sync-halite.sh.
   Source: https://github.com/0000F8/halite
   Commit: 63821c3b958d4fe2b7fc81187b97ee9aee5b95d0
*/
/* Halite: the design system behind Salt. Framework-free; plain HTML works.
   Generated by scripts/sync-from-salt.mjs from Salt's app: do not edit here.
   Wrap your page (or a section) in class "h-root". Theme: follows
   prefers-color-scheme; force one with <html data-theme="light|dark">.
   Fonts: IBM Plex Sans / Plex Mono are referenced, not bundled (see README). */
:root{
  --salt-paper:#FFFFFF;
  --salt-bg:#F8FAFC;
  --salt-rule:rgba(15, 23, 42, 0.10);
  --salt-muted:#64748B;
  --salt-ink:#0F172A;
  --salt-accent:#2563EB;
  --salt-accent-ink:#FFFFFF;
  --salt-soft:#EAF1FF;
  --salt-ok:#15803D;
  --salt-danger:#B42318;
  --salt-danger-soft:#FDECEA;
  --salt-shadow:rgba(13,21,38,.28);
  --salt-stage-dot:rgba(37,99,235,.14);
  --salt-tintmix:100%;
  --salt-glow:60%;
  --salt-warn:#C2410C;
  --h-font:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --salt-paper:#141C2E;
    --salt-bg:#0B1220;
    --salt-rule:rgba(241, 245, 249, 0.10);
    --salt-muted:#94A3B8;
    --salt-ink:#F1F5F9;
    --salt-accent:#60A5FA;
    --salt-accent-ink:#0A1A33;
    --salt-soft:#14223B;
    --salt-ok:#4ADE80;
    --salt-danger:#F87171;
    --salt-danger-soft:#2A1519;
    --salt-shadow:rgba(0,0,0,.6);
    --salt-stage-dot:rgba(107,151,255,.16);
    --salt-tintmix:34%;
    --salt-glow:30%;
    --salt-warn:#FB923C;
  }
}
:root[data-theme="dark"]{
  --salt-paper:#141C2E;
  --salt-bg:#0B1220;
  --salt-rule:rgba(241, 245, 249, 0.10);
  --salt-muted:#94A3B8;
  --salt-ink:#F1F5F9;
  --salt-accent:#60A5FA;
  --salt-accent-ink:#0A1A33;
  --salt-soft:#14223B;
  --salt-ok:#4ADE80;
  --salt-danger:#F87171;
  --salt-danger-soft:#2A1519;
  --salt-shadow:rgba(0,0,0,.6);
  --salt-stage-dot:rgba(107,151,255,.16);
  --salt-tintmix:34%;
  --salt-glow:30%;
  --salt-warn:#FB923C;
}
.h-root{background:var(--salt-bg);color:var(--salt-ink);font-family:var(--h-font);-webkit-font-smoothing:antialiased}
:root{
  --h-surface:var(--salt-paper,#fff);
  --h-surface-2:var(--salt-bg,#F7F9FC);
  --h-line:var(--salt-rule,rgba(15,23,42,.1));
  --h-line-strong:color-mix(in srgb,var(--salt-muted,#56627A) 38%,var(--salt-paper,#fff));
  --h-text:var(--salt-ink,#0D1526);
  --h-muted:var(--salt-muted,#56627A);
  --h-brand:var(--salt-accent,#2563EB);
  --h-brand-ink:var(--salt-accent-ink,#fff);
  --h-brand-soft:var(--salt-soft,#E8EFFE);
  --h-ok:var(--salt-ok,#15803D);
  --h-danger:var(--salt-danger,#B42318);
  --h-danger-soft:var(--salt-danger-soft,#FDECEA);
  --h-shadow:var(--salt-shadow,rgba(13,21,38,.28));
  --h-stage-dot:var(--salt-stage-dot,rgba(37,99,235,.14));
  --h-tint:#FBE0CC;
  --h-tintmix:var(--salt-tintmix,100%);
  --h-glow:var(--salt-glow,60%);
  --h-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --h-spring:cubic-bezier(.34,1.56,.64,1);
  --h-ease:cubic-bezier(.2,.8,.2,1);
}
.h-ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}
.h-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.h-root,.h-root *{box-sizing:border-box}
:where(.h-root) :where(button,input,textarea){font:inherit;color:inherit}
:where(.h-root) :where(button){cursor:pointer;border-radius:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.h-root :focus-visible,.h-focus:focus-visible{outline:2px solid var(--h-brand);outline-offset:2px}

/* label + field + composer */
.h-label{margin:0 0 8px;padding:0 2px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--h-muted);display:flex;justify-content:space-between;align-items:baseline;gap:8px;line-height:1.4}
.h-label span{font:400 12px var(--h-mono);letter-spacing:0;text-transform:none}
.h-field{display:block;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--h-muted);margin:14px 0 6px}
.h-input{width:100%;border:1px solid var(--h-line-strong);background:var(--h-surface-2);padding:12px;font-size:16px;font-weight:500;outline:0;color:var(--h-text);font-family:inherit;transition:border-color .15s,box-shadow .15s}
.h-input:focus{border-color:var(--h-brand);box-shadow:0 0 0 1px var(--h-brand)}
.h-input::placeholder{color:var(--h-muted);opacity:.8}
textarea.h-input{resize:none;line-height:1.35}
.h-composer{display:flex;border:1px solid var(--h-line-strong);background:var(--h-surface-2);transition:border-color .15s}
.h-composer:focus-within{border-color:var(--h-brand);box-shadow:0 0 0 1px var(--h-brand)}
.h-composer input,.h-composer textarea{flex:1;min-width:0;border:0;background:none;padding:12px;font-size:16px;line-height:1.35;outline:0;resize:none;font-family:inherit;color:var(--h-text)}
.h-composer input::placeholder,.h-composer textarea::placeholder{color:var(--h-muted);opacity:.8}
.h-composer button{border:0;background:var(--h-brand);color:var(--h-brand-ink);font-weight:600;padding:0 18px;min-width:76px;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;transition:transform .2s var(--h-spring),filter .15s}
.h-composer button:hover:not(:disabled){filter:brightness(1.08)}
.h-composer button:active:not(:disabled){transform:scale(.94)}
.h-composer button:disabled{opacity:.62;cursor:default}
.h-composer:has(:disabled){opacity:.7}
.h-composer.quiet button{background:none;color:var(--h-brand);border-left:1px solid var(--h-line);min-width:68px;min-height:40px}
.h-composer.quiet button:hover:not(:disabled){background:var(--h-brand-soft);filter:none}

/* buttons */
.h-button{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:50px;border:0;background:var(--h-brand);color:var(--h-brand-ink);font-weight:600;font-size:16px;transition:transform .3s var(--h-spring),filter .15s,background .15s}
.h-button:hover:not([data-disabled]){filter:brightness(1.08)}
.h-button[data-pressed]{transform:scale(.97)}
.h-button[data-disabled]{opacity:.62;cursor:default}
.h-button.quiet{background:none;border:1px solid var(--h-line-strong);color:var(--h-text);font-size:14.5px;min-height:44px}
.h-button.quiet:hover:not([data-disabled]){background:var(--h-brand-soft);filter:none}
.h-button.small{width:auto;min-height:34px;background:var(--h-surface);color:var(--h-text);border:1px solid var(--h-line-strong);font-size:13px;padding:6px 12px;font-weight:600;transition:transform .25s var(--h-spring),background .15s}
.h-button.small[data-pressed]{transform:scale(.93)}
.h-button.small[aria-pressed="true"]{background:var(--h-brand);color:var(--h-brand-ink);border-color:var(--h-brand)}
.h-button.link{width:auto;min-height:32px;background:none;border:0;padding:0;color:var(--h-brand);font-size:14px;text-decoration:underline;text-underline-offset:3px;justify-content:flex-start}
.h-button.link:hover:not([data-disabled]){filter:none}
.h-button.link[data-disabled]{color:var(--h-muted);text-decoration:none;opacity:.7}
.h-button.danger{background:var(--h-surface);color:var(--h-danger);border:1px solid var(--h-line)}
.h-button.danger:hover:not([data-disabled]){background:var(--h-danger-soft);border-color:var(--h-danger);filter:none}

/* chips */
.h-chips{display:flex;flex-wrap:wrap;gap:8px}
.h-chip{background:var(--h-surface-2);border:1px solid var(--h-line-strong);padding:8px 12px;font-size:13.5px;font-weight:500;min-height:38px;display:inline-flex;align-items:center;gap:6px;text-align:left;
  transition:transform .25s var(--h-spring),background .15s,border-color .15s}
.h-chip:hover:not([data-disabled]){background:var(--h-brand-soft);border-color:var(--h-brand);transform:translateY(-1px)}
.h-chip[data-pressed]{transform:scale(.95)}
.h-chip[data-disabled]{opacity:.55;cursor:default}

/* switch: square knob */
.h-switch{display:inline-flex;flex:none}
.h-switch .track{width:46px;height:26px;border:1px solid var(--h-line-strong);background:var(--h-surface-2);position:relative;transition:background .2s,border-color .2s;display:block}
.h-switch .track i{position:absolute;left:3px;top:3px;width:18px;height:18px;background:var(--h-muted);transition:transform .35s var(--h-spring),background .2s}
.h-switch[data-selected] .track{background:var(--h-brand);border-color:var(--h-brand)}
.h-switch[data-selected] .track i{transform:translateX(20px);background:var(--h-brand-ink)}
.h-switch[data-focus-visible] .track{outline:2px solid var(--h-brand);outline-offset:3px}

/* groups, rows, options */
.h-section{margin:26px 16px 0}
.h-group{background:var(--h-surface);border:1px solid var(--h-line)}
.h-row{display:flex;align-items:center;gap:14px;width:100%;min-height:54px;padding:8px 14px 8px 16px;background:none;border:0;text-align:left;position:relative;transition:background .15s;color:var(--h-text)}
.h-row+.h-row::before{content:"";position:absolute;top:0;left:50px;right:0;border-top:1px solid var(--h-line)}
.h-row .h-ic{color:var(--h-muted);transition:color .15s}
button.h-row:hover{background:var(--h-brand-soft)}
button.h-row:hover .h-ic{color:var(--h-brand)}
button.h-row:active{background:color-mix(in srgb,var(--h-brand-soft) 70%,var(--h-brand))}
.h-row .t{flex:1;min-width:0;display:block}
.h-row .t b{display:block;font-size:15px;font-weight:500;line-height:1.25}
.h-row .t small{display:block;font-size:12.5px;color:var(--h-muted);line-height:1.3;margin-top:1px}
.h-row .v{font-size:14px;color:var(--h-muted);max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.h-row .v.mono{font-family:var(--h-mono);font-size:13px}
.h-row .chev{width:16px;height:16px;color:var(--h-line-strong);stroke-width:2.2;transition:transform .25s var(--h-spring),color .15s}
button.h-row:hover .chev{transform:translateX(3px);color:var(--h-muted)}
.h-run{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--h-brand);margin-right:8px;animation:h-pulse 1.6s ease-in-out infinite;vertical-align:1px}
@keyframes h-pulse{50%{opacity:.35;transform:scale(.8)}}
.h-option{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 16px;background:none;border:0;text-align:left;position:relative;transition:background .15s;color:var(--h-text)}
.h-option+.h-option::before{content:"";position:absolute;top:0;left:16px;right:0;border-top:1px solid var(--h-line)}
.h-option:hover{background:var(--h-brand-soft)}
.h-option b{flex:1;font-weight:500;font-size:15px}
.h-option small{color:var(--h-muted);font-size:13px}
.h-option .h-ic{color:var(--h-brand);stroke-width:2.6;opacity:0;transform:scale(.5);transition:opacity .15s,transform .3s var(--h-spring)}
.h-option[aria-checked="true"] .h-ic{opacity:1;transform:none}

/* tag */
.h-tag{font:500 11px/1 var(--h-mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border:1px solid var(--h-line-strong);color:var(--h-text);background:var(--h-surface);display:inline-block}
.h-tag.brand{border-color:var(--h-brand);color:var(--h-brand)}

/* avatar: a round tinted disc ringed in the surface; the tint mixes with the
   surface in dark mode so it never goes muddy grey */
.h-avatar{position:relative;border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--h-tint) var(--h-tintmix),var(--h-surface));flex:none;display:block;
  box-shadow:0 0 0 3px var(--h-surface),0 0 0 4px var(--h-line-strong)}
.h-avatar>svg,.h-avatar>img{width:100%;height:100%;object-fit:cover;display:block}
.h-avatar.letter{display:grid;place-items:center;font-weight:600;color:var(--h-text)}
.h-avatar-wrap{position:relative;display:inline-flex;flex:none}
.h-pres{position:absolute;right:0;bottom:0;width:30%;max-width:18px;min-width:9px;aspect-ratio:1;border-radius:50%;background:var(--h-ok);border:3px solid var(--h-surface);z-index:2}
.h-pres[data-status="away"]{background:var(--h-muted)}
.h-cluster{position:relative;margin:2px auto 0}
.h-cluster .h-avatar,.h-cluster .h-avatar-wrap{position:absolute}

/* stage: tint glow over an 18px dotted grid, with a state tag */
.h-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 54%,color-mix(in srgb,var(--h-tint) var(--h-glow),transparent) 0,transparent 62%),radial-gradient(var(--h-stage-dot) 1px,transparent 1.4px) 0 0/18px 18px;transition:background .4s}
.h-stage-body{position:absolute;left:50%;top:6px;transform:translateX(-50%);z-index:2;display:flex}
.h-stage-tag{position:absolute;left:12px;top:12px;z-index:5;font:500 11px/1 var(--h-mono);letter-spacing:.06em;text-transform:uppercase;padding:6px 8px;background:var(--h-surface);border:1px solid var(--h-line);display:flex;gap:7px;align-items:center;color:var(--h-text)}
.h-stage-tag i{width:7px;height:7px;border-radius:50%;background:var(--h-brand);display:block}
.h-stage-tag.busy i{animation:h-pulse .8s infinite}
.h-stage-tag.no i{background:var(--salt-warn,#C2410C)}
.h-stage.busy::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,var(--h-brand) 16%,transparent) 50%,transparent 70%);background-size:260% 100%;animation:h-shim 1.5s linear infinite}
@keyframes h-shim{0%{background-position:130% 0}100%{background-position:-130% 0}}

/* hero: identity header */
.h-hero{position:relative;text-align:center;padding:4px 16px;padding-top:56px;margin-top:-52px;
  background:radial-gradient(ellipse 70% 62% at 50% 38%,color-mix(in srgb,var(--h-tint) var(--h-glow),transparent) 0,transparent 100%)}
.h-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(var(--h-stage-dot) 1px,transparent 1.4px) 0 0/18px 18px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 38%,#000 20%,transparent 100%);mask-image:radial-gradient(ellipse 70% 60% at 50% 38%,#000 20%,transparent 100%);pointer-events:none}
.h-hero>*{position:relative}
.h-portrait{width:120px;height:120px;margin:6px auto 0;position:relative}
.h-portrait .ground{position:absolute;left:14%;right:14%;bottom:-9px;height:14px;background:radial-gradient(ellipse at center,var(--h-shadow) 0,transparent 70%);opacity:.55;border-radius:50%}
.h-hero h1{margin:20px 0 0;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.012em;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}
.h-hero h1 span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h-sub{margin:8px 0 0;font:400 13px/1.3 var(--h-mono);color:var(--h-muted);display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}

/* quick actions */
.h-quick{display:flex;justify-content:center;gap:18px;padding:22px 16px 6px}
.h-qa{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:0;padding:0;width:68px;color:var(--h-text)}
.h-qa .c{width:56px;height:56px;border-radius:50%;background:var(--h-surface);border:1px solid var(--h-line-strong);display:grid;place-items:center;
  transition:transform .3s var(--h-spring),background .15s,color .15s,border-color .15s}
.h-qa:hover .c{background:var(--h-brand-soft);border-color:var(--h-brand)}
.h-qa[data-pressed] .c{transform:scale(.9)}
.h-qa[aria-pressed="true"] .c{background:var(--h-brand);color:var(--h-brand-ink);border-color:var(--h-brand)}
.h-qa .c.pop{animation:h-pop .5s var(--h-spring)}
@keyframes h-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.h-qa b{font-size:12.5px;font-weight:500;letter-spacing:.01em;white-space:nowrap}
.h-qa[data-focus-visible]{outline:none}
.h-qa[data-focus-visible] .c{outline:2px solid var(--h-brand);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
  .h-root *,.h-root *::before,.h-root *::after,.h-stage::after,.h-run,.h-stage-tag i{animation:none!important;transition-duration:.01ms!important}
}
