@font-face {
  font-family: 'Bricolage';
  font-style: normal;
  font-weight: 300 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
}

@font-face {
  font-family: 'Hanken';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2-variations');
}

/* Sprigloop dashboard — the "Orchard" design system. Light-first with a dark mode;
   calm green-biased neutrals, one spruce accent, Bricolage display voice for page
   titles, Hanken Grotesk for body text, mono only where data earns it.
   Theme plumbing: tokens on :root (light), overridden under prefers-color-scheme:dark,
   then re-asserted by [data-theme] so the in-app control wins in both directions. */

/* ── tokens ─────────────────────────────────────────────────────────────── */
:root {
  color-scheme: light;
  --bg: #F0F1EF;
  --surface: #FFFFFF;
  --inset: #F6F8F6;
  --border-faint: #E8ECE7;
  --border: #D9DFD8;
  --border-loud: #C3CCC4;
  --text: #161A17;
  --text-2: #5B655F;
  --text-3: #93A096;
  --accent: #1F7049;
  --on-accent: #FFFFFF;
  --accent-strong: #1A6240;
  --accent-text: #1D6843;
  --accent-a06: rgba(33, 122, 80, .06);
  --accent-a10: rgba(33, 122, 80, .10);
  --accent-a16: rgba(33, 122, 80, .16);
  /* --accent-a16 flattened over --surface: the Connect key field's copied fill as one
     opaque color, for overlays that must be indistinguishable from it. */
  --copied-fill: #DBEAE3;
  /* The modal/nav backdrop. Dark surfaces need MORE ink, not the same: near-black
     at .4 vanishes over a near-black page. */
  --scrim: rgba(15, 22, 17, .4);
  --accent-a30: rgba(33, 122, 80, .30);
  --ok-text: #1D6843;   --ok-bg: rgba(33, 122, 80, .10);   --ok-bd: rgba(33, 122, 80, .26);
  --info-text: #1D6843; --info-bg: rgba(31, 112, 73, .09); --info-bd: rgba(31, 112, 73, .26);
  --warn-text: #8A6206; --warn-bg: rgba(199, 134, 14, .11); --warn-bd: rgba(199, 134, 14, .3);
  --bad-text: #B23A2C;  --bad-bg: rgba(203, 64, 48, .08);   --bad-bd: rgba(203, 64, 48, .24);
  --neutral-text: #5B655F; --neutral-bg: rgba(26, 33, 28, .05); --neutral-bd: rgba(26, 33, 28, .13);
  --shadow-card: 0 1px 2px rgba(26, 33, 28, .04), 0 6px 20px -12px rgba(26, 33, 28, .14);
  --shadow-pop: 0 2px 6px rgba(26, 33, 28, .06), 0 20px 44px -16px rgba(26, 33, 28, .24);
  --shadow-cta: inset 0 -5px 10px rgba(126, 214, 168, .4), inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(16, 64, 41, .3), 0 4px 12px -4px rgba(16, 64, 41, .35);
  --btn-sheen: rgba(255, 255, 255, .55);
  --mark-bg: rgba(33, 122, 80, .2);
  --mark-hot: rgba(33, 122, 80, .42);
  /* cast off a sticky column's trailing edge, so content sliding under it reads as
     covered rather than as clipped */
  --edge-shade: rgba(26, 33, 28, .16);
  --chev-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B655F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  /* The height of the app's top band. The topbar is one half of it and the sidebar's
     wordmark is the other, so they share the number rather than each carrying their own
     paddings that happen to land near each other — that "happen to" is what had the
     mark sitting 6px below the crumbs it stands beside. */
  --topbar-h: 54px;
  /* Every data-grid row is exactly this tall. grid.js virtualizes on a single rowH and
     maps the scrollbar through it, so a row that disagrees drifts the mapping and
     jump-to-row with it — this is the number that keeps them honest, and any cell that
     wants to be taller (a media thumbnail) has to fit inside it instead.
     38 and not 37 because a td's `height` is a FLOOR: at 37 the text cells came out at
     their natural 37.15 (20.15 line + 16 padding + 1 border) and only the short ones
     obeyed, leaving a 0.14px spread — invisible to the eye, but it is exactly the kind of
     per-row remainder the scroll mapping accumulates. 38 clears the tallest natural cell,
     so every row is pinned rather than merely most of them. Measured: spread 0.00px. */
  --grid-row-h: 38px;
  --sans: 'Hanken', ui-sans-serif, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --display: 'Bricolage', var(--sans);
  /* the sky (see the .sky component): day over the landing page and the new-scraper tab */
  --sky-1: #A1C9EA; --sky-2: #C1DDF1; --sky-3: #DBECF6; --sky-4: #FFFFFF;
  --veil-grad: linear-gradient(to bottom,
    rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .58) 24%, rgba(255, 255, 255, .36) 44%,
    rgba(255, 255, 255, .18) 62%, rgba(255, 255, 255, .07) 80%, rgba(255, 255, 255, 0) 100%);
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --bg: #121312; --surface: #1A1B1A; --inset: #151615;
    --border-faint: #292B29; --border: #343634; --border-loud: #464A46;
    --text: #EAEBEA; --text-2: #A4A7A4; --text-3: #6F746F;
    --accent: #3FAE76; --on-accent: #0C120D; --accent-strong: #4FBE85; --accent-text: #5CC48F;
    --accent-a06: rgba(79, 190, 133, .07); --accent-a10: rgba(79, 190, 133, .11);
    --accent-a16: rgba(79, 190, 133, .17); --copied-fill: #23372C; --scrim: rgba(0, 0, 0, .62); --accent-a30: rgba(79, 190, 133, .32);
    --ok-text: #5CC48F;   --ok-bg: rgba(92, 196, 143, .1);   --ok-bd: rgba(92, 196, 143, .3);
    --info-text: #5CC48F; --info-bg: rgba(92, 196, 143, .1); --info-bd: rgba(92, 196, 143, .3);
    --warn-text: #DFB258; --warn-bg: rgba(223, 178, 88, .1); --warn-bd: rgba(223, 178, 88, .3);
    --bad-text: #EF8378;  --bad-bg: rgba(239, 131, 120, .1); --bad-bd: rgba(239, 131, 120, .28);
    --neutral-text: #A4A7A4; --neutral-bg: rgba(234, 235, 234, .06); --neutral-bd: rgba(234, 235, 234, .15);
    --shadow-card: 0 0 0 1px rgba(255, 255, 255, .04), 0 1px 2px rgba(0, 0, 0, .4);
    --shadow-pop: 0 0 0 1px rgba(255, 255, 255, .06), 0 16px 40px -8px rgba(0, 0, 0, .6);
    --shadow-cta: inset 0 -5px 10px rgba(180, 255, 215, .22), inset 0 1px 0 rgba(255, 255, 255, .14), 0 2px 8px -2px rgba(0, 0, 0, .5);
    --btn-sheen: rgba(255, 255, 255, .06);
    --mark-bg: rgba(79, 190, 133, .24); --mark-hot: rgba(79, 190, 133, .48);
    --edge-shade: rgba(0, 0, 0, .5);
    --chev-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A4A7A4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    --sky-1: #0D1522; --sky-2: #102032; --sky-3: #0F1B29; --sky-4: #0F100F;
    --veil-grad: linear-gradient(to bottom,
      rgba(5, 9, 7, .45) 0%, rgba(5, 9, 7, .32) 24%, rgba(5, 9, 7, .19) 44%,
      rgba(5, 9, 7, .1) 62%, rgba(5, 9, 7, .04) 80%, rgba(5, 9, 7, 0) 100%);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #121312; --surface: #1A1B1A; --inset: #151615;
  --border-faint: #292B29; --border: #343634; --border-loud: #464A46;
  --text: #EAEBEA; --text-2: #A4A7A4; --text-3: #6F746F;
  --accent: #3FAE76; --on-accent: #0C120D; --accent-strong: #4FBE85; --accent-text: #5CC48F;
  --accent-a06: rgba(79, 190, 133, .07); --accent-a10: rgba(79, 190, 133, .11);
  --accent-a16: rgba(79, 190, 133, .17); --copied-fill: #23372C; --scrim: rgba(0, 0, 0, .62); --accent-a30: rgba(79, 190, 133, .32);
  --ok-text: #5CC48F;   --ok-bg: rgba(92, 196, 143, .1);   --ok-bd: rgba(92, 196, 143, .3);
  --info-text: #5CC48F; --info-bg: rgba(92, 196, 143, .1); --info-bd: rgba(92, 196, 143, .3);
  --warn-text: #DFB258; --warn-bg: rgba(223, 178, 88, .1); --warn-bd: rgba(223, 178, 88, .3);
  --bad-text: #EF8378;  --bad-bg: rgba(239, 131, 120, .1); --bad-bd: rgba(239, 131, 120, .28);
  --neutral-text: #A4A7A4; --neutral-bg: rgba(234, 235, 234, .06); --neutral-bd: rgba(234, 235, 234, .15);
  --shadow-card: 0 0 0 1px rgba(255, 255, 255, .04), 0 1px 2px rgba(0, 0, 0, .4);
  --shadow-pop: 0 0 0 1px rgba(255, 255, 255, .06), 0 16px 40px -8px rgba(0, 0, 0, .6);
  --shadow-cta: inset 0 -5px 10px rgba(180, 255, 215, .22), inset 0 1px 0 rgba(255, 255, 255, .14), 0 2px 8px -2px rgba(0, 0, 0, .5);
  --btn-sheen: rgba(255, 255, 255, .06);
  --mark-bg: rgba(79, 190, 133, .24); --mark-hot: rgba(79, 190, 133, .48);
  --edge-shade: rgba(0, 0, 0, .5);
  --chev-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A4A7A4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --sky-1: #0D1522; --sky-2: #102032; --sky-3: #0F1B29; --sky-4: #0F100F;
  --veil-grad: linear-gradient(to bottom,
    rgba(5, 9, 7, .45) 0%, rgba(5, 9, 7, .32) 24%, rgba(5, 9, 7, .19) 44%,
    rgba(5, 9, 7, .1) 62%, rgba(5, 9, 7, .04) 80%, rgba(5, 9, 7, 0) 100%);
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #F0F1EF; --surface: #FFFFFF; --inset: #F6F8F6;
  --border-faint: #E8ECE7; --border: #D9DFD8; --border-loud: #C3CCC4;
  --text: #161A17; --text-2: #5B655F; --text-3: #93A096;
  --accent: #1F7049; --on-accent: #FFFFFF; --accent-strong: #1A6240; --accent-text: #1D6843;
  --accent-a06: rgba(33, 122, 80, .06); --accent-a10: rgba(33, 122, 80, .10);
  --accent-a16: rgba(33, 122, 80, .16); --copied-fill: #DBEAE3; --scrim: rgba(15, 22, 17, .4); --accent-a30: rgba(33, 122, 80, .30);
  --ok-text: #1D6843;   --ok-bg: rgba(33, 122, 80, .10);   --ok-bd: rgba(33, 122, 80, .26);
  --info-text: #1D6843; --info-bg: rgba(31, 112, 73, .09); --info-bd: rgba(31, 112, 73, .26);
  --warn-text: #8A6206; --warn-bg: rgba(199, 134, 14, .11); --warn-bd: rgba(199, 134, 14, .3);
  --bad-text: #B23A2C;  --bad-bg: rgba(203, 64, 48, .08);   --bad-bd: rgba(203, 64, 48, .24);
  --neutral-text: #5B655F; --neutral-bg: rgba(26, 33, 28, .05); --neutral-bd: rgba(26, 33, 28, .13);
  --shadow-card: 0 1px 2px rgba(26, 33, 28, .04), 0 6px 20px -12px rgba(26, 33, 28, .14);
  --shadow-pop: 0 2px 6px rgba(26, 33, 28, .06), 0 20px 44px -16px rgba(26, 33, 28, .24);
  --shadow-cta: inset 0 -5px 10px rgba(126, 214, 168, .4), inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(16, 64, 41, .3), 0 4px 12px -4px rgba(16, 64, 41, .35);
  --btn-sheen: rgba(255, 255, 255, .55);
  --mark-bg: rgba(33, 122, 80, .2); --mark-hot: rgba(33, 122, 80, .42);
  --edge-shade: rgba(26, 33, 28, .16);
  --chev-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B655F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --sky-1: #A1C9EA; --sky-2: #C1DDF1; --sky-3: #DBECF6; --sky-4: #FFFFFF;
  --veil-grad: linear-gradient(to bottom,
    rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .58) 24%, rgba(255, 255, 255, .36) 44%,
    rgba(255, 255, 255, .18) 62%, rgba(255, 255, 255, .07) 80%, rgba(255, 255, 255, 0) 100%);
}

/* ── base ───────────────────────────────────────────────────────────────── */
* { box-sizing: border-box; margin: 0; }
/* No swipe-to-go-back. A horizontal trackpad gesture anywhere in the app is aimed at a
   wide table, not at the browser's history — and losing your place in a dataset because
   a sideways scroll ran out of runway is a rotten trade. Applied to the document AND to
   every element that scrolls sideways: overscroll chains to the ancestor when a scroller
   hits its limit, so stopping it at the document alone would leave the grid free to hand
   the gesture upward. */
html, body { overscroll-behavior-x: none; }
html, body { height: 100%; }
body {
  font: 14px/1.55 var(--sans);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
input, textarea { font: inherit; color: inherit; }
a { color: var(--accent-text); }
a:hover { text-decoration: underline; }
a { text-decoration: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
::selection { background: var(--accent-a30); }
.hidden { display: none !important; }

.micro {
  font-size: 10.5px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; color: var(--text-3);
}
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.dim { color: var(--text-2); }
.dim3 { color: var(--text-3); }
.small { font-size: 12.5px; }
.alert { color: var(--bad-text); font-size: 13px; }
.code {
  font-family: var(--mono); font-size: .92em;
  background: var(--neutral-bg); border-radius: 5px; padding: 1px 6px;
  overflow-wrap: anywhere;
}

select {
  -webkit-appearance: none; appearance: none;
  background-color: var(--surface);
  background-image: var(--chev-img);
  background-repeat: no-repeat; background-position: right 8px center; background-size: 14px;
  border: 1px solid var(--border); border-radius: 7px;
  height: 34px; padding: 0 30px 0 11px; font: inherit; font-size: 13px; color: var(--text);
  outline: none;
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
}
select:hover { border-color: var(--border-loud); }
select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-a10), inset 0 1px 0 var(--btn-sheen); }
select:disabled, .f-input:disabled, .f-area:disabled { box-shadow: none; cursor: default; }

/* ── auth screens (login / waiting / verify) ────────────────────────────── */
.auth-wrap {
  min-height: 100vh; display: flex; flex-direction: column;
  align-items: center; justify-content: center; padding: 24px;
}
/* The wordmark stands at two sizes and no others: 19px/28px out on the website (the
   landing bar, the marketing headers, the docs head and these auth screens — a page
   whose only chrome IS the mark can afford it), 17px/25px inside the app, where it is
   one item in a sidebar and must not shout over the nav. The sprig runs ~1.47× the type
   at both, and the tuck scales with it, so the lockup is one shape photographed at two
   distances rather than two different lockups.
   The pose PNGs carry transparent margins, so each size also tucks its image left by
   the same proportion — that is what puts the VISIBLE sprig on the text column's own
   edge instead of the transparent box's. Every lockup sets its own pair (here, .product
   below, .front-brand further down, .mkt-brand in assets/landing/site.css, .brand in
   docs/index.html); .brand-sprig itself only says the image never flexes. */
.auth-brand { font-family: var(--display); font-weight: 600; font-size: 19px; margin-bottom: 22px; display: inline-flex; align-items: center; gap: 7px; }
.auth-brand .brand-sprig { width: 28px; height: 28px; margin-left: -6px; }
.brand-sprig { flex: none; }
.auth-card {
  width: min(420px, 100%);
  background: var(--surface); border: 1px solid var(--border-faint); border-radius: 14px;
  box-shadow: var(--shadow-card);
  padding: 26px 28px;
}
.auth-card h1 { font-family: var(--display); font-size: 20px; font-weight: 600; letter-spacing: -.02em; margin-bottom: 6px; }
.auth-card p { margin: 0 0 12px; }
.auth-foot { margin-top: 20px; color: var(--text-3); font-size: 12.5px; }

/* ── app frame ──────────────────────────────────────────────────────────── */
.app { display: flex; height: 100vh; overflow: hidden; }

.sidebar {
  width: 232px; flex: none;
  display: flex; flex-direction: column; gap: 3px;
  background: var(--bg);
  /* no top padding: the wordmark below stands in the top band and measures it itself */
  padding: 0 12px 14px;
}
/* The wordmark is one link — sprig and text share a single hitbox back to the list.
   It stands in the same band as the topbar beside it and centres in it, so the mark and
   the breadcrumbs share one centre line by construction rather than by two sets of
   paddings agreeing. The nav below therefore starts where the content pane starts. */
.product { height: var(--topbar-h); flex: none; font-family: var(--display); font-weight: 600; font-size: 17px; letter-spacing: -.01em; padding: 0 12px; display: flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; }
.product .brand-sprig { width: 25px; height: 25px; margin-left: -5px; }
.product:hover { text-decoration: none; }
.nav-item {
  display: flex; align-items: center; gap: 10px;
  width: 100%; text-align: left;
  padding: 7px 12px; border-radius: 8px;
  color: var(--text-2); font-weight: 500; font-size: 14px;
  text-decoration: none;
}
.nav-item svg { width: 15px; height: 15px; flex: none; opacity: .75; }
.nav-item:hover { background: var(--neutral-bg); color: var(--text); text-decoration: none; }
.nav-item.on { background: var(--neutral-bg); color: var(--text); }
.nav-item.on svg { opacity: 1; }
.nav-item .ext { width: 11px; height: 11px; margin-left: auto; opacity: .5; }
.sidebar .spacer { flex: 1; }
.side-foot { border-top: 1px solid var(--border-faint); padding-top: 12px; display: flex; flex-direction: column; gap: 3px; }
.acct-line { display: flex; align-items: center; gap: 10px; padding: 7px 12px; }
/* White in BOTH themes, deliberately — this chip stands where a profile photo stands,
   and a photograph does not invert when the room does. The clay letters are modelled
   lit from above against a light ground, so a tinted or dark disc behind them read as a
   sticker on a badge rather than as the picture itself. */
.avatar {
  width: 24px; height: 24px; border-radius: 50%; flex: none;
  background: #FFFFFF; color: var(--accent-text);
  display: grid; place-items: center;
  font-size: 11.5px; font-weight: 650;
}
/* The clay letter overhangs its circle a little — a 24px chip is too small a cage for
   a puffy letterform, so it reads as an object sitting on the chip, like the mascot. */
.avatar img { width: 26px; height: 26px; max-width: none; }
.acct-mail { font-size: 12.5px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Same press physics as the buttons: the chrome lives on ::before so the squish
   presses the pane, not the name and avatar on it. */
.acct-btn { position: relative; isolation: isolate; width: 100%; border-radius: 8px; cursor: pointer; }
.acct-btn::before {
  content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  transition: background .12s, transform .26s cubic-bezier(.34, 1.56, .64, 1);
}
.acct-btn:hover::before { background: var(--neutral-bg); }
.acct-btn:active::before {
  transform: scale(.96);
  transition-duration: .12s, .07s;
  transition-timing-function: ease, ease-out;
}
@media (prefers-reduced-motion: reduce) { .acct-btn:active::before { transform: none; } }
.acct-btn .chev-ud { width: 13px; height: 13px; margin-left: auto; opacity: .5; flex: none; }

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; background: var(--bg); }
.topbar { height: var(--topbar-h); flex: none; display: flex; align-items: center; gap: 12px; padding: 0 22px; }
.crumbs { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-2); min-width: 0; }
/* Every crumb clips to an ellipsis rather than wrapping — a long scraper name in the
   run view's trail must not break onto a second line on a phone. The home crumb and
   the separators are short and fixed; only the name absorbs the squeeze. */
.crumbs a { color: var(--text-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crumbs a:hover { color: var(--text); text-decoration: none; }
.crumbs > a:first-child, .crumbs .sep { flex: none; }
.crumbs .sep { color: var(--text-3); }
.crumbs .here { color: var(--text); font-weight: 550; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar .right { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.icon-btn {
  position: relative; isolation: isolate;
  width: 32px; height: 32px; padding: 0; border-radius: 8px;
  display: grid; place-items: center;
  color: var(--text-2); border: 1px solid transparent; background: none; flex: none;
}
.icon-btn::before {
  content: ''; position: absolute; inset: -1px; z-index: -1;
  border-radius: inherit; transition: background .12s, transform .26s cubic-bezier(.34, 1.56, .64, 1);
}
.icon-btn:hover { color: var(--text); }
.icon-btn:hover::before { background: var(--neutral-bg); }
.icon-btn svg { width: 16px; height: 16px; }
/* display:grid above outranks the UA's [hidden] rule — say it here or hiding one does nothing */
.icon-btn[hidden] { display: none; }
.menu-btn { display: none; }

.content {
  flex: 1; overflow-y: auto; scroll-behavior: smooth; scrollbar-gutter: stable; overscroll-behavior-x: none;
  background: var(--surface);
  border-radius: 12px 12px 0 0;
  margin: 0 14px 0 2px;
  /* A zero-blur ring instead of a border: a real border antialiases into the corner
     radius and reads soft; the ring hugs the curve pixel-crisp and costs no layout.
     One border tier up from faint — the pane's edge should hold its own against
     the viewport background. */
  box-shadow: 0 0 0 1px var(--border), var(--shadow-card);
}
.page { max-width: 1020px; margin: 0 auto; padding: 30px 28px 80px; }
.page.narrow { max-width: 620px; }
/* the hero composer needs one uncrowded row for attach + schedule + CTA */
.page.hero { max-width: 700px; }
/* the data tab pins its grid to the viewport — no dead space to scroll into */
.page.fit { padding-bottom: 24px; }

input[type="checkbox"], input[type="radio"] { cursor: pointer; }
/* Form controls wear the buttons' chrome: the same top sheen and soft drop the .btn
   ::before carries, so a checkbox reads as the same physical material as the control
   beside it. Drawn from scratch (appearance: none) — the tick is an inline SVG. */
input[type="checkbox"], input[type="radio"] {
  -webkit-appearance: none; appearance: none;
  width: 16px; height: 16px; flex: none; margin: 0;
  border: 1px solid var(--border); border-radius: 4.5px;
  background: var(--surface);
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
}
input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]:hover, input[type="radio"]:hover { border-color: var(--border-loud); }
input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible {
  outline: none; border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-a10), inset 0 1px 0 var(--btn-sheen);
}
input[type="checkbox"]:checked {
  background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat;
  border-color: transparent;
  box-shadow: var(--shadow-cta);
}
input[type="radio"]:checked { border: 5px solid var(--accent); background: var(--surface); }
input[type="checkbox"]:disabled, input[type="radio"]:disabled { opacity: .45; cursor: default; box-shadow: none; }
input[type="checkbox"] { transition: transform .26s cubic-bezier(.34, 1.56, .64, 1), border-color .12s; }
input[type="checkbox"]:active { transform: scale(.85); transition-duration: .07s; }
.toggle, .chkline, .chkctr { position: relative; isolation: isolate; }
.toggle::before, .chkline::before, .chkctr::before {
  content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  transition: background .12s, transform .26s cubic-bezier(.34, 1.56, .64, 1);
}
.toggle:hover::before, .chkline:hover::before, .chkctr:hover::before { background: var(--neutral-bg); }
/* A wrapper around a disabled box is disabled surface too: the whole hitbox says no,
   and the halo stays dark. */
.toggle:has(input:disabled), .chkline:has(input:disabled), .chkctr:has(input:disabled) { cursor: default; }
.toggle:has(input:disabled):hover::before, .chkline:has(input:disabled):hover::before, .chkctr:has(input:disabled):hover::before { background: none; }
.toggle:active::before, .toggle.pressing::before, .chkline:active::before, .chkline.pressing::before,
.chkctr:active::before, .chkctr.pressing::before {
  transform: scale(.96);
  transition-duration: .12s, .07s;
  transition-timing-function: ease, ease-out;
}
.toggle:active input, .toggle.pressing input, .chkline:active input, .chkline.pressing input, .chkctr:active input, .chkctr.pressing input { transform: scale(.88); }
@media (prefers-reduced-motion: reduce) {
  input[type="checkbox"]:active, .toggle:active input, .toggle.pressing input, .chkline:active input, .chkline.pressing input, .chkctr:active input, .chkctr.pressing input { transform: none; }
  .toggle:active::before, .toggle.pressing::before, .chkline:active::before, .chkline.pressing::before, .chkctr:active::before, .chkctr.pressing::before { transform: none; }
}

/* interactive controls are pressed, not selected — a sortable header earns its place
   here the moment it becomes clickable: cycling a sort is three clicks in a row, and
   without this the third one paints the column name blue */
.btn, .icon-btn, .toggle, .chkline, .tab, .tabs, .menu, .nav-item, .idchip,
.seg, .chip, .kbd, .linkbtn, .copy, .fchip .x, summary, .acct-btn, .srow .go,
.grid th.sortable {
  -webkit-user-select: none; user-select: none;
}

/* ── the top loading bar — transparent track, rounded accent fill ───────── */
#loadbar {
  position: fixed; top: 0; left: 0; right: 0; height: 3px;
  z-index: 200; pointer-events: none; background: transparent;
}
#loadbar i {
  display: block; height: 100%; width: 0;
  background: var(--accent);
  border-radius: 0 999px 999px 0;
  opacity: 0;
  transition: width .25s ease, opacity .3s;
}
#loadbar.on i { opacity: 1; }
@media (prefers-reduced-motion: reduce) { #loadbar i { transition: opacity .3s; } }

/* ── buttons ────────────────────────────────────────────────────────────── */
.btn {
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; gap: 7px;
  height: 34px; padding: 0 15px; border-radius: 7px;
  font-family: var(--sans); font-weight: 550; font-size: 13.5px; white-space: nowrap;
  border: 1px solid transparent;
  background: none; color: var(--text);
  text-decoration: none;
}
/* The chrome lives on ::before so a press squishes the button, not its label */
.btn::before {
  content: ''; position: absolute; inset: -1px; z-index: -1;
  border-radius: inherit;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
  transition: background .12s, border-color .12s, transform .26s cubic-bezier(.34, 1.56, .64, 1);
}
.btn:hover { text-decoration: none; }
.btn:hover::before { border-color: var(--border-loud); background: var(--inset); }
.btn.primary { color: var(--on-accent); }
.btn.primary::before { background: var(--accent); border-color: transparent; box-shadow: var(--shadow-cta); }
.btn.primary:hover::before { background: var(--accent-strong); }
.btn.quiet { color: var(--text-2); }
.btn.quiet::before { border-color: transparent; background: none; box-shadow: none; }
.btn.quiet:hover { color: var(--text); }
.btn.quiet:hover::before { background: var(--neutral-bg); }
.btn.danger { color: var(--bad-text); }
.btn.danger::before { border-color: var(--bad-bd); }
.btn.danger:hover::before { background: var(--bad-bg); }
.btn.sm { height: 30px; padding: 0 11px; font-size: 12.5px; }
.btn.sq { width: 34px; padding: 0; justify-content: center; flex: none; }
.btn svg { width: 14px; height: 14px; flex: none; }
.btn:disabled { opacity: .45; cursor: default; }
.btn:disabled::before { box-shadow: none; }
/* While the pointer is inside a clipping element its text-overflow becomes a plain
   clip and the #tipcut singleton repaints the ellipsis at the exact spot the native
   one occupied (shared/ui.js suppressNativeTip): WebKit invents a native tooltip for
   hovered text-overflow: ellipsis content and no title attribute can claim it away —
   ours must be the only voice. The singleton lives on <body>, position: fixed, NEVER
   inside the hovered element (a child there re-aims :last-child/:empty selectors and
   shifts real layout); font/color/coords are stamped inline per hover. z-index sits
   one under #tip so the tooltip still clears it. */
.tip-clip { text-overflow: clip !important; }
#tipcut {
  position: absolute; display: none;
  overflow: hidden; pointer-events: none; user-select: none;
  white-space: nowrap; text-align: left;
  box-sizing: content-box;
  /* No z-index here: suppressNativeTip parents this into the hovered text's own
     scroll container and copies the clip chain's paint rank on, so sticky columns
     and headers cover the patch exactly where they cover the text. */
}
/* The replica line: real text with a real ellipsis, truncated by WebKit itself so the
   dots land exactly where the native ones did. The block wears the clip root's face
   (a native ellipsis draws with the block's style), the inline inside wears the
   text's own; both sized and dressed inline per hover. */
#tipcut > span {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  box-sizing: content-box;
}
.linkbtn { background: none; border: none; color: var(--text-2); font-size: 12.5px; text-decoration: underline; padding: 0; cursor: pointer; }
.linkbtn:hover { color: var(--text); }
.linkbtn.danger { color: var(--bad-text); }
.copy {
  font-size: 11px; font-weight: 600; letter-spacing: .03em; flex: none;
  color: var(--accent-text); border: 1px solid var(--accent-a30); border-radius: 7px;
  padding: 2px 10px; cursor: pointer; background: none;
}
.copy:hover { background: var(--accent-a10); }

/* ── chips + spinner ────────────────────────────────────────────────────── */
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 570; line-height: 1;
  padding: 4px 9px; border-radius: 999px;
  border: 1px solid var(--neutral-bd);
  background: var(--neutral-bg); color: var(--neutral-text);
  white-space: nowrap; vertical-align: middle;
  /* the same top-sheen + hairline drop the buttons wear */
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
}
.chip .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.chip.ok   { color: var(--ok-text);   background: var(--ok-bg);   border-color: var(--ok-bd); }
.chip.info { color: var(--info-text); background: var(--info-bg); border-color: var(--info-bd); }
.chip.warn { color: var(--warn-text); background: var(--warn-bg); border-color: var(--warn-bd); }
.chip.bad  { color: var(--bad-text);  background: var(--bad-bg);  border-color: var(--bad-bd); }
/* The wobble was never the arc — it was the box. A spinner beside a scraper's name
   starts wherever the name's fractional text width leaves it, so its border box sits on
   a subpixel offset, and ROTATING that box spins it about a subpixel-snapped center —
   a visible side-to-side wiggle. (Promoting it to its own compositor layer, the old fix
   here, only moved the same rounding into the compositor.) So nothing transforms
   anymore: rotating a dashed circle is the same picture as shifting its dash phase, so
   the arc sweeps identically while the box never moves — there is no transform left to
   wobble. -56.5px is the dasharray period (42.4 + 14.1), one exact lap per cycle; px on
   an SVG stroke resolves to user (viewBox) units. */
svg.spin { width: 10px; height: 10px; flex: none; display: block; }
svg.spin circle {
  animation: spin-dash .9s linear infinite;
  /* core.js stamps the shared-phase delay on the svg; the stroke inherits it here */
  animation-delay: inherit;
}
@keyframes spin-dash { to { stroke-dashoffset: -56.5px; } }
@media (prefers-reduced-motion: reduce) { svg.spin circle { animation: none; } }

/* ── cards ──────────────────────────────────────────────────────────────── */
.card {
  background: var(--surface);
  border: 1px solid var(--border-faint);
  border-radius: 10px;
  box-shadow: var(--shadow-card);
  padding: 20px 22px;
}
.card + .card { margin-top: 16px; }
/* A display:none card is still a SIBLING — without this, a hidden card (the overview
   chart on a scraper too young to draw one) donates its phantom margin to the card
   after it, doubling the gap. */
.card.hidden + .card { margin-top: 0; }
/* …but only when the hidden card led the stack. A hidden card BETWEEN two visible
   ones (the run page's schema card between Summary and Rows) must not also eat the
   gap the visible pair deserves. */
.card:not(.hidden) ~ .card.hidden + .card { margin-top: 16px; }
#schema-slot .card { margin: 16px 0; }
/* settings: every card after the composer keeps card rhythm, slot or no slot */
.composer ~ .card { margin-top: 16px; }
/* The partial-run notice: a warn-tinted card leading the run page — the sentence and
   its Learn more up front, the one action on the right. */
.card.partial-note {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 13px 22px;
  /* padding + the sm button's 30px + borders — the bar keeps this height whether or
     not the button is showing (it hides on non-latest runs) */
  min-height: 58px;
  border-color: var(--warn-bd); background: var(--warn-bg); color: var(--warn-text);
  font-size: 13.5px;
}
.card.partial-note a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.card.partial-note .btn { margin-left: auto; }
.card-title { font-size: 13.5px; font-weight: 600; margin-bottom: 5px; }
.card-sub { font-size: 13px; color: var(--text-2); }
.card.danger { border-color: var(--bad-bd); }
.card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.card-head .card-title { margin-bottom: 0; }
.card-head .right { margin-left: auto; display: flex; gap: 8px; }

/* ── page headers ───────────────────────────────────────────────────────── */
.page-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; row-gap: 10px; }
#detail-name { cursor: text; border-radius: 6px; }
/* The rename field is an editable SPAN, not an <input> — see the swap in account.js for
   why. Everything here is what makes it lay its one line out exactly as the h1 above
   does: the same face, nowrap, and a clip instead of a wrap so a long name scrolls under
   the caret rather than growing the header a second line. */
.name-input {
  font-family: var(--display); font-size: 22px; font-weight: 600; letter-spacing: -.025em;
  color: var(--text); border: none; outline: none; background: none;
  border-radius: 6px; padding: 0 2px; margin: 0 -2px; min-width: 0;
  box-shadow: 0 0 0 2px var(--accent);
  display: inline-block; white-space: pre; overflow: hidden;
}
/* The title never breaks the header onto more lines: it shrinks and ellipsizes instead
   (min-width: 0 on the h1 and its flex ancestors is what lets it shrink at all). */
.page-head h1 { font-family: var(--display); font-size: 22px; font-weight: 600; letter-spacing: -.025em; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.page-head .right { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.title-row { display: flex; align-items: center; gap: 10px; min-width: 0; }
.title-row .chip { flex: none; }
.meta-line { display: flex; align-items: center; gap: 8px; color: var(--text-2); font-size: 13px; margin-top: 4px; flex-wrap: wrap; }
.meta-line .mid { color: var(--text-3); }

/* ── stat strip ─────────────────────────────────────────────────────────── */
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.stat { background: var(--surface); border: 1px solid var(--border-faint); border-radius: 10px; padding: 14px 16px 12px; }
.stat .micro { display: block; margin-bottom: 7px; }
.stat .num { font-family: var(--display); font-size: 24px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stat .delta { font-size: 12.5px; color: var(--text-2); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stat .delta .up { color: var(--ok-text); }
.stat .delta .down { color: var(--bad-text); }
/* A nonzero Needs-attention count is the alarm itself — the number goes red. */
.stat .num.down { color: var(--bad-text); }
@media (max-width: 860px) { .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── scrapers index ─────────────────────────────────────────────────────── */
.slist { background: var(--surface); border: 1px solid var(--border-faint); border-radius: 10px; box-shadow: var(--shadow-card); overflow: hidden; }
.list-head {
  display: grid; grid-template-columns: minmax(160px, 1.4fr) 150px minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1fr) 20px;
  gap: 12px; padding: 10px 20px 9px; border-bottom: 1px solid var(--border-faint);
}
.srow {
  display: grid; grid-template-columns: minmax(160px, 1.4fr) 150px minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1fr) 20px;
  gap: 12px; align-items: center;
  width: 100%; text-align: left;
  padding: 13px 20px;
  border-top: 1px solid var(--border-faint);
  color: inherit; text-decoration: none;
}
.srow:first-of-type { border-top: none; }
.srow:hover { background: var(--inset); text-decoration: none; }
.srow .sname { font-weight: 570; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.srow .smeta-cell { font-size: 12.5px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.srow .go { color: var(--text-3); justify-self: end; }
/* Nothing scheduled reads as a dash rather than a hole — painted here, so the cell's own
   emptiness stays meaningful to the narrow layout below, which drops it. */
.srow .srow-next:empty::before { content: '—'; color: var(--text-3); }
.srow .go svg { width: 14px; height: 14px; display: block; }
.empty { text-align: center; padding: 44px 20px; }
.empty .big { font-family: var(--display); font-size: 17px; font-weight: 600; margin-bottom: 6px; }
.empty p { color: var(--text-2); max-width: 46ch; margin: 0 auto 8px; }
/* The data tab before any content exists: the graphic stands where the table will. */
.datazero { padding: 56px 20px 60px; }
.datazero .zero-art { display: block; width: 220px; max-width: 55%; height: auto; margin: 0 auto 10px; }
/* A main tab with nothing in it yet: no card, no ring — the art sits on the page
   surface itself, centered in the space the list will grow into. The chain from
   .view down hands the content pane's full height to the zero block so "centered"
   means the viewport's remaining space, not the content's own height. */
.view.on:has(.pagezero) { display: flex; flex-direction: column; min-height: 100%; }
.view:has(.pagezero) .page { flex: 1; width: 100%; display: flex; flex-direction: column; }
/* …and every wrapper between the page and the zero block stretches with it. */
.view:has(.pagezero) .page *:has(.pagezero) { flex: 1; display: flex; flex-direction: column; }
/* A card holding only the zero state evaporates — embedded on the page, not framed. */
.card:has(.pagezero) { background: none; border: none; box-shadow: none; padding: 0; }
/* Sit the block a touch above true center — optically centered under the page head. */
.pagezero { flex: 1; display: flex; flex-direction: column; justify-content: center; padding-bottom: 9vh; }

/* ── tabs (segmented) ───────────────────────────────────────────────────── */
.tabs {
  display: flex; gap: 2px; width: max-content; max-width: 100%;
  background: var(--neutral-bg); border-radius: 8px; padding: 3px;
  margin: 18px 0 20px;
  overflow-x: auto; overscroll-behavior-x: none; scrollbar-width: none;
}
.tabs::-webkit-scrollbar { display: none; }
.tab {
  padding: 6px 14px; border-radius: 6px;
  font-size: 13.5px; font-weight: 550; color: var(--text-2);
  white-space: nowrap; flex: none; text-decoration: none;
}
.tab:hover { color: var(--text); text-decoration: none; }
.tab.on { color: var(--text); background: var(--surface); box-shadow: var(--shadow-card); }

/* ── overview grid / key-values ─────────────────────────────────────────── */
.ov-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ov-grid > div { min-width: 0; }
/* ── the Connect card: API, agents, feeds — every door ready to paste ── */
.cx-sec { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border-faint); }
.cx-sec:first-of-type { margin-top: 10px; }
.cx-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.cxpill { display: flex; align-items: center; gap: 8px; background: var(--inset); border: 1px solid var(--border-faint); border-radius: 9px; padding: 5px 5px 5px 12px; cursor: pointer; transition: background .18s, border-color .18s; }
.cxpill:hover { border-color: var(--border-loud); }
.cxpill code { font-family: var(--mono); font-size: 12.5px; color: var(--text); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cxpill .btn.sm { flex: none; }
.cx-keyfield + .cxpill { margin-top: 8px; }
/* A copyable endpoint: the whole pill is the target, the button is the affordance. */
/* The key field in the Share linkbox's clothes — same border, fill and mono — with
   one normal Copy button like every other row; the field itself is the copy target.
   The keywrap holds the mask and the "Copied!" overlay in one positioned box, so
   the label anchors beside the button whatever width the button takes. */
.cx-keyfield {
  display: flex; align-items: center; gap: 8px;
  background: var(--inset); border: 1px solid var(--border-faint); border-radius: 9px;
  padding: 5px 5px 5px 12px;
  cursor: pointer;
  transition: background .18s, border-color .18s;
}
.cx-keyfield:hover { border-color: var(--border-loud); }
.cx-keyfield .btn.sm { flex: none; }
.cx-keywrap { position: relative; align-self: stretch; flex: 1; min-width: 0; display: flex; align-items: center; }
.cx-keyfield code { display: flex; align-items: baseline; font-family: var(--mono); font-size: 12.5px; color: var(--text); flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; }
/* Whole dots only: the run holds exactly the bullets wireConnect counted to fit,
   with the leftover spread across the gaps as measured letter-spacing — nothing
   here can clip a glyph or lump the remainder at one end. */
.cx-maskfill { flex: 1 1 0; min-width: 0; overflow: hidden; white-space: nowrap; margin: 0 2px; }
/* 30px like the .btn.sm the linkbox holds, so both fields stand the same height. */
/* The Share linkbox's copied beat, worn by both fields: instant green in, the base
   180ms ease out, "Copied!" riding the same class (its styles live at .sh-copied). */
.cx-keyfield.copied, .cxpill.copied { background: var(--accent-a16); border-color: var(--accent); transition: none; }
.cx-keyfield.copied .sh-copied, .cxpill.copied .sh-copied { opacity: 1; transition: none; }
/* The key field's label FLOATS in its usual spot beside the icons instead of taking
   flex width — no layout shift, the dots hold still and stay visible. Its backdrop
   spans the field's full inner height in --copied-fill (the copied green flattened
   to one opaque color) and FADES in on the left, so a dot under the edge dissolves
   evenly instead of being sliced — and a same-color edge has no seam to show. */
.cx-keywrap .sh-copied {
  position: absolute; top: 0; bottom: 0; right: 0;
  display: flex; align-items: center;
  padding: 0 2px 0 26px;
  background: linear-gradient(90deg, transparent, var(--copied-fill) 22px);
  pointer-events: none;
}
@media (max-width: 900px) { .ov-grid { grid-template-columns: 1fr; } }
.kv { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid var(--border-faint); font-size: 13px; }
.kv:first-of-type { border-top: none; }
.kv .k { color: var(--text-2); width: 110px; flex: none; }
.kv .v { font-family: var(--mono); font-size: 12.5px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kv .v.sans { font-family: var(--sans); font-size: 13px; }
/* ── overview sparkline (rows added per day) ─────────────────────────────── */
.spark-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
.spark-val { margin-left: auto; font-size: 12.5px; color: var(--text-2); }
.spark-wrap { position: relative; }
svg.ovspark { width: 100%; height: 64px; display: block; overflow: visible; }
.spark-area { fill: var(--accent-a10); stroke: none; }
.spark-line { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.spark-dot { fill: var(--accent); }
/* hover layer: nearest-day crosshair + endpoint echo + value bubble */
.spark-x { stroke: var(--border); opacity: 0; transition: opacity .12s; }
.spark-hoverdot { fill: var(--accent); opacity: 0; transition: opacity .12s; }
svg.ovspark.hover .spark-x, svg.ovspark.hover .spark-hoverdot { opacity: 1; }
.spark-tip {
  position: absolute; top: -10px; z-index: 2; pointer-events: none; white-space: nowrap;
  background: var(--surface); border: 1px solid var(--border-faint); border-radius: 6px;
  box-shadow: var(--shadow-card); padding: 3px 8px; font-size: 12px; color: var(--text-2);
}
/* entrance: the line draws in, the fill breathes up behind it, the endpoint lands */
svg.ovspark.anim .spark-line { animation: spark-draw .9s cubic-bezier(.4, 0, .2, 1) .05s forwards; }
@keyframes spark-draw { to { stroke-dashoffset: 0; } }
svg.ovspark.anim .spark-area { opacity: 0; animation: spark-fill .5s ease-out .5s forwards; }
@keyframes spark-fill { to { opacity: 1; } }
svg.ovspark.anim .spark-dot { opacity: 0; animation: spark-pop .25s ease-out .85s forwards; }
@keyframes spark-pop { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  svg.ovspark.anim .spark-line, svg.ovspark.anim .spark-area, svg.ovspark.anim .spark-dot { animation: none; }
  svg.ovspark.anim .spark-line { stroke-dashoffset: 0 !important; }
  svg.ovspark.anim .spark-area, svg.ovspark.anim .spark-dot { opacity: 1; }
}

/* The run list, embedded in a card (the overview's Recent activity): same rows as the
   Activity tab, without the standalone list's own frame. */
.actlist.embed { background: none; border: none; border-radius: 0; box-shadow: none; overflow: visible; margin-top: 14px; }
.actlist.embed .act, .actlist.embed .act-head { padding-left: 0; padding-right: 0; }
.actlist.embed .act-head { padding-top: 4px; }
/* No Summary column in the embedded card — the rows column takes its room. (Desktop
   only: the mobile template below already hides it for every list.) Columns are
   minmax-flexible so the card's full width is actually used, not hugged on the left. */
.actlist.embed .sum, .actlist.embed .h-sum { display: none; }
@media (min-width: 861px) {
  .actlist.embed .act, .actlist.embed .act-head {
    /* Every column shares the spare width, so the row spreads edge to edge instead of
       pooling the slack after the last text column. No cancel track — see .act above. */
    grid-template-columns: minmax(72px, 1fr) minmax(100px, 1.1fr) minmax(58px, .9fr) minmax(48px, .8fr) minmax(90px, 1.3fr);
  }
}

/* ── data toolbar, ask bar, answers ─────────────────────────────────────── */
.toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; row-gap: 8px; }
.toolbar .grow { flex: 1; }
.toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-2); cursor: pointer; height: 34px; padding: 0 10px; border-radius: 8px; }

.toggle input { accent-color: var(--accent); margin: 0; }
.kbd {
  font-family: var(--mono); font-size: 10px; color: var(--text-3);
  border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 5px;
  padding: 1px 5px; white-space: nowrap; background: var(--surface); flex: none;
}

.askbar {
  display: flex; align-items: center; gap: 9px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
  padding: 4px 4px 4px 13px;
  flex: 1; min-width: 240px;
}
.askbar .spark { width: 15px; height: 15px; color: var(--accent-text); flex: none; }
.askbar input { flex: 1; min-width: 0; border: none; background: none; outline: none; font-size: 13.5px; }
.askbar input::placeholder { color: var(--text-3); }
.askbar .btn { height: 28px; }
.askbar:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-a10); }

/* One 12px beat around and between cards (the container's margin collapses with the
   last card's), one 8px beat inside them — the mixed 8/10/14 this used to carry read
   as uneven because it was. */
.answers { margin-bottom: 12px; }
.answer-card {
  background: var(--surface); border: 1px solid var(--accent-a30); border-radius: 10px;
  padding: 16px 18px; margin-bottom: 12px;
  position: relative; /* the close pins to the card's own corner */
}
/* padding-right clears the pinned close, so a long question ellipsizes short of it
   instead of sliding underneath. */
.answer-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding-right: 36px; }
.answer-q { font-weight: 570; font-size: 13px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* The close keeps the base 32px hit target (the same box the peek's close wears — two
   sizes on screen together read as a mistake) but pins to the corner instead of riding
   the head line, so it can't inflate the head's height. 10px on both axes is the number
   that makes every reading agree at once: the button box sits an even 10/10 in the
   corner, the visible 16px glyph an even 18/18 — and the glyph's centre (10+16=26)
   lands exactly on the title line's centre (16px padding + half its ~20px line), so the
   X reads as part of the head instead of drifting below it. */
.answer-head .icon-btn { position: absolute; top: 10px; right: 10px; }
/* 15px, the sparkle's own size: the spinner REPLACES the sparkle while an answer
   streams, and at 13px the swap-back nudged the whole head line. */
.answer-head .spin { width: 15px; height: 15px; flex: none; color: var(--accent-text); }
.answer-body { font-size: 13.5px; line-height: 1.55; }
.answer-body p, .answer-body ul, .answer-body ol, .answer-body pre { margin: 0 0 8px; }
.answer-body > :last-child { margin-bottom: 0; }
.answer-body ul, .answer-body ol { padding-left: 18px; }
.answer-body pre { background: var(--inset); border: 1px solid var(--border-faint); border-radius: 7px; padding: 8px 10px; overflow-x: auto; overscroll-behavior-x: none; font-size: 12.5px; }
.answer-body code { background: var(--neutral-bg); border-radius: 4px; padding: 0 4px; font-family: var(--mono); font-size: .92em; }
.answer-body pre code { background: none; padding: 0; }
.answer-body.err { color: var(--bad-text); }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.cite-chip {
  display: inline-block; font-size: 9.5px; font-weight: 650; vertical-align: super; line-height: 1.4;
  color: var(--accent-text); background: var(--accent-a10);
  border-radius: 999px; padding: 0 5px; margin: 0 2px; cursor: pointer; user-select: none;
}
.cite-chip:hover { background: var(--accent-a16); }
.cite-chip.inert { opacity: .55; cursor: default; }
/* 14 + the text's own leading reads as the same ~19px of air the 16px card padding
   gives the title — and the SAME beat on both sides of the divider, so the rule sits
   centred between answer and footer instead of hugging the footer. */
.comp-foot { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border-faint); font-size: 12px; color: var(--text-2); }
.comp-foot pre { background: var(--inset); border: 1px solid var(--border-faint); border-radius: 7px; padding: 8px 10px; overflow-x: auto; overscroll-behavior-x: none; font-size: 12px; margin: 8px 0 0; font-family: var(--mono); }

.fcount { font-size: 11.5px; color: var(--text-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.askbar .barctl .icon-btn { width: 26px; height: 26px; }

/* ── the data grid ──────────────────────────────────────────────────────── */
/* isolate: the sticky headers carry high z-indexes so each sits above the one to its
   right (see buildHead — that is what keeps a straddling resize grip grabbable). Those
   numbers have no business competing with the rest of the app: without a stacking context
   here they outranked the row panel, which is fixed at 30, and the header row painted
   straight over it. Contained, they are only ever compared with each other. */
.gridwrap { background: var(--surface); border: 1px solid var(--border-faint); border-radius: 10px; box-shadow: var(--shadow-card); overflow: hidden; isolation: isolate; }
.gridscroll { overflow: auto; max-height: 64vh; scrollbar-gutter: stable; overscroll-behavior-x: none; }
table.grid { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13px; }
.grid th {
  position: sticky; top: 0; z-index: 2;
  background: var(--surface);
  text-align: left; font-weight: 600;
  padding: 8px 13px; white-space: nowrap;
  border-bottom: 1px solid var(--border);
  font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3);
}
/* margin-left: 0 — the flex gap on .thl spaces it now, and both would double it */
.grid th .keytag { font-size: 9px; letter-spacing: .04em; color: var(--accent-text); background: var(--accent-a10); border-radius: 999px; padding: 1px 6px; margin-left: 0; }
/* Sortable headers: the label is the target, the arrow is the state. The arrow holds
   its space at zero opacity so nothing shifts when a column takes the sort — it only
   fades in, on hover as a hint and solid once the column is actually sorting. */
/* No position here on purpose: `.grid th` above is sticky, and a `position: relative`
   would outrank it and drop the header out of the scroll. Sticky is already a
   containing block, so the grip's absolute positioning resolves against it either way. */
.grid th.sortable { padding-right: 20px; cursor: pointer; }
/* Clipping lives on the label, NOT the th: the resize grip is a child of the th and sits
   proud of its right edge, so overflow:hidden up there would swallow its hit area. A
   block-level flex row here fills the cell's content box exactly, which is what gives
   the name something finite to ellipsize against. */
.grid th.sortable .thl { display: flex; align-items: center; gap: 4px; min-width: 0; overflow: hidden; }
/* the name yields; the ID tag and the arrow are identity and state, and hold their size */
.sheet th .thname { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grid th .keytag, .grid th .tharr { flex: none; }
.grid th.sortable:hover { color: var(--text-2); }
.grid th .tharr { display: inline-flex; width: 11px; opacity: 0; transition: opacity .12s, transform .16s; }
.grid th .tharr svg { width: 11px; height: 11px; }
.grid th.sortable:hover .tharr { opacity: .45; }
.grid th.sorted { color: var(--text); }
.grid th.sorted .tharr { opacity: 1; color: var(--accent-text); }
.grid th.sorted.asc .tharr { transform: rotate(180deg); }
/* ── the shared column machinery (.sheet) ──────────────────────────────────
   BOTH tables — the data grid and the run viewer's diff table — carry the `sheet`
   class, and everything about grips, label ellipsis and key dividers lives under it
   ONCE. Only presentation (padding, density, stacking) belongs under .grid/.rd-grid;
   a machinery rule added to one table and not the other is how the diff table's grips
   once got clipped in half. The JS twin of this rule is lockGridCols/attachColResize. */
/* The grip straddles the column edge, centred on it: a 10px box hung 5px past the cell's
   right edge puts its middle exactly on the boundary, where the eye already expects the
   handle to be. It widens the hit area without taking any layout. */
.sheet th .colgrip {
  position: absolute; top: 0; right: -5px; width: 10px; height: 100%;
  cursor: col-resize; z-index: 1; touch-action: none;
}
/* And the mark lands ON the divider, not beside it. The key column's border-right is the
   1px INSIDE the cell edge — [edge-1, edge] — so the ink's centre is at edge-0.5, half a
   pixel left of the boundary the grip straddles. A 2px bar centred on the boundary would
   therefore put its whole right half past the line, which is exactly what it looked like.
   The extra half pixel centres it on the ink instead; it lands on a device pixel at 2x
   and up, which is where anyone can see the difference. */
.sheet th .colgrip::after {
  content: ''; position: absolute; top: 5px; bottom: 5px;
  left: 50%; margin-left: -1.5px; width: 2px;
  border-radius: 2px; background: var(--accent); opacity: 0; transition: opacity .12s;
}
.sheet th .colgrip:hover::after { opacity: .6; }
/* `right` on an absolutely positioned child is measured from the containing block's
   PADDING box, not its border box — so on the key column, whose 1px border-right draws
   the divider, the grip would land a pixel shy of the edge it is supposed to straddle.
   One extra pixel puts it back on the line. */
.sheet th.colkey-last .colgrip { right: -6px; }
/* The last column has no neighbour to straddle — keep its grip inside the table so it
   can't add phantom scroll width. */
.sheet th:last-child .colgrip { right: 0; }
/* A drag must not leave a trail of selected text or flicker the row cursor. */
body.col-resizing, body.col-resizing * { cursor: col-resize !important; -webkit-user-select: none; user-select: none; }
/* ...and for the length of the drag the sheet stops listening entirely. The pointer is
   sweeping across rows and headers that are reflowing underneath it, and every :hover it
   picked up on the way flickered. The drag itself doesn't care: its listeners are on
   window, which sees the events whatever the table does with them. */
body.col-resizing .gridwrap, body.col-resizing .rd-scroll { pointer-events: none; }
/* The one mark that SHOULD stay lit is the grip being dragged — and with hit-testing off
   it can no longer use :hover to do it. pointer-events changes hit-testing, not painting,
   so this still draws. */
.sheet th .colgrip.dragging::after { opacity: .85; }
/* What the newest run did to this row, in the width of a bullet. Green for a row that
   wasn't here before, hollow for one whose values moved. */
.fdot {
  display: inline-block; width: 6px; height: 6px; border-radius: 999px;
  margin-right: 7px; vertical-align: 1px; flex: none;
}
/* One mark: the latest run touched this row. New and modified read identically — the
   distinction is in the tooltip, not in the dot. */
.fdot.new, .fdot.changed { background: var(--accent); }
.grid td {
  padding: 8px 13px; border-bottom: 1px solid var(--border-faint);
  max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  vertical-align: baseline;
}
/* A cell in a media COLUMN — applied per column, not per value, so every row in the sheet
   is the same height whether or not that row has a file (account.js rowHtml explains why).
   `vertical-align: middle` overrides the baseline above: an inline thumbnail sitting on
   the text baseline hangs below it and pushes the row. The thumb box is a FIXED square
   with the same dimensions repeated as HTML attributes, so the height the grid measures
   never moves once an image finishes loading — the whole scroll model assumes one uniform
   row height, and both halves of that (uniform across rows, stable over time) matter. */
/* …but "same height whether or not THIS row has a file" was only half the invariant. A
   media column's cell was still taller than a text one — measured 45.14px against 37.14,
   a 9px step every time a picture appeared — so a dataset with images rendered ragged,
   and the virtualizer, which maps scroll position through ONE rowH, drifted against it.
   The height is pinned on the cell now and the media cell is given no vertical padding
   to spend, so the thumbnail (28px, 30 with its border) sits INSIDE the row rather than
   setting it. Every cell reports the same box, whatever it holds. */
.grid td { height: var(--grid-row-h); }
.grid td.filecell { vertical-align: middle; padding-top: 0; padding-bottom: 0; }
.fthumb, .fchipcell { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; }
.fthumb img {
  width: 28px; height: 28px; flex: none; border-radius: 4px; object-fit: cover;
  background: var(--inset); border: 1px solid var(--border-faint);
}
.fthumb .fname, .fchipcell .fname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fchipcell .ficon { flex: none; display: inline-flex; color: var(--text-3); }
.fmeta { flex: none; font-size: 11px; color: var(--text-3); font-variant-numeric: tabular-nums; }
/* The play mark on a video poster: small enough not to hide the frame, plain enough not
   to read as a button — the cell isn't a player, the row panel is. */
/* Centred on the 28px thumbnail rather than offset by a guessed margin, so it stays put
   if the thumb size ever changes. */
.fthumb { position: relative; }
.fthumb .playdot {
  position: absolute; left: 7.5px; top: 50%; transform: translateY(-50%);
  width: 13px; height: 13px; border-radius: 999px;
  background: rgba(0,0,0,.55); pointer-events: none;
}
.fthumb .playdot::after {
  content: ''; position: absolute; top: 3.5px; left: 5px;
  border-left: 5px solid #fff; border-top: 3px solid transparent; border-bottom: 3px solid transparent;
}
.grid tr:last-child td { border-bottom: none; }
.grid tbody tr { cursor: pointer; }
.grid tbody tr:hover td { background: var(--inset); }
.grid tbody tr.sel td { background: var(--accent-a10); }
.grid td.num { text-align: right; font-family: var(--mono); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.grid td.date { font-family: var(--mono); font-size: 12.5px; }
.grid td a { color: var(--accent-text); }
.grid tr.removed td { text-decoration: line-through; color: var(--text-3); }
.grid tr.norow, .grid tr.norow td { cursor: default; }
.grid tr.norow:hover td { background: none; }
/* The no-rows sentence ("Nothing matches …", "No rows yet") sits in a cell spanning
   every column, and the table can be far wider than the viewport — sticky keeps the
   words under the eye wherever the grid was scrolled, matching the td's own padding. */
.grid tr.norow .norow-msg { position: sticky; left: 20px; display: inline-block; }
.grid mark { background: var(--mark-bg); color: inherit; border-radius: 4px; padding: 0 1px; }
/* A find hit hiding past the clip (grid.js markCutHits): the cell trades the native
   ellipsis for its own, painted in the right padding and wearing the mark — proof of a
   match you can't see. Sticky key cells are already a positioning context; overriding
   position there would unstick them, so relative applies only to ordinary cells. */
.grid td.hitcut { text-overflow: clip; }
.grid td.hitcut:not(.colkey) { position: relative; }
.grid td.hitcut::after {
  /* Box metrics (--cutt/--cuth) are copied from the real mark by grid.js markCutHits,
     so this pill and an inline mark pill are the same shape. The opaque surface base
     under the mark layer keeps clipped glyph fragments from showing through. */
  content: '…'; position: absolute; right: 0; padding: 0 3px 0 2px;
  top: var(--cutt, 8px); height: var(--cuth, auto); line-height: var(--cuth, inherit);
  color: inherit; border-radius: 4px; text-align: right; overflow: hidden;
  background-color: var(--surface);
  background-image: linear-gradient(var(--mark-bg), var(--mark-bg));
}
/* Joined to a visible fragment: the tail starts where the last whole glyph ended and
   runs square-shouldered into the rounded right end — one highlight, not two. */
/* border-box: --cutw was measured from the last visible glyph to the cell edge, so the
   padding must live INSIDE it — content-box would push the opaque base left over the
   glyphs it was measured to spare. */
.grid td.hitcut.hitjoin::after { width: var(--cutw); box-sizing: border-box; border-radius: 0 4px 4px 0; }
.grid tbody tr:hover td.hitcut::after { background-color: var(--inset); }
.grid tbody tr.sel td.hitcut::after {
  background-image: linear-gradient(var(--mark-bg), var(--mark-bg)), linear-gradient(var(--accent-a10), var(--accent-a10));
}
/* windowed rendering: the spacers that stand in for off-screen rows, and the ghost
   rows past the drain's loaded frontier */
.grid tr.vpad td { padding: 0; border: none; }
.grid tr.vpad:hover td { background: none; }
/* The spacers are always present so the renderer can shift the window by its edges
   instead of rebuilding it. That leaves a zero-height one trailing the last row, which
   would stop `tr:last-child` from lifting that row's border and double it up against the
   footer's — so the row before a collapsed tail spacer drops it here instead. */
.grid tbody tr[data-idx]:has(+ tr.vpad.zero) td { border-bottom: none; }
.grid tr.ghost td { border-bottom: 1px solid var(--border-faint); }
/* key columns stick to the left while the rest scroll — row identity stays in view.
   Sticky cells need their own paint: hover/selection recompose over an opaque surface
   so scrolled content never bleeds through a translucent tint. */
.grid th.colkey { position: sticky; z-index: 4; }
.grid td.colkey { position: sticky; z-index: 1; background: var(--surface); }
.grid tbody tr:hover td.colkey { background: var(--inset); }
.grid tbody tr.sel td.colkey { background-color: var(--surface); background-image: linear-gradient(var(--accent-a10), var(--accent-a10)); }
.sheet th.colkey-last, .sheet td.colkey-last { border-right: 1px solid var(--border); }
/* Once the table is actually scrolled sideways, the sticky edge casts a shadow. Without
   it a column sliding underneath reads as a rendering fault — a half-eaten date — rather
   than as one column passing behind another. Only while scrolled: at rest the hairline
   is enough and a permanent shadow would be noise. */
.xscrolled .sheet .colkey-last { box-shadow: 7px 0 9px -7px var(--edge-shade); }
@media (max-width: 640px) { .sheet .colkey { position: static !important; } }
.cite {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; vertical-align: -2px;
  color: var(--accent-text); background: var(--accent-a10);
  border-radius: 999px; padding: 0; margin-left: 5px; border: none; cursor: pointer;
}
.cite svg { width: 8.5px; height: 8.5px; }
.cite:hover { background: var(--accent-a16); }
.gridfoot[hidden] { display: none; }
.gridfoot { display: flex; align-items: center; gap: 10px; padding: 9px 16px; border-top: 1px solid var(--border-faint); font-size: 13px; color: var(--text-2); flex-wrap: wrap; }
/* A sort is invisible state — the footer says it out loud and offers the way back. */
.sortnote { font-size: 12.5px; color: var(--text-2); display: flex; align-items: center; gap: 6px; }
.sortnote.hidden { display: none; }
.gridfoot .pages { margin-left: auto; display: flex; gap: 4px; align-items: center; }
/* The public page's way to its questions page: footer right, immediately left of the row
   count, wearing .linkbtn so it reads as the same kind of control as the sort Reset.
   The sheet is exactly one viewport and the page does not scroll, so the footer is the
   only place a link can live without pushing the frame taller. Quiet, but a real one —
   unobtrusive is the goal, undiscoverable is the hidden-link pattern and a different
   thing entirely.
   The auto margin MOVES to the link when there is one, so the pair sits together at the
   right instead of the free space splitting between them. */
.gridfoot #grid-count { margin-left: auto; }
.gridfoot .qa-link { margin-left: auto; }
.gridfoot .qa-link ~ #grid-count { margin-left: 0; }
/* The separator lives on the COUNT, not inside the anchor — .linkbtn underlines, and a
   bullet inside the link would be underlined with it. */
.gridfoot .qa-link ~ #grid-count::before { content: '·'; color: var(--text-3); margin-right: 10px; }

/* ── row peek panel ─────────────────────────────────────────────────────── */
.peek {
  position: fixed; top: 10px; right: 10px; bottom: 10px; width: min(400px, calc(100vw - 20px)); z-index: 30;
  background: var(--surface); border-radius: 12px;
  /* the same pixel-crisp ring the content pane wears (a real border antialiases into
     the corner radius), over the floating panel's deeper shadow */
  box-shadow: 0 0 0 1px var(--border), var(--shadow-pop);
  display: flex; flex-direction: column;
  transform: translateX(calc(102% + 10px)); transition: transform .22s var(--ease-out-strong);
}
.peek.open { transform: none; }
@media (prefers-reduced-motion: reduce) { .peek { transition: none; } }
.peek-head { display: flex; align-items: center; gap: 8px; padding: 14px 18px; border-bottom: 1px solid var(--border-faint); flex: none; }
.peek-head .t { font-weight: 600; font-size: 14px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.peek-body { flex: 1; overflow-y: auto; padding: 15px 18px; }
.field { padding: 10px 0; border-top: 1px solid var(--border-faint); }
.field:first-child { border-top: none; }
.field .fk { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }
.field .fv { font-size: 13.5px; overflow-wrap: anywhere; }
.field .fv.mono { font-size: 12.5px; }
/* A long value folded behind Expand: the visible slice keeps its own line breaks
   (pre-wrap reads as the value actually is), and the link line sits under it. */
.field .fv-long { white-space: pre-wrap; }
.field .fv-more { margin-top: 3px; }
.field .keytag { font-size: 9px; color: var(--accent-text); background: var(--accent-a10); border-radius: 999px; padding: 1px 6px; }
/* A file, with room to actually be seen. The grid cell is a 28px thumbnail; this is where
   the picture is the point. */
.field .fv.fpreview { display: block; }
.fpreview img, .fpreview video {
  display: block; width: 100%; height: auto; max-height: 320px; object-fit: contain;
  border-radius: 6px; border: 1px solid var(--border-faint); background: var(--inset);
}
.fpreview audio { display: block; width: 100%; margin-bottom: 2px; }
/* A text file's first page, as itself: selectable, bounded, scrolling inside its own box
   rather than growing the panel. pre-wrap so prose reads; anywhere so a minified blob
   can't force the panel wide. */
.fpreview .ftext {
  margin: 0; padding: 8px 10px; max-height: 240px; overflow: auto;
  font-family: var(--mono); font-size: 11.5px; line-height: 1.55; color: var(--text-2);
  white-space: pre-wrap; overflow-wrap: anywhere;
  border-radius: 6px; border: 1px solid var(--border-faint); background: var(--inset);
}
.fpreview .ftextmore { font-size: 11px; color: var(--text-3); margin-top: 4px; }
.fpreview .fline { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; }
.fpreview .flink { flex: 0 1 auto; min-width: 0; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fpreview .fmeta { margin-left: auto; }
/* The source button sits in the line's own rhythm — its usual nudge off a value's last
   word would double the flex gap here. */
.fpreview .fline .cite { flex: none; margin-left: -3px; }

/* ── activity (runs + audit) ────────────────────────────────────────────── */
.actlist { background: var(--surface); border: 1px solid var(--border-faint); border-radius: 10px; box-shadow: var(--shadow-card); overflow: hidden; }
/* There is no cancel column. The button is lifted out of the grid entirely and parked
   against the row's right edge, so it costs nothing on the rows that don't have one and
   the columns never shift — genuinely per row, not per list, and no track to reserve.
   An absolutely positioned child is removed from grid placement, so the six tracks below
   are all there ever are. */
.act, .act-head {
  display: grid; grid-template-columns: 72px 106px 74px 64px minmax(90px, .9fr) minmax(0, 1.3fr);
  gap: 12px; align-items: center;
  padding: 12px 18px; border-top: 1px solid var(--border-faint); font-size: 13px;
  position: relative;
}
.act .delta { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); }
.actlist.embed .act .delta { right: 0; }
/* A row that can be cancelled is usually a row still running, whose Rows and Summary
   read "—" — but not always (a folded repair episode can carry finished-leg text), so
   the button's footprint has to be kept clear of text. That clearance rides the LAST
   COLUMN's own padding, never the row's.
   The row is one grid and the header is a SECOND one; they line up only while both
   resolve their tracks against the same width. Padding on .act shrank the row's by the
   button's footprint, so every FLEXIBLE track came out narrower than the label's above
   it — measured in Chromium: the embedded card, whose tracks are all fr, walked its
   columns 16 / 34 / 48 / 61px left of their headers, and the standalone list walked
   Summary 34px left (its first four tracks are fixed px, which is why only that one
   showed). On the cell instead, the geometry is untouched: every minmax min here is a
   fixed length, so no track ever sizes to an item's padding, and the ellipsis still
   lands short of the button because a line box ends at the content edge. */
.act:has([data-cancel]) .sum { padding-right: 82px; }
/* Summary is hidden in the embedded card, so Rows is the column the button reaches. */
.actlist.embed .act:has([data-cancel]) .rows { padding-right: 82px; }
.act-head { border-top: none; border-bottom: 1px solid var(--border-faint); padding: 12px 18px 8px; }
#runs-box .act:first-child { border-top: none; }
.act:first-child { border-top: none; }
.act .when { color: var(--text-2); font-size: 12.5px; white-space: nowrap; }
.act .delta { font-family: var(--mono); font-size: 12px; color: var(--text-2); white-space: nowrap; }
.act .sum, .act .rows { color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.act .tk, .act .srcn { color: var(--text-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 860px) {
  .act, .act-head { grid-template-columns: 72px 106px minmax(0, 1fr); }
  .act .srcn, .act .rows, .act .sum, .act-head .h-srcn, .act-head .h-rows, .act-head .h-sum { display: none; }
  /* Both columns that carry the clearance above are gone here — Duration is the last one
     standing, so it takes it, and the button still has nothing running under it. */
  .act:has([data-cancel]) .tk { padding-right: 82px; }
}
.audit-row { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; border-top: 1px solid var(--border-faint); font-size: 13px; }
.audit-row:first-of-type { border-top: none; }
.audit-row .kind { font-weight: 570; flex: none; }
.audit-row .bits { color: var(--text-2); flex: 1; min-width: 0; overflow-wrap: anywhere; }
.audit-row .when { color: var(--text-3); font-size: 12px; flex: none; }

.act[data-run] { cursor: pointer; }
.act[data-run]:hover { background: var(--inset); }
/* A content card breathes evenly: the space between the header text and the first item
   matches the space between the last item and the card's bottom edge (~13px each). */
/* The overview's Recent activity card sits 2px tighter — its rows carry their own
   breathing room, and the even-18 read as extra under the last one. */
.card:has(> .actlist.embed) { padding-bottom: 16px; }

/* ── run panel: the deep-research run viewer ───────────────────────────────
   A right-side panel (reusing the .peek shell) over the dashboard. The run is told as a
   RAIL of three beats — the plan, the gathering (with its on-demand domain breakdown),
   the outcome — followed by the change set as an embedded, clipped sheet. Everything
   themes off the same vars the cards and chips do, so it follows light and dark without
   a second set of values. */
/* Overlapping favicons, the leading domain first — the "and counting" read. The overlap
   is a quarter of the icon, not a third: at -6px each 16px mark showed 10px and three of
   them read as one smudge rather than as three sources. (The overlap itself lives on
   .rp-slot-f, down with the ticker it moves in step with.) */
.rp-faces { display: inline-flex; align-items: center; flex: none; }
.rp-caret { margin-left: auto; display: inline-flex; color: var(--text-3); flex: none; transition: transform .18s var(--ease-out-strong); }
.rp-caret svg { width: 15px; height: 15px; }

/* A favicon and its letter-chip fallback share one 16px footprint, so a 404 swap never
   shifts the row it sits in. */
.fav { width: 16px; height: 16px; border-radius: 4px; flex: none; display: block; object-fit: cover; background: var(--inset); }
/* OPAQUE, like the <img> beside it. The chips overlap in the run panel's favicon pile,
   and a translucent fill let every chip under the top one show through — a stack of
   letters legible through each other. --copied-fill is --accent-a16 already flattened
   over --surface, so the colour is unchanged and only the transparency is gone. */
.favchip {
  width: 16px; height: 16px; border-radius: 4px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 9.5px; font-weight: 650; line-height: 1;
  color: var(--accent-text); background: var(--copied-fill);
}

/* The domain breakdown, disclosed INSIDE the source step — the rail's connector runs
   down beside it, so the domains stay visibly attached to the count they explain. */
.rp-breakdown { padding: 8px 0 2px; }
.rp-breakdown.hidden { display: none; }
.rp-dom { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 12.5px; }
.rp-dom-ic { flex: none; display: inline-flex; }
/* The NAME takes the slack and the bar's track is fixed. It was the other way round —
   the bar was flex:1 and absorbed whatever the domain left — which made every row's
   track a different length: 185px against clearchannel.com, 239px against mta.info. The
   fill is a percentage OF that track, so a domain hit 41 times drew a shorter bar than
   one hit 17 times purely because its name was longer. A comparison you cannot compare
   is worse than no bar, and the fix is simply to measure them all against the same rule. */
.rp-dom-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-2); }
.rp-dom-bar { flex: 0 0 160px; height: 5px; border-radius: 999px; background: var(--inset); overflow: hidden; }
.rp-dom-bar i { display: block; height: 100%; background: var(--accent-a30); border-radius: inherit; }
/* Wide enough for three digits, so the counts sit in a column and a busier domain does
   not shunt its own bar out of line with the rest. */
.rp-dom-n { flex: none; color: var(--text-2); font-variant-numeric: tabular-nums; min-width: 26px; text-align: right; }
.rp-dom-more { font-size: 12px; color: var(--text-3); padding: 6px 0 0; }

/* Sections below the rail; hidden ones fold away entirely. */
.rp-sec { padding: 15px 0 0; }
.rp-sec.hidden { display: none; }

/* The rail: a dot per beat joined by a connector, the working one live (a spinner) and
   the settled ones checked. The connector is absolute within its step, so it stretches
   over whatever the step holds — a one-line label, an open domain breakdown, or a
   multi-paragraph summary.

   EVERY vertical number here is pinned to ONE figure: the 20px line box of the text
   beside the dot. The dot's box is that line box, not the 13px glyph inside it — a 13px
   box sits at the TOP of a 20px line and lands every icon ~2.5px above the words it
   belongs to, which reads as sloppy long before you can name what's wrong. Pinning
   line-height on the label (rather than inheriting body's 1.55) is what keeps the two
   halves of that arithmetic from drifting apart. */
.rp-rail { display: flex; flex-direction: column; }
.rp-step { position: relative; display: flex; gap: 11px; padding-bottom: 14px; }
.rp-step:last-child { padding-bottom: 0; }
/* left: the dot's centre (6.5px) less half the rule's width. top: just under the glyph,
   which the 20px box centres at 3.5–16.5px. */
.rp-step::before { content: ""; position: absolute; left: 5.75px; top: 19px; bottom: -2px; width: 1.5px; background: var(--border); }
.rp-step:last-child::before { display: none; }
.rp-dot { position: relative; z-index: 1; flex: none; width: 13px; height: 20px; display: inline-flex; align-items: center; justify-content: center; background: var(--surface); }
.rp-dot svg { width: 13px; height: 13px; display: block; }
.rp-step.active .rp-dot, .rp-step.done .rp-dot { color: var(--accent-text); }
/* A run that failed, was interrupted or was cancelled ends on this mark instead — with
   the status chip gone, the last beat is where an outcome that isn't "fine" has to show. */
.rp-step.bad .rp-dot { color: var(--bad-text); }
.rp-step-b { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
/* A step's header row. The source step's is a BUTTON once the run is over (a live count
   is still moving, so it isn't clickable yet); every other step's is a plain div, and
   the resets below let one rule dress both. */
.rp-step-h { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 20px; background: none; border: none; padding: 0; margin: 0; color: inherit; font: inherit; text-align: left; }
button.rp-step-h { cursor: pointer; }
button.rp-step-h:hover .rp-step-lab { color: var(--accent-text); }
.rp-step-h[aria-expanded="true"] .rp-caret { transform: rotate(90deg); }
.rp-step-lab { font-size: 13px; line-height: 20px; color: var(--text-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* The last beat is the one being read — full strength, and the label carries the weight
   the source counter used to. Everything above it has already happened and steps back. */
.rp-step:last-child .rp-step-lab { color: var(--text); font-weight: 570; }
/* The last beat carries the agent's own account of the run, so it wraps where the other
   labels ellipsize. */
.rp-step-sum { font-size: 13px; line-height: 20px; color: var(--text-2); }
.rp-step:last-child .rp-step-sum { color: var(--text); }

/* ── the live source ticker ────────────────────────────────────────────────
   While a run is gathering, the domains it is reading are NAMED in a short stack under
   the count and pictured in the pile beside it. Slot i is the same source in both, and
   each slot is its OWN element — that is what lets one row turn over while its
   neighbours sit perfectly still, instead of the whole block flipping at once.

   Every slot is a WINDOW with a roller inside it, and that split is the whole design.
   The window holds position and takes the FLIP transform when the stack shuffles; the
   roller carries the value through the window's edges — out through the bottom, in from
   the top, the way a departure board reads. Two elements, two jobs, so the shuffle and
   the swap never fight over one transform. Clipping costs nothing: the rows already hide
   their overflow to ellipsize.

   The newest source sits at the TOP, so a turnover is three things at once: an arrival
   above, a departure below, and every row between them moving down a line. They share
   one 280ms beat on the emphasized curve, with the departure at 190ms on the accelerate
   curve — pinned OUT OF FLOW so the gap closes in the same movement rather than after
   it. Only transform and opacity move, so none of it can trigger layout. */
/* Both strips CLIP: an arrival rides in from one place before the front and a departure
   keeps going one place past the back, and neither should be visible outside the strip
   while it does. The rings clipped at the edges are var(--surface) over the panel's own
   background, so losing them there costs nothing. */
.rp-ticker { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; font-size: 11.5px; line-height: 16px; color: var(--text-3); min-width: 0; max-width: 100%; }
.rp-slot-n { max-width: 100%; }
.rp-slot-t { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* The overlap and the ring live on the SLOT, not the icon inside it: the slot is what
   persists across a turnover, so the pile's geometry can't flicker when its contents do. */
.rp-faces { position: relative; }
/* The overlap is absorbed by the container's padding rather than cancelled on
   :first-child — which is not a bug you would predict and is very visible once it bites.
   A departing icon is position:absolute but still a CHILD, and the reconcile leaves it
   ahead of the survivors in DOM order, so IT became :first-child: the first icon anyone
   could see picked up the -4px, the pile jumped left, and jumped back 260ms later when
   the ghost was finally removed. Padding is order-blind, and the arithmetic is identical
   (4px in, 4px back out on the first mark). */
.rp-faces { padding-left: 4px; overflow: hidden; }
.rp-faces .rp-slot-f { display: inline-flex; flex: none; border-radius: 4px; margin-left: -4px; box-shadow: 0 0 0 2px var(--surface); }
/* flex, NOT block: a block here gives the icon a line box, which inherits the body's
   1.55 line-height and stands the pile up at 21.69px instead of 16 — enough to grow the
   header row and drop the whole label below its own dot. It only bites when a favicon
   falls back to the inline letter chip, which is exactly the case a live run hits most. */
.rp-slot-i { display: flex; }
/* The SLOT carries the whole movement, because the slot is the thing that holds a place
   in the queue. The transforms are stamped inline by account.js: one place is worth a
   different number of pixels in the stack than in the pile, and both are measured. */
.rp-slot-n, .rp-slot-f { transition: transform .34s var(--ease-out-emph), opacity .34s var(--ease-out-emph); }
.rp-slot-n.entering, .rp-slot-f.entering { opacity: 0; }
/* Leaving: out of flow at the spot it held — that is what lets the survivors close over
   it in the same beat instead of waiting — and still travelling forward with the queue.
   It travels on the SAME curve and duration as everything else and only FADES early: on
   the quicker exit curve it decelerated out of step, the survivor behind it caught up,
   and the two overlapped exactly where the pitch was supposed to hold them apart. */
.rp-slot-n.leaving, .rp-slot-f.leaving { position: absolute; pointer-events: none; opacity: 0; transition: transform .34s var(--ease-out-emph), opacity .23s var(--ease-in-accel); }
.rp-slot-n.leaving { left: 0; }
.rp-slot-f.leaving { top: 0; margin-left: 0; }
/* The count is the one place a ROLLER is still right: a single fixed box whose value
   changes underneath it, rather than a place in a queue that moves. */
.rp-num-v { transition: opacity .34s var(--ease-out-emph), transform .34s var(--ease-out-emph); }
/* The travel accelerates away; the FADE deliberately does not follow it. On the
   accelerate curve opacity sits near 1 for the first half of the descent and only
   collapses at the end — by which point the figure is already below the label's clip, so
   it read as vanishing rather than fading. Its own near-linear curve, finishing a touch
   before the travel does, puts the fade where there is still a figure to see it on. */
.rp-num-v.leaving { opacity: 0; transform: translateY(100%); transition: transform .23s var(--ease-in-accel), opacity .21s cubic-bezier(0.4, 0, 0.6, 1); }
.rp-num-v.entering { opacity: 0; transform: translateY(-100%); transition: none; }
/* The count rolls the same way, on the same axis, so the headline moves WITH the stack
   under it rather than ticking silently beside it. The outgoing figure rides out pinned
   over the box, so the number is never blank mid-swap.
   NOT its own clip window, deliberately: `overflow: hidden` on an inline-block moves its
   baseline to the bottom margin edge, which grew this line box to 21.69px and dropped the
   whole label three-quarters of a pixel below its own dot. The label already hides its
   overflow to ellipsize, and a figure translated a full 20px line clears that box — so
   the clipping is there for free and the baseline stays where it belongs. Tabular digits
   stop the width twitching between equal-length counts. */
.rp-num { display: inline-block; font-variant-numeric: tabular-nums; }
/* One box per DIGIT, so only the columns that actually changed move — 21 → 22 rolls the
   units and leaves the tens perfectly still. Each column is its own positioning context,
   which is what lets its outgoing figure ride over it without disturbing its neighbours.
   Tabular figures are what make fixed columns possible in the first place. */
.rp-num-d { position: relative; display: inline-block; }
.rp-num-v { display: block; }
.rp-num-v.leaving { position: absolute; left: 0; top: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  /* account.js paints straight through in this mode; this is the belt for the braces —
     a turnover that lands anyway lands as a plain cut. */
  .rp-slot-n, .rp-slot-f, .rp-num-v,
  .rp-slot-n.entering, .rp-slot-f.entering, .rp-num-v.entering { transition: none; opacity: 1; transform: none; }
}

/* Markdown-rendered card copy (the run panel's Summary). */
.card-sub.md p, .card-sub.md ul, .card-sub.md ol, .card-sub.md pre { margin: 0 0 8px; }
.card-sub.md :last-child { margin-bottom: 0; }
.card-sub.md ul, .card-sub.md ol { padding-left: 20px; }
.card-sub.md code { font-family: var(--mono); font-size: 12px; background: var(--inset); border-radius: 4px; padding: 1px 4px; }
.card-sub.md pre { background: var(--inset); border-radius: 8px; padding: 10px 12px; overflow-x: auto; overscroll-behavior-x: none; }
.card-sub.md pre code { background: none; padding: 0; }
.card-sub.md a { color: var(--accent-text); }

/* The change set, embedded rather than disclosed: it stands in the panel at a few rows'
   height under a fade, and one click on the block lifts the clip and the gradient
   together. While clipped the table's own scroller is switched off — the fade must sit
   over real rows, not over an inner scrollbar's dead space — and the whole block is the
   control, so it takes focus and answers Enter/Space (account.js clipRows). A set that
   already fits gets neither the clip nor the pointer. */
/* It reads as a SHEET: a ruled box with rounded corners, so the change set is an object
   in the panel rather than columns floating in it. overflow:hidden is what makes the
   radius actually cut the table's corners — including the sticky header's own opaque
   background, which would otherwise square them off. */
.rp-rows { position: relative; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.rp-rows .rd-scroll { margin-top: 0; }
/* The leading column would otherwise sit flush against the new left edge. Written as
   first-child as well as .op so the LOADING sheet gets the same gutter: its cells carry
   no op class, so its bars started hard against the border while the real table's didn't
   — the skeleton has to stand in the same box the content will. */
.rp-rows .rd-grid th.op, .rp-rows .rd-grid td.op,
.rp-rows .rd-grid tr > th:first-child, .rp-rows .rd-grid tr > td:first-child { padding-left: 10px; }
/* The last row's rule would double up with the box's own bottom border. */
.rp-rows .rd-grid tbody tr:last-child > td { border-bottom: none; }
.rp-rows.clipped { max-height: 224px; cursor: pointer; }
/* scrollbar-gutter is deliberately left `stable` (inherited from .gridscroll): the column
   lock measures the scroller's client width, and dropping the gutter here would measure
   one width while clipped and lay the table out at another once it opens. */
.rp-rows.clipped .rd-scroll { overflow: hidden; max-height: none; }
/* While it is clipped the sheet is one CONTROL, not a table: the whole block does one
   thing, which is open. Letting rows light up under the pointer, tooltips fire, links
   invite a click and column grips offer a drag would all promise an interaction that is
   not available yet — and the row click underneath would fire on a table the reader can
   only see a third of. Handing the events to the parent makes the promise honest. */
.rp-rows.clipped .rd-scroll { pointer-events: none; }
.rp-rows.clipped::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 104px;
  background: linear-gradient(to bottom, transparent, var(--surface) 92%);
  /* Above the sticky key columns and the sticky header (z-index 1 and 4 on .rd-grid):
     without this the fade covers the scrolling columns and the frozen ones punch
     straight through it, which is worse than no fade at all. */
  z-index: 5;
  pointer-events: none;
}
.rp-rows:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
/* The change-set caption sits under the sheet, not against it. */
.rp-rowsum { padding: 9px 0 0; }
.rp-rowsum.hidden { display: none; }

.rd-row { display: flex; align-items: baseline; gap: 10px; padding: 6px 0; border-top: 1px solid var(--border-faint); font-size: 13px; }
.rd-row:first-child { border-top: none; padding-top: 6px; }
.rd-lab { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* The change set as a real table: one column per schema field; the op lives in the row
   title and the removed-row strikethrough. Values are pre-clipped server-side; the
   title attr carries the clipped whole. Kept separate from table.grid — no sticky
   headers, no row cursor/hover, and none of the data grid's mobile block layout; wide
   sets scroll inside .rd-scroll instead. */
.rd-scroll { overflow-x: auto; margin-top: 6px; overscroll-behavior-x: none; }
table.rd-grid { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13px; }
.rd-grid th {
  text-align: left; font-weight: 600; padding: 5px 14px 5px 0; white-space: nowrap;
  border-bottom: 1px solid var(--border);
  font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3);
  /* sticky top, same as .grid th: the wrapper wears .gridscroll now, so the header
     holds the top edge while the change set scrolls under it. Sticky is also the
     grip's containing block, the job position:relative did before — and NEVER
     overflow:hidden on the th itself: the grip hangs past the cell edge, and clipping
     it halves the hit area and shaves the hover bar; the label span below carries the
     ellipsis instead, same as the data grid's .thname. */
  position: sticky; top: 0; z-index: 2; background: var(--surface);
}
.rd-grid th .thname { display: block; }
/* rd columns pad only on the RIGHT (14px), so the cell edge sits flush against the next
   label — a grip straddling it reads as belonging to the wrong column and grabs over
   the neighbour's text. Pull it to the middle of the gap. The key divider keeps the
   shared straddle (its colkey-last rule is more specific): there the border ink marks
   the boundary and the bar belongs ON it. */
.rd-grid th .colgrip { right: 2px; }
/* 300px, the data grid's budget: the two tables show the same rows and clipping them
   at different widths made one of them look broken. */
.rd-grid td {
  padding: 7px 14px 7px 0; border-bottom: 1px solid var(--border-faint);
  max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  vertical-align: baseline; color: var(--text-2);
}
.rd-grid td a { color: var(--accent-text); }
/* A removed row's links are history — struck through with the rest, not inviting. */
.rd-grid tr.rd-rm td a { color: inherit; }
.rd-grid tr:last-child td { border-bottom: none; }
/* A diff row that knows its key is a door into the dataset. The hover reads as a ring
   rather than a fill: the rows are already tinted green/red/neutral by their op, and a
   background would have to fight three different tints to say one thing. */
.rd-grid tbody tr[data-key] { cursor: pointer; }
.rd-grid tbody tr[data-key]:hover td { box-shadow: inset 0 1px 0 var(--accent-a30), inset 0 -1px 0 var(--accent-a30); }
.rd-grid tbody tr[data-key]:hover td:first-child { box-shadow: inset 1px 1px 0 var(--accent-a30), inset 0 -1px 0 var(--accent-a30); }
.rd-grid tbody tr[data-key]:hover td:last-child { box-shadow: inset -1px 1px 0 var(--accent-a30), inset 0 -1px 0 var(--accent-a30); }
/* the diff map: a leading op column and diff-tinted rows; changed cells carry old → new */
.rd-grid th.op, .rd-grid td.op { width: 26px; text-align: center; padding-left: 8px; padding-right: 4px; }
.rd-grid td.op { font-family: var(--mono); font-weight: 700; }
.rd-grid tr.rd-add td { background: var(--ok-bg); }
.rd-grid tr.rd-add td.op { color: var(--ok-text); }
.rd-grid tr.rd-rm td { background: var(--bad-bg); text-decoration: line-through; color: var(--text-3); }
.rd-grid tr.rd-rm td.op { color: var(--bad-text); text-decoration: none; }
/* A change is not a warning. Amber is this app's word for "partial" — it says a run
   half-failed — so a changed cell wearing it read as damage rather than news. The
   neutral tint says "this moved" and leaves green and red to mean added and removed. */
.rd-grid tr.rd-chg td.op { color: var(--text-2); }
.rd-grid td.chg { background: var(--neutral-bg); }
/* in a changed row the untouched cells recede so the colored ones carry the eye */
.rd-grid tr.rd-chg td:not(.chg):not(.del):not(.ins):not(.op) { color: var(--text-2); }
/* a value deleted or newly filled in speaks in the row palette's own colors */
.rd-grid td.del { background: var(--bad-bg); }
.rd-grid td.ins { background: var(--ok-bg); }
.rd-old { text-decoration: line-through; color: var(--text-3); margin-right: 6px; }
.rd-grid td.del .rd-old { margin-right: 0; }
.rd-arrow { color: var(--text-3); margin-right: 6px; }
/* One line, always: the pair is a flex row where BOTH sides shrink with their own
   ellipsis — the new value can never be silently amputated, and nothing wraps. The
   wider cap keeps common pairs (two timestamps) whole. Tooltips carry the full pair. */
.rd-grid td.chg { max-width: 500px; }
.rd-pair { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.rd-pair .rd-old, .rd-pair .rd-new { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-pair .rd-old { margin-right: 0; }
.rd-pair .rd-arrow { flex: none; margin-right: 0; }
.rd-grid td.num .rd-pair { justify-content: flex-end; }
.rd-grid th.num, .rd-grid td.num { text-align: right; }
.rd-grid td.num { font-family: var(--mono); font-size: 12.5px; font-variant-numeric: tabular-nums; }
/* the op gutter and key columns stick left, same contract as the data grid; diff row
   tints recompose over the opaque surface so nothing bleeds under the sticky cells */
.rd-grid th.colkey, .rd-grid td.colkey { position: sticky; z-index: 1; }
/* both-axis sticky: top rides the shared th rule above, left is stamped by restampRd.
   z above the plain headers, same laddering as .grid th.colkey. */
.rd-grid th.colkey { z-index: 4; background: var(--surface); }
/* the row tints' `tr … td` selectors outweigh a bare td.colkey — match their weight
   (and sit later in the file) so the sticky surface stays opaque, then re-tint on top */
.rd-grid tr td.colkey { background-color: var(--surface); }
.rd-grid tr.rd-add td.colkey { background-image: linear-gradient(var(--ok-bg), var(--ok-bg)); }
.rd-grid tr.rd-rm td.colkey { background-image: linear-gradient(var(--bad-bg), var(--bad-bg)); }
/* colkey-last border and shadow: shared, under .sheet above */
/* Removal reads the same way the data pane says it: a struck-through row. */
.rd-row.removed .rd-lab { text-decoration: line-through; color: var(--text-3); }

/* ── banners ────────────────────────────────────────────────────────────── */
.banner {
  border: 1px solid var(--bad-bd); background: var(--bad-bg);
  border-radius: 10px; padding: 14px 16px; margin: 0 0 16px;
}
.banner p { margin: 0 0 10px; font-size: 13.5px; }
.banner p:last-child { margin-bottom: 0; }
.banner.info { border-color: var(--border); background: var(--inset); }
/* Warn (yellow): a caution, not an alarm — the same amber the partial-note card and the
   Partial chip use. */
.banner.warn { border-color: var(--warn-bd); background: var(--warn-bg); color: var(--warn-text); }
.banner.warn a { color: var(--warn-text); text-decoration: underline; text-underline-offset: 2px; }
/* The sentence in the page's own ink; only the link keeps the amber. The tint and the
   border already say caution — running the words in it as well made the one notice on
   the page harder to read than the ordinary text beside it, which is backwards. */
.banner.warn .warn-say { color: var(--text); }
.banner .row { display: flex; gap: 8px; flex-wrap: wrap; }
.banner input { flex: 1; min-width: 200px; }

/* ── forms ──────────────────────────────────────────────────────────────── */
.f-label { display: block; font-size: 13px; font-weight: 570; margin: 17px 0 6px; }
.f-label:first-child { margin-top: 0; }
.f-hint { font-size: 12.5px; color: var(--text-2); margin-top: 4px; }
.f-input, .f-area {
  width: 100%;
  background: var(--surface); border: 1px solid var(--border); border-radius: 8px;
  padding: 8px 12px; font-size: 13.5px; outline: none;
  /* the buttons' material: top sheen + soft drop */
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
}
.f-input { height: 34px; padding: 0 12px; }
.f-area { min-height: 90px; }
textarea { resize: none; }
#ns-brief::placeholder { transition: opacity .35s ease; opacity: 1; }
#ns-brief.ph-out::placeholder { opacity: 0; }
.f-input:focus, .f-area:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-a10), inset 0 1px 0 var(--btn-sheen); }
.frow { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.msg-line { font-size: 12.5px; color: var(--text-2); }

/* item rows (files / secrets / logins / keys / mail) */
.item { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--border-faint); }
.item:first-of-type { border-top: none; }
.item .body { flex: 1; min-width: 0; }
.item .name { font-weight: 570; font-size: 13.5px; overflow-wrap: anywhere; }
.item .meta { color: var(--text-2); font-size: 12.5px; overflow-wrap: anywhere; }
.item .actions { display: flex; gap: 6px; flex: none; flex-wrap: wrap; justify-content: flex-end; }
.tag {
  display: inline-block; font-size: 10.5px; font-weight: 600; letter-spacing: .03em;
  color: var(--text-2); background: var(--neutral-bg); border: 1px solid var(--neutral-bd);
  border-radius: 5px; padding: 1px 6px; vertical-align: middle;
}
.tag.warn { color: var(--warn-text); background: var(--warn-bg); border-color: var(--warn-bd); }

/* minted key reveal */
.minted {
  display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 10px 14px;
  background: var(--accent-a06); border: 1px solid var(--accent-a30); border-radius: 8px; flex-wrap: wrap;
}
.minted .mono { font-size: 12.5px; overflow-wrap: anywhere; user-select: all; }

/* file chips */
.chips { display: flex; flex-wrap: wrap; gap: 7px; }
.fchip {
  display: inline-flex; align-items: center; gap: 7px; max-width: 100%;
  font-size: 12.5px; font-weight: 550; border: 1px solid var(--border); border-radius: 8px;
  padding: 4px 6px 4px 11px; background: var(--surface);
}
.fchip .t { color: var(--text-3); font-weight: 400; font-size: 11px; }
.fchip .x {
  display: inline-flex; align-items: center; justify-content: center;
  width: 17px; height: 17px; padding: 0; border-radius: 4px;
  color: var(--text-3); background: none; border: none; cursor: pointer;
}
.fchip .x svg { width: 10px; height: 10px; }
.fchip .x:hover { color: var(--bad-text); background: var(--bad-bg); }
.filelab { cursor: pointer; }
.filelab input[type="file"] { display: none; }

/* ── schedule picker ────────────────────────────────────────────────────── */
.sched-row { display: flex; align-items: center; gap: 10px; margin-top: 12px; flex-wrap: wrap; font-size: 13.5px; }
.sched-row:first-child { margin-top: 0; }
.sched-row[hidden] { display: none; }
.at-part { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* !important: the mobile layout sets `.composer-sched .at-part { display: contents }`
   later in this file, which would otherwise defeat the attribute */
.at-part[hidden] { display: none !important; }
.day-chips { display: flex; gap: 4px; }
.day-chips button {
  width: 30px; height: 30px; border-radius: 7px;
  border: 1px solid var(--border); background: var(--surface);
  font-size: 12px; font-weight: 550; color: var(--text-2);
}
.day-chips button:hover { border-color: var(--border-loud); }
.day-chips button.on { background: var(--accent-a10); border-color: var(--accent-a30); color: var(--accent-text); }

/* behind "custom…": the Configure button takes the "at <time>" slot in the schedule
   line and wears the configured schedule as its label; the builder lives in the modal.
   FIXED width, like every other control on this row (see the composer-sched comment):
   a long summary ellipsizes inside it — it may never grow the row and push Start
   scraping onto its own line. Wrapping decisions use flex BASE sizes, so a merely
   shrinkable button would still wrap the row before shrinking. */
.sched-cfg { width: 148px; flex: none; }
.sched-cfg[hidden] { display: none; } /* .btn's display:inline-flex would defeat the attribute */
.sched-cfg .lbl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }

/* the custom schedule builder (modal body): mode tabs on the shared .seg chrome, one
   fixed-height control row per mode, and the preview strip — the one signature element,
   where the hub echoes the schedule back in words. Every part holds its footprint:
   the tabs span the full width, the row area and the strip reserve their heights, so
   switching modes or waiting on the echo never moves the modal. */
.sched-panel { width: 100%; display: flex; flex-direction: column; margin-top: 6px; }
.sched-panel .seg { display: grid; grid-template-columns: repeat(4, 1fr); }
.sched-panel .seg button { padding: 6px 0; text-align: center; }
.sched-modes { min-height: 38px; display: flex; align-items: center; margin-top: 12px; }
.sched-mode { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; color: var(--text); width: 100%; }
.sched-mode[hidden] { display: none; }
/* Three classes deep on purpose: the modal body's blanket `.modal-body .f-input/.selx
   { width: 100%; margin-top: 8px }` sits LATER in this file, so equal specificity loses
   — these must outrank it. Inputs and selects FLEX to fill the row, so every tab's
   controls reach the same right edge; only labels, chips and the calendar button hold
   their own size. */
.sched-panel .sched-mode .f-input, .sched-panel .sched-mode .selx { margin-top: 0; flex: 1 1 0; width: auto; min-width: 60px; }
.sched-panel .sched-mode .selx-btn { width: 100%; }
.sched-panel .sched-mode .day-chips, .sched-panel .sched-mode .btn.sq { flex: none; }
/* the Dates tab stacks its rows; the add button sits under them, its own size.
   nowrap matters: the base row's flex-wrap in a COLUMN direction makes stretch size
   children to their intrinsic width instead of the container's — rows overflowed. */
.sched-mode[data-mode="date"] { flex-direction: column; align-items: stretch; flex-wrap: nowrap; }
.sched-dates { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.sched-drow { display: flex; align-items: center; gap: 8px; }
.sched-drow .icon-btn { flex: none; }
.sched-drow .icon-btn[hidden] { display: none; }
.sched-panel .sched-add-date { align-self: flex-start; height: 30px; padding: 0 10px; font-size: 12.5px; margin-top: 8px; }

/* the calendar popup — rides the .menu chrome for outside-click dismissal; the grid
   layout and compact day cells are its own (the .cal-pop selectors outrank
   `.menu button`). z-index matches .selx-list: it must clear the modal it opens over. */
/* .menu.cal-pop, two classes: the bare `.menu { z-index: 36 }` rule sits LATER in this
   file and would win a same-specificity tie, sinking the calendar under the modal
   (z 40). Compound beats order; 70 matches .selx-list over the same modal. */
.menu.cal-pop { padding: 10px 12px 12px; z-index: 70; }
.cal-head { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 6px; }
.cal-title { font-size: 13px; font-weight: 600; }
.cal-pop .cal-nav { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; padding: 0; border-radius: 7px; color: var(--text-2); }
.cal-pop .cal-nav svg { width: 14px; height: 14px; }
.cal-dow { display: grid; grid-template-columns: repeat(7, 30px); justify-items: center; font-size: 10.5px; color: var(--text-3); margin-bottom: 2px; }
.cal-grid [role="row"] { display: grid; grid-template-columns: repeat(7, 30px); }
.cal-pop .cal-day { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 28px; padding: 0; border-radius: 7px; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.cal-pop .cal-day:disabled { color: var(--text-3); opacity: .55; cursor: default; }
.cal-pop .cal-day:disabled:hover { background: none; }
.cal-pop .cal-day.today { box-shadow: inset 0 0 0 1px var(--border-loud); }
.cal-pop .cal-day.on { background: var(--accent); color: var(--on-accent); }
.cal-pop .cal-day.on:hover { background: var(--accent-strong); }

/* ── schema editor ──────────────────────────────────────────────────────── */
.sch-scroll { padding-bottom: 2px; }
.sch-row {
  display: grid; grid-template-columns: minmax(90px, 1fr) minmax(86px, 108px) minmax(110px, 1.4fr) 56px 34px;
  gap: 8px; align-items: center; margin-top: 6px; min-width: 0;
}
.sch-row.sch-head { margin-top: 14px; padding-bottom: 6px; margin-bottom: 2px; border-bottom: 1px solid var(--border-faint); }
.sch-head .micro.ctr { text-align: center; }
.sch-row .f-input { padding: 0 10px; }
.sch-row .f-input.fname { font-family: var(--mono); font-size: 12.5px; }
.sch-row .selx, .sch-row .selx-btn { width: 100%; }
.chkctr { display: flex; justify-content: center; align-items: center; height: 32px; border-radius: 8px; cursor: pointer; }
.chkctr input { accent-color: var(--accent); margin: 0; }
.sch-row .icon-btn { width: 34px; height: 34px; justify-self: center; }
.idline { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 16px; font-size: 13px; color: var(--text-2); }
.idline .chipset { display: inline-flex; gap: 5px; flex-wrap: wrap; }
.idchip {
  font-family: var(--mono); font-size: 11.5px; font-weight: 500;
  border: 1px solid var(--border); border-radius: 6px; padding: 3px 10px;
  background: var(--surface); color: var(--text-3); cursor: pointer;
}
.idchip:hover { border-color: var(--border-loud); }
.idchip.on { background: var(--accent-a10); border-color: var(--accent-a30); color: var(--accent-text); }
.idchip:disabled { cursor: default; }
.schema-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.schema-tbl th { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--border); }
.schema-tbl td { padding: 8px 10px; border-bottom: 1px solid var(--border-faint); vertical-align: top; }
.schema-tbl tr:last-child td { border-bottom: none; }
.bf-choice { border: 1px solid var(--border-faint); border-radius: 8px; padding: 10px 12px; margin: 8px 0; background: var(--inset); }
.bf-choice p { margin: 0 0 6px; font-size: 13px; font-weight: 570; }
.bf-choice label { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--text-2); margin: 4px 0; cursor: pointer; }
.bf-choice input { accent-color: var(--accent); margin-top: 2px; }

/* create flow */
/* ── the sky ── the backdrop behind the front door's composer (hidden inside the
   signed-in app — see the #route-new rules below). Sticky at exactly one viewport of
   height (its flow height
   taken back by the negative margin), so the gradient's proportions are the VIEWPORT's:
   a growing page — the advanced tray opening — scrolls over the sky instead of
   stretching it, and the horizon holds still like a real one. It always covers the
   whole visible pane, so the gradient owes the page background nothing and can land on
   the saturated --sky-4 horizon. Drifting clouds (dealt at random per load —
   account.js), sun by day, moon by night, the soft veil under the top edge. Decorative
   throughout — pointer-events off, aria-hidden in the markup. */
.sky {
  position: sticky; top: 0; z-index: 0;
  /* the pane below the topbar; the front door (no topbar) restores the full viewport */
  height: calc(100vh - 54px); height: calc(100dvh - 54px);
  margin-bottom: calc(54px - 100vh); margin-bottom: calc(54px - 100dvh);
  overflow: hidden; pointer-events: none;
}
body.front .sky {
  height: 100vh; height: 100dvh;
  margin-bottom: -100vh; margin-bottom: -100dvh;
}
.sky .grad { position: absolute; inset: 0; background: linear-gradient(var(--sky-1), var(--sky-2) 32%, var(--sky-3) 46%, var(--sky-4) 62%); }
/* .6 at the top, .95 at the bottom, tracking progress through the page (account.js writes
   --veil-on as 0→1 over the actual scroll range; an unscrollable page never writes it and
   keeps the .6 default). Still short of 1 on purpose: at full opacity the band reads as a
   white bar with an edge, and the point is that the sky is still up there — dimmed, not
   covered. */
.sky .veil {
  position: absolute; top: 0; left: 0; right: 0; height: 230px;
  background: var(--veil-grad);
  opacity: calc(.6 + .35 * var(--veil-on, 0));
}
@media (prefers-reduced-motion: reduce) { .sky .veil { transition: none; } }
/* ── stars ── night only: one 2px dot whose box-shadows are the whole field (account.js
   deals the positions per visit). Very faint by design. */
.sky .stars { position: absolute; top: 0; left: 0; width: 2px; height: 2px; border-radius: 50%; display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .sky .stars { display: block; }
}
:root[data-theme="dark"] .sky .stars { display: block; }
/* ── wispy undertones ── faint streaks of the same clay weather, blurred and nearly
   transparent, melted into the blue for a hint of real sky. EASY UNDO: delete the
   single .wisps line in account/index.html (or set `.sky .wisps { display: none }`
   here) and the sky is plain gradient again. */
/* The haze drifts with the weather it belongs to — the same direction as the clouds,
   far slower, so it reads as the sky moving rather than as anything you can follow.
   The box is TWO sky-widths of a tile exactly one sky-wide, repeating, so a translate of
   half the box is a shift of exactly one tile: the loop closes on itself and there is no
   seam to catch. (Animating background-position instead would work too, but transform is
   the one the compositor takes for free.) */
.sky .wisps {
  position: absolute; top: 0; bottom: 0; left: 0; width: 200%;
  background-image: url('/assets/landing/prop-wisps.webp');
  background-repeat: repeat-x; background-size: 50% 100%; background-position: center 20%;
  opacity: .7; filter: blur(26px); /* heavily melted — a soft luminous haze, not shapes */
  mix-blend-mode: screen; /* white stays WHITE over the blue, never gray */
  /* the wisps live in the blue only — melted away before the horizon whitens */
  -webkit-mask-image: linear-gradient(to bottom, #000 46%, transparent 70%);
  mask-image: linear-gradient(to bottom, #000 46%, transparent 70%);
}
@media (prefers-reduced-motion: no-preference) {
  /* 150s to cross one sky, down from 240. The old pace was set to sit under the speed
     anything reads as moving AT — which it did, so completely that the haze read as
     painted on. Weather that never appears to move is just a texture.
     The front copy runs at 80s, because it is nearer: the same rule the clouds' parallax
     follows, and the gap between the two passes is what reads as depth rather than as one
     texture drawn twice. It is quicker than the quickest cloud (~120s) on purpose —
     nothing in the sky should be nearer than the layer drawn in front of everything. */
  .sky .wisps { animation: wisp-drift 150s linear infinite; }
  .sky .wisps-fore { animation-duration: 80s; }
}
/* A second pass of the same haze, in FRONT of the sun and the clouds — DOM order above
   puts it there. Weather is not only behind things, and a lit prop with nothing crossing
   it reads as a sticker on the sky rather than as something in it.
   Faint, but not invisible. Differenced against the same frame with the layer off, over
   the cloud and sun pixels only: .13 moved them a mean of 1.3 channel levels (max 7),
   under what an eye resolves on a flat area — the effect was there in the DOM and nowhere
   on the screen. .22 read as a graze at 3.9; .3 sits at 5.8 (max 24), which is weather
   you can see crossing a prop rather than weather you have to look for. Screen blending means it can only ever ADD
   light, so even where it pools it lifts a highlight instead of muddying a colour. It
   also masks out earlier than the layer behind, so the horizon and the composer stay
   clear of it. */
.sky .wisps-fore {
  opacity: .3;
  filter: blur(34px);
  -webkit-mask-image: linear-gradient(to bottom, #000 30%, transparent 58%);
  mask-image: linear-gradient(to bottom, #000 30%, transparent 58%);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .sky .wisps-fore { opacity: .07; }
}
:root[data-theme="dark"] .sky .wisps-fore { opacity: .07; }
@keyframes wisp-drift {
  from { transform: translate3d(-50%, 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .sky .wisps { opacity: .05; filter: blur(26px) brightness(.6); }
}
:root[data-theme="dark"] .sky .wisps { opacity: .05; filter: blur(26px) brightness(.6); }
.sky-bit { position: absolute; }
/* The residents ride the scroll a little while the sky holds still: account.js writes
   the pane's scrollTop onto the sky as --par, and each bit sinks by its own fraction of
   it (--pf — sun and moon are far, clouds nearer at randomized depths). --flip is the
   per-visit facing; it lives on the same transform, so it rides along. */
.sky-bit img { display: block; width: 100%; height: auto; transform: scaleX(var(--flip, 1)); }
/* Nothing pops in: every sky image (and the wisp layer) waits invisible until its bytes
   have arrived, then fades up — account.js stamps .loaded on each load event. */
.sky-bit img, .sky .wisps { transition: opacity .7s ease; }
.sky-bit img:not(.loaded), .sky .wisps:not(.loaded) { opacity: 0 !important; }
.sky .sun img, .sky .moon img { --pf: -.35; }
@media (prefers-reduced-motion: no-preference) {
  .sky-bit img { transform: translateY(calc(var(--par, 0px) * var(--pf, -.5))) scaleX(var(--flip, 1)); }
}
.sky .sun { top: clamp(84px, 12vh, 130px); right: 7%; width: clamp(84px, 9vw, 130px); }
.sky .moon { display: none; top: clamp(84px, 12vh, 130px); right: 7%; width: clamp(70px, 7vw, 104px); }
/* Night is stars and a moon and nothing else. The clay clouds were dimmed for it
   (brightness(.55) saturate(.45)) and dimming was never the answer: clay is a lit,
   daylight material, and a darkened lump of it reads as a smudge on the glass rather
   than as a cloud at night. Better absent — the starfield is what the night sky is for.
   That dimming filter was the only thing --cloud-filter ever did, so it went with it. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .sky .sun { display: none; }
  :root:not([data-theme="light"]) .sky .moon { display: block; }
  :root:not([data-theme="light"]) .sky .cloud { display: none; }
}
:root[data-theme="dark"] .sky .sun { display: none; }
:root[data-theme="dark"] .sky .moon { display: block; }
:root[data-theme="dark"] .sky .cloud { display: none; }
.sky .cloud-1 { top: clamp(96px, 14vh, 150px); left: 6%; width: clamp(110px, 12vw, 180px); }
.sky .cloud-2 { top: clamp(70px, 9vh, 110px); left: 30%; width: clamp(70px, 8vw, 120px); }
.sky .cloud-3 { top: clamp(250px, 34vh, 330px); left: 82%; width: clamp(80px, 9vw, 130px); }
.sky .cloud-4 { top: clamp(60px, 7vh, 100px); left: 52%; width: clamp(60px, 7vw, 110px); }
.sky .cloud-5 { top: clamp(120px, 16vh, 170px); left: 66%; width: clamp(90px, 10vw, 150px); }
/* the clouds drift forever, minecraft-style: constant motion, so linear, transform-only */
@media (prefers-reduced-motion: no-preference) {
  .sky .cloud { animation-name: sky-drift; animation-timing-function: linear; animation-iteration-count: infinite; }
  .sky .cloud-1 { animation-duration: 150s; animation-delay: -40s; }
  .sky .cloud-2 { animation-duration: 110s; animation-delay: -75s; }
  .sky .cloud-3 { animation-duration: 180s; animation-delay: -160s; }
  .sky .cloud-4 { animation-duration: 130s; animation-delay: -60s; }
  .sky .cloud-5 { animation-duration: 165s; animation-delay: -120s; }
}
/* Each cloud drifts between its OWN endpoints (account.js writes --drift-from/-to):
   fully off-screen left to fully off-screen right, so the wrap never pops a cloud into
   view mid-sky. The vw defaults serve the no-JS fallback positions. */
@keyframes sky-drift {
  from { transform: translateX(var(--drift-from, -40vw)); }
  to { transform: translateX(var(--drift-to, 115vw)); }
}
@media (max-width: 880px) {
  .sky .cloud-2, .sky .cloud-3, .sky .cloud-4, .sky .cloud-5 { display: none; }
  .sky .cloud-1 { top: 104px; left: -30px; width: 100px; }
  .sky .sun { top: 96px; right: -20px; width: 84px; }
  .sky .moon { right: -14px; width: 70px; }
}
/* The sky belongs to the FRONT DOOR only: inside the signed-in dashboard the
   new-scraper tab stays a plain surface pane, so the whole sky is hidden unless
   body.front says otherwise. */
#route-new { position: relative; }
#route-new .page { position: relative; z-index: 1; }
#route-new .sky { display: none; }
body.front #route-new .sky { display: block; }

/* ── the front door ── this same page served at `/` is the landing page (account.js
   FRONT). body.front strips the app chrome — no sidebar, no topbar, the content pane
   flattened to the page background — and dresses the composer in the landing's: the
   brand + menu bar up top, the legal footer below, both floating over the sky, which
   holds still (no entrance fade) and runs to the viewport's own background. */
.front-bar, .front-foot { display: none; }
body.front .sidebar, body.front .topbar { display: none; }
body.front .main { position: relative; }
body.front .content { margin: 0; border-radius: 0; box-shadow: none; background: var(--bg); }
/* the landing page speaks up a little: same hero, a size larger than the in-app tab */
body.front .hero-title { font-size: clamp(25px, 3.6vw, 34px); margin-bottom: 28px; }
/* The same band the app's top bar and sidebar wordmark share (--topbar-h), so the mark
   stands at one height across the whole product: signed out on the landing page, signed
   in beside the breadcrumbs, it centres on the same line. It used to be 16px of top
   padding instead, which put it 7.7px lower than the app's — close enough to look like a
   mistake rather than a different surface. `align-items: center` then carries the nav
   with it: the buttons on the right centre on the mark's line by construction, not by a
   second set of paddings that happen to agree. */
body.front .front-bar {
  display: flex; align-items: center; gap: 8px;
  position: absolute; top: 0; left: 0; right: 0; z-index: 5;
  height: var(--topbar-h); padding: 0 10px 0 24px;   /* see .mkt-header in site.css */
}
/* the website's wordmark runs a step bigger than the app sidebar's (17px/25px), scaled
   proportionally — type, sprig and gap together */
.front-brand {
  font-family: var(--display); font-weight: 600; font-size: 19px; letter-spacing: -.01em;
  display: inline-flex; align-items: center; gap: 7px; color: var(--text); text-decoration: none;
  padding: 4px 0;
}
.front-brand img { width: 28px; height: 28px; margin-left: -6px; }
.front-brand:hover { text-decoration: none; }
.front-bar nav { margin-left: auto; display: flex; align-items: center; gap: 8px; }
/* The quiet links huddle at 4px between their boxes; the step from Pricing to the solid
   buttons keeps the full 8px flex gap. */
.front-bar nav .btn.quiet { padding: 0 10px; }
.front-bar nav .btn.quiet + .btn.quiet { margin-left: -4px; }
@media (max-width: 640px) { body.front .front-bar nav .btn.quiet { display: none; } }
/* once the inline sign-in lands, the header's auth buttons have nothing left to say */
body.front.front-authed .front-auth-btn { display: none; }
/* In the scroll flow, pushed to the pane's foot by the auto margin while the page is
   short — and pushed DOWN by the page once the advanced tray makes it tall, keeping the
   same modest gap below whatever it follows. */
body.front .content { display: flex; flex-direction: column; }
body.front .content > .view.on { flex: none; }
body.front .front-foot {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  position: relative; z-index: 1; margin-top: auto;
  padding: 14px 24px 16px; font-size: 12.5px; color: var(--text-3);
}
body.front #route-new .page.hero { padding-bottom: 36px; }
body.front .front-foot a { color: var(--text-2); text-decoration: none; }
body.front .front-foot a:hover { color: var(--text); }
/* the app's own bullet — the chips' round dot — not a typographic • */
body.front .front-foot .bull { width: 4px; height: 4px; border-radius: 50%; background: var(--text-3); flex: none; }

/* The front door is a poster, not a document: nothing on it selects or drags — except
   the composer's own fields, which are for writing in. */
body.front #view-dash { -webkit-user-select: none; user-select: none; }
body.front #view-dash textarea, body.front #view-dash input { -webkit-user-select: text; user-select: text; }
body.front img { -webkit-user-drag: none; }

/* Tight leading for the two-line case; the margin gives back the half-leading the
   tighter line-height removed below the text, so the gap to the composer reads the same. */
.hero-title { font-family: var(--display); font-size: clamp(21px, 5.5vw, 27px); font-weight: 600; line-height: 1.2; letter-spacing: -.02em; text-align: center; margin-bottom: 23px; }
/* The tagline arrives a word at a time — the one flourish on this page, and it earns the
   room because it plays once, on the front door, and nothing waits on it (account.js
   gates it: never in the app, where the same tab opens all day).
   The tuning is measured, and the first attempt failed the measurement. It ran 340ms per
   word on --ease-out-strong, the curve this file uses for menus and modals, where the
   snap is exactly right. On a line of text it is not: that curve puts a word at 55%
   opacity 44ms in, so each one arrives essentially AT ONCE after its delay, and the
   stagger stops being a ripple and becomes a moving edge. Sampled frame by frame, the
   spread between the brightest and dimmest word peaked at 1.00 — at 219ms the first word
   sat at 0.99 while the last was still at 0. That is a typewriter, and the eye tracks
   the frontier instead of reading the sentence.
   What this wants is a gentler ramp and a tighter stagger, so every word is on its way at
   once with the left just ahead of the right. easeOutCubic at 380ms with 28ms between
   words measures a peak spread of 0.70 — a visible lead-lag, never a cliff — and settles
   at 442ms, which is FASTER than the version it replaces. (Measured alongside: an
   ease-in-out curve reads sluggish off the mark, 0.38 against this one's 0.78 at 150ms.
   Never ease-in on the way in.)
   The blur is the point of the effect: a word coming out of focus reads as arriving from
   somewhere, where opacity alone reads as a light switch. 3px at this size — 5px smeared.
   inline-block because transforms don't apply to inline boxes; the words are laid out
   and BROKEN before they are wrapped (see taglineBreak), so this can't reflow the line.
   The .in class exists so a word can never be left invisible: without it the spans have
   no animation and no opacity of their own, which is exactly the state a resize or a
   no-JS render leaves them in. */
.hero-title .tw { display: inline-block; }
@media (prefers-reduced-motion: no-preference) {
  .hero-title.in .tw { opacity: 0; animation: tagline-word .38s cubic-bezier(.33, 1, .68, 1) both; }
}
@keyframes tagline-word {
  from { opacity: 0; transform: translateY(4px); filter: blur(3px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}
/* Reduced motion keeps the arrival but takes the movement out of it: the words still
   come up in sequence, by opacity alone, with no travel and nothing out of focus. */
@media (prefers-reduced-motion: reduce) {
  .hero-title.in .tw { opacity: 0; animation: tagline-word-still .34s linear both; }
  @keyframes tagline-word-still { from { opacity: 0; } to { opacity: 1; } }
}
.composer {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow-card); padding: 14px 14px 12px; text-align: left;
  container-type: inline-size;
  /* Above the adv tray, which tucks its top edge underneath this card. */
  position: relative; z-index: 1;
}
.composer:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-a10), var(--shadow-card); }
.composer textarea { width: 100%; min-height: 92px; border: none; outline: none; background: none; font-size: 14.5px; line-height: 1.55; }
.composer .chips { padding: 2px 0 4px; }
.composer-foot { display: flex; align-items: center; gap: 10px; margin-top: 8px; flex-wrap: wrap; row-gap: 8px; }
.composer-foot .composer-sched { margin-left: auto; }
.composer-sched { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--text-2); }
/* Fixed widths so changing the cadence never reflows the row. These land on the WRAPPER,
   not the select: the native element is now visually hidden behind its own button, and an
   id selector aimed at it would outrank the class that hides it and drag it back on screen. */
.selx:has(#ns-freq), .selx:has(#set-freq) { width: 138px; }
.selx:has(#ns-time), .selx:has(#set-time) { width: 106px; }
.selx:has(#ns-freq) .selx-btn, .selx:has(#set-freq) .selx-btn,
.selx:has(#ns-time) .selx-btn, .selx:has(#set-time) .selx-btn { width: 100%; }
.at-part.off { opacity: .45; }
select:disabled { cursor: default; }
/* A drawer hanging from the composer: inset on both sides, top edge tucked behind the
   card (which is opaque and casts its shadow onto it), only the bottom corners round. */
details.adv {
  margin: -8px 18px 0; padding-top: 8px;
  border: 1px solid var(--border-faint); border-top: none;
  border-radius: 0 0 12px 12px; background: var(--inset);
}
details.adv summary { cursor: pointer; padding: 10px 18px; font-weight: 570; font-size: 13px; color: var(--text-2); list-style: none; display: flex; align-items: center; gap: 8px; }
/* Errors live IN the composer card, beside what caused them — never detached below
   the tray. Icon + words, not color alone. */
.composer-alert {
  display: flex; align-items: flex-start; gap: 8px;
  margin: 10px 0 2px; padding: 9px 12px; border-radius: 9px;
  background: var(--bad-bg); border: 1px solid var(--bad-bd); color: var(--bad-text);
  font-size: 13px; line-height: 1.45;
}
.composer-alert svg { width: 14px; height: 14px; flex: none; margin-top: 1px; }
/* An empty field never scolds and never dims its CTA: pressing it nudges the field
   instead of raising an error. Shared by the new-scraper brief and the ask bar. */
@keyframes ns-nudge { 20% { transform: translateX(-5px); } 45% { transform: translateX(4px); } 70% { transform: translateX(-2px); } }
.composer.nudge, .askbar.nudge { animation: ns-nudge .28s ease; }
@media (prefers-reduced-motion: reduce) { .composer.nudge, .askbar.nudge { animation: none; } }
.f-input.bad { border-color: var(--bad-bd); }
.f-input.bad:focus { border-color: var(--bad-bd); box-shadow: 0 0 0 3px var(--bad-bg); }
details.adv summary:hover { color: var(--text); }
details.adv summary::-webkit-details-marker { display: none; }
details.adv summary .chev { display: inline-flex; transition: transform .15s; color: var(--text-3); }
details.adv summary .chev svg { width: 13px; height: 13px; }
details.adv[open] summary .chev { transform: rotate(90deg); }
details.adv .adv-body { padding: 2px 18px 20px; border-top: 1px solid var(--border-faint); }
/* The pane is two independent groups — schema and secrets — and both wear the same
   anatomy as a settings card: title, one hint line, controls. The rule between them is
   the hierarchy; the sections themselves carry the rhythm, not per-control margins. */
.adv-sec { padding: 14px 0 16px; }
.adv-sec + .adv-sec { border-top: 1px solid var(--border-faint); }
.adv-sec:last-child { padding-bottom: 0; }
.adv-sec-title { font-size: 13.5px; font-weight: 600; }
.adv-sec-sub { font-size: 12.5px; color: var(--text-2); margin-top: 3px; }
.adv-sec .chkline { margin-top: 8px; }
.adv-sec #ns-schema { margin-top: 4px; }
.chkline { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; height: 34px; padding: 0 10px; margin-left: -10px; border-radius: 8px; cursor: pointer; }

.chkline input { accent-color: var(--accent); margin: 0; }

/* usage & plan */
.use-row { display: flex; align-items: center; gap: 14px; padding: 9px 0; font-size: 13px; }
.use-row .use-k { width: 150px; flex: none; color: var(--text-2); }
.use-row .bar { flex: 1; height: 8px; border-radius: 999px; background: var(--neutral-bg); overflow: hidden; }
.use-row .bar i { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.use-row .use-v { flex: none; text-align: right; font-family: var(--mono); font-size: 12px; }
.tier-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 10px; }
.tier { position: relative; border: 1px solid var(--border-faint); border-radius: 10px; padding: 18px 14px 14px; display: flex; flex-direction: column; gap: 7px; align-items: flex-start; }
.tier.pop { border-color: var(--accent); }
.tbadge {
  position: absolute; top: -9px; left: 12px;
  background: var(--accent); color: var(--on-accent, #fff);
  font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 999px;
}
.tfeats { list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--text-2); flex: 1; margin: 2px 0 6px; padding: 0; }
.tfeats li { display: flex; gap: 7px; align-items: flex-start; }
.tfeats svg { width: 12px; height: 12px; color: var(--accent-text); flex: none; margin-top: 2.5px; }
.tier .btn, .tier a { width: 100%; }
.tier .btn { justify-content: center; }
.tier.on { border-color: var(--accent-a30); background: var(--accent-a06); }
.tier .tname { font-weight: 600; font-size: 13.5px; }
.tier .tprice { font-family: var(--display); font-size: 22px; font-weight: 600; }
.tier .tprice span { font-family: var(--sans); font-size: 12px; font-weight: 400; color: var(--text-2); }

/* api keys table */
/* The keys list IS the scrapers list (.slist/.srow) — this modifier only redraws
   the columns (name, kind, scope, last used, revoke) and keeps key names unbolded. */
/* Name · Kind · Scope · Created · Last used · revoke. Kind and Created used to share one
   cell as "API · 3d ago", which read as one fact and was two. */
.slist.keys .list-head, .slist.keys .srow { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr) 110px 110px 120px 80px; }
.slist.keys .srow { padding: 10px 20px; }
.slist.keys .srow:hover { background: none; }
.slist.keys .sname { font-weight: 400; }
.kact { display: flex; justify-content: flex-end; }
.krevoke { height: 28px; padding: 0 10px; font-size: 12.5px; box-shadow: none; border-color: transparent; color: var(--text-2); }
.krevoke:hover { color: var(--bad-text); background: var(--bad-bg); border-color: transparent; }

/* theme segmented control */
.seg { display: inline-flex; gap: 2px; background: var(--neutral-bg); border-radius: 8px; padding: 2px; flex-wrap: wrap; }
.seg button { padding: 5px 12px; border-radius: 6px; font-size: 13px; font-weight: 550; color: var(--text-2); }
.seg button:hover { color: var(--text); }
.seg button.on { background: var(--surface); color: var(--text); box-shadow: var(--shadow-card); }
/* the in-bar variant: same control, sized to sit inside the ask bar's 34px row */

/* snippets */
.snip {
  background: var(--inset); border: 1px solid var(--border-faint); border-radius: 8px;
  padding: 10px 12px; margin: 6px 0 4px;
  overflow-x: auto; overscroll-behavior-x: none; font-family: var(--mono); font-size: 12px; line-height: 1.5;
}
.snip code { white-space: pre; }

/* ── modal ──────────────────────────────────────────────────────────────── */
.scrim { position: fixed; inset: 0; background: var(--scrim); z-index: 40; display: none; }
.scrim.open { display: flex; align-items: center; justify-content: center; padding: 24px; animation: scrim-in .14s ease-out; }
.scrim.open .modalbox { animation: pop-in .18s var(--ease-out-strong); }
.modalbox { width: min(460px, 92vw); max-height: 88vh; overflow-y: auto; background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-pop); padding: 20px 22px; }
.modalbox h3 { font-family: var(--display); font-size: 17px; font-weight: 600; margin-bottom: 8px; }
.modal-body { font-size: 13.5px; color: var(--text-2); }
.modal-body .f-input, .modal-body .f-area, .modal-body .selx { margin-top: 8px; width: 100%; }
.modal-body .selx-btn { width: 100%; }
/* A .frow in the modal is one shared line: the input and the enhanced select split it
   evenly. Outranks the blanket width rule above by depth and order. */
.modal-body .frow { margin-top: 8px; }
.modal-body .frow .f-input, .modal-body .frow .selx { margin-top: 0; width: auto; flex: 1 1 0; min-width: 0; }
.modal-body ul { margin: 8px 0 0 18px; }
#modal-input { margin-top: 12px; }
#modal-input[hidden] { display: none; }
.modal-foot { display: flex; gap: 8px; justify-content: flex-end; margin-top: 18px; }
#modal-cancel[hidden] { display: none; }
.modal-err { margin-top: 10px; }

/* ── share dialog ── the Google-Docs anatomy: a full-width general-access select;
   the link zone beneath collapses away entirely when private; then the download bar
   (format select + one action) and the snapshots line. */
.sh-access { margin-top: 2px; }
.sh-accmain { min-width: 0; }
.sh-accmain .selx { margin-top: 0; }
.sh-zone { margin-top: 12px; }
.sh-zone:empty { display: none; } /* private: no link rows, no reserved room */
/* The link as a field: inset, mono, the copy action living inside its right edge —
   the shape every link-sharing product has taught people to reach for. */
.sh-linkbox {
  display: flex; align-items: center; gap: 10px;
  background: var(--inset); border: 1px solid var(--border-faint); border-radius: 9px;
  padding: 5px 5px 5px 12px;
  cursor: pointer;
  transition: background .18s, border-color .18s;
}
.sh-linkbox:hover { border-color: var(--border-loud); }
/* Entering the copied state is INSTANT (transition: none on the state itself) — the
   click lands, the field answers. Leaving it falls back to the base 180ms ease, so
   the green and the label release together. */
.sh-linkbox.copied { background: var(--accent-a16); border-color: var(--accent); transition: none; }
/* The label rides the SAME class and transition as the field's green, so the two
   arrive and leave as one motion. Static text + opacity: its width is always
   reserved, so nothing reflows when it shows. */
.sh-copied { flex: none; font-size: 12px; font-weight: 570; color: var(--accent-text); opacity: 0; transition: opacity .18s; }
.sh-linkbox.copied .sh-copied { opacity: 1; transition: none; }
.sh-linkbox .u {
  flex: 1; min-width: 0;
  font-family: var(--mono); font-size: 12.5px; color: var(--text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sh-linkbox .btn { flex: none; }
.sh-dlbar { display: flex; align-items: center; gap: 8px; }
.sh-dlbar .selx { flex: 1; width: auto; margin-top: 0; }
.sh-dlbar .selx-btn { width: 100%; }
.sh-snaps { margin-top: 6px; white-space: nowrap; }
.sh-snaps input { accent-color: var(--accent); margin: 0; }

/* snapshot overlay */
.snapbox {
  width: min(1100px, 100%); height: min(88vh, 900px);
  background: var(--surface); border-radius: 14px; box-shadow: var(--shadow-pop);
  display: flex; flex-direction: column; overflow: hidden;
}
.snap-head { display: flex; align-items: center; gap: 12px; padding: 11px 16px; border-bottom: 1px solid var(--border-faint); }
.snap-head .meta { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; min-width: 0; flex: 1; }
.snap-head .meta a { overflow-wrap: anywhere; font-size: 13px; }
/* The head's links wrap because they are URLs; the Download control is not one. Secondary
   (the plain .btn face) and normal-sized, sitting to the left of the close X. */
.snap-head .btn { flex: none; white-space: nowrap; }
#snap-frame { flex: 1; width: 100%; border: 0; background: #fff; }

/* ── select menu ────────────────────────────────────────────────────────── */
/* The native <select> stays in the DOM as the value's home and is taken out of sight and
   out of the accessibility tree; the button and listbox carry the semantics. Not
   display:none — a hidden-by-display control can't be a form participant in some
   browsers, and it still needs to be a real element for .value and change events. */
.selx { position: relative; display: inline-flex; min-width: 0; }
.selx-native {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; pointer-events: none;
}
.selx-btn {
  display: inline-flex; align-items: center; gap: 6px; min-width: 0;
  height: 34px; padding: 0 9px 0 11px; border-radius: 7px;
  position: relative; isolation: isolate;
  border: 1px solid transparent; background: none; color: var(--text);
  font-size: 13px; font-family: inherit; cursor: pointer; text-align: left;
}
/* Like .btn, the chrome lives on ::before — a press squishes the control's surface,
   never the label and chevron riding inside it. */
.selx-btn::before {
  content: ''; position: absolute; inset: -1px; z-index: -1;
  border-radius: inherit;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: inset 0 1px 0 var(--btn-sheen), 0 1px 2px rgba(26, 33, 28, .05);
  transition: background .12s, border-color .12s, transform .26s cubic-bezier(.34, 1.56, .64, 1);
}
.selx-btn:hover::before { border-color: var(--border-loud); }
.selx-btn:active::before, .selx-btn.pressing::before { transform: scale(.97); transition-duration: .12s, .12s, .07s; }
@media (prefers-reduced-motion: reduce) {
  .selx-btn:active::before, .selx-btn.pressing::before { transform: none; }
}
.selx-btn:focus-visible { outline: none; }
.selx-btn:focus-visible::before { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-a10), inset 0 1px 0 var(--btn-sheen); }
.selx-val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.selx-chev { width: 14px; height: 14px; flex: none; color: var(--text-3); margin-left: auto; }
.selx.off .selx-btn, .selx-btn:disabled { opacity: .5; cursor: default; }
.selx.off .selx-btn::before, .selx-btn:disabled::before { box-shadow: none; }
.selx.off .selx-btn:hover::before, .selx-btn:disabled:hover::before { border-color: var(--border); }
/* the popup rides the shared .menu chrome; only the option rows are its own */
.selx-list { max-height: 320px; overflow-y: auto; overscroll-behavior: contain; }
/* …and it has to clear the modal it opens over. Enhanced selects live inside dialogs —
   the Share sheet has two — and the bare `.menu { z-index: 36 }` puts them UNDER the
   .scrim's 40, so the list opened behind the modal that owns it. Two classes, because
   that `.menu` rule sits later in this file and would win on order alone; 70 is the
   number .menu.cal-pop already uses to clear the same modal. (Its comment claimed this
   rule existed and matched — it did not. Now it does.) */
.menu.selx-list { z-index: 70; }
/* Scoped through .selx-list so it outranks `.menu button { display: block }`, which the
   popup inherits from the shared menu chrome and which would otherwise stop the tick
   being pushed to the trailing edge. */
.selx-list .selx-opt {
  display: flex; align-items: center; gap: 8px; width: 100%; text-align: left;
  padding: 7px 12px; border-radius: 7px; font-size: 13.5px; color: var(--text);
}
/* `at` is the keyboard's position, `on` is the committed value — they are different
   things, and a listbox that conflates them loses your place the moment you arrow away. */
.selx-list .selx-opt.at { background: var(--neutral-bg); }
.selx-list .selx-opt.on { color: var(--accent-text); font-weight: 570; }
.selx-list .selx-opt .selx-tick { width: 14px; height: 14px; flex: none; margin-left: auto; }
/* plan-gated options: quieter text, a small gem on the trailing edge where the tick
   would sit — pickable to hear the upsell, never to select */
.selx-list .selx-opt.prem { color: var(--text-2); }
.selx-list .selx-opt .prem-i { width: 13px; height: 13px; flex: none; margin-left: auto; color: var(--accent-text); }

/* ── tooltip ────────────────────────────────────────────────────────────── */
/* Text only, never interactive, and pointer-events stay ON so the box can be hovered —
   WCAG 1.4.13 requires the pointer to be able to travel onto it and read it. */
#tip {
  position: fixed; z-index: 70; left: 0; top: 0;
  /* No hitbox: the tooltip never intercepts the pointer (which also means it can no
     longer be hovered onto — that trade is deliberate). */
  pointer-events: none;
  max-width: 280px; padding: 5px 8px; border-radius: 6px;
  background: var(--text); color: var(--bg);
  font-size: 12px; line-height: 1.4; font-weight: 500;
  box-shadow: var(--shadow-pop);
  opacity: 0; visibility: hidden; transform: translateY(2px);
  overflow-wrap: anywhere;
  /* No transition in the RESTING state, deliberately: dropping .on reverts to this rule
     and the tooltip is gone on the frame it was dismissed. Only the entrance eases —
     a hint that lingers on the way out reads as lag. */
}
#tip.below { transform: translateY(-2px); }
#tip.on { opacity: 1; visibility: visible; transform: none; transition: opacity .1s ease, transform .1s ease; }
.tip-arrow {
  position: absolute; left: var(--tip-arrow-x, 50%); bottom: -3px;
  width: 7px; height: 7px; margin-left: -3.5px;
  background: var(--text); transform: rotate(45deg); border-radius: 1px;
}
#tip.below .tip-arrow { bottom: auto; top: -3px; }
@media (prefers-reduced-motion: reduce) { #tip, #tip.on { transition: none; transform: none; } }

/* skeleton loading states */
.sk {
  display: inline-block; position: relative; overflow: hidden;
  background: var(--neutral-bg); border-radius: 6px; vertical-align: middle;
  max-width: 100%;
}
.sk::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, var(--btn-sheen), transparent);
  transform: translateX(-100%);
  animation: sk-sweep 1.4s ease-in-out infinite;
}
@keyframes sk-sweep { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .sk::after { animation: none; } }

/* menus */
.menu {
  position: fixed; z-index: 36; min-width: 190px;
  background: var(--surface); border-radius: 10px;
  /* The app's edge, not a border: the zero-blur ring the content pane and peek
     panel wear — pixel-crisp around the radius in both themes — over the floating
     shadow (whose dark tokens add their own faint highlight ring). */
  box-shadow: 0 0 0 1px var(--border), var(--shadow-pop);
  padding: 5px; display: none;
}
.menu.open { display: block; animation: pop-in .13s var(--ease-out-strong); }
/* While a menu is open, nothing under it is live to the POINTER either. The press was
   already defused in the capture phase (account.js, the menuGuard note) but hover was
   not: rows went on tinting, buttons went on lighting, and a tooltip could still open
   behind the very thing you were reading.
   pointer-events is how this file already stops hit-testing for a moment — see
   body.col-resizing up in the sheet — and unlike a scrim element it never has to win a
   stacking contest against a popup living inside some pane's own z-index context, which
   is the contest the scrim lost. One declaration on the body and one handing it back to
   the popup, whose subtree inherits: no universal selector, no per-element recalc.
   Keyed on :has rather than a class so every popup on the .menu contract is covered by
   the fact of being open — the ⋯ menus, the account menu, the enhanced-select lists,
   the calendar pop — with no bookkeeping at any of their open and close sites.
   One engine difference, measured, and left alone on purpose: nothing NEW can be
   hovered anywhere, in either engine. But the element the pointer is already RESTING on
   when the menu opens keeps whatever tint it had until the pointer next moves, because
   WebKit re-runs its hover hit-test only on a real mouse event — no style change, forced
   reflow, elementFromPoint or renderer flip talks it round (all tried; only detaching
   the node from the DOM does, which would cost that element its focus, its scroll
   position and any media it holds — far too much for one stale tint). Blink clears it.
   That resting element is the menu's own trigger, since pressing it is how you got here,
   and a trigger that stays lit while its menu is open is what a trigger should do. */
body:has(.menu.open) { pointer-events: none; }
body:has(.menu.open) .menu.open { pointer-events: auto; }
.menu button { display: block; width: 100%; text-align: left; padding: 8px 12px; border-radius: 7px; font-size: 13.5px; }
/* the display:block above outranks the UA [hidden] rule — restate it so items can hide */
.menu button[hidden] { display: none; }
.menu button:hover { background: var(--neutral-bg); }
.menu button.danger { color: var(--bad-text); }
.menu .rule { height: 1px; background: var(--border-faint); margin: 5px 4px; }
.menu a { display: block; color: inherit; text-decoration: none; }
.spark { width: 15px; height: 15px; flex: none; color: var(--accent-text); }

/* toast */
.toast {
  position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%) translateY(80px);
  background: var(--text); color: var(--bg);
  font-size: 13px; font-weight: 500;
  padding: 9px 16px; border-radius: 8px; box-shadow: var(--shadow-pop);
  transition: transform .2s ease; z-index: 60; pointer-events: none;
  max-width: min(480px, 92vw);
}
.toast.show { transform: translateX(-50%) translateY(0); }
.barctl { display: inline-flex; align-items: center; gap: 8px; flex: none; height: 34px; }
/* the ask CTA sits flush; the quieter find controls want more air at the edge */
#find-ctl, #ask-ctl { margin-right: 7px; }
.barctl[hidden] { display: none; }
.askbar .bar-ic { display: inline-flex; flex: none; color: var(--text-3); }
.askbar .bar-ic svg { width: 15px; height: 15px; }

/* ── motion primitives — enter-only, transform/opacity, under 220ms ─────── */
:root {
  --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
  /* The directional pair for content that swaps in place: Material 3's emphasized curve
     for arrivals, its accelerate curve for departures. Entrances decelerate into place,
     exits accelerate away — the rule every motion system agrees on. */
  --ease-out-emph: cubic-bezier(0.05, 0.7, 0.1, 1);
  --ease-in-accel: cubic-bezier(0.3, 0, 1, 1);
}
@keyframes pop-in { from { opacity: 0; transform: translateY(var(--pop-y, -3px)) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes scrim-in { from { opacity: 0; } to { opacity: 1; } }
/* The chrome keeps a compositor layer from the start: promoting it mid-press forces the
   label above onto a fresh layer too, and re-rasterizing at a fractional position is the
   little shiver the icon showed on pointerdown. */
.btn::before, .icon-btn::before, .selx-btn::before { will-change: transform; }
.btn:active:not(:disabled)::before, .btn.pressing:not(:disabled)::before,
.icon-btn:active::before, .icon-btn.pressing::before {
  transform: scale(.96);
  transition-duration: .12s, .12s, .07s;
  transition-timing-function: ease, ease, ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .menu.open, .scrim.open, .scrim.open .modalbox { animation: none; }
  .btn:active:not(:disabled)::before, .btn.pressing::before, .icon-btn:active::before, .icon-btn.pressing::before { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }

/* views */
.view { display: none; }
.view.on { display: block; }

/* ── responsive ─────────────────────────────────────────────────────────── */
.nav-scrim { position: fixed; inset: 0; background: var(--scrim); z-index: 65; display: none; }

@media (max-width: 860px) {
  .sidebar {
    position: fixed; top: 0; left: 0; bottom: 0; z-index: 70;
    width: 264px; transform: translateX(-102%);
    transition: transform .2s ease;
    box-shadow: var(--shadow-pop);
  }
  body.nav-open .sidebar { transform: none; }
  body.nav-open .nav-scrim { display: block; }
  .menu-btn { display: grid; }
  .content { margin: 0; border-radius: 0; }
  .topbar { padding: 0 12px; }
  .page { padding: 20px 16px 64px; }
  .btn { height: 36px; }
  .btn.sq { width: 36px; }
  .icon-btn { width: 34px; height: 34px; }
  .krevoke { height: 30px; }
}
@media (prefers-reduced-motion: reduce) { .sidebar { transition: none; } }

@media (max-width: 700px) {
  .slist.keys .list-head, .slist.keys .srow { grid-template-columns: minmax(0, 1.3fr) 110px 80px; }
  /* Name, Scope and the revoke button survive; Kind and the two dates fold away. */
  .slist.keys .list-head > :nth-child(2), .slist.keys .list-head > :nth-child(4), .slist.keys .list-head > :nth-child(5),
  .slist.keys .srow > :nth-child(2), .slist.keys .srow > :nth-child(4), .slist.keys .srow > :nth-child(5) { display: none; }
}

@media (max-width: 640px) {
  /* Wrapped actions read left: on a phone the page-head buttons take their own full
     row under the title instead of dangling off the right edge. */
  .page-head .right { width: 100%; margin-left: 0; justify-content: flex-start; flex-wrap: wrap; row-gap: 8px; }

  /* index rows: stacked cards — name+chip, then the schedule and last-run lines */
  .list-head { display: none; }
  .slist .srow { display: flex; flex-wrap: wrap; align-items: center; row-gap: 5px; column-gap: 10px; padding: 12px 16px; }
  .srow .sname { flex: 1 1 auto; min-width: 0; }
  .srow .schip { flex: none; }
  .srow .smeta-cell { flex-basis: 100%; }
  /* Repeats and Next run share one line here: three stacked meta lines turn a row into a
     paragraph. They read as one clause with a middot between them — which is how they
     read before they earned their own columns — and a scraper with nothing scheduled
     drops both the cell and the separator rather than printing a dash into a sentence. */
  .srow .srow-sched, .srow .srow-next { flex: 0 1 auto; }
  .srow .srow-next:empty { display: none; }
  .srow .srow-next::before { content: '·'; color: var(--text-3); margin-right: 7px; }
  .srow .go { display: none; }

  /* data grid: the REAL table, panned. The card-row experiment hid every column past
     the fourth and mashed the rest into dot-separated prose — a spreadsheet you
     can't read isn't a spreadsheet. Kept as a table, .gridscroll pans horizontally
     (its overscroll-behavior already keeps the pan from triggering back-swipe), the
     virtualization's uniform row height holds, and a row tap still opens the full
     record in the peek panel. */
  .fthumb img { width: 34px; height: 34px; }
  .grid td { max-width: 210px; }
  .gridscroll { max-height: none; }
  .gridfoot > .hint { display: none; }
  .toolbar .kbd { display: none; }
  .sch-row { grid-template-columns: minmax(0, 1fr) 96px 42px 34px; }
  .sch-row .sr-desc { order: 5; grid-column: 1 / -1; }
  .sch-head .micro:nth-child(3) { display: none; }
}

/* when the schedule controls can't share a row with the CTA, stack deliberately:
   the button takes a full row instead of dangling right on a wrapped line */
@container (max-width: 560px) {
  .composer-foot > * { flex: 1 1 100%; }
  .composer-foot .btn, .composer-foot .filelab { justify-content: center; }
  .composer-sched { margin-left: 0; display: flex; }
  .composer-sched .selx { flex: 1; min-width: 0; }
  .composer-sched .selx-btn { width: 100%; }
  .composer-sched .sched-cfg { flex: 1; width: auto; min-width: 0; }
  .composer-sched .at-part { display: contents; }
}
